Did you know ... Search Documentation:
Pack asadb -- docs/mysql55-compatibility.md

AsaDB MySQL 5.5 Compatibility Target

AsaDB menargetkan sintaks MySQL 5.5 sebagai dialek SQL utama. Implementasi saat ini memakai model bertahap.

Status legend

  • Implemented: sudah diparse dan dieksekusi oleh executor.
  • Metadata stub: dikenali parser dan disimpan sebagai metadata, tetapi belum menjalankan body/view.
  • Parsed stub: dikenali parser, tetapi executor mengembalikan pesan belum diimplementasikan.
  • Planned: masuk roadmap.

DDL

StatementStatus
CREATE DATABASEImplemented
DROP DATABASEImplemented
CREATE TABLEImplemented
DROP TABLEImplemented
TRUNCATE TABLEImplemented
ALTER TABLEImplemented subset
CREATE INDEXImplemented metadata index
DROP INDEXImplemented metadata index
CREATE VIEWImplemented basic SELECT view
CREATE TRIGGERMetadata stub
CREATE PROCEDUREMetadata stub
CREATE FUNCTIONMetadata stub

DML/DQL

StatementStatus
INSERT INTO ... VALUESImplemented
SELECT ... FROMImplemented subset + expressions/order/offset/joins/group/subqueries
UPDATE ... SET ... WHEREImplemented subset + expression SET/WHERE
DELETE FROM ... WHEREImplemented subset + expression WHERE
SHOW DATABASESImplemented
SHOW TABLESImplemented
DESCRIBE / DESCImplemented
SHOW COLUMNSImplemented
SHOW INDEXImplemented
SHOW CREATE TABLEImplemented
EXPLAINImplemented placeholder
REPLACEPlanned
LOAD DATA INFILEPlanned
UNIONImplemented basic UNION / UNION ALL
JOINImplemented subset: INNER, LEFT, RIGHT, CROSS, comma join, and USING
GROUP BYImplemented subset
HAVINGPlanned
Aggregate functionsImplemented subset: COUNT, SUM, AVG, MIN, MAX
SubqueriesImplemented basic: IN, EXISTS, scalar SELECT
CASE expressionImplemented basic searched/simple CASE

Transaction / Admin / Permission

StatementStatus
START TRANSACTIONImplemented snapshot transaction
COMMITImplemented journaled commit
ROLLBACKImplemented snapshot rollback
LOCK TABLESImplemented in-process write guard
UNLOCK TABLESImplemented
CREATE USER / DROP USERImplemented catalog basic
GRANTImplemented catalog basic
REVOKEImplemented catalog basic

Type mapping awal

AsaDB v1 menyimpan value sebagai term Prolog. Type SQL disimpan sebagai metadata kolom, belum melakukan strict coercion penuh.

MySQL typeAsaDB v1 behavior
INT / INTEGER / BIGINTnumeric value if literal numeric
DECIMAL / FLOAT / DOUBLE / REALnumeric value if literal numeric
VARCHAR / CHARatom/string literal
TEXT / MEDIUMTEXT / LONGTEXTatom/string literal
DATE / TIME / DATETIME / TIMESTAMP / YEARmetadata type, value stored as literal
NULLnull
DEFAULTmetadata, dipakai saat insert kolom kosong

Production foundation yang sudah aktif

  • Expression evaluator untuk AND, OR, XOR, NOT, literal TRUE/FALSE/UNKNOWN, predicate `IS [NOT] TRUE/FALSE/UNKNOWN`, IN, LIKE, BETWEEN, comparison, arithmetic sederhana, CASE, subquery basic, dan fungsi LOWER, UPPER, LENGTH, CONCAT, SUBSTRING, TRIM, REPLACE, COALESCE.
  • SELECT multi-table basic via `INNER JOIN`, `LEFT JOIN`, `RIGHT JOIN`, `CROSS JOIN`, comma join, dan `JOIN ... USING (...)`, plus `GROUP BY` dan aggregate COUNT, SUM, AVG, MIN, MAX.
  • Basic UNION / `UNION ALL` dan view sederhana berbasis SELECT.
  • Metadata index via `CREATE INDEX`, `DROP INDEX`, `SHOW INDEX`; executor memakai equality predicate yang cocok sebagai candidate filter awal.
  • Snapshot transaction untuk `START TRANSACTION`, COMMIT, ROLLBACK, plus journal `.asa.journal`.
  • In-process write mutex dan `LOCK TABLES/UNLOCK TABLES` guard.
  • Basic user catalog: `CREATE USER`, `DROP USER`, GRANT, REVOKE, `SHOW GRANTS`, dan `LOGIN ... IDENTIFIED BY ...`.

Prinsip kompatibilitas

  1. AsaDB harus menerima SQL umum MySQL-style sebisa mungkin.
  2. Jika belum bisa dieksekusi, error harus jelas menyebut feature-nya.
  3. Syntax expansion dilakukan bertahap dari statement yang paling sering dipakai.
  4. Storage `.asa` tidak harus sama dengan MySQL; kompatibilitas berada di layer SQL.