From 71e238a5cce389d9871f7ab9670cd8945c519b91 Mon Sep 17 00:00:00 2001 From: thzxx Date: Sun, 26 Jul 2026 16:40:11 +0800 Subject: [PATCH] =?UTF-8?q?test:=20v0.1.13=20=E6=96=B0=E5=A2=9E42=E9=A1=B9?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E8=A6=86=E7=9B=96=EF=BC=88=E4=BA=8B=E5=8A=A1?= =?UTF-8?q?=E5=9B=9E=E6=BB=9A/=E5=AD=90=E6=9F=A5=E8=AF=A2/=E5=A4=96?= =?UTF-8?q?=E9=94=AE=E7=BA=A7=E8=81=94/=E8=BF=9E=E6=8E=A5=E6=B1=A0?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dist/metona-sqlark.cjs.js | 70 +++++++++- dist/metona-sqlark.cjs.js.map | 2 +- dist/metona-sqlark.d.ts | 4 + dist/metona-sqlark.esm.js | 70 +++++++++- dist/metona-sqlark.esm.js.map | 2 +- dist/metona-sqlark.js | 70 +++++++++- dist/metona-sqlark.js.map | 2 +- dist/metona-sqlark.min.js | 2 +- src/query/executor.ts | 34 ++++- src/sql/parser.ts | 39 +++++- tests/connection-pool.test.ts | 114 +++++++++++++++ tests/foreign-key-cascade.test.ts | 213 +++++++++++++++++++++++++++++ tests/subquery.test.ts | 136 ++++++++++++++++++ tests/transaction-rollback.test.ts | 213 +++++++++++++++++++++++++++++ 14 files changed, 955 insertions(+), 16 deletions(-) create mode 100644 tests/connection-pool.test.ts create mode 100644 tests/foreign-key-cascade.test.ts create mode 100644 tests/subquery.test.ts create mode 100644 tests/transaction-rollback.test.ts diff --git a/dist/metona-sqlark.cjs.js b/dist/metona-sqlark.cjs.js index 8f24a52..e31fa9f 100644 --- a/dist/metona-sqlark.cjs.js +++ b/dist/metona-sqlark.cjs.js @@ -1408,14 +1408,19 @@ class QueryExecutor { stmt.where = await this.resolveSubqueries(stmt.where); } const hasGroupBy = !!(stmt.groupBy && stmt.groupBy.length > 0); + const hasAggregate = !hasGroupBy && this._hasAggregateColumn(stmt.columns); let rows; if (!stmt.joins || stmt.joins.length === 0) { - const plan = compileStatement(hasGroupBy ? { ...stmt, columns: ['*'] } : stmt); + const plan = compileStatement(hasGroupBy || hasAggregate ? { ...stmt, columns: ['*'] } : stmt); rows = await this.engine.find(plan.table, plan); } else { rows = await this.executeJoinSelect(stmt); } + // 无 GROUP BY 但有聚合 → 计算单行聚合结果 + if (hasAggregate) { + rows = [this.computeSingleAggregate(rows, stmt)]; + } if (hasGroupBy) rows = this.executeGroupBy(rows, stmt); if (stmt.distinct) @@ -1588,6 +1593,31 @@ class QueryExecutor { } getEngine() { return this.engine; } // =================================================================== + // 无 GROUP BY 时的聚合计算 + // =================================================================== + /** 检查 SELECT 列列表中是否包含聚合函数 */ + _hasAggregateColumn(columns) { + return columns.some((col) => /^(COUNT|SUM|AVG|MIN|MAX)\(/i.test(col)); + } + /** 计算单行聚合结果(无 GROUP BY) */ + computeSingleAggregate(rows, stmt) { + const result = {}; + for (const colExpr of stmt.columns) { + if (colExpr === '*') + continue; + const m = colExpr.match(/^(COUNT|SUM|AVG|MIN|MAX)\((.+?)\)(?:\s+AS\s+(\w+))?$/i); + if (m) { + const [, func, arg, alias] = m; + result[alias || colExpr] = this.computeAggregate(func.toUpperCase(), rows, arg.trim()); + } + else { + // 非聚合列取第一行的值 + result[colExpr] = rows.length > 0 ? rows[0][colExpr] : null; + } + } + return result; + } + // =================================================================== // 子查询解析 // =================================================================== /** @@ -2394,8 +2424,8 @@ class Parser { /** simple_cond → column op value | column IS [NOT] NULL | column [NOT] LIKE pattern * | column [NOT] IN (values) | NOT condition | (condition) */ parseSimpleCondition() { - // NOT expr - if (this.curTokenIs(TokenType.NOT)) { + // NOT expr(注意 NOT IN / NOT LIKE 不作为通用 NOT) + if (this.curTokenIs(TokenType.NOT) && !this._isNotInOrLike()) { this.nextToken(); const inner = this.parseSimpleCondition(); return { $not: inner }; @@ -2420,6 +2450,36 @@ class Parser { result[column] = isNot ? { $ne: null } : { $eq: null }; return result; } + // NOT LIKE / NOT IN(NOT 后紧跟 LIKE 或 IN) + if (this.curTokenIs(TokenType.NOT)) { + if (this.peekTokenIs(TokenType.IN)) { + // NOT IN + this.nextToken(); // skip NOT + this.nextToken(); // skip IN + this.expect(TokenType.LPAREN); + if (this.curTokenIs(TokenType.SELECT)) { + const subquery = this.parseSelect(); + this.expect(TokenType.RPAREN); + const result = {}; + result[column] = { $nin: { $subquery: subquery } }; + return result; + } + const values = this.parseValueList(); + this.expect(TokenType.RPAREN); + const result = {}; + result[column] = { $nin: values }; + return result; + } + else if (this.peekTokenIs(TokenType.LIKE)) { + // NOT LIKE + this.nextToken(); // skip NOT + this.nextToken(); // skip LIKE + const pattern = this.parseValue(); + const result = {}; + result[column] = { $not: { $like: pattern } }; + return result; + } + } // LIKE if (this.curTokenIs(TokenType.LIKE)) { this.nextToken(); @@ -2471,6 +2531,10 @@ class Parser { result[column] = { [op]: value }; return result; } + /** 判断当前 NOT 是否为 NOT IN / NOT LIKE 的一部分(不应作为通用 NOT 处理) */ + _isNotInOrLike() { + return this.peekTokenIs(TokenType.IN) || this.peekTokenIs(TokenType.LIKE); + } peekTokenIs(type) { return this.peekToken.type === type; } diff --git a/dist/metona-sqlark.cjs.js.map b/dist/metona-sqlark.cjs.js.map index de888f3..dc4656d 100644 --- a/dist/metona-sqlark.cjs.js.map +++ b/dist/metona-sqlark.cjs.js.map @@ -1 +1 @@ -{"version":3,"file":"metona-sqlark.cjs.js","sources":["../src/constants.ts","../src/query/where-matcher.ts","../src/engine/memory.ts","../src/engine/indexeddb.ts","../src/engine/opfs.ts","../src/hybrid/index.ts","../src/query/builder.ts","../src/table/table.ts","../src/table/schema.ts","../src/query/compiler.ts","../src/query/executor.ts","../src/sql/tokens.ts","../src/sql/lexer.ts","../src/sql/parser.ts","../src/transaction/index.ts","../src/plugin/index.ts","../src/core.ts","../src/connection-manager.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"metona-sqlark.cjs.js","sources":["../src/constants.ts","../src/query/where-matcher.ts","../src/engine/memory.ts","../src/engine/indexeddb.ts","../src/engine/opfs.ts","../src/hybrid/index.ts","../src/query/builder.ts","../src/table/table.ts","../src/table/schema.ts","../src/query/compiler.ts","../src/query/executor.ts","../src/sql/tokens.ts","../src/sql/lexer.ts","../src/sql/parser.ts","../src/transaction/index.ts","../src/plugin/index.ts","../src/core.ts","../src/connection-manager.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/metona-sqlark.d.ts b/dist/metona-sqlark.d.ts index ade627e..fccc9fa 100644 --- a/dist/metona-sqlark.d.ts +++ b/dist/metona-sqlark.d.ts @@ -291,6 +291,10 @@ declare class QueryExecutor { private executeCreateTable; private executeDropTable; getEngine(): IStorageEngine; + /** 检查 SELECT 列列表中是否包含聚合函数 */ + private _hasAggregateColumn; + /** 计算单行聚合结果(无 GROUP BY) */ + private computeSingleAggregate; /** * 递归扫描 WHERE 条件,找到 $subquery 标记并执行子查询, * 将结果替换为具体值。 diff --git a/dist/metona-sqlark.esm.js b/dist/metona-sqlark.esm.js index 02e848f..369f5e6 100644 --- a/dist/metona-sqlark.esm.js +++ b/dist/metona-sqlark.esm.js @@ -1404,14 +1404,19 @@ class QueryExecutor { stmt.where = await this.resolveSubqueries(stmt.where); } const hasGroupBy = !!(stmt.groupBy && stmt.groupBy.length > 0); + const hasAggregate = !hasGroupBy && this._hasAggregateColumn(stmt.columns); let rows; if (!stmt.joins || stmt.joins.length === 0) { - const plan = compileStatement(hasGroupBy ? { ...stmt, columns: ['*'] } : stmt); + const plan = compileStatement(hasGroupBy || hasAggregate ? { ...stmt, columns: ['*'] } : stmt); rows = await this.engine.find(plan.table, plan); } else { rows = await this.executeJoinSelect(stmt); } + // 无 GROUP BY 但有聚合 → 计算单行聚合结果 + if (hasAggregate) { + rows = [this.computeSingleAggregate(rows, stmt)]; + } if (hasGroupBy) rows = this.executeGroupBy(rows, stmt); if (stmt.distinct) @@ -1584,6 +1589,31 @@ class QueryExecutor { } getEngine() { return this.engine; } // =================================================================== + // 无 GROUP BY 时的聚合计算 + // =================================================================== + /** 检查 SELECT 列列表中是否包含聚合函数 */ + _hasAggregateColumn(columns) { + return columns.some((col) => /^(COUNT|SUM|AVG|MIN|MAX)\(/i.test(col)); + } + /** 计算单行聚合结果(无 GROUP BY) */ + computeSingleAggregate(rows, stmt) { + const result = {}; + for (const colExpr of stmt.columns) { + if (colExpr === '*') + continue; + const m = colExpr.match(/^(COUNT|SUM|AVG|MIN|MAX)\((.+?)\)(?:\s+AS\s+(\w+))?$/i); + if (m) { + const [, func, arg, alias] = m; + result[alias || colExpr] = this.computeAggregate(func.toUpperCase(), rows, arg.trim()); + } + else { + // 非聚合列取第一行的值 + result[colExpr] = rows.length > 0 ? rows[0][colExpr] : null; + } + } + return result; + } + // =================================================================== // 子查询解析 // =================================================================== /** @@ -2390,8 +2420,8 @@ class Parser { /** simple_cond → column op value | column IS [NOT] NULL | column [NOT] LIKE pattern * | column [NOT] IN (values) | NOT condition | (condition) */ parseSimpleCondition() { - // NOT expr - if (this.curTokenIs(TokenType.NOT)) { + // NOT expr(注意 NOT IN / NOT LIKE 不作为通用 NOT) + if (this.curTokenIs(TokenType.NOT) && !this._isNotInOrLike()) { this.nextToken(); const inner = this.parseSimpleCondition(); return { $not: inner }; @@ -2416,6 +2446,36 @@ class Parser { result[column] = isNot ? { $ne: null } : { $eq: null }; return result; } + // NOT LIKE / NOT IN(NOT 后紧跟 LIKE 或 IN) + if (this.curTokenIs(TokenType.NOT)) { + if (this.peekTokenIs(TokenType.IN)) { + // NOT IN + this.nextToken(); // skip NOT + this.nextToken(); // skip IN + this.expect(TokenType.LPAREN); + if (this.curTokenIs(TokenType.SELECT)) { + const subquery = this.parseSelect(); + this.expect(TokenType.RPAREN); + const result = {}; + result[column] = { $nin: { $subquery: subquery } }; + return result; + } + const values = this.parseValueList(); + this.expect(TokenType.RPAREN); + const result = {}; + result[column] = { $nin: values }; + return result; + } + else if (this.peekTokenIs(TokenType.LIKE)) { + // NOT LIKE + this.nextToken(); // skip NOT + this.nextToken(); // skip LIKE + const pattern = this.parseValue(); + const result = {}; + result[column] = { $not: { $like: pattern } }; + return result; + } + } // LIKE if (this.curTokenIs(TokenType.LIKE)) { this.nextToken(); @@ -2467,6 +2527,10 @@ class Parser { result[column] = { [op]: value }; return result; } + /** 判断当前 NOT 是否为 NOT IN / NOT LIKE 的一部分(不应作为通用 NOT 处理) */ + _isNotInOrLike() { + return this.peekTokenIs(TokenType.IN) || this.peekTokenIs(TokenType.LIKE); + } peekTokenIs(type) { return this.peekToken.type === type; } diff --git a/dist/metona-sqlark.esm.js.map b/dist/metona-sqlark.esm.js.map index edbe514..d04b84a 100644 --- a/dist/metona-sqlark.esm.js.map +++ b/dist/metona-sqlark.esm.js.map @@ -1 +1 @@ -{"version":3,"file":"metona-sqlark.esm.js","sources":["../src/constants.ts","../src/query/where-matcher.ts","../src/engine/memory.ts","../src/engine/indexeddb.ts","../src/engine/opfs.ts","../src/hybrid/index.ts","../src/query/builder.ts","../src/table/table.ts","../src/table/schema.ts","../src/query/compiler.ts","../src/query/executor.ts","../src/sql/tokens.ts","../src/sql/lexer.ts","../src/sql/parser.ts","../src/transaction/index.ts","../src/plugin/index.ts","../src/core.ts","../src/connection-manager.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"metona-sqlark.esm.js","sources":["../src/constants.ts","../src/query/where-matcher.ts","../src/engine/memory.ts","../src/engine/indexeddb.ts","../src/engine/opfs.ts","../src/hybrid/index.ts","../src/query/builder.ts","../src/table/table.ts","../src/table/schema.ts","../src/query/compiler.ts","../src/query/executor.ts","../src/sql/tokens.ts","../src/sql/lexer.ts","../src/sql/parser.ts","../src/transaction/index.ts","../src/plugin/index.ts","../src/core.ts","../src/connection-manager.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/metona-sqlark.js b/dist/metona-sqlark.js index 44493f5..8a1dc4e 100644 --- a/dist/metona-sqlark.js +++ b/dist/metona-sqlark.js @@ -1410,14 +1410,19 @@ stmt.where = await this.resolveSubqueries(stmt.where); } const hasGroupBy = !!(stmt.groupBy && stmt.groupBy.length > 0); + const hasAggregate = !hasGroupBy && this._hasAggregateColumn(stmt.columns); let rows; if (!stmt.joins || stmt.joins.length === 0) { - const plan = compileStatement(hasGroupBy ? { ...stmt, columns: ['*'] } : stmt); + const plan = compileStatement(hasGroupBy || hasAggregate ? { ...stmt, columns: ['*'] } : stmt); rows = await this.engine.find(plan.table, plan); } else { rows = await this.executeJoinSelect(stmt); } + // 无 GROUP BY 但有聚合 → 计算单行聚合结果 + if (hasAggregate) { + rows = [this.computeSingleAggregate(rows, stmt)]; + } if (hasGroupBy) rows = this.executeGroupBy(rows, stmt); if (stmt.distinct) @@ -1590,6 +1595,31 @@ } getEngine() { return this.engine; } // =================================================================== + // 无 GROUP BY 时的聚合计算 + // =================================================================== + /** 检查 SELECT 列列表中是否包含聚合函数 */ + _hasAggregateColumn(columns) { + return columns.some((col) => /^(COUNT|SUM|AVG|MIN|MAX)\(/i.test(col)); + } + /** 计算单行聚合结果(无 GROUP BY) */ + computeSingleAggregate(rows, stmt) { + const result = {}; + for (const colExpr of stmt.columns) { + if (colExpr === '*') + continue; + const m = colExpr.match(/^(COUNT|SUM|AVG|MIN|MAX)\((.+?)\)(?:\s+AS\s+(\w+))?$/i); + if (m) { + const [, func, arg, alias] = m; + result[alias || colExpr] = this.computeAggregate(func.toUpperCase(), rows, arg.trim()); + } + else { + // 非聚合列取第一行的值 + result[colExpr] = rows.length > 0 ? rows[0][colExpr] : null; + } + } + return result; + } + // =================================================================== // 子查询解析 // =================================================================== /** @@ -2396,8 +2426,8 @@ /** simple_cond → column op value | column IS [NOT] NULL | column [NOT] LIKE pattern * | column [NOT] IN (values) | NOT condition | (condition) */ parseSimpleCondition() { - // NOT expr - if (this.curTokenIs(TokenType.NOT)) { + // NOT expr(注意 NOT IN / NOT LIKE 不作为通用 NOT) + if (this.curTokenIs(TokenType.NOT) && !this._isNotInOrLike()) { this.nextToken(); const inner = this.parseSimpleCondition(); return { $not: inner }; @@ -2422,6 +2452,36 @@ result[column] = isNot ? { $ne: null } : { $eq: null }; return result; } + // NOT LIKE / NOT IN(NOT 后紧跟 LIKE 或 IN) + if (this.curTokenIs(TokenType.NOT)) { + if (this.peekTokenIs(TokenType.IN)) { + // NOT IN + this.nextToken(); // skip NOT + this.nextToken(); // skip IN + this.expect(TokenType.LPAREN); + if (this.curTokenIs(TokenType.SELECT)) { + const subquery = this.parseSelect(); + this.expect(TokenType.RPAREN); + const result = {}; + result[column] = { $nin: { $subquery: subquery } }; + return result; + } + const values = this.parseValueList(); + this.expect(TokenType.RPAREN); + const result = {}; + result[column] = { $nin: values }; + return result; + } + else if (this.peekTokenIs(TokenType.LIKE)) { + // NOT LIKE + this.nextToken(); // skip NOT + this.nextToken(); // skip LIKE + const pattern = this.parseValue(); + const result = {}; + result[column] = { $not: { $like: pattern } }; + return result; + } + } // LIKE if (this.curTokenIs(TokenType.LIKE)) { this.nextToken(); @@ -2473,6 +2533,10 @@ result[column] = { [op]: value }; return result; } + /** 判断当前 NOT 是否为 NOT IN / NOT LIKE 的一部分(不应作为通用 NOT 处理) */ + _isNotInOrLike() { + return this.peekTokenIs(TokenType.IN) || this.peekTokenIs(TokenType.LIKE); + } peekTokenIs(type) { return this.peekToken.type === type; } diff --git a/dist/metona-sqlark.js.map b/dist/metona-sqlark.js.map index 26c09e9..ee4cbd7 100644 --- a/dist/metona-sqlark.js.map +++ b/dist/metona-sqlark.js.map @@ -1 +1 @@ -{"version":3,"file":"metona-sqlark.js","sources":["../src/constants.ts","../src/query/where-matcher.ts","../src/engine/memory.ts","../src/engine/indexeddb.ts","../src/engine/opfs.ts","../src/hybrid/index.ts","../src/query/builder.ts","../src/table/table.ts","../src/table/schema.ts","../src/query/compiler.ts","../src/query/executor.ts","../src/sql/tokens.ts","../src/sql/lexer.ts","../src/sql/parser.ts","../src/transaction/index.ts","../src/plugin/index.ts","../src/core.ts","../src/connection-manager.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"metona-sqlark.js","sources":["../src/constants.ts","../src/query/where-matcher.ts","../src/engine/memory.ts","../src/engine/indexeddb.ts","../src/engine/opfs.ts","../src/hybrid/index.ts","../src/query/builder.ts","../src/table/table.ts","../src/table/schema.ts","../src/query/compiler.ts","../src/query/executor.ts","../src/sql/tokens.ts","../src/sql/lexer.ts","../src/sql/parser.ts","../src/transaction/index.ts","../src/plugin/index.ts","../src/core.ts","../src/connection-manager.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/metona-sqlark.min.js b/dist/metona-sqlark.min.js index ce3d2a6..df5a2e6 100644 --- a/dist/metona-sqlark.min.js +++ b/dist/metona-sqlark.min.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).MetonaSqlark={})}(this,function(e){"use strict";const t=["string","number","boolean","date","json"],s=Object.freeze({name:"metona-sqlark",mode:"hybrid",diskEngine:"indexeddb",version:1});class n extends Error{constructor(e,t,s){super(e),this.code=t,this.details=s,this.name="DatabaseError"}}const i="0.1.13",r=new Map;function o(e,t,s={}){for(const[n,i]of Object.entries(t))if("$and"!==n){if("$or"!==n){if(!a(e[n],i,e,s))return!1}else if(!i.some(t=>o(e,t,s)))return!1}else if(!i.every(t=>o(e,t,s)))return!1;return!0}function a(e,t,s,n){if("object"==typeof t&&null!==t&&"$and"in t)return t.$and.every(e=>o(s,e,n));if("object"==typeof t&&null!==t&&"$or"in t)return t.$or.some(e=>o(s,e,n));if("object"==typeof t&&null!==t&&"$not"in t)return!a(e,t.$not,s,n);if("object"!=typeof t||null===t||Array.isArray(t))return e===t;const i=t;if(n.$col&&"$col"in i&&1===Object.keys(i).length)return e===s[i.$col];for(const[t,r]of Object.entries(i)){let i=r;if(n.$col&&"object"==typeof r&&null!==r&&"$col"in r&&(i=s[r.$col]),!h(e,t,i))return!1}return!0}function h(e,t,s){switch(t){case"$eq":return e===s;case"$ne":return e!==s;case"$gt":return e>s;case"$gte":return e>=s;case"$lt":return e{for(const{column:n,direction:i}of t){const t=u(e[n],s[n]);if(0!==t)return"desc"===i?-t:t}return 0})}function u(e,t){return e===t?0:null==e?1:null==t?-1:"string"==typeof e&&"string"==typeof t?e.localeCompare(t):"number"==typeof e&&"number"==typeof t?e-t:String(e).localeCompare(String(t))}function l(e,t){const s={};for(const n of t)if(n in e)s[n]=e[n];else for(const t of Object.keys(e))if(t.endsWith(`.${n}`)||t===n){s[n]=e[t];break}return s}class T{constructor(){this.name="memory",this.tables=new Map,this.schemas=new Map,this.indexes=new Map,this.opened=!1,this.snapshot=null}async open(e,t){this.opened=!0}async close(){this.tables.clear(),this.schemas.clear(),this.indexes.clear(),this.opened=!1}isOpen(){return this.opened}async createTable(e){if(this.schemas.has(e.name))throw new n(`Table "${e.name}" already exists`,"TABLE_EXISTS");this.schemas.set(e.name,e),this.tables.set(e.name,new Map);const t=new Map;for(const[s,n]of Object.entries(e.columns))(n.index||n.unique)&&t.set(s,new Map);this.indexes.set(e.name,t)}async dropTable(e){this.ensureTable(e),this.schemas.delete(e),this.tables.delete(e),this.indexes.delete(e)}async hasTable(e){return this.schemas.has(e)}async getTableNames(){return Array.from(this.schemas.keys())}async getTableSchema(e){return this.schemas.get(e)??null}async insert(e,t){this.ensureTable(e);const s=this.schemas.get(e),i=this.tables.get(e),r=this.getPrimaryKey(s),o=[];for(const a of t){const t=this.validateRow(s,a),h=String(t[r]);if(i.has(h))throw new n(`Duplicate primary key "${h}" in table "${e}"`,"DUPLICATE_KEY");this.checkUniqueness(s,t),i.set(h,t),this.updateIndexes(e,t,h),o.push(h)}return o}async find(e,t){this.ensureTable(e);const s=this.tables.get(e);let n=this.tryIndexLookup(e,s,t);t.where&&Object.keys(t.where).length>0&&(n=n.filter(e=>o(e,t.where))),t.orderBy&&t.orderBy.length>0&&(n=c(n,t.orderBy));const i=t.offset??0,r=t.limit??n.length;return n=n.slice(i,i+r),t.columns&&t.columns.length>0&&"*"!==t.columns[0]&&(n=n.map(e=>l(e,t.columns))),n}async update(e,t,s){this.ensureTable(e);const n=this.schemas.get(e),i=this.tables.get(e);let r=0;for(const[e,a]of i)if(!t.where||0===Object.keys(t.where).length||o(a,t.where)){const t={...a,...s};this.validateRow(n,t),i.set(e,t),r++}return r}async delete(e,t){this.ensureTable(e);const s=this.tables.get(e),n=[];for(const[e,i]of s)t.where&&0!==Object.keys(t.where).length&&!o(i,t.where)||n.push(e);let i=0;for(const t of n){const n=s.get(t);n&&(i+=await this.cascadeDelete(e,t,n))}for(const e of n)s.delete(e);return n.length+i}async count(e,t){this.ensureTable(e);const s=this.tables.get(e);if(!t?.where||0===Object.keys(t.where).length)return s.size;let n=0;for(const e of s.values())o(e,t.where)&&n++;return n}async clear(e){this.ensureTable(e),this.tables.get(e).clear();const t=this.indexes.get(e);if(t)for(const e of t.values())e.clear()}async beginTransaction(){if(this.snapshot)throw new n("Transaction already in progress","TX_ACTIVE");this.snapshot={tables:this.deepCloneMapMap(this.tables),schemas:new Map(this.schemas),indexes:this.deepCloneIndexes(this.indexes)}}async commitTransaction(){if(!this.snapshot)throw new n("No active transaction","TX_NONE");this.snapshot=null}async rollbackTransaction(){if(!this.snapshot)throw new n("No active transaction","TX_NONE");this.tables=this.snapshot.tables,this.schemas=this.snapshot.schemas,this.indexes=this.snapshot.indexes,this.snapshot=null}deepCloneMapMap(e){const t=new Map;for(const[s,n]of e){const e=new Map;for(const[t,s]of n)e.set(t,{...s});t.set(s,e)}return t}deepCloneIndexes(e){const t=new Map;for(const[s,n]of e){const e=new Map;for(const[t,s]of n){const n=new Map;for(const[e,t]of s)n.set(e,new Set(t));e.set(t,n)}t.set(s,e)}return t}ensureTable(e){if(!this.tables.has(e))throw new n(`Table "${e}" does not exist`,"TABLE_NOT_FOUND")}getPrimaryKey(e){for(const[t,s]of Object.entries(e.columns))if(s.primaryKey)return t;return Object.keys(e.columns)[0]}validateRow(e,t){const s={};for(const[i,r]of Object.entries(e.columns)){let o=t[i];if(void 0===o&&void 0!==r.default&&(o=r.default),r.required&&null==o)throw new n(`Column "${i}" is required in table "${e.name}"`,"VALIDATION_ERROR");null!=o&&this.checkType(i,r.type,o),void 0!==o&&(s[i]=o)}return s}checkType(e,t,s){const i=typeof s;switch(t){case"string":if("string"!==i)throw new n(`Column "${e}" expects string, got ${i}`,"TYPE_ERROR");break;case"number":if("number"!==i)throw new n(`Column "${e}" expects number, got ${i}`,"TYPE_ERROR");break;case"boolean":if("boolean"!==i)throw new n(`Column "${e}" expects boolean, got ${i}`,"TYPE_ERROR");break;case"date":if("string"!==i||isNaN(Date.parse(s)))throw new n(`Column "${e}" expects valid date`,"TYPE_ERROR");break;case"json":if("object"!==i)throw new n(`Column "${e}" expects object/array, got ${i}`,"TYPE_ERROR")}}checkUniqueness(e,t){const s=this.indexes.get(e.name);if(s)for(const[i,r]of Object.entries(e.columns)){if(!r.unique||void 0===t[i]||null===t[i])continue;const o=s.get(i);if(o&&o.has(t[i]))throw new n(`Unique constraint violation on column "${i}" in table "${e.name}"`,"UNIQUE_VIOLATION")}}tryIndexLookup(e,t,s){const n=this.indexes.get(e);if(!n||!s.where)return Array.from(t.values());for(const[e,i]of Object.entries(s.where))if("object"!=typeof i||null===i){const s=n.get(e);if(s){const e=s.get(i);if(e){const s=[];for(const n of e){const e=t.get(n);e&&s.push(e)}return s}return[]}}return Array.from(t.values())}updateIndexes(e,t,s){const n=this.indexes.get(e);if(n)for(const[e,i]of n){const n=t[e];null!=n&&(i.has(n)||i.set(n,new Set),i.get(n).add(s))}}async cascadeDelete(e,t,s){let n=0;for(const[s,i]of this.schemas)if(s!==e)for(const[r,o]of Object.entries(i.columns)){if(!o.references||!o.onDelete||"RESTRICT"===o.onDelete)continue;const[i,a]=o.references.split(".");if(i!==e)continue;const h=this.tables.get(s);if(!h)continue;const c=[];for(const[e,s]of h)String(s[r])===t&&c.push(e);if("CASCADE"===o.onDelete)for(const e of c){const t=h.get(e);t&&(n+=await this.cascadeDelete(s,e,t)),h.delete(e),n++}else if("SET NULL"===o.onDelete)for(const e of c){const t=h.get(e);t&&(t[r]=null)}}return n}}class p{constructor(){this.name="indexeddb",this.db=null,this.dbName="",this.version=1,this.memoryCache=new T,this.txActive=!1}async open(e,t){return this.dbName=e,this.version=t,await this.memoryCache.open(e,t),new Promise((s,i)=>{const r=indexedDB.open(e,t);r.onsuccess=()=>{this.db=r.result,s()},r.onerror=()=>i(new n(`Failed to open IndexedDB "${e}"`,"IDB_OPEN_ERROR",r.error)),r.onblocked=()=>i(new n(`IndexedDB "${e}" is blocked`,"IDB_BLOCKED"))})}async close(){this.db&&(this.db.close(),this.db=null),await this.memoryCache.close()}isOpen(){return null!==this.db}async createTable(e){await this.memoryCache.createTable(e),this.txActive||await this.idbCreateTable(e)}async dropTable(e){await this.memoryCache.dropTable(e),this.txActive||await this.idbDropTable(e)}async hasTable(e){return this.ensureDB().objectStoreNames.contains(e)}async getTableNames(){return Array.from(this.ensureDB().objectStoreNames)}async getTableSchema(e){return this.memoryCache.getTableSchema(e)}async insert(e,t){const s=await this.memoryCache.insert(e,t);return this.txActive||await this.idbInsert(e,t),s}async find(e,t){return this.txActive?this.memoryCache.find(e,t):this.idbFind(e,t)}async update(e,t,s){const n=await this.memoryCache.update(e,t,s);return this.txActive||await this.idbUpdate(e,t,s),n}async delete(e,t){const s=await this.memoryCache.delete(e,t);return this.txActive||await this.idbDelete(e,t),s}async count(e,t){return this.txActive?this.memoryCache.count(e,t):(await this.idbFind(e,{table:e,where:t?.where??{}})).length}async clear(e){await this.memoryCache.clear(e),this.txActive||await this.idbClear(e)}async beginTransaction(){if(this.txActive)throw new n("Transaction already in progress","TX_ACTIVE");this.txActive=!0,await this.memoryCache.beginTransaction()}async commitTransaction(){if(!this.txActive)throw new n("No active transaction","TX_NONE");await this.memoryCache.commitTransaction(),await this.flushToIDB(),this.txActive=!1}async rollbackTransaction(){if(!this.txActive)throw new n("No active transaction","TX_NONE");await this.memoryCache.rollbackTransaction(),this.txActive=!1}async idbCreateTable(e){const t=this.ensureDB();return new Promise((s,i)=>{const r=t.version+1;t.close();const o=indexedDB.open(this.dbName,r);o.onupgradeneeded=t=>{const s=t.target.result,n=Object.entries(e.columns).find(([,e])=>e.primaryKey)?.[0]??Object.keys(e.columns)[0],i=s.createObjectStore(e.name,{keyPath:n});for(const[t,s]of Object.entries(e.columns))s.index&&t!==n&&i.createIndex(`idx_${t}`,t,{unique:s.unique??!1})},o.onsuccess=()=>{this.db=o.result,s()},o.onerror=()=>i(new n(`Failed to create table "${e.name}"`,"IDB_UPGRADE_ERROR",o.error))})}async idbDropTable(e){const t=this.ensureDB();return new Promise((s,i)=>{const r=t.version+1;t.close();const o=indexedDB.open(this.dbName,r);o.onupgradeneeded=t=>{const s=t.target.result;s.objectStoreNames.contains(e)&&s.deleteObjectStore(e)},o.onsuccess=()=>{this.db=o.result,s()},o.onerror=()=>i(new n(`Failed to drop table "${e}"`,"IDB_UPGRADE_ERROR",o.error))})}async idbInsert(e,t){const s=this.ensureDB();return new Promise((i,r)=>{const o=s.transaction(e,"readwrite"),a=o.objectStore(e);for(const e of t)a.add(e);o.oncomplete=()=>i(),o.onerror=()=>r(new n(`Insert failed for "${e}"`,"IDB_TX_ERROR",o.error))})}async idbFind(e,t){const s=this.ensureDB();return new Promise((i,r)=>{const a=s.transaction(e,"readonly").objectStore(e).getAll();a.onsuccess=()=>{let e=a.result??[];t.where&&Object.keys(t.where).length>0&&(e=e.filter(e=>o(e,t.where))),t.orderBy&&t.orderBy.length>0&&(e=c(e,t.orderBy));const s=t.offset??0,n=t.limit??e.length;e=e.slice(s,s+n),t.columns&&t.columns.length>0&&"*"!==t.columns[0]&&(e=e.map(e=>l(e,t.columns))),i(e)},a.onerror=()=>r(new n(`Find failed for "${e}"`,"IDB_READ_ERROR",a.error))})}async idbUpdate(e,t,s){const i=this.ensureDB();return new Promise((r,a)=>{const h=i.transaction(e,"readwrite"),c=h.objectStore(e),u=c.getAll();u.onsuccess=()=>{for(const e of u.result??[])t.where&&0!==Object.keys(t.where).length&&!o(e,t.where)||(Object.assign(e,s),c.put(e))},h.oncomplete=()=>r(),h.onerror=()=>a(new n(`Update failed for "${e}"`,"IDB_TX_ERROR",h.error))})}async idbDelete(e,t){const s=this.ensureDB(),i=await this.memoryCache.getTableSchema(e);if(!i)throw new n(`Table "${e}" not found`,"TABLE_NOT_FOUND");const r=Object.entries(i.columns).find(([,e])=>e.primaryKey)?.[0]??Object.keys(i.columns)[0];return new Promise((i,a)=>{const h=s.transaction(e,"readwrite"),c=h.objectStore(e),u=c.getAll();u.onsuccess=()=>{for(const e of u.result??[])t.where&&0!==Object.keys(t.where).length&&!o(e,t.where)||c.delete(e[r])},h.oncomplete=()=>i(),h.onerror=()=>a(new n(`Delete failed for "${e}"`,"IDB_TX_ERROR",h.error))})}async idbClear(e){const t=this.ensureDB();return new Promise((s,i)=>{const r=t.transaction(e,"readwrite");r.objectStore(e).clear(),r.oncomplete=()=>s(),r.onerror=()=>i(new n(`Clear failed for "${e}"`,"IDB_TX_ERROR",r.error))})}async flushToIDB(){const e=await this.memoryCache.getTableNames();for(const t of e){const e=await this.memoryCache.find(t,{table:t});await this.idbClear(t),e.length>0&&await this.idbInsert(t,e)}}ensureDB(){if(!this.db)throw new n("Database not opened","DB_NOT_OPEN");return this.db}}class d{constructor(){this.name="opfs",this.root=null,this.tablesDir=null,this.dbName="",this.memoryCache=new T}async open(e,t){this.dbName=e,await this.memoryCache.open(e,t),this.root=await navigator.storage.getDirectory(),this.tablesDir=await this.root.getDirectoryHandle(e,{create:!0})}async close(){this.root=null,this.tablesDir=null,await this.memoryCache.close()}isOpen(){return null!==this.tablesDir}async createTable(e){await this.memoryCache.createTable(e),await this.writeTableData(e.name,[])}async dropTable(e){if(await this.memoryCache.dropTable(e),this.tablesDir)try{await this.tablesDir.removeEntry(`${e}.json`)}catch{}}async hasTable(e){if(!this.tablesDir)return!1;try{return await this.tablesDir.getFileHandle(`${e}.json`),!0}catch{return!1}}async getTableNames(){if(!this.tablesDir)return[];const e=[];for await(const[t]of this.tablesDir.entries())t.endsWith(".json")&&e.push(t.replace(".json",""));return e}async getTableSchema(e){return this.memoryCache.getTableSchema(e)}async insert(e,t){const s=await this.memoryCache.insert(e,t),n=await this.memoryCache.find(e,{table:e});return await this.writeTableData(e,n),s}async find(e,t){return this.memoryCache.find(e,t)}async update(e,t,s){const n=await this.memoryCache.update(e,t,s),i=await this.memoryCache.find(e,{table:e});return await this.writeTableData(e,i),n}async delete(e,t){const s=await this.memoryCache.delete(e,t),n=await this.memoryCache.find(e,{table:e});return await this.writeTableData(e,n),s}async count(e,t){return this.memoryCache.count(e,t)}async clear(e){await this.memoryCache.clear(e),await this.writeTableData(e,[])}async beginTransaction(){await this.memoryCache.beginTransaction()}async commitTransaction(){await this.memoryCache.commitTransaction();const e=await this.memoryCache.getTableNames();for(const t of e){const e=await this.memoryCache.find(t,{table:t});await this.writeTableData(t,e)}}async rollbackTransaction(){await this.memoryCache.rollbackTransaction()}ensureDir(){if(!this.tablesDir)throw new n("Database not opened","DB_NOT_OPEN");return this.tablesDir}async writeTableData(e,t){const s=this.ensureDir(),n=`${e}.json`,i=await s.getFileHandle(n,{create:!0}),r=await i.createWritable();await r.write(JSON.stringify(t)),await r.close()}async readTableData(e){const t=this.ensureDir(),s=`${e}.json`;try{const e=await t.getFileHandle(s),n=await e.getFile(),i=await n.text();return JSON.parse(i)}catch{return[]}}async loadTableIntoMemory(e,t){await this.memoryCache.createTable(t);const s=await this.readTableData(e);if(s.length>0)for(const t of s)await this.memoryCache.insert(e,[t])}}class m{constructor(e="indexeddb"){this.name="hybrid",this.memoryEngine=new T,this.diskEngineType=e,this.diskEngine="opfs"===e?new d:new p}async open(e,t){await this.diskEngine.open(e,t),await this.memoryEngine.open(e,t);const s=await this.diskEngine.getTableNames();for(const e of s){const t=await this.diskEngine.getTableSchema(e);if(!t)continue;await this.memoryEngine.createTable(t);const s=await this.diskEngine.find(e,{table:e});if(s.length>0)try{await this.memoryEngine.insert(e,s)}catch(e){}}}async close(){await this.memoryEngine.close(),await this.diskEngine.close()}isOpen(){return this.memoryEngine.isOpen()&&this.diskEngine.isOpen()}async createTable(e){await this.memoryEngine.createTable(e),await this.diskEngine.createTable(e)}async dropTable(e){await this.memoryEngine.dropTable(e),await this.diskEngine.dropTable(e)}async hasTable(e){return this.memoryEngine.hasTable(e)}async getTableNames(){return this.memoryEngine.getTableNames()}async getTableSchema(e){return this.memoryEngine.getTableSchema(e)}async insert(e,t){const s=await this.memoryEngine.insert(e,t);return await this.diskEngine.insert(e,t),s}async find(e,t){return this.memoryEngine.find(e,t)}async update(e,t,s){const n=await this.memoryEngine.update(e,t,s);return await this.diskEngine.update(e,t,s),n}async delete(e,t){const s=await this.memoryEngine.delete(e,t);return await this.diskEngine.delete(e,t),s}async count(e,t){return this.memoryEngine.count(e,t)}async clear(e){await this.memoryEngine.clear(e),await this.diskEngine.clear(e)}async beginTransaction(){await this.memoryEngine.beginTransaction(),await this.diskEngine.beginTransaction()}async commitTransaction(){await this.memoryEngine.commitTransaction(),await this.diskEngine.commitTransaction()}async rollbackTransaction(){await this.memoryEngine.rollbackTransaction(),await this.diskEngine.rollbackTransaction()}getDiskEngineType(){return this.diskEngineType}getMemoryEngine(){return this.memoryEngine}}class f{constructor(e,t,s=["*"],n){this.engine=e,this.tableName=t,this._columns=s,this._where={},this._orderBy=[],this._joins=[],this._executor=n}as(e){return this._alias=e,this}innerJoin(e,t,s){return this._addJoin("INNER",e,t,s)}leftJoin(e,t,s){return this._addJoin("LEFT",e,t,s)}rightJoin(e,t,s){return this._addJoin("RIGHT",e,t,s)}crossJoin(e,t){return this._addJoin("CROSS",e,{},t)}join(e,t,s){return this._addJoin("INNER",e,t,s)}_addJoin(e,t,s,n){return this._joins.push({type:e,table:t,on:s,alias:n}),this}where(e){return this._where={...this._where,...e},this}orderBy(e,t="asc"){return this._orderBy.push({column:e,direction:t}),this}limit(e){return this._limit=e,this}offset(e){return this._offset=e,this}async execute(){if(this._joins.length>0&&this._executor){const e=this.toAST();return this._executor.execute(e)}return this.engine.find(this.tableName,{table:this.tableName,columns:this._columns,where:this._where,orderBy:this._orderBy.length>0?this._orderBy:void 0,limit:this._limit,offset:this._offset})}toAST(){return{type:"SELECT",columns:this._columns,from:this.tableName,alias:this._alias,joins:this._joins.length>0?[...this._joins]:void 0,where:this._where,orderBy:this._orderBy.length>0?this._orderBy:void 0,limit:this._limit,offset:this._offset}}}class E{constructor(e,t,s){this.engine=e,this.tableName=t,this._updates=s,this._where={}}where(e){return this._where={...this._where,...e},this}async execute(){return this.engine.update(this.tableName,{table:this.tableName,where:this._where},this._updates)}toAST(){return{type:"UPDATE",table:this.tableName,sets:this._updates,where:this._where}}}class y{constructor(e,t){this.engine=e,this.tableName=t,this._where={}}where(e){return this._where={...this._where,...e},this}async execute(){return this.engine.delete(this.tableName,{table:this.tableName,where:this._where})}toAST(){return{type:"DELETE",from:this.tableName,where:this._where}}}class g{constructor(e,t,s){this.schema=null,this.engine=e,this.name=t,this.executor=s}async getSchema(){if(!this.schema){const e=await this.engine.getTableSchema(this.name);if(!e)throw new n(`Table "${this.name}" does not exist`,"TABLE_NOT_FOUND");this.schema=e}return this.schema}async insert(e){return(await this.engine.insert(this.name,[e]))[0]}async insertMany(e){return this.engine.insert(this.name,e)}select(e=["*"]){return new f(this.engine,this.name,e,this.executor)}update(e){return new E(this.engine,this.name,e)}delete(){return new y(this.engine,this.name)}async count(e){return this.engine.count(this.name,e?{table:this.name,where:e}:void 0)}async clear(){return this.engine.clear(this.name)}async drop(){return this.engine.dropTable(this.name)}}function w(e,s){return function(e){if(0===Object.keys(e).length)throw new n("Table must have at least one column","SCHEMA_ERROR");let s=0;for(const[i,r]of Object.entries(e)){if(!t.includes(r.type))throw new n(`Invalid type "${r.type}" for column "${i}". Valid types: ${t.join(", ")}`,"SCHEMA_ERROR");r.primaryKey&&s++}if(0===s)throw new n("Table must have at least one primary key column","SCHEMA_ERROR")}(s),{name:e,columns:s}}function b(e){return{type:e.type,primaryKey:e.primaryKey,unique:e.unique,required:e.required,default:e.default,index:e.index,maxLength:e.maxLength,min:e.min,max:e.max,references:e.references,onDelete:e.onDelete,onUpdate:e.onUpdate}}function k(e){switch(e.type){case"SELECT":return function(e){return{table:e.from,columns:e.columns,where:e.where,orderBy:e.orderBy?.length?e.orderBy:void 0,limit:e.limit,offset:e.offset}}(e);case"DELETE":return function(e){return{table:e.from,where:e.where}}(e);case"UPDATE":return function(e){return{table:e.table,where:e.where}}(e);default:throw new n(`Cannot compile statement type "${e.type}" to QueryPlan`,"COMPILE_ERROR")}}class I{constructor(e){this.engine=e}async execute(e){switch(e.type){case"SELECT":return this.executeSelect(e);case"INSERT":return this.executeInsert(e);case"UPDATE":return this.executeUpdate(e);case"DELETE":return this.executeDelete(e);case"CREATE_TABLE":return this.executeCreateTable(e);case"DROP_TABLE":return this.executeDropTable(e);default:throw new n("Unknown statement type","UNKNOWN_STATEMENT")}}async executeSelect(e){e.where&&Object.keys(e.where).length>0&&(e.where=await this.resolveSubqueries(e.where));const t=!!(e.groupBy&&e.groupBy.length>0);let s;if(e.joins&&0!==e.joins.length)s=await this.executeJoinSelect(e);else{const n=k(t?{...e,columns:["*"]}:e);s=await this.engine.find(n.table,n)}t&&(s=this.executeGroupBy(s,e)),e.distinct&&(s=this.executeDistinct(s)),e.having&&Object.keys(e.having).length>0&&(s=s.filter(t=>o(t,e.having))),e.orderBy&&e.orderBy.length>0&&(s=c(s,e.orderBy));const n=e.offset??0,i=e.limit??s.length;return s=s.slice(n,n+i),!t&&e.columns.length>0&&"*"!==e.columns[0]&&(s=s.map(t=>l(t,e.columns))),s}async executeJoinSelect(e){const t=e.alias??e.from;let s=(await this.engine.find(e.from,{table:e.from})).map(e=>this.prefixRow(e,t));for(const t of e.joins){const e=t.alias??t.table,n=(await this.engine.find(t.table,{table:t.table})).map(t=>this.prefixRow(t,e));s=this.joinRows(s,n,t)}return e.where&&Object.keys(e.where).length>0&&(s=s.filter(t=>o(t,e.where))),s}prefixRow(e,t){const s={};for(const[n,i]of Object.entries(e))s[`${t}.${n}`]=i;return s}joinRows(e,t,s){if("CROSS"===s.type){const s=[];for(const n of e)for(const e of t)s.push({...n,...e});return s}const n=[];for(const i of e){let e=!1;for(const r of t){const t={...i,...r};o(t,s.on,{$col:!0})&&(n.push(t),e=!0)}if(!e&&"LEFT"===s.type){const e={};for(const s of Object.keys(t[0]??{}))e[s]=null;n.push({...i,...e})}}if("RIGHT"===s.type)for(const i of t)if(!e.some(e=>o({...e,...i},s.on,{$col:!0}))){const t={};for(const s of Object.keys(e[0]??{}))t[s]=null;n.push({...t,...i})}return n}executeGroupBy(e,t){const s=new Map;for(const n of e){const e=t.groupBy.map(e=>String(n[e]??"null")).join("|");s.has(e)||s.set(e,[]),s.get(e).push(n)}const n=[];for(const e of s.values()){const s={};for(const n of t.groupBy)s[n]=e[0][n];for(const n of t.columns){if("*"===n)continue;const i=n.match(/^(COUNT|SUM|AVG|MIN|MAX)\((.+?)\)(?:\s+AS\s+(\w+))?$/i);if(i){const[,t,r,o]=i;s[o||n]=this.computeAggregate(t.toUpperCase(),e,r.trim())}else t.groupBy.includes(n)||(s[n]=e[0][n])}n.push(s)}return n}computeAggregate(e,t,s){const n=t.map(e=>e[s]).filter(e=>null!=e).map(Number);switch(e){case"COUNT":return"*"===s?t.length:n.length;case"SUM":return n.reduce((e,t)=>e+t,0);case"AVG":return 0===n.length?0:n.reduce((e,t)=>e+t,0)/n.length;case"MIN":return 0===n.length?0:Math.min(...n);case"MAX":return 0===n.length?0:Math.max(...n);default:return 0}}executeDistinct(e){const t=new Set;return e.filter(e=>{const s=Object.values(e).map(e=>String(e??"\0")).join("");return!t.has(s)&&(t.add(s),!0)})}async executeInsert(e){const t=await this.engine.getTableSchema(e.into);if(!t)throw new n(`Table "${e.into}" does not exist`,"TABLE_NOT_FOUND");const s=e.columns??Object.keys(t.columns),i=e.values.map(e=>{const t={};for(let n=0;nthis.resolveSubqueries(e))):"$or"===s&&Array.isArray(n)?t.$or=await Promise.all(n.map(e=>this.resolveSubqueries(e))):"$not"!==s||"object"!=typeof n||null===n?t[s]="object"==typeof n&&null!==n?await this.resolveOperatorSubqueries(n):n:t.$not=await this.resolveSubqueries(n);return t}async resolveOperatorSubqueries(e){const t={};for(const[s,n]of Object.entries(e))if("$and"===s&&Array.isArray(n))t.$and=await Promise.all(n.map(e=>this.resolveSubqueries(e)));else if("$or"===s&&Array.isArray(n))t.$or=await Promise.all(n.map(e=>this.resolveSubqueries(e)));else if("$not"!==s)if("object"==typeof n&&null!==n&&"$subquery"in n){const e=n.$subquery,i=await this.executeSelect(e);if("$in"===s||"$nin"===s){const e=Object.keys(i[0]||{})[0],n=i.map(t=>t[e]);t[s]=n}else if(0===i.length)t[s]=null;else{const e=Object.keys(i[0])[0];t[s]=i[0][e]}}else t[s]=n;else t.$not="object"==typeof n&&null!==n?await this.resolveOperatorSubqueries(n):n;return t}}var R;!function(e){e.SELECT="SELECT",e.FROM="FROM",e.WHERE="WHERE",e.INSERT="INSERT",e.INTO="INTO",e.VALUES="VALUES",e.UPDATE="UPDATE",e.SET="SET",e.DELETE="DELETE",e.CREATE="CREATE",e.TABLE="TABLE",e.DROP="DROP",e.ORDER="ORDER",e.BY="BY",e.ASC="ASC",e.DESC="DESC",e.LIMIT="LIMIT",e.OFFSET="OFFSET",e.AND="AND",e.OR="OR",e.NOT="NOT",e.LIKE="LIKE",e.IN="IN",e.PRIMARY="PRIMARY",e.KEY="KEY",e.UNIQUE="UNIQUE",e.DEFAULT="DEFAULT",e.NULL="NULL",e.TRUE="TRUE",e.REFERENCES="REFERENCES",e.CASCADE="CASCADE",e.FALSE="FALSE",e.INNER="INNER",e.LEFT="LEFT",e.RIGHT="RIGHT",e.CROSS="CROSS",e.JOIN="JOIN",e.ON="ON",e.AS="AS",e.OUTER="OUTER",e.GROUP="GROUP",e.HAVING="HAVING",e.COUNT="COUNT",e.SUM="SUM",e.AVG="AVG",e.MIN="MIN",e.MAX="MAX",e.DISTINCT="DISTINCT",e.IDENTIFIER="IDENTIFIER",e.STRING="STRING",e.NUMBER="NUMBER",e.COMMA="COMMA",e.LPAREN="LPAREN",e.RPAREN="RPAREN",e.SEMICOLON="SEMICOLON",e.EQ="EQ",e.NEQ="NEQ",e.GT="GT",e.GTE="GTE",e.LT="LT",e.LTE="LTE",e.STAR="STAR",e.DOT="DOT",e.EOF="EOF",e.ILLEGAL="ILLEGAL"}(R||(R={}));const x={SELECT:R.SELECT,FROM:R.FROM,WHERE:R.WHERE,INSERT:R.INSERT,INTO:R.INTO,VALUES:R.VALUES,UPDATE:R.UPDATE,SET:R.SET,DELETE:R.DELETE,CREATE:R.CREATE,TABLE:R.TABLE,DROP:R.DROP,ORDER:R.ORDER,BY:R.BY,ASC:R.ASC,DESC:R.DESC,LIMIT:R.LIMIT,OFFSET:R.OFFSET,AND:R.AND,OR:R.OR,NOT:R.NOT,LIKE:R.LIKE,IN:R.IN,PRIMARY:R.PRIMARY,KEY:R.KEY,UNIQUE:R.UNIQUE,DEFAULT:R.DEFAULT,NULL:R.NULL,TRUE:R.TRUE,FALSE:R.FALSE,REFERENCES:R.REFERENCES,CASCADE:R.CASCADE,INNER:R.INNER,LEFT:R.LEFT,RIGHT:R.RIGHT,CROSS:R.CROSS,JOIN:R.JOIN,ON:R.ON,AS:R.AS,OUTER:R.OUTER,GROUP:R.GROUP,HAVING:R.HAVING,COUNT:R.COUNT,SUM:R.SUM,AVG:R.AVG,MIN:R.MIN,MAX:R.MAX,DISTINCT:R.DISTINCT};class C{constructor(e){this.position=0,this.readPosition=0,this.ch="",this.input=e,this.readChar()}nextToken(){let e;switch(this.skipWhitespace(),this.ch){case",":e=this.makeToken(R.COMMA,",");break;case"(":e=this.makeToken(R.LPAREN,"(");break;case")":e=this.makeToken(R.RPAREN,")");break;case";":e=this.makeToken(R.SEMICOLON,";");break;case"*":e=this.makeToken(R.STAR,"*");break;case".":e=this.makeToken(R.DOT,".");break;case"=":e=this.makeToken(R.EQ,"=");break;case"!":"="===this.peekChar()?(this.readChar(),e=this.makeToken(R.NEQ,"!=")):e=this.makeToken(R.ILLEGAL,"!");break;case">":"="===this.peekChar()?(this.readChar(),e=this.makeToken(R.GTE,">=")):e=this.makeToken(R.GT,">");break;case"<":"="===this.peekChar()?(this.readChar(),e=this.makeToken(R.LTE,"<=")):">"===this.peekChar()?(this.readChar(),e=this.makeToken(R.NEQ,"<>")):e=this.makeToken(R.LT,"<");break;case"'":case'"':e=this.readString(this.ch);break;case"":e={type:R.EOF,value:"",position:this.position};break;default:if(this.isLetter(this.ch)){const t=this.readIdentifier();return e={type:x[t.toUpperCase()]??R.IDENTIFIER,value:t,position:this.position-t.length},e}if(this.isDigit(this.ch)||"-"===this.ch&&this.isDigit(this.peekChar())){const t=this.readNumber();return e={type:R.NUMBER,value:t,position:this.position-t.length},e}e=this.makeToken(R.ILLEGAL,this.ch)}return this.readChar(),e}readChar(){this.readPosition>=this.input.length?this.ch="":this.ch=this.input[this.readPosition],this.position=this.readPosition,this.readPosition++}peekChar(){return this.readPosition>=this.input.length?"":this.input[this.readPosition]}skipWhitespace(){for(;" "===this.ch||"\t"===this.ch||"\n"===this.ch||"\r"===this.ch;)this.readChar()}readIdentifier(){const e=this.position;for(;this.isLetter(this.ch)||this.isDigit(this.ch)||"_"===this.ch;)this.readChar();return this.input.slice(e,this.position)}readNumber(){const e=this.position;for("-"===this.ch&&this.readChar();this.isDigit(this.ch);)this.readChar();if("."===this.ch&&this.isDigit(this.peekChar()))for(this.readChar();this.isDigit(this.ch);)this.readChar();return this.input.slice(e,this.position)}readString(e){const t=this.position+1;this.readChar();let s="";for(;this.ch!==e&&""!==this.ch;)"\\"===this.ch&&this.peekChar()===e?(this.readChar(),s+=e):s+=this.ch,this.readChar();return{type:R.STRING,value:s,position:t}}isLetter(e){return/[a-zA-Z_]/.test(e)}isDigit(e){return/[0-9]/.test(e)}makeToken(e,t){return{type:e,value:t,position:this.position}}}class N{constructor(e){this.lexer=new C(e),this.nextToken(),this.nextToken()}parseStatement(){switch(this.curToken.type){case R.SELECT:return this.parseSelect();case R.INSERT:return this.parseInsert();case R.UPDATE:return this.parseUpdate();case R.DELETE:return this.parseDelete();case R.CREATE:return this.parseCreateTable();case R.DROP:return this.parseDropTable();default:throw this.error(`Unexpected token "${this.curToken.value}"`)}}parseSelect(){this.expect(R.SELECT);let e=!1;this.curTokenIs(R.DISTINCT)&&(e=!0,this.nextToken());const t=[];this.curTokenIs(R.STAR)?(t.push("*"),this.nextToken()):t.push(...this.parseColumnList()),this.expect(R.FROM);const s=this.expectIdentifier("table name");let n;this.curTokenIs(R.AS)?(this.nextToken(),n=this.expectIdentifier("alias")):this.curToken.type!==R.IDENTIFIER||this._isReservedAfterFrom()||(n=this.curToken.value,this.nextToken());const i={type:"SELECT",columns:t,distinct:e||void 0,from:s,alias:n,where:{}},r=this.parseJoinClauses();return r.length>0&&(i.joins=r),this.curTokenIs(R.WHERE)&&(this.nextToken(),i.where=this.parseCondition()),this.curTokenIs(R.GROUP)&&(this.nextToken(),this.expect(R.BY),i.groupBy=this.parseIdentifierList()),this.curTokenIs(R.HAVING)&&(this.nextToken(),i.having=this.parseCondition()),this.curTokenIs(R.ORDER)&&(this.nextToken(),this.expect(R.BY),i.orderBy=this.parseOrderByList()),this.curTokenIs(R.LIMIT)&&(this.nextToken(),i.limit=this.expectNumber("LIMIT value")),this.curTokenIs(R.OFFSET)&&(this.nextToken(),i.offset=this.expectNumber("OFFSET value")),i}parseJoinClauses(){const e=[];for(;this._isJoinKeyword();)e.push(this.parseJoinClause());return e}_isJoinKeyword(){return this.curTokenIs(R.INNER)||this.curTokenIs(R.LEFT)||this.curTokenIs(R.RIGHT)||this.curTokenIs(R.CROSS)||this.curTokenIs(R.JOIN)}parseJoinClause(){let e="INNER";this.curTokenIs(R.INNER)?(e="INNER",this.nextToken()):this.curTokenIs(R.LEFT)?(e="LEFT",this.nextToken(),this.curTokenIs(R.OUTER)&&this.nextToken()):this.curTokenIs(R.RIGHT)?(e="RIGHT",this.nextToken(),this.curTokenIs(R.OUTER)&&this.nextToken()):this.curTokenIs(R.CROSS)&&(e="CROSS",this.nextToken()),this.expect(R.JOIN);const t=this.expectIdentifier("table name");let s;this.curTokenIs(R.AS)?(this.nextToken(),s=this.expectIdentifier("alias")):this.curToken.type!==R.IDENTIFIER||this._isJoinReserved()||(s=this.curToken.value,this.nextToken());let n={};return"CROSS"!==e&&this.curTokenIs(R.ON)&&(this.nextToken(),n=this.parseCondition()),{type:e,table:t,alias:s,on:n}}_isReservedAfterFrom(){return this.curTokenIs(R.WHERE)||this.curTokenIs(R.ORDER)||this.curTokenIs(R.LIMIT)||this.curTokenIs(R.OFFSET)||this.curTokenIs(R.GROUP)||this._isJoinKeyword()}_isJoinReserved(){return this.curTokenIs(R.ON)||this.curTokenIs(R.WHERE)||this.curTokenIs(R.ORDER)||this.curTokenIs(R.LIMIT)||this._isJoinKeyword()}parseInsert(){this.expect(R.INSERT),this.expect(R.INTO);const e=this.expectIdentifier("table name");let t;this.curTokenIs(R.LPAREN)&&(this.nextToken(),t=this.parseIdentifierList(),this.expect(R.RPAREN)),this.expect(R.VALUES);const s=[];do{this.curTokenIs(R.COMMA)&&this.nextToken(),this.expect(R.LPAREN);const e=this.parseValueList();this.expect(R.RPAREN),s.push(e)}while(this.curTokenIs(R.COMMA));return{type:"INSERT",into:e,columns:t,values:s}}parseUpdate(){this.expect(R.UPDATE);const e=this.expectIdentifier("table name");this.expect(R.SET);const t={};do{this.curTokenIs(R.COMMA)&&this.nextToken();const e=this.expectIdentifier("column name");this.expect(R.EQ),t[e]=this.parseValue()}while(this.curTokenIs(R.COMMA));let s={};return this.curTokenIs(R.WHERE)&&(this.nextToken(),s=this.parseCondition()),{type:"UPDATE",table:e,sets:t,where:s}}parseDelete(){this.expect(R.DELETE),this.expect(R.FROM);const e=this.expectIdentifier("table name");let t={};return this.curTokenIs(R.WHERE)&&(this.nextToken(),t=this.parseCondition()),{type:"DELETE",from:e,where:t}}parseCreateTable(){this.expect(R.CREATE),this.expect(R.TABLE);const e=this.expectIdentifier("table name");this.expect(R.LPAREN);const t=[];do{this.curTokenIs(R.COMMA)&&this.nextToken(),t.push(this.parseColumnDef())}while(this.curTokenIs(R.COMMA));return this.expect(R.RPAREN),{type:"CREATE_TABLE",name:e,columns:t}}parseColumnDef(){const e={name:this.expectIdentifier("column name"),type:this.expectIdentifier("column type").toLowerCase()};for(;this.curTokenIs(R.PRIMARY)||this.curTokenIs(R.UNIQUE)||this.curTokenIs(R.NOT)||this.curTokenIs(R.DEFAULT)||this.curTokenIs(R.REFERENCES);)if(this.curTokenIs(R.PRIMARY))this.nextToken(),this.expect(R.KEY),e.primaryKey=!0;else if(this.curTokenIs(R.UNIQUE))this.nextToken(),e.unique=!0;else if(this.curTokenIs(R.NOT))this.nextToken(),this.expect(R.NULL),e.required=!0;else if(this.curTokenIs(R.DEFAULT))this.nextToken(),e.default=this.parseValue();else{if(!this.curTokenIs(R.REFERENCES))break;{this.nextToken();const t=this.expectIdentifier("referenced table");this.expect(R.LPAREN);const s=this.expectIdentifier("referenced column");for(this.expect(R.RPAREN),e.references=`${t}.${s}`;this.curTokenIs(R.ON);)if(this.nextToken(),this.curTokenIs(R.DELETE))this.nextToken(),e.onDelete=this.parseCascadeAction();else{if(!this.curTokenIs(R.UPDATE))break;this.nextToken(),e.onUpdate=this.parseCascadeAction()}}}return e}parseCascadeAction(){return this.curTokenIs(R.CASCADE)?(this.nextToken(),"CASCADE"):this.curTokenIs(R.SET)?(this.nextToken(),this.expect(R.NULL),"SET NULL"):this.curToken.type===R.IDENTIFIER&&"RESTRICT"===this.curToken.value.toUpperCase()?(this.nextToken(),"RESTRICT"):"RESTRICT"}parseDropTable(){return this.expect(R.DROP),this.expect(R.TABLE),{type:"DROP_TABLE",name:this.expectIdentifier("table name")}}parseCondition(){let e=this.parseSimpleCondition();for(;this.curTokenIs(R.AND)||this.curTokenIs(R.OR);){const t=this.curTokenIs(R.AND);this.nextToken();const s=this.parseSimpleCondition();e=t?{$and:[e,s]}:{$or:[e,s]}}return e}parseSimpleCondition(){if(this.curTokenIs(R.NOT))return this.nextToken(),{$not:this.parseSimpleCondition()};if(this.curTokenIs(R.LPAREN)){this.nextToken();const e=this.parseCondition();return this.expect(R.RPAREN),e}const e=this.parseColumnRef();if(this.curTokenIs(R.IDENTIFIER)&&"IS"===this.curToken.value.toUpperCase()){this.nextToken();const t=this.curTokenIs(R.NOT);t&&this.nextToken(),this.expect(R.NULL);const s={};return s[e]=t?{$ne:null}:{$eq:null},s}if(this.curTokenIs(R.LIKE)){this.nextToken();const t=this.parseValue(),s={};return s[e]={$like:t},s}if(this.curTokenIs(R.IN)){if(this.nextToken(),this.expect(R.LPAREN),this.curTokenIs(R.SELECT)){const t=this.parseSelect();this.expect(R.RPAREN);const s={};return s[e]={$in:{$subquery:t}},s}const t=this.parseValueList();this.expect(R.RPAREN);const s={};return s[e]={$in:t},s}const t=this.parseComparisonOp();if(this.curTokenIs(R.LPAREN)&&this.peekTokenIs(R.SELECT)){this.nextToken();const s=this.parseSelect();this.expect(R.RPAREN);const n={};return n[e]={[t]:{$subquery:s}},n}let s;s=(this.curToken.type===R.IDENTIFIER||this._isKeywordAsIdent())&&this.peekTokenIs(R.DOT)?{$col:this.parseColumnRef()}:this.parseValue();const n={};return n[e]={[t]:s},n}peekTokenIs(e){return this.peekToken.type===e}parseComparisonOp(){switch(this.curToken.type){case R.EQ:return this.nextToken(),"$eq";case R.NEQ:return this.nextToken(),"$ne";case R.GT:return this.nextToken(),"$gt";case R.GTE:return this.nextToken(),"$gte";case R.LT:return this.nextToken(),"$lt";case R.LTE:return this.nextToken(),"$lte";default:throw this.error(`Expected comparison operator, got "${this.curToken.value}"`)}}parseColumnList(){const e=[];for(e.push(this.parseColumnRef());this.curTokenIs(R.COMMA);)this.nextToken(),e.push(this.parseColumnRef());return e}parseColumnRef(){if(this.curTokenIs(R.COUNT)||this.curTokenIs(R.SUM)||this.curTokenIs(R.AVG)||this.curTokenIs(R.MIN)||this.curTokenIs(R.MAX))return this.parseAggregateCall();const e=this.expectIdentifier("column name");return this.curTokenIs(R.DOT)?(this.nextToken(),`${e}.${this.expectIdentifier("column name")}`):e}parseAggregateCall(){const e=this.curToken.value.toUpperCase();let t;this.nextToken(),this.expect(R.LPAREN),this.curTokenIs(R.STAR)?(t="*",this.nextToken()):t=this.parseColumnRef(),this.expect(R.RPAREN);let s="";return this.curTokenIs(R.AS)?(this.nextToken(),s=this.expectIdentifier("alias")):this.curToken.type===R.IDENTIFIER&&this._isAggregateAlias()&&(s=this.curToken.value,this.nextToken()),s?`${e}(${t}) AS ${s}`:`${e}(${t})`}_isAggregateAlias(){return!this._isReservedAfterFrom()&&!this._isJoinKeyword()}parseIdentifierList(){const e=[];for(e.push(this.expectIdentifier("identifier"));this.curTokenIs(R.COMMA);)this.nextToken(),e.push(this.expectIdentifier("identifier"));return e}parseValueList(){const e=[];for(e.push(this.parseValue());this.curTokenIs(R.COMMA);)this.nextToken(),e.push(this.parseValue());return e}parseOrderByList(){const e=[];for(e.push(this.parseOrderBy());this.curTokenIs(R.COMMA);)this.nextToken(),e.push(this.parseOrderBy());return e}parseOrderBy(){const e=this.expectIdentifier("column name");let t="asc";return this.curTokenIs(R.ASC)?this.nextToken():this.curTokenIs(R.DESC)&&(t="desc",this.nextToken()),{column:e,direction:t}}parseValue(){switch(this.curToken.type){case R.STRING:{const e=this.curToken.value;return this.nextToken(),e}case R.NUMBER:{const e=Number(this.curToken.value);return this.nextToken(),e}case R.TRUE:return this.nextToken(),!0;case R.FALSE:return this.nextToken(),!1;case R.NULL:return this.nextToken(),null;default:throw this.error(`Expected value, got "${this.curToken.value}"`)}}nextToken(){this.curToken=this.peekToken,this.peekToken=this.lexer.nextToken()}curTokenIs(e){return this.curToken.type===e}expect(e){if(!this.curTokenIs(e))throw this.error(`Expected ${e}, got "${this.curToken.value}"`);this.nextToken()}expectIdentifier(e){if(this.curToken.type===R.IDENTIFIER||this._isKeywordAsIdent()){const e=this.curToken.value;return this.nextToken(),e}throw this.error(`Expected ${e}, got "${this.curToken.value}"`)}_isKeywordAsIdent(){return this.curToken.type!==R.EOF&&this.curToken.type!==R.ILLEGAL&&this.curToken.type!==R.STRING&&this.curToken.type!==R.NUMBER&&this.curToken.type!==R.COMMA&&this.curToken.type!==R.LPAREN&&this.curToken.type!==R.RPAREN&&this.curToken.type!==R.SEMICOLON&&this.curToken.type!==R.EQ&&this.curToken.type!==R.NEQ&&this.curToken.type!==R.GT&&this.curToken.type!==R.GTE&&this.curToken.type!==R.LT&&this.curToken.type!==R.LTE&&this.curToken.type!==R.DOT&&this.curToken.type!==R.STAR}expectNumber(e){if(this.curToken.type===R.NUMBER){const e=Number(this.curToken.value);return this.nextToken(),e}throw this.error(`Expected ${e}, got "${this.curToken.value}"`)}error(e){return new n(`Parse error at position ${this.curToken.position}: ${e}`,"PARSE_ERROR")}}function A(e){return new N(e).parseStatement()}class O{constructor(e){this.tables=new Map,this.completed=!1,this.engine=e}table(e){let t=this.tables.get(e);return t||(t=new g(this.engine,e),this.tables.set(e,t)),t}_markCompleted(){this.completed=!0}isCompleted(){return this.completed}}class S{constructor(e){this.engine=e}async execute(e){const t=new O(this.engine);await this.engine.beginTransaction();try{const s=await e(t);return await this.engine.commitTransaction(),t._markCompleted(),s}catch(e){if(await this.engine.rollbackTransaction(),e instanceof n)throw e;throw new n(`Transaction failed: ${e.message}`,"TRANSACTION_ERROR",e)}}}class D{constructor(){this.plugins=[],this.hooks=new Map}register(e){const t=e.priority??0,s=this.plugins.findIndex(e=>(e.priority??0)t.name===e);-1!==t&&(this.plugins[t].destroy(),this.plugins.splice(t,1))}getPlugins(){return[...this.plugins]}on(e,t){const s=this.hooks.get(e)??[];s.push(t),this.hooks.set(e,s)}off(e,t){const s=this.hooks.get(e);if(s){const e=s.indexOf(t);-1!==e&&s.splice(e,1)}}async trigger(e,...t){const s=this.hooks.get(e);if(s)for(const e of s)await e(...t)}destroy(){for(const e of this.plugins)try{e.destroy()}catch(e){}this.plugins=[],this.hooks.clear()}}class L{get version(){return this._version}constructor(e){this.ready=!1,this.tableCache=new Map,this.listeners=new Map,this.migrations=new Map,this.config=e,this.name=e.name??s.name,this.mode=e.mode??s.mode,this._version=e.version??s.version,this.pluginManager=new D}async init(){if(this.engine=this.createEngine(),await this.engine.open(this.name,this.version),this.executor=new I(this.engine),this.transactionManager=new S(this.engine),this.config.plugins)for(const e of this.config.plugins)this.pluginManager.register(e);this.ready=!0,this.config.onReady&&this.config.onReady(this)}isReady(){return this.ready}async defineTable(e,t){this.ensureReady();const s=w(e,t);await this.pluginManager.trigger("beforeCreateTable",s),await this.engine.createTable(s),await this.pluginManager.trigger("afterCreateTable",s),this.tableCache.delete(e)}table(e){this.ensureReady();let t=this.tableCache.get(e);return t||(t=new g(this.engine,e,this.executor),this.tableCache.set(e,t)),t}async dropTable(e){this.ensureReady(),await this.pluginManager.trigger("beforeDropTable",e),await this.engine.dropTable(e),await this.pluginManager.trigger("afterDropTable",e),this.tableCache.delete(e)}async getTableNames(){return this.ensureReady(),this.engine.getTableNames()}async query(e){this.ensureReady(),await this.pluginManager.trigger("beforeQuery",e);const t=A(e),s=await this.executor.execute(t);return await this.pluginManager.trigger("afterQuery",e,s),s}async transaction(e){this.ensureReady(),await this.pluginManager.trigger("beforeTransaction");const t=await this.transactionManager.execute(e);return await this.pluginManager.trigger("afterTransaction"),t}async exportTable(e){return this.ensureReady(),this.engine.find(e,{table:e})}async importTable(e,t){return this.ensureReady(),this.engine.insert(e,t)}async exportAll(){this.ensureReady();const e={},t=await this.engine.getTableNames();for(const s of t)e[s]=await this.engine.find(s,{table:s});return e}subscribe(e,t){const s=`change:${e}`;return this.listeners.has(s)||this.listeners.set(s,new Set),this.listeners.get(s).add(t),()=>this.listeners.get(s)?.delete(t)}emit(e,t){const s=`change:${e}`;this.listeners.get(s)?.forEach(e=>e(t))}addMigration(e,t){this.migrations.set(e,t)}async migrateTo(e){this.ensureReady();for(const[t,s]of[...this.migrations.entries()].sort((e,t)=>e[0]-t[0]))t<=e&&t>this.version&&(await s(this),this._version=t)}getPluginManager(){return this.pluginManager}on(e,t){this.pluginManager.on(e,t)}async close(){this.pluginManager.destroy(),await this.engine.close(),this.tableCache.clear(),this.ready=!1}getEngine(){return this.engine}createEngine(){const e=this.mode,t=this.config.diskEngine??"indexeddb";switch(e){case"memory":return new T;case"disk":return"opfs"===t?new d:new p;case"hybrid":return new m(t);default:throw new n(`Unknown storage mode: ${e}`,"CONFIG_ERROR")}}ensureReady(){if(!this.ready)throw new n("Database not initialized. Call await db.init() first.","DB_NOT_READY")}}const M=new class{constructor(){this.connections=new Map,this.refCount=new Map}async connect(e){const t=e.name,s=this.connections.get(t);if(s&&s.isReady()){const e=(this.refCount.get(t)??0)+1;return this.refCount.set(t,e),s}const n=new L(e);return await n.init(),this.connections.set(t,n),this.refCount.set(t,1),n.disconnect=async()=>{await this.release(t)},n}async release(e){const t=(this.refCount.get(e)??1)-1;if(t<=0){const t=this.connections.get(e);t&&(await t.close(),this.connections.delete(e)),this.refCount.delete(e)}else this.refCount.set(e,t)}async forceClose(e){const t=this.connections.get(e);t&&(await t.close(),this.connections.delete(e)),this.refCount.delete(e)}async closeAll(){for(const[,e]of this.connections)try{await e.close()}catch{}this.connections.clear(),this.refCount.clear()}getActiveConnections(){return Array.from(this.connections.keys())}getRefCount(e){return this.refCount.get(e)??0}},_=L;async function $(e){const t=new L(e);return await t.init(),t}_.connect=e=>M.connect(e),_.disconnect=e=>M.release(e),_.disconnectAll=()=>M.closeAll(),_.getActiveConnections=()=>M.getActiveConnections();const U={VERSION:i,version:i,create:$,MetonaSqlark:L,MeSqlark:L};"undefined"!=typeof window&&(window.MetonaSqlark=U,window.MeSqlark=U);const v=L;e.HybridEngine=m,e.IndexedDBEngine=p,e.MeSqlark=v,e.MemoryEngine=T,e.MetonaSqlark=L,e.OPFSEngine=d,e.Table=g,e.VERSION=i,e.api=U,e.create=$,e.default=U,e.parse=A,e.tokenize=function(e){const t=new C(e),s=[];let n=t.nextToken();for(;n.type!==R.EOF;)s.push(n),n=t.nextToken();return s.push(n),s},Object.defineProperty(e,"__esModule",{value:!0})}); +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).MetonaSqlark={})}(this,function(e){"use strict";const t=["string","number","boolean","date","json"],s=Object.freeze({name:"metona-sqlark",mode:"hybrid",diskEngine:"indexeddb",version:1});class n extends Error{constructor(e,t,s){super(e),this.code=t,this.details=s,this.name="DatabaseError"}}const i="0.1.13",r=new Map;function o(e,t,s={}){for(const[n,i]of Object.entries(t))if("$and"!==n){if("$or"!==n){if(!a(e[n],i,e,s))return!1}else if(!i.some(t=>o(e,t,s)))return!1}else if(!i.every(t=>o(e,t,s)))return!1;return!0}function a(e,t,s,n){if("object"==typeof t&&null!==t&&"$and"in t)return t.$and.every(e=>o(s,e,n));if("object"==typeof t&&null!==t&&"$or"in t)return t.$or.some(e=>o(s,e,n));if("object"==typeof t&&null!==t&&"$not"in t)return!a(e,t.$not,s,n);if("object"!=typeof t||null===t||Array.isArray(t))return e===t;const i=t;if(n.$col&&"$col"in i&&1===Object.keys(i).length)return e===s[i.$col];for(const[t,r]of Object.entries(i)){let i=r;if(n.$col&&"object"==typeof r&&null!==r&&"$col"in r&&(i=s[r.$col]),!h(e,t,i))return!1}return!0}function h(e,t,s){switch(t){case"$eq":return e===s;case"$ne":return e!==s;case"$gt":return e>s;case"$gte":return e>=s;case"$lt":return e{for(const{column:n,direction:i}of t){const t=u(e[n],s[n]);if(0!==t)return"desc"===i?-t:t}return 0})}function u(e,t){return e===t?0:null==e?1:null==t?-1:"string"==typeof e&&"string"==typeof t?e.localeCompare(t):"number"==typeof e&&"number"==typeof t?e-t:String(e).localeCompare(String(t))}function l(e,t){const s={};for(const n of t)if(n in e)s[n]=e[n];else for(const t of Object.keys(e))if(t.endsWith(`.${n}`)||t===n){s[n]=e[t];break}return s}class T{constructor(){this.name="memory",this.tables=new Map,this.schemas=new Map,this.indexes=new Map,this.opened=!1,this.snapshot=null}async open(e,t){this.opened=!0}async close(){this.tables.clear(),this.schemas.clear(),this.indexes.clear(),this.opened=!1}isOpen(){return this.opened}async createTable(e){if(this.schemas.has(e.name))throw new n(`Table "${e.name}" already exists`,"TABLE_EXISTS");this.schemas.set(e.name,e),this.tables.set(e.name,new Map);const t=new Map;for(const[s,n]of Object.entries(e.columns))(n.index||n.unique)&&t.set(s,new Map);this.indexes.set(e.name,t)}async dropTable(e){this.ensureTable(e),this.schemas.delete(e),this.tables.delete(e),this.indexes.delete(e)}async hasTable(e){return this.schemas.has(e)}async getTableNames(){return Array.from(this.schemas.keys())}async getTableSchema(e){return this.schemas.get(e)??null}async insert(e,t){this.ensureTable(e);const s=this.schemas.get(e),i=this.tables.get(e),r=this.getPrimaryKey(s),o=[];for(const a of t){const t=this.validateRow(s,a),h=String(t[r]);if(i.has(h))throw new n(`Duplicate primary key "${h}" in table "${e}"`,"DUPLICATE_KEY");this.checkUniqueness(s,t),i.set(h,t),this.updateIndexes(e,t,h),o.push(h)}return o}async find(e,t){this.ensureTable(e);const s=this.tables.get(e);let n=this.tryIndexLookup(e,s,t);t.where&&Object.keys(t.where).length>0&&(n=n.filter(e=>o(e,t.where))),t.orderBy&&t.orderBy.length>0&&(n=c(n,t.orderBy));const i=t.offset??0,r=t.limit??n.length;return n=n.slice(i,i+r),t.columns&&t.columns.length>0&&"*"!==t.columns[0]&&(n=n.map(e=>l(e,t.columns))),n}async update(e,t,s){this.ensureTable(e);const n=this.schemas.get(e),i=this.tables.get(e);let r=0;for(const[e,a]of i)if(!t.where||0===Object.keys(t.where).length||o(a,t.where)){const t={...a,...s};this.validateRow(n,t),i.set(e,t),r++}return r}async delete(e,t){this.ensureTable(e);const s=this.tables.get(e),n=[];for(const[e,i]of s)t.where&&0!==Object.keys(t.where).length&&!o(i,t.where)||n.push(e);let i=0;for(const t of n){const n=s.get(t);n&&(i+=await this.cascadeDelete(e,t,n))}for(const e of n)s.delete(e);return n.length+i}async count(e,t){this.ensureTable(e);const s=this.tables.get(e);if(!t?.where||0===Object.keys(t.where).length)return s.size;let n=0;for(const e of s.values())o(e,t.where)&&n++;return n}async clear(e){this.ensureTable(e),this.tables.get(e).clear();const t=this.indexes.get(e);if(t)for(const e of t.values())e.clear()}async beginTransaction(){if(this.snapshot)throw new n("Transaction already in progress","TX_ACTIVE");this.snapshot={tables:this.deepCloneMapMap(this.tables),schemas:new Map(this.schemas),indexes:this.deepCloneIndexes(this.indexes)}}async commitTransaction(){if(!this.snapshot)throw new n("No active transaction","TX_NONE");this.snapshot=null}async rollbackTransaction(){if(!this.snapshot)throw new n("No active transaction","TX_NONE");this.tables=this.snapshot.tables,this.schemas=this.snapshot.schemas,this.indexes=this.snapshot.indexes,this.snapshot=null}deepCloneMapMap(e){const t=new Map;for(const[s,n]of e){const e=new Map;for(const[t,s]of n)e.set(t,{...s});t.set(s,e)}return t}deepCloneIndexes(e){const t=new Map;for(const[s,n]of e){const e=new Map;for(const[t,s]of n){const n=new Map;for(const[e,t]of s)n.set(e,new Set(t));e.set(t,n)}t.set(s,e)}return t}ensureTable(e){if(!this.tables.has(e))throw new n(`Table "${e}" does not exist`,"TABLE_NOT_FOUND")}getPrimaryKey(e){for(const[t,s]of Object.entries(e.columns))if(s.primaryKey)return t;return Object.keys(e.columns)[0]}validateRow(e,t){const s={};for(const[i,r]of Object.entries(e.columns)){let o=t[i];if(void 0===o&&void 0!==r.default&&(o=r.default),r.required&&null==o)throw new n(`Column "${i}" is required in table "${e.name}"`,"VALIDATION_ERROR");null!=o&&this.checkType(i,r.type,o),void 0!==o&&(s[i]=o)}return s}checkType(e,t,s){const i=typeof s;switch(t){case"string":if("string"!==i)throw new n(`Column "${e}" expects string, got ${i}`,"TYPE_ERROR");break;case"number":if("number"!==i)throw new n(`Column "${e}" expects number, got ${i}`,"TYPE_ERROR");break;case"boolean":if("boolean"!==i)throw new n(`Column "${e}" expects boolean, got ${i}`,"TYPE_ERROR");break;case"date":if("string"!==i||isNaN(Date.parse(s)))throw new n(`Column "${e}" expects valid date`,"TYPE_ERROR");break;case"json":if("object"!==i)throw new n(`Column "${e}" expects object/array, got ${i}`,"TYPE_ERROR")}}checkUniqueness(e,t){const s=this.indexes.get(e.name);if(s)for(const[i,r]of Object.entries(e.columns)){if(!r.unique||void 0===t[i]||null===t[i])continue;const o=s.get(i);if(o&&o.has(t[i]))throw new n(`Unique constraint violation on column "${i}" in table "${e.name}"`,"UNIQUE_VIOLATION")}}tryIndexLookup(e,t,s){const n=this.indexes.get(e);if(!n||!s.where)return Array.from(t.values());for(const[e,i]of Object.entries(s.where))if("object"!=typeof i||null===i){const s=n.get(e);if(s){const e=s.get(i);if(e){const s=[];for(const n of e){const e=t.get(n);e&&s.push(e)}return s}return[]}}return Array.from(t.values())}updateIndexes(e,t,s){const n=this.indexes.get(e);if(n)for(const[e,i]of n){const n=t[e];null!=n&&(i.has(n)||i.set(n,new Set),i.get(n).add(s))}}async cascadeDelete(e,t,s){let n=0;for(const[s,i]of this.schemas)if(s!==e)for(const[r,o]of Object.entries(i.columns)){if(!o.references||!o.onDelete||"RESTRICT"===o.onDelete)continue;const[i,a]=o.references.split(".");if(i!==e)continue;const h=this.tables.get(s);if(!h)continue;const c=[];for(const[e,s]of h)String(s[r])===t&&c.push(e);if("CASCADE"===o.onDelete)for(const e of c){const t=h.get(e);t&&(n+=await this.cascadeDelete(s,e,t)),h.delete(e),n++}else if("SET NULL"===o.onDelete)for(const e of c){const t=h.get(e);t&&(t[r]=null)}}return n}}class p{constructor(){this.name="indexeddb",this.db=null,this.dbName="",this.version=1,this.memoryCache=new T,this.txActive=!1}async open(e,t){return this.dbName=e,this.version=t,await this.memoryCache.open(e,t),new Promise((s,i)=>{const r=indexedDB.open(e,t);r.onsuccess=()=>{this.db=r.result,s()},r.onerror=()=>i(new n(`Failed to open IndexedDB "${e}"`,"IDB_OPEN_ERROR",r.error)),r.onblocked=()=>i(new n(`IndexedDB "${e}" is blocked`,"IDB_BLOCKED"))})}async close(){this.db&&(this.db.close(),this.db=null),await this.memoryCache.close()}isOpen(){return null!==this.db}async createTable(e){await this.memoryCache.createTable(e),this.txActive||await this.idbCreateTable(e)}async dropTable(e){await this.memoryCache.dropTable(e),this.txActive||await this.idbDropTable(e)}async hasTable(e){return this.ensureDB().objectStoreNames.contains(e)}async getTableNames(){return Array.from(this.ensureDB().objectStoreNames)}async getTableSchema(e){return this.memoryCache.getTableSchema(e)}async insert(e,t){const s=await this.memoryCache.insert(e,t);return this.txActive||await this.idbInsert(e,t),s}async find(e,t){return this.txActive?this.memoryCache.find(e,t):this.idbFind(e,t)}async update(e,t,s){const n=await this.memoryCache.update(e,t,s);return this.txActive||await this.idbUpdate(e,t,s),n}async delete(e,t){const s=await this.memoryCache.delete(e,t);return this.txActive||await this.idbDelete(e,t),s}async count(e,t){return this.txActive?this.memoryCache.count(e,t):(await this.idbFind(e,{table:e,where:t?.where??{}})).length}async clear(e){await this.memoryCache.clear(e),this.txActive||await this.idbClear(e)}async beginTransaction(){if(this.txActive)throw new n("Transaction already in progress","TX_ACTIVE");this.txActive=!0,await this.memoryCache.beginTransaction()}async commitTransaction(){if(!this.txActive)throw new n("No active transaction","TX_NONE");await this.memoryCache.commitTransaction(),await this.flushToIDB(),this.txActive=!1}async rollbackTransaction(){if(!this.txActive)throw new n("No active transaction","TX_NONE");await this.memoryCache.rollbackTransaction(),this.txActive=!1}async idbCreateTable(e){const t=this.ensureDB();return new Promise((s,i)=>{const r=t.version+1;t.close();const o=indexedDB.open(this.dbName,r);o.onupgradeneeded=t=>{const s=t.target.result,n=Object.entries(e.columns).find(([,e])=>e.primaryKey)?.[0]??Object.keys(e.columns)[0],i=s.createObjectStore(e.name,{keyPath:n});for(const[t,s]of Object.entries(e.columns))s.index&&t!==n&&i.createIndex(`idx_${t}`,t,{unique:s.unique??!1})},o.onsuccess=()=>{this.db=o.result,s()},o.onerror=()=>i(new n(`Failed to create table "${e.name}"`,"IDB_UPGRADE_ERROR",o.error))})}async idbDropTable(e){const t=this.ensureDB();return new Promise((s,i)=>{const r=t.version+1;t.close();const o=indexedDB.open(this.dbName,r);o.onupgradeneeded=t=>{const s=t.target.result;s.objectStoreNames.contains(e)&&s.deleteObjectStore(e)},o.onsuccess=()=>{this.db=o.result,s()},o.onerror=()=>i(new n(`Failed to drop table "${e}"`,"IDB_UPGRADE_ERROR",o.error))})}async idbInsert(e,t){const s=this.ensureDB();return new Promise((i,r)=>{const o=s.transaction(e,"readwrite"),a=o.objectStore(e);for(const e of t)a.add(e);o.oncomplete=()=>i(),o.onerror=()=>r(new n(`Insert failed for "${e}"`,"IDB_TX_ERROR",o.error))})}async idbFind(e,t){const s=this.ensureDB();return new Promise((i,r)=>{const a=s.transaction(e,"readonly").objectStore(e).getAll();a.onsuccess=()=>{let e=a.result??[];t.where&&Object.keys(t.where).length>0&&(e=e.filter(e=>o(e,t.where))),t.orderBy&&t.orderBy.length>0&&(e=c(e,t.orderBy));const s=t.offset??0,n=t.limit??e.length;e=e.slice(s,s+n),t.columns&&t.columns.length>0&&"*"!==t.columns[0]&&(e=e.map(e=>l(e,t.columns))),i(e)},a.onerror=()=>r(new n(`Find failed for "${e}"`,"IDB_READ_ERROR",a.error))})}async idbUpdate(e,t,s){const i=this.ensureDB();return new Promise((r,a)=>{const h=i.transaction(e,"readwrite"),c=h.objectStore(e),u=c.getAll();u.onsuccess=()=>{for(const e of u.result??[])t.where&&0!==Object.keys(t.where).length&&!o(e,t.where)||(Object.assign(e,s),c.put(e))},h.oncomplete=()=>r(),h.onerror=()=>a(new n(`Update failed for "${e}"`,"IDB_TX_ERROR",h.error))})}async idbDelete(e,t){const s=this.ensureDB(),i=await this.memoryCache.getTableSchema(e);if(!i)throw new n(`Table "${e}" not found`,"TABLE_NOT_FOUND");const r=Object.entries(i.columns).find(([,e])=>e.primaryKey)?.[0]??Object.keys(i.columns)[0];return new Promise((i,a)=>{const h=s.transaction(e,"readwrite"),c=h.objectStore(e),u=c.getAll();u.onsuccess=()=>{for(const e of u.result??[])t.where&&0!==Object.keys(t.where).length&&!o(e,t.where)||c.delete(e[r])},h.oncomplete=()=>i(),h.onerror=()=>a(new n(`Delete failed for "${e}"`,"IDB_TX_ERROR",h.error))})}async idbClear(e){const t=this.ensureDB();return new Promise((s,i)=>{const r=t.transaction(e,"readwrite");r.objectStore(e).clear(),r.oncomplete=()=>s(),r.onerror=()=>i(new n(`Clear failed for "${e}"`,"IDB_TX_ERROR",r.error))})}async flushToIDB(){const e=await this.memoryCache.getTableNames();for(const t of e){const e=await this.memoryCache.find(t,{table:t});await this.idbClear(t),e.length>0&&await this.idbInsert(t,e)}}ensureDB(){if(!this.db)throw new n("Database not opened","DB_NOT_OPEN");return this.db}}class d{constructor(){this.name="opfs",this.root=null,this.tablesDir=null,this.dbName="",this.memoryCache=new T}async open(e,t){this.dbName=e,await this.memoryCache.open(e,t),this.root=await navigator.storage.getDirectory(),this.tablesDir=await this.root.getDirectoryHandle(e,{create:!0})}async close(){this.root=null,this.tablesDir=null,await this.memoryCache.close()}isOpen(){return null!==this.tablesDir}async createTable(e){await this.memoryCache.createTable(e),await this.writeTableData(e.name,[])}async dropTable(e){if(await this.memoryCache.dropTable(e),this.tablesDir)try{await this.tablesDir.removeEntry(`${e}.json`)}catch{}}async hasTable(e){if(!this.tablesDir)return!1;try{return await this.tablesDir.getFileHandle(`${e}.json`),!0}catch{return!1}}async getTableNames(){if(!this.tablesDir)return[];const e=[];for await(const[t]of this.tablesDir.entries())t.endsWith(".json")&&e.push(t.replace(".json",""));return e}async getTableSchema(e){return this.memoryCache.getTableSchema(e)}async insert(e,t){const s=await this.memoryCache.insert(e,t),n=await this.memoryCache.find(e,{table:e});return await this.writeTableData(e,n),s}async find(e,t){return this.memoryCache.find(e,t)}async update(e,t,s){const n=await this.memoryCache.update(e,t,s),i=await this.memoryCache.find(e,{table:e});return await this.writeTableData(e,i),n}async delete(e,t){const s=await this.memoryCache.delete(e,t),n=await this.memoryCache.find(e,{table:e});return await this.writeTableData(e,n),s}async count(e,t){return this.memoryCache.count(e,t)}async clear(e){await this.memoryCache.clear(e),await this.writeTableData(e,[])}async beginTransaction(){await this.memoryCache.beginTransaction()}async commitTransaction(){await this.memoryCache.commitTransaction();const e=await this.memoryCache.getTableNames();for(const t of e){const e=await this.memoryCache.find(t,{table:t});await this.writeTableData(t,e)}}async rollbackTransaction(){await this.memoryCache.rollbackTransaction()}ensureDir(){if(!this.tablesDir)throw new n("Database not opened","DB_NOT_OPEN");return this.tablesDir}async writeTableData(e,t){const s=this.ensureDir(),n=`${e}.json`,i=await s.getFileHandle(n,{create:!0}),r=await i.createWritable();await r.write(JSON.stringify(t)),await r.close()}async readTableData(e){const t=this.ensureDir(),s=`${e}.json`;try{const e=await t.getFileHandle(s),n=await e.getFile(),i=await n.text();return JSON.parse(i)}catch{return[]}}async loadTableIntoMemory(e,t){await this.memoryCache.createTable(t);const s=await this.readTableData(e);if(s.length>0)for(const t of s)await this.memoryCache.insert(e,[t])}}class m{constructor(e="indexeddb"){this.name="hybrid",this.memoryEngine=new T,this.diskEngineType=e,this.diskEngine="opfs"===e?new d:new p}async open(e,t){await this.diskEngine.open(e,t),await this.memoryEngine.open(e,t);const s=await this.diskEngine.getTableNames();for(const e of s){const t=await this.diskEngine.getTableSchema(e);if(!t)continue;await this.memoryEngine.createTable(t);const s=await this.diskEngine.find(e,{table:e});if(s.length>0)try{await this.memoryEngine.insert(e,s)}catch(e){}}}async close(){await this.memoryEngine.close(),await this.diskEngine.close()}isOpen(){return this.memoryEngine.isOpen()&&this.diskEngine.isOpen()}async createTable(e){await this.memoryEngine.createTable(e),await this.diskEngine.createTable(e)}async dropTable(e){await this.memoryEngine.dropTable(e),await this.diskEngine.dropTable(e)}async hasTable(e){return this.memoryEngine.hasTable(e)}async getTableNames(){return this.memoryEngine.getTableNames()}async getTableSchema(e){return this.memoryEngine.getTableSchema(e)}async insert(e,t){const s=await this.memoryEngine.insert(e,t);return await this.diskEngine.insert(e,t),s}async find(e,t){return this.memoryEngine.find(e,t)}async update(e,t,s){const n=await this.memoryEngine.update(e,t,s);return await this.diskEngine.update(e,t,s),n}async delete(e,t){const s=await this.memoryEngine.delete(e,t);return await this.diskEngine.delete(e,t),s}async count(e,t){return this.memoryEngine.count(e,t)}async clear(e){await this.memoryEngine.clear(e),await this.diskEngine.clear(e)}async beginTransaction(){await this.memoryEngine.beginTransaction(),await this.diskEngine.beginTransaction()}async commitTransaction(){await this.memoryEngine.commitTransaction(),await this.diskEngine.commitTransaction()}async rollbackTransaction(){await this.memoryEngine.rollbackTransaction(),await this.diskEngine.rollbackTransaction()}getDiskEngineType(){return this.diskEngineType}getMemoryEngine(){return this.memoryEngine}}class f{constructor(e,t,s=["*"],n){this.engine=e,this.tableName=t,this._columns=s,this._where={},this._orderBy=[],this._joins=[],this._executor=n}as(e){return this._alias=e,this}innerJoin(e,t,s){return this._addJoin("INNER",e,t,s)}leftJoin(e,t,s){return this._addJoin("LEFT",e,t,s)}rightJoin(e,t,s){return this._addJoin("RIGHT",e,t,s)}crossJoin(e,t){return this._addJoin("CROSS",e,{},t)}join(e,t,s){return this._addJoin("INNER",e,t,s)}_addJoin(e,t,s,n){return this._joins.push({type:e,table:t,on:s,alias:n}),this}where(e){return this._where={...this._where,...e},this}orderBy(e,t="asc"){return this._orderBy.push({column:e,direction:t}),this}limit(e){return this._limit=e,this}offset(e){return this._offset=e,this}async execute(){if(this._joins.length>0&&this._executor){const e=this.toAST();return this._executor.execute(e)}return this.engine.find(this.tableName,{table:this.tableName,columns:this._columns,where:this._where,orderBy:this._orderBy.length>0?this._orderBy:void 0,limit:this._limit,offset:this._offset})}toAST(){return{type:"SELECT",columns:this._columns,from:this.tableName,alias:this._alias,joins:this._joins.length>0?[...this._joins]:void 0,where:this._where,orderBy:this._orderBy.length>0?this._orderBy:void 0,limit:this._limit,offset:this._offset}}}class E{constructor(e,t,s){this.engine=e,this.tableName=t,this._updates=s,this._where={}}where(e){return this._where={...this._where,...e},this}async execute(){return this.engine.update(this.tableName,{table:this.tableName,where:this._where},this._updates)}toAST(){return{type:"UPDATE",table:this.tableName,sets:this._updates,where:this._where}}}class y{constructor(e,t){this.engine=e,this.tableName=t,this._where={}}where(e){return this._where={...this._where,...e},this}async execute(){return this.engine.delete(this.tableName,{table:this.tableName,where:this._where})}toAST(){return{type:"DELETE",from:this.tableName,where:this._where}}}class g{constructor(e,t,s){this.schema=null,this.engine=e,this.name=t,this.executor=s}async getSchema(){if(!this.schema){const e=await this.engine.getTableSchema(this.name);if(!e)throw new n(`Table "${this.name}" does not exist`,"TABLE_NOT_FOUND");this.schema=e}return this.schema}async insert(e){return(await this.engine.insert(this.name,[e]))[0]}async insertMany(e){return this.engine.insert(this.name,e)}select(e=["*"]){return new f(this.engine,this.name,e,this.executor)}update(e){return new E(this.engine,this.name,e)}delete(){return new y(this.engine,this.name)}async count(e){return this.engine.count(this.name,e?{table:this.name,where:e}:void 0)}async clear(){return this.engine.clear(this.name)}async drop(){return this.engine.dropTable(this.name)}}function w(e,s){return function(e){if(0===Object.keys(e).length)throw new n("Table must have at least one column","SCHEMA_ERROR");let s=0;for(const[i,r]of Object.entries(e)){if(!t.includes(r.type))throw new n(`Invalid type "${r.type}" for column "${i}". Valid types: ${t.join(", ")}`,"SCHEMA_ERROR");r.primaryKey&&s++}if(0===s)throw new n("Table must have at least one primary key column","SCHEMA_ERROR")}(s),{name:e,columns:s}}function k(e){return{type:e.type,primaryKey:e.primaryKey,unique:e.unique,required:e.required,default:e.default,index:e.index,maxLength:e.maxLength,min:e.min,max:e.max,references:e.references,onDelete:e.onDelete,onUpdate:e.onUpdate}}function b(e){switch(e.type){case"SELECT":return function(e){return{table:e.from,columns:e.columns,where:e.where,orderBy:e.orderBy?.length?e.orderBy:void 0,limit:e.limit,offset:e.offset}}(e);case"DELETE":return function(e){return{table:e.from,where:e.where}}(e);case"UPDATE":return function(e){return{table:e.table,where:e.where}}(e);default:throw new n(`Cannot compile statement type "${e.type}" to QueryPlan`,"COMPILE_ERROR")}}class I{constructor(e){this.engine=e}async execute(e){switch(e.type){case"SELECT":return this.executeSelect(e);case"INSERT":return this.executeInsert(e);case"UPDATE":return this.executeUpdate(e);case"DELETE":return this.executeDelete(e);case"CREATE_TABLE":return this.executeCreateTable(e);case"DROP_TABLE":return this.executeDropTable(e);default:throw new n("Unknown statement type","UNKNOWN_STATEMENT")}}async executeSelect(e){e.where&&Object.keys(e.where).length>0&&(e.where=await this.resolveSubqueries(e.where));const t=!!(e.groupBy&&e.groupBy.length>0),s=!t&&this._hasAggregateColumn(e.columns);let n;if(e.joins&&0!==e.joins.length)n=await this.executeJoinSelect(e);else{const i=b(t||s?{...e,columns:["*"]}:e);n=await this.engine.find(i.table,i)}s&&(n=[this.computeSingleAggregate(n,e)]),t&&(n=this.executeGroupBy(n,e)),e.distinct&&(n=this.executeDistinct(n)),e.having&&Object.keys(e.having).length>0&&(n=n.filter(t=>o(t,e.having))),e.orderBy&&e.orderBy.length>0&&(n=c(n,e.orderBy));const i=e.offset??0,r=e.limit??n.length;return n=n.slice(i,i+r),!t&&e.columns.length>0&&"*"!==e.columns[0]&&(n=n.map(t=>l(t,e.columns))),n}async executeJoinSelect(e){const t=e.alias??e.from;let s=(await this.engine.find(e.from,{table:e.from})).map(e=>this.prefixRow(e,t));for(const t of e.joins){const e=t.alias??t.table,n=(await this.engine.find(t.table,{table:t.table})).map(t=>this.prefixRow(t,e));s=this.joinRows(s,n,t)}return e.where&&Object.keys(e.where).length>0&&(s=s.filter(t=>o(t,e.where))),s}prefixRow(e,t){const s={};for(const[n,i]of Object.entries(e))s[`${t}.${n}`]=i;return s}joinRows(e,t,s){if("CROSS"===s.type){const s=[];for(const n of e)for(const e of t)s.push({...n,...e});return s}const n=[];for(const i of e){let e=!1;for(const r of t){const t={...i,...r};o(t,s.on,{$col:!0})&&(n.push(t),e=!0)}if(!e&&"LEFT"===s.type){const e={};for(const s of Object.keys(t[0]??{}))e[s]=null;n.push({...i,...e})}}if("RIGHT"===s.type)for(const i of t)if(!e.some(e=>o({...e,...i},s.on,{$col:!0}))){const t={};for(const s of Object.keys(e[0]??{}))t[s]=null;n.push({...t,...i})}return n}executeGroupBy(e,t){const s=new Map;for(const n of e){const e=t.groupBy.map(e=>String(n[e]??"null")).join("|");s.has(e)||s.set(e,[]),s.get(e).push(n)}const n=[];for(const e of s.values()){const s={};for(const n of t.groupBy)s[n]=e[0][n];for(const n of t.columns){if("*"===n)continue;const i=n.match(/^(COUNT|SUM|AVG|MIN|MAX)\((.+?)\)(?:\s+AS\s+(\w+))?$/i);if(i){const[,t,r,o]=i;s[o||n]=this.computeAggregate(t.toUpperCase(),e,r.trim())}else t.groupBy.includes(n)||(s[n]=e[0][n])}n.push(s)}return n}computeAggregate(e,t,s){const n=t.map(e=>e[s]).filter(e=>null!=e).map(Number);switch(e){case"COUNT":return"*"===s?t.length:n.length;case"SUM":return n.reduce((e,t)=>e+t,0);case"AVG":return 0===n.length?0:n.reduce((e,t)=>e+t,0)/n.length;case"MIN":return 0===n.length?0:Math.min(...n);case"MAX":return 0===n.length?0:Math.max(...n);default:return 0}}executeDistinct(e){const t=new Set;return e.filter(e=>{const s=Object.values(e).map(e=>String(e??"\0")).join("");return!t.has(s)&&(t.add(s),!0)})}async executeInsert(e){const t=await this.engine.getTableSchema(e.into);if(!t)throw new n(`Table "${e.into}" does not exist`,"TABLE_NOT_FOUND");const s=e.columns??Object.keys(t.columns),i=e.values.map(e=>{const t={};for(let n=0;n/^(COUNT|SUM|AVG|MIN|MAX)\(/i.test(e))}computeSingleAggregate(e,t){const s={};for(const n of t.columns){if("*"===n)continue;const t=n.match(/^(COUNT|SUM|AVG|MIN|MAX)\((.+?)\)(?:\s+AS\s+(\w+))?$/i);if(t){const[,i,r,o]=t;s[o||n]=this.computeAggregate(i.toUpperCase(),e,r.trim())}else s[n]=e.length>0?e[0][n]:null}return s}async resolveSubqueries(e){const t={};for(const[s,n]of Object.entries(e))"$and"===s&&Array.isArray(n)?t.$and=await Promise.all(n.map(e=>this.resolveSubqueries(e))):"$or"===s&&Array.isArray(n)?t.$or=await Promise.all(n.map(e=>this.resolveSubqueries(e))):"$not"!==s||"object"!=typeof n||null===n?t[s]="object"==typeof n&&null!==n?await this.resolveOperatorSubqueries(n):n:t.$not=await this.resolveSubqueries(n);return t}async resolveOperatorSubqueries(e){const t={};for(const[s,n]of Object.entries(e))if("$and"===s&&Array.isArray(n))t.$and=await Promise.all(n.map(e=>this.resolveSubqueries(e)));else if("$or"===s&&Array.isArray(n))t.$or=await Promise.all(n.map(e=>this.resolveSubqueries(e)));else if("$not"!==s)if("object"==typeof n&&null!==n&&"$subquery"in n){const e=n.$subquery,i=await this.executeSelect(e);if("$in"===s||"$nin"===s){const e=Object.keys(i[0]||{})[0],n=i.map(t=>t[e]);t[s]=n}else if(0===i.length)t[s]=null;else{const e=Object.keys(i[0])[0];t[s]=i[0][e]}}else t[s]=n;else t.$not="object"==typeof n&&null!==n?await this.resolveOperatorSubqueries(n):n;return t}}var R;!function(e){e.SELECT="SELECT",e.FROM="FROM",e.WHERE="WHERE",e.INSERT="INSERT",e.INTO="INTO",e.VALUES="VALUES",e.UPDATE="UPDATE",e.SET="SET",e.DELETE="DELETE",e.CREATE="CREATE",e.TABLE="TABLE",e.DROP="DROP",e.ORDER="ORDER",e.BY="BY",e.ASC="ASC",e.DESC="DESC",e.LIMIT="LIMIT",e.OFFSET="OFFSET",e.AND="AND",e.OR="OR",e.NOT="NOT",e.LIKE="LIKE",e.IN="IN",e.PRIMARY="PRIMARY",e.KEY="KEY",e.UNIQUE="UNIQUE",e.DEFAULT="DEFAULT",e.NULL="NULL",e.TRUE="TRUE",e.REFERENCES="REFERENCES",e.CASCADE="CASCADE",e.FALSE="FALSE",e.INNER="INNER",e.LEFT="LEFT",e.RIGHT="RIGHT",e.CROSS="CROSS",e.JOIN="JOIN",e.ON="ON",e.AS="AS",e.OUTER="OUTER",e.GROUP="GROUP",e.HAVING="HAVING",e.COUNT="COUNT",e.SUM="SUM",e.AVG="AVG",e.MIN="MIN",e.MAX="MAX",e.DISTINCT="DISTINCT",e.IDENTIFIER="IDENTIFIER",e.STRING="STRING",e.NUMBER="NUMBER",e.COMMA="COMMA",e.LPAREN="LPAREN",e.RPAREN="RPAREN",e.SEMICOLON="SEMICOLON",e.EQ="EQ",e.NEQ="NEQ",e.GT="GT",e.GTE="GTE",e.LT="LT",e.LTE="LTE",e.STAR="STAR",e.DOT="DOT",e.EOF="EOF",e.ILLEGAL="ILLEGAL"}(R||(R={}));const x={SELECT:R.SELECT,FROM:R.FROM,WHERE:R.WHERE,INSERT:R.INSERT,INTO:R.INTO,VALUES:R.VALUES,UPDATE:R.UPDATE,SET:R.SET,DELETE:R.DELETE,CREATE:R.CREATE,TABLE:R.TABLE,DROP:R.DROP,ORDER:R.ORDER,BY:R.BY,ASC:R.ASC,DESC:R.DESC,LIMIT:R.LIMIT,OFFSET:R.OFFSET,AND:R.AND,OR:R.OR,NOT:R.NOT,LIKE:R.LIKE,IN:R.IN,PRIMARY:R.PRIMARY,KEY:R.KEY,UNIQUE:R.UNIQUE,DEFAULT:R.DEFAULT,NULL:R.NULL,TRUE:R.TRUE,FALSE:R.FALSE,REFERENCES:R.REFERENCES,CASCADE:R.CASCADE,INNER:R.INNER,LEFT:R.LEFT,RIGHT:R.RIGHT,CROSS:R.CROSS,JOIN:R.JOIN,ON:R.ON,AS:R.AS,OUTER:R.OUTER,GROUP:R.GROUP,HAVING:R.HAVING,COUNT:R.COUNT,SUM:R.SUM,AVG:R.AVG,MIN:R.MIN,MAX:R.MAX,DISTINCT:R.DISTINCT};class C{constructor(e){this.position=0,this.readPosition=0,this.ch="",this.input=e,this.readChar()}nextToken(){let e;switch(this.skipWhitespace(),this.ch){case",":e=this.makeToken(R.COMMA,",");break;case"(":e=this.makeToken(R.LPAREN,"(");break;case")":e=this.makeToken(R.RPAREN,")");break;case";":e=this.makeToken(R.SEMICOLON,";");break;case"*":e=this.makeToken(R.STAR,"*");break;case".":e=this.makeToken(R.DOT,".");break;case"=":e=this.makeToken(R.EQ,"=");break;case"!":"="===this.peekChar()?(this.readChar(),e=this.makeToken(R.NEQ,"!=")):e=this.makeToken(R.ILLEGAL,"!");break;case">":"="===this.peekChar()?(this.readChar(),e=this.makeToken(R.GTE,">=")):e=this.makeToken(R.GT,">");break;case"<":"="===this.peekChar()?(this.readChar(),e=this.makeToken(R.LTE,"<=")):">"===this.peekChar()?(this.readChar(),e=this.makeToken(R.NEQ,"<>")):e=this.makeToken(R.LT,"<");break;case"'":case'"':e=this.readString(this.ch);break;case"":e={type:R.EOF,value:"",position:this.position};break;default:if(this.isLetter(this.ch)){const t=this.readIdentifier();return e={type:x[t.toUpperCase()]??R.IDENTIFIER,value:t,position:this.position-t.length},e}if(this.isDigit(this.ch)||"-"===this.ch&&this.isDigit(this.peekChar())){const t=this.readNumber();return e={type:R.NUMBER,value:t,position:this.position-t.length},e}e=this.makeToken(R.ILLEGAL,this.ch)}return this.readChar(),e}readChar(){this.readPosition>=this.input.length?this.ch="":this.ch=this.input[this.readPosition],this.position=this.readPosition,this.readPosition++}peekChar(){return this.readPosition>=this.input.length?"":this.input[this.readPosition]}skipWhitespace(){for(;" "===this.ch||"\t"===this.ch||"\n"===this.ch||"\r"===this.ch;)this.readChar()}readIdentifier(){const e=this.position;for(;this.isLetter(this.ch)||this.isDigit(this.ch)||"_"===this.ch;)this.readChar();return this.input.slice(e,this.position)}readNumber(){const e=this.position;for("-"===this.ch&&this.readChar();this.isDigit(this.ch);)this.readChar();if("."===this.ch&&this.isDigit(this.peekChar()))for(this.readChar();this.isDigit(this.ch);)this.readChar();return this.input.slice(e,this.position)}readString(e){const t=this.position+1;this.readChar();let s="";for(;this.ch!==e&&""!==this.ch;)"\\"===this.ch&&this.peekChar()===e?(this.readChar(),s+=e):s+=this.ch,this.readChar();return{type:R.STRING,value:s,position:t}}isLetter(e){return/[a-zA-Z_]/.test(e)}isDigit(e){return/[0-9]/.test(e)}makeToken(e,t){return{type:e,value:t,position:this.position}}}class N{constructor(e){this.lexer=new C(e),this.nextToken(),this.nextToken()}parseStatement(){switch(this.curToken.type){case R.SELECT:return this.parseSelect();case R.INSERT:return this.parseInsert();case R.UPDATE:return this.parseUpdate();case R.DELETE:return this.parseDelete();case R.CREATE:return this.parseCreateTable();case R.DROP:return this.parseDropTable();default:throw this.error(`Unexpected token "${this.curToken.value}"`)}}parseSelect(){this.expect(R.SELECT);let e=!1;this.curTokenIs(R.DISTINCT)&&(e=!0,this.nextToken());const t=[];this.curTokenIs(R.STAR)?(t.push("*"),this.nextToken()):t.push(...this.parseColumnList()),this.expect(R.FROM);const s=this.expectIdentifier("table name");let n;this.curTokenIs(R.AS)?(this.nextToken(),n=this.expectIdentifier("alias")):this.curToken.type!==R.IDENTIFIER||this._isReservedAfterFrom()||(n=this.curToken.value,this.nextToken());const i={type:"SELECT",columns:t,distinct:e||void 0,from:s,alias:n,where:{}},r=this.parseJoinClauses();return r.length>0&&(i.joins=r),this.curTokenIs(R.WHERE)&&(this.nextToken(),i.where=this.parseCondition()),this.curTokenIs(R.GROUP)&&(this.nextToken(),this.expect(R.BY),i.groupBy=this.parseIdentifierList()),this.curTokenIs(R.HAVING)&&(this.nextToken(),i.having=this.parseCondition()),this.curTokenIs(R.ORDER)&&(this.nextToken(),this.expect(R.BY),i.orderBy=this.parseOrderByList()),this.curTokenIs(R.LIMIT)&&(this.nextToken(),i.limit=this.expectNumber("LIMIT value")),this.curTokenIs(R.OFFSET)&&(this.nextToken(),i.offset=this.expectNumber("OFFSET value")),i}parseJoinClauses(){const e=[];for(;this._isJoinKeyword();)e.push(this.parseJoinClause());return e}_isJoinKeyword(){return this.curTokenIs(R.INNER)||this.curTokenIs(R.LEFT)||this.curTokenIs(R.RIGHT)||this.curTokenIs(R.CROSS)||this.curTokenIs(R.JOIN)}parseJoinClause(){let e="INNER";this.curTokenIs(R.INNER)?(e="INNER",this.nextToken()):this.curTokenIs(R.LEFT)?(e="LEFT",this.nextToken(),this.curTokenIs(R.OUTER)&&this.nextToken()):this.curTokenIs(R.RIGHT)?(e="RIGHT",this.nextToken(),this.curTokenIs(R.OUTER)&&this.nextToken()):this.curTokenIs(R.CROSS)&&(e="CROSS",this.nextToken()),this.expect(R.JOIN);const t=this.expectIdentifier("table name");let s;this.curTokenIs(R.AS)?(this.nextToken(),s=this.expectIdentifier("alias")):this.curToken.type!==R.IDENTIFIER||this._isJoinReserved()||(s=this.curToken.value,this.nextToken());let n={};return"CROSS"!==e&&this.curTokenIs(R.ON)&&(this.nextToken(),n=this.parseCondition()),{type:e,table:t,alias:s,on:n}}_isReservedAfterFrom(){return this.curTokenIs(R.WHERE)||this.curTokenIs(R.ORDER)||this.curTokenIs(R.LIMIT)||this.curTokenIs(R.OFFSET)||this.curTokenIs(R.GROUP)||this._isJoinKeyword()}_isJoinReserved(){return this.curTokenIs(R.ON)||this.curTokenIs(R.WHERE)||this.curTokenIs(R.ORDER)||this.curTokenIs(R.LIMIT)||this._isJoinKeyword()}parseInsert(){this.expect(R.INSERT),this.expect(R.INTO);const e=this.expectIdentifier("table name");let t;this.curTokenIs(R.LPAREN)&&(this.nextToken(),t=this.parseIdentifierList(),this.expect(R.RPAREN)),this.expect(R.VALUES);const s=[];do{this.curTokenIs(R.COMMA)&&this.nextToken(),this.expect(R.LPAREN);const e=this.parseValueList();this.expect(R.RPAREN),s.push(e)}while(this.curTokenIs(R.COMMA));return{type:"INSERT",into:e,columns:t,values:s}}parseUpdate(){this.expect(R.UPDATE);const e=this.expectIdentifier("table name");this.expect(R.SET);const t={};do{this.curTokenIs(R.COMMA)&&this.nextToken();const e=this.expectIdentifier("column name");this.expect(R.EQ),t[e]=this.parseValue()}while(this.curTokenIs(R.COMMA));let s={};return this.curTokenIs(R.WHERE)&&(this.nextToken(),s=this.parseCondition()),{type:"UPDATE",table:e,sets:t,where:s}}parseDelete(){this.expect(R.DELETE),this.expect(R.FROM);const e=this.expectIdentifier("table name");let t={};return this.curTokenIs(R.WHERE)&&(this.nextToken(),t=this.parseCondition()),{type:"DELETE",from:e,where:t}}parseCreateTable(){this.expect(R.CREATE),this.expect(R.TABLE);const e=this.expectIdentifier("table name");this.expect(R.LPAREN);const t=[];do{this.curTokenIs(R.COMMA)&&this.nextToken(),t.push(this.parseColumnDef())}while(this.curTokenIs(R.COMMA));return this.expect(R.RPAREN),{type:"CREATE_TABLE",name:e,columns:t}}parseColumnDef(){const e={name:this.expectIdentifier("column name"),type:this.expectIdentifier("column type").toLowerCase()};for(;this.curTokenIs(R.PRIMARY)||this.curTokenIs(R.UNIQUE)||this.curTokenIs(R.NOT)||this.curTokenIs(R.DEFAULT)||this.curTokenIs(R.REFERENCES);)if(this.curTokenIs(R.PRIMARY))this.nextToken(),this.expect(R.KEY),e.primaryKey=!0;else if(this.curTokenIs(R.UNIQUE))this.nextToken(),e.unique=!0;else if(this.curTokenIs(R.NOT))this.nextToken(),this.expect(R.NULL),e.required=!0;else if(this.curTokenIs(R.DEFAULT))this.nextToken(),e.default=this.parseValue();else{if(!this.curTokenIs(R.REFERENCES))break;{this.nextToken();const t=this.expectIdentifier("referenced table");this.expect(R.LPAREN);const s=this.expectIdentifier("referenced column");for(this.expect(R.RPAREN),e.references=`${t}.${s}`;this.curTokenIs(R.ON);)if(this.nextToken(),this.curTokenIs(R.DELETE))this.nextToken(),e.onDelete=this.parseCascadeAction();else{if(!this.curTokenIs(R.UPDATE))break;this.nextToken(),e.onUpdate=this.parseCascadeAction()}}}return e}parseCascadeAction(){return this.curTokenIs(R.CASCADE)?(this.nextToken(),"CASCADE"):this.curTokenIs(R.SET)?(this.nextToken(),this.expect(R.NULL),"SET NULL"):this.curToken.type===R.IDENTIFIER&&"RESTRICT"===this.curToken.value.toUpperCase()?(this.nextToken(),"RESTRICT"):"RESTRICT"}parseDropTable(){return this.expect(R.DROP),this.expect(R.TABLE),{type:"DROP_TABLE",name:this.expectIdentifier("table name")}}parseCondition(){let e=this.parseSimpleCondition();for(;this.curTokenIs(R.AND)||this.curTokenIs(R.OR);){const t=this.curTokenIs(R.AND);this.nextToken();const s=this.parseSimpleCondition();e=t?{$and:[e,s]}:{$or:[e,s]}}return e}parseSimpleCondition(){if(this.curTokenIs(R.NOT)&&!this._isNotInOrLike())return this.nextToken(),{$not:this.parseSimpleCondition()};if(this.curTokenIs(R.LPAREN)){this.nextToken();const e=this.parseCondition();return this.expect(R.RPAREN),e}const e=this.parseColumnRef();if(this.curTokenIs(R.IDENTIFIER)&&"IS"===this.curToken.value.toUpperCase()){this.nextToken();const t=this.curTokenIs(R.NOT);t&&this.nextToken(),this.expect(R.NULL);const s={};return s[e]=t?{$ne:null}:{$eq:null},s}if(this.curTokenIs(R.NOT)){if(this.peekTokenIs(R.IN)){if(this.nextToken(),this.nextToken(),this.expect(R.LPAREN),this.curTokenIs(R.SELECT)){const t=this.parseSelect();this.expect(R.RPAREN);const s={};return s[e]={$nin:{$subquery:t}},s}const t=this.parseValueList();this.expect(R.RPAREN);const s={};return s[e]={$nin:t},s}if(this.peekTokenIs(R.LIKE)){this.nextToken(),this.nextToken();const t=this.parseValue(),s={};return s[e]={$not:{$like:t}},s}}if(this.curTokenIs(R.LIKE)){this.nextToken();const t=this.parseValue(),s={};return s[e]={$like:t},s}if(this.curTokenIs(R.IN)){if(this.nextToken(),this.expect(R.LPAREN),this.curTokenIs(R.SELECT)){const t=this.parseSelect();this.expect(R.RPAREN);const s={};return s[e]={$in:{$subquery:t}},s}const t=this.parseValueList();this.expect(R.RPAREN);const s={};return s[e]={$in:t},s}const t=this.parseComparisonOp();if(this.curTokenIs(R.LPAREN)&&this.peekTokenIs(R.SELECT)){this.nextToken();const s=this.parseSelect();this.expect(R.RPAREN);const n={};return n[e]={[t]:{$subquery:s}},n}let s;s=(this.curToken.type===R.IDENTIFIER||this._isKeywordAsIdent())&&this.peekTokenIs(R.DOT)?{$col:this.parseColumnRef()}:this.parseValue();const n={};return n[e]={[t]:s},n}_isNotInOrLike(){return this.peekTokenIs(R.IN)||this.peekTokenIs(R.LIKE)}peekTokenIs(e){return this.peekToken.type===e}parseComparisonOp(){switch(this.curToken.type){case R.EQ:return this.nextToken(),"$eq";case R.NEQ:return this.nextToken(),"$ne";case R.GT:return this.nextToken(),"$gt";case R.GTE:return this.nextToken(),"$gte";case R.LT:return this.nextToken(),"$lt";case R.LTE:return this.nextToken(),"$lte";default:throw this.error(`Expected comparison operator, got "${this.curToken.value}"`)}}parseColumnList(){const e=[];for(e.push(this.parseColumnRef());this.curTokenIs(R.COMMA);)this.nextToken(),e.push(this.parseColumnRef());return e}parseColumnRef(){if(this.curTokenIs(R.COUNT)||this.curTokenIs(R.SUM)||this.curTokenIs(R.AVG)||this.curTokenIs(R.MIN)||this.curTokenIs(R.MAX))return this.parseAggregateCall();const e=this.expectIdentifier("column name");return this.curTokenIs(R.DOT)?(this.nextToken(),`${e}.${this.expectIdentifier("column name")}`):e}parseAggregateCall(){const e=this.curToken.value.toUpperCase();let t;this.nextToken(),this.expect(R.LPAREN),this.curTokenIs(R.STAR)?(t="*",this.nextToken()):t=this.parseColumnRef(),this.expect(R.RPAREN);let s="";return this.curTokenIs(R.AS)?(this.nextToken(),s=this.expectIdentifier("alias")):this.curToken.type===R.IDENTIFIER&&this._isAggregateAlias()&&(s=this.curToken.value,this.nextToken()),s?`${e}(${t}) AS ${s}`:`${e}(${t})`}_isAggregateAlias(){return!this._isReservedAfterFrom()&&!this._isJoinKeyword()}parseIdentifierList(){const e=[];for(e.push(this.expectIdentifier("identifier"));this.curTokenIs(R.COMMA);)this.nextToken(),e.push(this.expectIdentifier("identifier"));return e}parseValueList(){const e=[];for(e.push(this.parseValue());this.curTokenIs(R.COMMA);)this.nextToken(),e.push(this.parseValue());return e}parseOrderByList(){const e=[];for(e.push(this.parseOrderBy());this.curTokenIs(R.COMMA);)this.nextToken(),e.push(this.parseOrderBy());return e}parseOrderBy(){const e=this.expectIdentifier("column name");let t="asc";return this.curTokenIs(R.ASC)?this.nextToken():this.curTokenIs(R.DESC)&&(t="desc",this.nextToken()),{column:e,direction:t}}parseValue(){switch(this.curToken.type){case R.STRING:{const e=this.curToken.value;return this.nextToken(),e}case R.NUMBER:{const e=Number(this.curToken.value);return this.nextToken(),e}case R.TRUE:return this.nextToken(),!0;case R.FALSE:return this.nextToken(),!1;case R.NULL:return this.nextToken(),null;default:throw this.error(`Expected value, got "${this.curToken.value}"`)}}nextToken(){this.curToken=this.peekToken,this.peekToken=this.lexer.nextToken()}curTokenIs(e){return this.curToken.type===e}expect(e){if(!this.curTokenIs(e))throw this.error(`Expected ${e}, got "${this.curToken.value}"`);this.nextToken()}expectIdentifier(e){if(this.curToken.type===R.IDENTIFIER||this._isKeywordAsIdent()){const e=this.curToken.value;return this.nextToken(),e}throw this.error(`Expected ${e}, got "${this.curToken.value}"`)}_isKeywordAsIdent(){return this.curToken.type!==R.EOF&&this.curToken.type!==R.ILLEGAL&&this.curToken.type!==R.STRING&&this.curToken.type!==R.NUMBER&&this.curToken.type!==R.COMMA&&this.curToken.type!==R.LPAREN&&this.curToken.type!==R.RPAREN&&this.curToken.type!==R.SEMICOLON&&this.curToken.type!==R.EQ&&this.curToken.type!==R.NEQ&&this.curToken.type!==R.GT&&this.curToken.type!==R.GTE&&this.curToken.type!==R.LT&&this.curToken.type!==R.LTE&&this.curToken.type!==R.DOT&&this.curToken.type!==R.STAR}expectNumber(e){if(this.curToken.type===R.NUMBER){const e=Number(this.curToken.value);return this.nextToken(),e}throw this.error(`Expected ${e}, got "${this.curToken.value}"`)}error(e){return new n(`Parse error at position ${this.curToken.position}: ${e}`,"PARSE_ERROR")}}function A(e){return new N(e).parseStatement()}class O{constructor(e){this.tables=new Map,this.completed=!1,this.engine=e}table(e){let t=this.tables.get(e);return t||(t=new g(this.engine,e),this.tables.set(e,t)),t}_markCompleted(){this.completed=!0}isCompleted(){return this.completed}}class S{constructor(e){this.engine=e}async execute(e){const t=new O(this.engine);await this.engine.beginTransaction();try{const s=await e(t);return await this.engine.commitTransaction(),t._markCompleted(),s}catch(e){if(await this.engine.rollbackTransaction(),e instanceof n)throw e;throw new n(`Transaction failed: ${e.message}`,"TRANSACTION_ERROR",e)}}}class D{constructor(){this.plugins=[],this.hooks=new Map}register(e){const t=e.priority??0,s=this.plugins.findIndex(e=>(e.priority??0)t.name===e);-1!==t&&(this.plugins[t].destroy(),this.plugins.splice(t,1))}getPlugins(){return[...this.plugins]}on(e,t){const s=this.hooks.get(e)??[];s.push(t),this.hooks.set(e,s)}off(e,t){const s=this.hooks.get(e);if(s){const e=s.indexOf(t);-1!==e&&s.splice(e,1)}}async trigger(e,...t){const s=this.hooks.get(e);if(s)for(const e of s)await e(...t)}destroy(){for(const e of this.plugins)try{e.destroy()}catch(e){}this.plugins=[],this.hooks.clear()}}class L{get version(){return this._version}constructor(e){this.ready=!1,this.tableCache=new Map,this.listeners=new Map,this.migrations=new Map,this.config=e,this.name=e.name??s.name,this.mode=e.mode??s.mode,this._version=e.version??s.version,this.pluginManager=new D}async init(){if(this.engine=this.createEngine(),await this.engine.open(this.name,this.version),this.executor=new I(this.engine),this.transactionManager=new S(this.engine),this.config.plugins)for(const e of this.config.plugins)this.pluginManager.register(e);this.ready=!0,this.config.onReady&&this.config.onReady(this)}isReady(){return this.ready}async defineTable(e,t){this.ensureReady();const s=w(e,t);await this.pluginManager.trigger("beforeCreateTable",s),await this.engine.createTable(s),await this.pluginManager.trigger("afterCreateTable",s),this.tableCache.delete(e)}table(e){this.ensureReady();let t=this.tableCache.get(e);return t||(t=new g(this.engine,e,this.executor),this.tableCache.set(e,t)),t}async dropTable(e){this.ensureReady(),await this.pluginManager.trigger("beforeDropTable",e),await this.engine.dropTable(e),await this.pluginManager.trigger("afterDropTable",e),this.tableCache.delete(e)}async getTableNames(){return this.ensureReady(),this.engine.getTableNames()}async query(e){this.ensureReady(),await this.pluginManager.trigger("beforeQuery",e);const t=A(e),s=await this.executor.execute(t);return await this.pluginManager.trigger("afterQuery",e,s),s}async transaction(e){this.ensureReady(),await this.pluginManager.trigger("beforeTransaction");const t=await this.transactionManager.execute(e);return await this.pluginManager.trigger("afterTransaction"),t}async exportTable(e){return this.ensureReady(),this.engine.find(e,{table:e})}async importTable(e,t){return this.ensureReady(),this.engine.insert(e,t)}async exportAll(){this.ensureReady();const e={},t=await this.engine.getTableNames();for(const s of t)e[s]=await this.engine.find(s,{table:s});return e}subscribe(e,t){const s=`change:${e}`;return this.listeners.has(s)||this.listeners.set(s,new Set),this.listeners.get(s).add(t),()=>this.listeners.get(s)?.delete(t)}emit(e,t){const s=`change:${e}`;this.listeners.get(s)?.forEach(e=>e(t))}addMigration(e,t){this.migrations.set(e,t)}async migrateTo(e){this.ensureReady();for(const[t,s]of[...this.migrations.entries()].sort((e,t)=>e[0]-t[0]))t<=e&&t>this.version&&(await s(this),this._version=t)}getPluginManager(){return this.pluginManager}on(e,t){this.pluginManager.on(e,t)}async close(){this.pluginManager.destroy(),await this.engine.close(),this.tableCache.clear(),this.ready=!1}getEngine(){return this.engine}createEngine(){const e=this.mode,t=this.config.diskEngine??"indexeddb";switch(e){case"memory":return new T;case"disk":return"opfs"===t?new d:new p;case"hybrid":return new m(t);default:throw new n(`Unknown storage mode: ${e}`,"CONFIG_ERROR")}}ensureReady(){if(!this.ready)throw new n("Database not initialized. Call await db.init() first.","DB_NOT_READY")}}const M=new class{constructor(){this.connections=new Map,this.refCount=new Map}async connect(e){const t=e.name,s=this.connections.get(t);if(s&&s.isReady()){const e=(this.refCount.get(t)??0)+1;return this.refCount.set(t,e),s}const n=new L(e);return await n.init(),this.connections.set(t,n),this.refCount.set(t,1),n.disconnect=async()=>{await this.release(t)},n}async release(e){const t=(this.refCount.get(e)??1)-1;if(t<=0){const t=this.connections.get(e);t&&(await t.close(),this.connections.delete(e)),this.refCount.delete(e)}else this.refCount.set(e,t)}async forceClose(e){const t=this.connections.get(e);t&&(await t.close(),this.connections.delete(e)),this.refCount.delete(e)}async closeAll(){for(const[,e]of this.connections)try{await e.close()}catch{}this.connections.clear(),this.refCount.clear()}getActiveConnections(){return Array.from(this.connections.keys())}getRefCount(e){return this.refCount.get(e)??0}},_=L;async function $(e){const t=new L(e);return await t.init(),t}_.connect=e=>M.connect(e),_.disconnect=e=>M.release(e),_.disconnectAll=()=>M.closeAll(),_.getActiveConnections=()=>M.getActiveConnections();const U={VERSION:i,version:i,create:$,MetonaSqlark:L,MeSqlark:L};"undefined"!=typeof window&&(window.MetonaSqlark=U,window.MeSqlark=U);const v=L;e.HybridEngine=m,e.IndexedDBEngine=p,e.MeSqlark=v,e.MemoryEngine=T,e.MetonaSqlark=L,e.OPFSEngine=d,e.Table=g,e.VERSION=i,e.api=U,e.create=$,e.default=U,e.parse=A,e.tokenize=function(e){const t=new C(e),s=[];let n=t.nextToken();for(;n.type!==R.EOF;)s.push(n),n=t.nextToken();return s.push(n),s},Object.defineProperty(e,"__esModule",{value:!0})}); diff --git a/src/query/executor.ts b/src/query/executor.ts index 28bbdfe..16b5682 100644 --- a/src/query/executor.ts +++ b/src/query/executor.ts @@ -46,15 +46,21 @@ export class QueryExecutor { } const hasGroupBy = !!(stmt.groupBy && stmt.groupBy.length > 0); + const hasAggregate = !hasGroupBy && this._hasAggregateColumn(stmt.columns); let rows: Record[]; if (!stmt.joins || stmt.joins.length === 0) { - const plan = compileStatement(hasGroupBy ? { ...stmt, columns: ['*'] } : stmt); + const plan = compileStatement(hasGroupBy || hasAggregate ? { ...stmt, columns: ['*'] } : stmt); rows = await this.engine.find(plan.table, plan); } else { rows = await this.executeJoinSelect(stmt); } + // 无 GROUP BY 但有聚合 → 计算单行聚合结果 + if (hasAggregate) { + rows = [this.computeSingleAggregate(rows, stmt)]; + } + if (hasGroupBy) rows = this.executeGroupBy(rows, stmt); if (stmt.distinct) rows = this.executeDistinct(rows); if (stmt.having && Object.keys(stmt.having).length > 0) { @@ -233,6 +239,32 @@ export class QueryExecutor { getEngine(): IStorageEngine { return this.engine; } + // =================================================================== + // 无 GROUP BY 时的聚合计算 + // =================================================================== + + /** 检查 SELECT 列列表中是否包含聚合函数 */ + private _hasAggregateColumn(columns: string[]): boolean { + return columns.some((col) => /^(COUNT|SUM|AVG|MIN|MAX)\(/i.test(col)); + } + + /** 计算单行聚合结果(无 GROUP BY) */ + private computeSingleAggregate(rows: Record[], stmt: SelectStatement): Record { + const result: Record = {}; + for (const colExpr of stmt.columns) { + if (colExpr === '*') continue; + const m = colExpr.match(/^(COUNT|SUM|AVG|MIN|MAX)\((.+?)\)(?:\s+AS\s+(\w+))?$/i); + if (m) { + const [, func, arg, alias] = m; + result[alias || colExpr] = this.computeAggregate(func.toUpperCase(), rows, arg.trim()); + } else { + // 非聚合列取第一行的值 + result[colExpr] = rows.length > 0 ? rows[0][colExpr] : null; + } + } + return result; + } + // =================================================================== // 子查询解析 // =================================================================== diff --git a/src/sql/parser.ts b/src/sql/parser.ts index 1815529..e41b44a 100644 --- a/src/sql/parser.ts +++ b/src/sql/parser.ts @@ -454,8 +454,8 @@ export class Parser { /** simple_cond → column op value | column IS [NOT] NULL | column [NOT] LIKE pattern * | column [NOT] IN (values) | NOT condition | (condition) */ private parseSimpleCondition(): WhereCondition { - // NOT expr - if (this.curTokenIs(TokenType.NOT)) { + // NOT expr(注意 NOT IN / NOT LIKE 不作为通用 NOT) + if (this.curTokenIs(TokenType.NOT) && !this._isNotInOrLike()) { this.nextToken(); const inner = this.parseSimpleCondition(); return { $not: inner } as unknown as WhereCondition; @@ -483,6 +483,36 @@ export class Parser { return result; } + // NOT LIKE / NOT IN(NOT 后紧跟 LIKE 或 IN) + if (this.curTokenIs(TokenType.NOT)) { + if (this.peekTokenIs(TokenType.IN)) { + // NOT IN + this.nextToken(); // skip NOT + this.nextToken(); // skip IN + this.expect(TokenType.LPAREN); + if (this.curTokenIs(TokenType.SELECT)) { + const subquery = this.parseSelect(); + this.expect(TokenType.RPAREN); + const result: WhereCondition = {}; + result[column] = { $nin: { $subquery: subquery } }; + return result; + } + const values = this.parseValueList(); + this.expect(TokenType.RPAREN); + const result: WhereCondition = {}; + result[column] = { $nin: values }; + return result; + } else if (this.peekTokenIs(TokenType.LIKE)) { + // NOT LIKE + this.nextToken(); // skip NOT + this.nextToken(); // skip LIKE + const pattern = this.parseValue(); + const result: WhereCondition = {}; + result[column] = { $not: { $like: pattern } }; + return result; + } + } + // LIKE if (this.curTokenIs(TokenType.LIKE)) { this.nextToken(); @@ -541,6 +571,11 @@ export class Parser { return result; } + /** 判断当前 NOT 是否为 NOT IN / NOT LIKE 的一部分(不应作为通用 NOT 处理) */ + private _isNotInOrLike(): boolean { + return this.peekTokenIs(TokenType.IN) || this.peekTokenIs(TokenType.LIKE); + } + private peekTokenIs(type: TokenType): boolean { return this.peekToken.type === type; } diff --git a/tests/connection-pool.test.ts b/tests/connection-pool.test.ts new file mode 100644 index 0000000..d7469ae --- /dev/null +++ b/tests/connection-pool.test.ts @@ -0,0 +1,114 @@ +/** + * v0.1.13 连接池测试 + * 覆盖 MetonaSqlark.connect / disconnect / disconnectAll / getActiveConnections + */ + +import { MetonaSqlark } from '../src/core'; +import '../src/connection-manager'; + +// =================================================================== +// 连接池基础 +// =================================================================== + +describe('v0.1.13 连接池', () => { + afterEach(async () => { + // 清理所有连接 + await (MetonaSqlark as any).disconnectAll?.(); + }); + + it('connect: 创建新实例', async () => { + const db = await (MetonaSqlark as any).connect({ name: 'pool-test-1', mode: 'memory' }); + expect(db).toBeDefined(); + expect(db.isReady()).toBe(true); + expect((MetonaSqlark as any).getActiveConnections()).toContain('pool-test-1'); + await (MetonaSqlark as any).disconnect('pool-test-1'); + }); + + it('connect: 同名数据库复用实例', async () => { + const db1 = await (MetonaSqlark as any).connect({ name: 'pool-test-2', mode: 'memory' }); + const db2 = await (MetonaSqlark as any).connect({ name: 'pool-test-2' }); + // 同一个实例 + expect(db1).toBe(db2); + await (MetonaSqlark as any).disconnect('pool-test-2'); + await (MetonaSqlark as any).disconnect('pool-test-2'); + }); + + it('connect: 不同名数据库不同实例', async () => { + const db1 = await (MetonaSqlark as any).connect({ name: 'pool-a', mode: 'memory' }); + const db2 = await (MetonaSqlark as any).connect({ name: 'pool-b', mode: 'memory' }); + expect(db1).not.toBe(db2); + const active = (MetonaSqlark as any).getActiveConnections(); + expect(active).toContain('pool-a'); + expect(active).toContain('pool-b'); + await (MetonaSqlark as any).disconnectAll(); + }); + + it('disconnect: 引用计数归零自动 close', async () => { + const db = await (MetonaSqlark as any).connect({ name: 'pool-close', mode: 'memory' }); + expect(db.isReady()).toBe(true); + + // 第二次 connect → refCount = 2 + await (MetonaSqlark as any).connect({ name: 'pool-close' }); + + // 第一次 disconnect → refCount = 1 + await (MetonaSqlark as any).disconnect('pool-close'); + expect(db.isReady()).toBe(true); // 仍然 alive + + // 第二次 disconnect → refCount = 0 → close + await (MetonaSqlark as any).disconnect('pool-close'); + expect(db.isReady()).toBe(false); // 已关闭 + }); + + it('disconnect: 引用计数 > 1 时不 close', async () => { + const db = await (MetonaSqlark as any).connect({ name: 'pool-ref', mode: 'memory' }); + // 3 次 connect + await (MetonaSqlark as any).connect({ name: 'pool-ref' }); + await (MetonaSqlark as any).connect({ name: 'pool-ref' }); + // 2 次 disconnect + await (MetonaSqlark as any).disconnect('pool-ref'); + await (MetonaSqlark as any).disconnect('pool-ref'); + expect(db.isReady()).toBe(true); // 还有 1 个引用 + // 最后一次 + await (MetonaSqlark as any).disconnect('pool-ref'); + expect(db.isReady()).toBe(false); + }); + + it('disconnectAll: 强制关闭所有', async () => { + const db1 = await (MetonaSqlark as any).connect({ name: 'pool-all-1', mode: 'memory' }); + const db2 = await (MetonaSqlark as any).connect({ name: 'pool-all-2', mode: 'memory' }); + + await (MetonaSqlark as any).disconnectAll(); + expect(db1.isReady()).toBe(false); + expect(db2.isReady()).toBe(false); + expect((MetonaSqlark as any).getActiveConnections()).toHaveLength(0); + }); + + it('getActiveConnections: 返回活跃连接列表', async () => { + expect((MetonaSqlark as any).getActiveConnections()).toEqual([]); + await (MetonaSqlark as any).connect({ name: 'pool-list-1', mode: 'memory' }); + await (MetonaSqlark as any).connect({ name: 'pool-list-2', mode: 'memory' }); + const active = (MetonaSqlark as any).getActiveConnections(); + expect(active).toContain('pool-list-1'); + expect(active).toContain('pool-list-2'); + expect(active.length).toBe(2); + await (MetonaSqlark as any).disconnectAll(); + }); + + it('connect 复用时数据库操作正常', async () => { + const db1 = await (MetonaSqlark as any).connect({ name: 'pool-data', mode: 'memory' }); + await db1.defineTable('test', { + id: { type: 'string', primaryKey: true }, + val: { type: 'number' }, + }); + await db1.table('test').insert({ id: 'a', val: 42 }); + + // 复用 + const db2 = await (MetonaSqlark as any).connect({ name: 'pool-data' }); + const rows = await db2.table('test').select().execute(); + expect(rows).toHaveLength(1); + expect(rows[0].val).toBe(42); + + await (MetonaSqlark as any).disconnect('pool-data'); + await (MetonaSqlark as any).disconnect('pool-data'); + }); +}); diff --git a/tests/foreign-key-cascade.test.ts b/tests/foreign-key-cascade.test.ts new file mode 100644 index 0000000..9f39f8f --- /dev/null +++ b/tests/foreign-key-cascade.test.ts @@ -0,0 +1,213 @@ +/** + * v0.1.13 外键级联测试 + * 覆盖 ON DELETE CASCADE / SET NULL / RESTRICT + */ + +import { MetonaSqlark } from '../src/core'; +import { parse } from '../src/sql/parser'; + +// =================================================================== +// SQL Parser 外键语法 +// =================================================================== + +describe('v0.1.13 外键级联 — Parser', () => { + it('REFERENCES 语法解析', () => { + const stmt = parse(`CREATE TABLE orders ( + id STRING PRIMARY KEY, + user_id STRING REFERENCES users(id) + )`); + expect(stmt.type).toBe('CREATE_TABLE'); + if (stmt.type === 'CREATE_TABLE') { + const col = stmt.columns.find((c) => c.name === 'user_id'); + expect(col).toBeTruthy(); + expect(col!.references).toBe('users.id'); + } + }); + + it('REFERENCES + ON DELETE CASCADE', () => { + const stmt = parse(`CREATE TABLE orders ( + id STRING PRIMARY KEY, + user_id STRING REFERENCES users(id) ON DELETE CASCADE + )`); + if (stmt.type === 'CREATE_TABLE') { + const col = stmt.columns.find((c) => c.name === 'user_id'); + expect(col!.onDelete).toBe('CASCADE'); + } + }); + + it('REFERENCES + ON DELETE SET NULL', () => { + const stmt = parse(`CREATE TABLE orders ( + id STRING PRIMARY KEY, + user_id STRING REFERENCES users(id) ON DELETE SET NULL + )`); + if (stmt.type === 'CREATE_TABLE') { + const col = stmt.columns.find((c) => c.name === 'user_id'); + expect(col!.onDelete).toBe('SET NULL'); + } + }); + + it('REFERENCES + ON UPDATE CASCADE', () => { + const stmt = parse(`CREATE TABLE orders ( + id STRING PRIMARY KEY, + user_id STRING REFERENCES users(id) ON UPDATE CASCADE + )`); + if (stmt.type === 'CREATE_TABLE') { + const col = stmt.columns.find((c) => c.name === 'user_id'); + expect(col!.onUpdate).toBe('CASCADE'); + } + }); + + it('REFERENCES + 同时 ON DELETE 和 ON UPDATE', () => { + const stmt = parse(`CREATE TABLE orders ( + id STRING PRIMARY KEY, + user_id STRING REFERENCES users(id) ON DELETE CASCADE ON UPDATE RESTRICT + )`); + if (stmt.type === 'CREATE_TABLE') { + const col = stmt.columns.find((c) => c.name === 'user_id'); + expect(col!.onDelete).toBe('CASCADE'); + expect(col!.onUpdate).toBe('RESTRICT'); + } + }); +}); + +// =================================================================== +// ON DELETE CASCADE 执行 +// =================================================================== + +describe('v0.1.13 外键级联 — ON DELETE CASCADE', () => { + let db: MetonaSqlark; + + beforeEach(async () => { + db = new MetonaSqlark({ name: 'fk-cascade-test', mode: 'memory' }); + await db.init(); + await db.defineTable('users', { + id: { type: 'string', primaryKey: true }, + name: { type: 'string', required: true }, + }); + await db.defineTable('orders', { + id: { type: 'string', primaryKey: true }, + user_id: { type: 'string', references: 'users.id', onDelete: 'CASCADE' }, + amount: { type: 'number' }, + }); + + await db.table('users').insertMany([ + { id: '1', name: 'Alice' }, + { id: '2', name: 'Bob' }, + ]); + await db.table('orders').insertMany([ + { id: 'o1', user_id: '1', amount: 100 }, + { id: 'o2', user_id: '1', amount: 200 }, + { id: 'o3', user_id: '2', amount: 50 }, + ]); + }); + + afterEach(async () => { await db.close(); }); + + it('删除用户 → 级联删除其订单', async () => { + // 删除 Alice + await db.table('users').delete().where({ id: '1' }).execute(); + + // Alice 被删除 + expect(await db.table('users').count()).toBe(1); + // Alice 的订单也被删除 + const orders = await db.table('orders').select().execute(); + expect(orders).toHaveLength(1); + expect(orders[0].user_id).toBe('2'); + }); + + it('删除没有订单的用户 → 不会级联删除', async () => { + // 先查总数 + const userCount = await db.table('users').count(); + const orderCount = await db.table('orders').count(); + + // 删除一个没有任何订单的用户(创建临时用户) + await db.table('users').insert({ id: '3', name: 'Eve' }); + await db.table('users').delete().where({ id: '3' }).execute(); + + // 订单应该不变 + expect(await db.table('orders').count()).toBe(orderCount); + }); + + it('SQL DELETE 触发级联', async () => { + await db.query("DELETE FROM users WHERE id = '2'"); + const orders = await db.table('orders').select().execute(); + expect(orders).toHaveLength(2); // 只剩 Alice 的 2 个订单 + for (const o of orders) { + expect(o.user_id).toBe('1'); + } + }); +}); + +// =================================================================== +// ON DELETE SET NULL +// =================================================================== + +describe('v0.1.13 外键级联 — ON DELETE SET NULL', () => { + let db: MetonaSqlark; + + beforeEach(async () => { + db = new MetonaSqlark({ name: 'fk-setnull-test', mode: 'memory' }); + await db.init(); + await db.defineTable('users', { + id: { type: 'string', primaryKey: true }, + name: { type: 'string', required: true }, + }); + await db.defineTable('orders', { + id: { type: 'string', primaryKey: true }, + user_id: { type: 'string', references: 'users.id', onDelete: 'SET NULL' }, + amount: { type: 'number' }, + }); + + await db.table('users').insert({ id: '1', name: 'Alice' }); + await db.table('orders').insert({ id: 'o1', user_id: '1', amount: 100 }); + }); + + afterEach(async () => { await db.close(); }); + + it('删除用户 → 订单 user_id 设为 NULL', async () => { + await db.table('users').delete().where({ id: '1' }).execute(); + const orders = await db.table('orders').select().execute(); + expect(orders).toHaveLength(1); + expect(orders[0].user_id).toBeNull(); + }); +}); + +// =================================================================== +// ON DELETE RESTRICT +// =================================================================== + +describe('v0.1.13 外键级联 — ON DELETE RESTRICT', () => { + let db: MetonaSqlark; + + beforeEach(async () => { + db = new MetonaSqlark({ name: 'fk-restrict-test', mode: 'memory' }); + await db.init(); + await db.defineTable('users', { + id: { type: 'string', primaryKey: true }, + name: { type: 'string', required: true }, + }); + await db.defineTable('orders', { + id: { type: 'string', primaryKey: true }, + user_id: { type: 'string', references: 'users.id', onDelete: 'RESTRICT' }, + amount: { type: 'number' }, + }); + + await db.table('users').insert({ id: '1', name: 'Alice' }); + await db.table('orders').insert({ id: 'o1', user_id: '1', amount: 100 }); + }); + + afterEach(async () => { await db.close(); }); + + it('RESTRICT 模式下删除用户 → 不级联(保留孤儿订单)', async () => { + await db.table('users').delete().where({ id: '1' }).execute(); + // 订单仍然存在 + const orders = await db.table('orders').select().execute(); + expect(orders).toHaveLength(1); + expect(orders[0].user_id).toBe('1'); + }); + + it('无 references 的列不受影响', async () => { + await db.table('users').delete().where({ id: '1' }).execute(); + expect(await db.table('orders').count()).toBe(1); + }); +}); diff --git a/tests/subquery.test.ts b/tests/subquery.test.ts new file mode 100644 index 0000000..055e66a --- /dev/null +++ b/tests/subquery.test.ts @@ -0,0 +1,136 @@ +/** + * v0.1.13 子查询测试 + * 覆盖 SQL Parser 子查询解析 + Executor 子查询执行 + */ + +import { MetonaSqlark } from '../src/core'; +import { parse } from '../src/sql/parser'; + +// =================================================================== +// SQL 子查询解析 +// =================================================================== + +describe('v0.1.13 子查询 — Parser', () => { + it('IN 子查询解析', () => { + const stmt = parse('SELECT * FROM users WHERE id IN (SELECT user_id FROM orders)'); + expect(stmt.type).toBe('SELECT'); + }); + + it('NOT IN 子查询解析', () => { + const stmt = parse('SELECT * FROM users WHERE id NOT IN (SELECT user_id FROM orders)'); + expect(stmt.type).toBe('SELECT'); + }); + + it('标量子查询解析 (eq)', () => { + const stmt = parse('SELECT * FROM users WHERE age = (SELECT AVG(age) FROM users)'); + expect(stmt.type).toBe('SELECT'); + }); + + it('标量子查询解析 (gt)', () => { + const stmt = parse('SELECT * FROM users WHERE age > (SELECT AVG(age) FROM users)'); + expect(stmt.type).toBe('SELECT'); + }); + + it('子查询带 WHERE', () => { + const stmt = parse("SELECT * FROM users WHERE id IN (SELECT user_id FROM orders WHERE amount > 100)"); + expect(stmt.type).toBe('SELECT'); + }); + + it('子查询带 JOIN', () => { + const stmt = parse(`SELECT * FROM users u + WHERE u.id IN (SELECT o.user_id FROM orders o INNER JOIN products p ON o.product = p.name)`); + expect(stmt.type).toBe('SELECT'); + }); +}); + +// =================================================================== +// 子查询执行 +// =================================================================== + +describe('v0.1.13 子查询 — Executor', () => { + let db: MetonaSqlark; + + beforeEach(async () => { + db = new MetonaSqlark({ name: 'subquery-test', mode: 'memory' }); + await db.init(); + await db.defineTable('users', { + id: { type: 'string', primaryKey: true }, + name: { type: 'string', required: true }, + age: { type: 'number', default: 0 }, + }); + await db.defineTable('orders', { + id: { type: 'string', primaryKey: true }, + user_id: { type: 'string' }, + amount: { type: 'number' }, + }); + + // Seed data + await db.table('users').insertMany([ + { id: '1', name: 'Alice', age: 30 }, + { id: '2', name: 'Bob', age: 25 }, + { id: '3', name: 'Charlie', age: 35 }, + { id: '4', name: 'Diana', age: 20 }, + ]); + await db.table('orders').insertMany([ + { id: 'o1', user_id: '1', amount: 100 }, + { id: 'o2', user_id: '1', amount: 200 }, + { id: 'o3', user_id: '2', amount: 50 }, + ]); + }); + + afterEach(async () => { await db.close(); }); + + it('IN 子查询: 有订单的用户', async () => { + const rows = await db.query( + "SELECT * FROM users WHERE id IN (SELECT user_id FROM orders)" + ) as Record[]; + expect(rows).toHaveLength(2); // Alice + Bob + const names = rows.map((r) => r.name); + expect(names).toContain('Alice'); + expect(names).toContain('Bob'); + }); + + it('NOT IN 子查询: 无订单的用户', async () => { + const rows = await db.query( + "SELECT * FROM users WHERE id NOT IN (SELECT user_id FROM orders)" + ) as Record[]; + expect(rows).toHaveLength(2); // Charlie + Diana + const names = rows.map((r) => r.name); + expect(names).toContain('Charlie'); + expect(names).toContain('Diana'); + }); + + it('IN 子查询 + WHERE 过滤', async () => { + const rows = await db.query( + "SELECT * FROM users WHERE id IN (SELECT user_id FROM orders WHERE amount > 100)" + ) as Record[]; + expect(rows).toHaveLength(1); // 只有 Alice 有 >100 订单 + expect(rows[0].name).toBe('Alice'); + }); + + it('标量子查询: 年龄大于平均值的用户', async () => { + const rows = await db.query( + "SELECT * FROM users WHERE age > (SELECT AVG(age) FROM users)" + ) as Record[]; + // AVG = (30+25+35+20)/4 = 27.5 → age > 27.5: Alice(30), Charlie(35) + expect(rows).toHaveLength(2); + const names = rows.map((r) => r.name); + expect(names).toContain('Alice'); + expect(names).toContain('Charlie'); + }); + + it('标量子查询: 年龄等于最大值的用户', async () => { + const rows = await db.query( + "SELECT * FROM users WHERE age = (SELECT MAX(age) FROM users)" + ) as Record[]; + expect(rows).toHaveLength(1); + expect(rows[0].name).toBe('Charlie'); + }); + + it('空子查询结果处理', async () => { + const rows = await db.query( + "SELECT * FROM users WHERE id IN (SELECT user_id FROM orders WHERE amount > 9999)" + ) as Record[]; + expect(rows).toHaveLength(0); + }); +}); diff --git a/tests/transaction-rollback.test.ts b/tests/transaction-rollback.test.ts new file mode 100644 index 0000000..d14ff6f --- /dev/null +++ b/tests/transaction-rollback.test.ts @@ -0,0 +1,213 @@ +/** + * v0.1.13 事务回滚测试 + * 覆盖 Memory / IndexedDB / Hybrid 三种引擎的 begin/commit/rollback + */ + +import { MetonaSqlark } from '../src/core'; +import 'fake-indexeddb/auto'; + +let idbCounter = 0; + +// =================================================================== +// Memory 引擎事务回滚 +// =================================================================== + +describe('v0.1.13 事务回滚 — Memory 模式', () => { + let db: MetonaSqlark; + + beforeEach(async () => { + db = new MetonaSqlark({ name: 'tx-test-mem', mode: 'memory' }); + await db.init(); + await db.defineTable('users', { + id: { type: 'string', primaryKey: true }, + name: { type: 'string', required: true }, + balance: { type: 'number', default: 0 }, + }); + }); + + afterEach(async () => { await db.close(); }); + + it('commit: 事务成功后数据持久化', async () => { + await db.transaction(async (trx) => { + await trx.table('users').insert({ id: '1', name: 'Alice', balance: 100 }); + await trx.table('users').insert({ id: '2', name: 'Bob', balance: 200 }); + }); + const rows = await db.table('users').select().execute(); + expect(rows).toHaveLength(2); + }); + + it('rollback: 事务失败后数据恢复', async () => { + // 先插入一条 + await db.table('users').insert({ id: '1', name: 'Alice', balance: 100 }); + + try { + await db.transaction(async (trx) => { + await trx.table('users').insert({ id: '2', name: 'Bob', balance: 200 }); + // 故意触发重复主键错误 + await trx.table('users').insert({ id: '2', name: 'Duplicate', balance: 0 }); + }); + } catch { /* expected */ } + + // 回滚后:只有最初的那条数据 + const rows = await db.table('users').select().execute(); + expect(rows).toHaveLength(1); + expect(rows[0].name).toBe('Alice'); + }); + + it('rollback: 更新操作回滚', async () => { + await db.table('users').insert({ id: '1', name: 'Alice', balance: 100 }); + + try { + await db.transaction(async (trx) => { + await trx.table('users').update({ balance: 999 }).where({ id: '1' }).execute(); + throw new Error('手动失败'); + }); + } catch { /* expected */ } + + const rows = await db.table('users').select().execute(); + expect(rows[0].balance).toBe(100); // 回滚到 100 + }); + + it('rollback: 删除操作回滚', async () => { + await db.table('users').insert({ id: '1', name: 'Alice', balance: 100 }); + await db.table('users').insert({ id: '2', name: 'Bob', balance: 200 }); + + try { + await db.transaction(async (trx) => { + await trx.table('users').delete().where({ id: '1' }).execute(); + throw new Error('手动失败'); + }); + } catch { /* expected */ } + + const rows = await db.table('users').select().execute(); + expect(rows).toHaveLength(2); // 两条都在 + }); + + it('rollback: 混合操作回滚', async () => { + await db.table('users').insert({ id: '1', name: 'Alice', balance: 100 }); + await db.table('users').insert({ id: '2', name: 'Bob', balance: 200 }); + + try { + await db.transaction(async (trx) => { + await trx.table('users').insert({ id: '3', name: 'Charlie', balance: 300 }); + await trx.table('users').update({ balance: 0 }).where({ id: '1' }).execute(); + await trx.table('users').delete().where({ id: '2' }).execute(); + throw new Error('手动失败'); + }); + } catch { /* expected */ } + + const rows = await db.table('users').select().execute(); + expect(rows).toHaveLength(2); + expect(rows.find((r: any) => r.id === '1')!.balance).toBe(100); + expect(rows.find((r: any) => r.id === '2')).toBeTruthy(); + }); + + it('事务返回结果', async () => { + const result = await db.transaction(async (trx) => { + await trx.table('users').insert({ id: '1', name: 'Alice' }); + return 'OK'; + }); + expect(result).toBe('OK'); + expect(await db.table('users').count()).toBe(1); + }); + + it('事务错误抛出 DatabaseError', async () => { + await expect(db.transaction(async () => { + throw new Error('custom error'); + })).rejects.toThrow('Transaction failed'); + }); +}); + +// =================================================================== +// IndexedDB 引擎事务回滚 +// =================================================================== + +describe('v0.1.13 事务回滚 — Disk 模式 (IndexedDB)', () => { + let db: MetonaSqlark; + let dbName: string; + + beforeEach(async () => { + dbName = `tx-disk-${++idbCounter}`; + db = new MetonaSqlark({ name: dbName, mode: 'disk', diskEngine: 'indexeddb' }); + await db.init(); + await db.defineTable('users', { + id: { type: 'string', primaryKey: true }, + name: { type: 'string', required: true }, + }); + }); + + afterEach(async () => { + await db.close(); + try { indexedDB.deleteDatabase(dbName); } catch {} + }); + + it('commit: 事务成功数据持久化', async () => { + await db.transaction(async (trx) => { + await trx.table('users').insert({ id: '1', name: 'Alice' }); + await trx.table('users').insert({ id: '2', name: 'Bob' }); + }); + const rows = await db.table('users').select().execute(); + expect(rows).toHaveLength(2); + }); + + it('rollback: 事务失败数据恢复', async () => { + await db.table('users').insert({ id: '1', name: 'Alice' }); + + try { + await db.transaction(async (trx) => { + await trx.table('users').insert({ id: '2', name: 'Bob' }); + await trx.table('users').insert({ id: '2', name: 'Dup' }); + }); + } catch { /* expected */ } + + const rows = await db.table('users').select().execute(); + expect(rows).toHaveLength(1); + }); +}); + +// =================================================================== +// Hybrid 引擎事务回滚 +// =================================================================== + +describe('v0.1.13 事务回滚 — Hybrid 模式', () => { + let db: MetonaSqlark; + let dbName: string; + + beforeEach(async () => { + dbName = `tx-hybrid-${++idbCounter}`; + db = new MetonaSqlark({ name: dbName, mode: 'hybrid', diskEngine: 'indexeddb' }); + await db.init(); + await db.defineTable('users', { + id: { type: 'string', primaryKey: true }, + name: { type: 'string', required: true }, + }); + }); + + afterEach(async () => { + await db.close(); + try { indexedDB.deleteDatabase(dbName); } catch {} + }); + + it('commit: 事务成功', async () => { + await db.transaction(async (trx) => { + await trx.table('users').insert({ id: '1', name: 'Alice' }); + }); + expect(await db.table('users').count()).toBe(1); + }); + + it('rollback: 事务失败回滚', async () => { + await db.table('users').insert({ id: '1', name: 'Alice' }); + + try { + await db.transaction(async (trx) => { + await trx.table('users').insert({ id: '2', name: 'Bob' }); + await trx.table('users').delete().where({ id: '1' }).execute(); + throw new Error('fail'); + }); + } catch { /* expected */ } + + const rows = await db.table('users').select().execute(); + expect(rows).toHaveLength(1); + expect(rows[0].id).toBe('1'); + }); +});