typesql-cli 0.10.1 → 0.10.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"code-generator.js","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/code-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code-generator.js","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/code-generator.ts"],"names":[],"mappings":"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"}
@@ -12,10 +12,21 @@ type TableInfo = {
12
12
  dflt_value: string;
13
13
  pk: number;
14
14
  };
15
+ type TableAndType = {
16
+ name: string;
17
+ type: 'T' | 'VT';
18
+ };
15
19
  export declare function getTableInfo(db: DatabaseType | LibSqlDatabase, schema: string, table: string): TableInfo[];
16
20
  export declare function getIndexInfo(db: DatabaseType | LibSqlDatabase, schema: string, table: string): Map<string, true>;
17
- export declare function getTables(db: DatabaseType | LibSqlDatabase, schema: string): string[];
21
+ export declare function getTables(db: DatabaseType | LibSqlDatabase, schema: string): TableAndType[];
18
22
  export declare function selectSqliteTablesFromSchema(db: DatabaseType | LibSqlDatabase): Either<TypeSqlError, Table[]>;
19
23
  export declare function explainSql(db: DatabaseType | LibSqlDatabase, sql: string): Either<TypeSqlError, boolean>;
24
+ export type ForeignKeyInfo = {
25
+ fromTable: string;
26
+ toTable: string;
27
+ fromColumn: string;
28
+ toColumn: string;
29
+ };
30
+ export declare function loadForeignKeys(db: DatabaseType | LibSqlDatabase): Either<TypeSqlError, ForeignKeyInfo[]>;
20
31
  export {};
21
32
  //# sourceMappingURL=query-executor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query-executor.d.ts","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/query-executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAuB,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAiB,EAAE,KAAK,QAAQ,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,QAAQ,CAAC;AAGzD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,GAAG,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,CAS3J;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,YAAY,GAAG,cAAc,GAAG,MAAM,CAAC,YAAY,EAAE,YAAY,EAAE,CAAC,CAgBpG;AAED,KAAK,SAAS,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,wBAAgB,YAAY,CAAC,EAAE,EAAE,YAAY,GAAG,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,CAM1G;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,YAAY,GAAG,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,qBAiB5F;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,YAAY,GAAG,cAAc,EAAE,MAAM,EAAE,MAAM,YAO1E;AA2CD,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,YAAY,GAAG,cAAc,GAAG,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,CAqB7G;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,YAAY,GAAG,cAAc,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAYxG"}
1
+ {"version":3,"file":"query-executor.d.ts","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/query-executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAuB,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAiB,EAAE,KAAK,QAAQ,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,QAAQ,CAAC;AAGzD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,GAAG,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,CAS3J;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,YAAY,GAAG,cAAc,GAAG,MAAM,CAAC,YAAY,EAAE,YAAY,EAAE,CAAC,CAgBpG;AAED,KAAK,SAAS,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,KAAK,YAAY,GAAG;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,GAAG,GAAG,IAAI,CAAA;CAChB,CAAA;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,YAAY,GAAG,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,CAM1G;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,YAAY,GAAG,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,qBAiB5F;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,YAAY,GAAG,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,CAO3F;AA8DD,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,YAAY,GAAG,cAAc,GAAG,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,CAqB7G;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,YAAY,GAAG,cAAc,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAYxG;AAED,MAAM,MAAM,cAAc,GAAG;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CACjB,CAAA;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,YAAY,GAAG,cAAc,GAAG,MAAM,CAAC,YAAY,EAAE,cAAc,EAAE,CAAC,CAsBzG"}
@@ -10,6 +10,7 @@ exports.getIndexInfo = getIndexInfo;
10
10
  exports.getTables = getTables;
11
11
  exports.selectSqliteTablesFromSchema = selectSqliteTablesFromSchema;
12
12
  exports.explainSql = explainSql;
13
+ exports.loadForeignKeys = loadForeignKeys;
13
14
  const Either_1 = require("fp-ts/lib/Either");
14
15
  const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
15
16
  function createSqliteClient(client, databaseUri, attachList) {
@@ -66,11 +67,14 @@ function getIndexInfo(db, schema, table) {
66
67
  function getTables(db, schema) {
67
68
  const tables = db
68
69
  //@ts-ignore
69
- .prepare(`SELECT name FROM ${schema}.sqlite_schema`)
70
+ .prepare(`SELECT name, rootpage FROM ${schema}.sqlite_schema`)
70
71
  .all()
71
- .map((res) => res.name);
72
+ .map((res) => ({ name: res.name, type: getTableType(res.rootpage) }));
72
73
  return tables;
73
74
  }
75
+ function getTableType(rootpage) {
76
+ return rootpage != null && rootpage !== 0 ? 'T' : 'VT';
77
+ }
74
78
  function checkAffinity(type) {
75
79
  if (type.includes('INT')) {
76
80
  return 'INTEGER';
@@ -88,17 +92,19 @@ function checkAffinity(type) {
88
92
  }
89
93
  function loadDbSchemaForSchema(db, schema = '') {
90
94
  const tables = getTables(db, schema);
91
- const result = tables.flatMap((tableName) => {
92
- const tableInfoList = getTableInfo(db, schema, tableName);
93
- const tableIndexInfo = getIndexInfo(db, schema, tableName);
95
+ const result = tables.flatMap(({ name, type }) => {
96
+ const tableInfoList = getTableInfo(db, schema, name);
97
+ const tableIndexInfo = getIndexInfo(db, schema, name);
94
98
  const columnSchema = tableInfoList.map((tableInfo) => {
99
+ const isUni = tableIndexInfo.get(tableInfo.name) != null;
100
+ const isVT = type == 'VT';
95
101
  const col = {
96
102
  column: tableInfo.name,
97
- column_type: checkAffinity(tableInfo.type),
98
- columnKey: tableInfo.pk >= 1 ? 'PRI' : tableIndexInfo.get(tableInfo.name) != null ? 'UNI' : '',
103
+ column_type: isVT ? '?' : checkAffinity(tableInfo.type),
104
+ columnKey: getColumnKey(tableInfo.pk, isUni, isVT),
99
105
  notNull: tableInfo.notnull === 1 || tableInfo.pk >= 1,
100
106
  schema,
101
- table: tableName
107
+ table: name
102
108
  };
103
109
  if (tableInfo.dflt_value != null) {
104
110
  col.defaultValue = tableInfo.dflt_value;
@@ -109,6 +115,18 @@ function loadDbSchemaForSchema(db, schema = '') {
109
115
  });
110
116
  return (0, Either_1.right)(result);
111
117
  }
118
+ function getColumnKey(pk, isUni, isVT) {
119
+ if (pk >= 1) {
120
+ return 'PRI';
121
+ }
122
+ if (isUni) {
123
+ return 'UNI';
124
+ }
125
+ if (isVT) {
126
+ return 'VT';
127
+ }
128
+ return '';
129
+ }
112
130
  function selectSqliteTablesFromSchema(db) {
113
131
  const sql = `
114
132
  SELECT
@@ -145,4 +163,27 @@ function explainSql(db, sql) {
145
163
  });
146
164
  }
147
165
  }
166
+ function loadForeignKeys(db) {
167
+ const sql = `
168
+ SELECT
169
+ tab.name as fromTable,
170
+ fk.'table' as toTable,
171
+ fk.'from' as fromColumn,
172
+ fk.'to' as toColumn
173
+ FROM sqlite_schema tab
174
+ INNER JOIN pragma_foreign_key_list(tab.name) fk
175
+ WHERE type = 'table'`;
176
+ try {
177
+ //@ts-ignore
178
+ const result = db.prepare(sql).all();
179
+ return (0, Either_1.right)(result);
180
+ }
181
+ catch (e) {
182
+ const err = e;
183
+ return (0, Either_1.left)({
184
+ name: err.name,
185
+ description: err.message
186
+ });
187
+ }
188
+ }
148
189
  //# sourceMappingURL=query-executor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"query-executor.js","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/query-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query-executor.js","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/query-executor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"traverse.d.ts","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/traverse.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,WAAW,EAYX,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAa,eAAe,EAA2C,MAAM,+BAA+B,CAAC;AAGpI,OAAO,EAKN,KAAK,eAAe,EAGpB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,KAAK,MAAM,EAAe,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AA2B7C,wBAAgB,2BAA2B,CAC1C,QAAQ,EAAE,eAAe,EACzB,eAAe,EAAE,eAAe,GAC9B,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,CAWvC;AA6qCD,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,CAehF;AA8BD,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,SAAS,EAAE,WA2B5F"}
1
+ {"version":3,"file":"traverse.d.ts","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/traverse.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,WAAW,EAaX,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAa,eAAe,EAA2C,MAAM,+BAA+B,CAAC;AAGpI,OAAO,EAKN,KAAK,eAAe,EAGpB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,KAAK,MAAM,EAAe,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AA2B7C,wBAAgB,2BAA2B,CAC1C,QAAQ,EAAE,eAAe,EACzB,eAAe,EAAE,eAAe,GAC9B,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,CAWvC;AA4vCD,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,CAehF;AA8BD,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,SAAS,EAAE,WA2B5F"}
@@ -44,7 +44,7 @@ function tryTraverse_Sql_stmtContext(sql_stmt, traverseContext) {
44
44
  });
45
45
  }
46
46
  }
47
- function traverse_select_stmt(select_stmt, traverseContext, subQuery = false, recursive = false, recursiveNames = []) {
47
+ function traverse_select_stmt(select_stmt, traverseContext, subQuery = false, recursive = false, recursiveNames = [], withTable) {
48
48
  const common_table_stmt = select_stmt.common_table_stmt();
49
49
  if (common_table_stmt) {
50
50
  const recursive = common_table_stmt.RECURSIVE_() != null;
@@ -53,17 +53,7 @@ function traverse_select_stmt(select_stmt, traverseContext, subQuery = false, re
53
53
  const table_name = common_table_expression.table_name();
54
54
  const recursiveNames = common_table_expression.column_name_list().map((column_name) => column_name.getText());
55
55
  const select_stmt = common_table_expression.select_stmt();
56
- const select_stmt_result = traverse_select_stmt(select_stmt, Object.assign(Object.assign({}, traverseContext), { subQuery: true }), subQuery, recursive, recursiveNames);
57
- select_stmt_result.columns.forEach((col, index) => {
58
- var _a;
59
- traverseContext.withSchema.push({
60
- table: table_name.getText(),
61
- columnName: recursive ? ((_a = recursiveNames[index]) !== null && _a !== void 0 ? _a : col.name) : col.name,
62
- columnType: col.type,
63
- columnKey: '',
64
- notNull: col.notNull
65
- });
66
- });
56
+ traverse_select_stmt(select_stmt, Object.assign(Object.assign({}, traverseContext), { subQuery: true }), subQuery, recursive, recursiveNames, table_name.getText());
67
57
  traverseContext.dynamicSqlInfo2.with.push({
68
58
  fragment: extractOriginalSql(common_table_expression),
69
59
  relationName: table_name.getText(),
@@ -73,11 +63,14 @@ function traverse_select_stmt(select_stmt, traverseContext, subQuery = false, re
73
63
  }
74
64
  const [mainSelect, ...unionSelect] = select_stmt.select_core_list();
75
65
  const mainQueryResult = traverse_select_core(mainSelect, traverseContext, subQuery, recursive, recursiveNames);
76
- const fromColumns = recursive
77
- ? mainQueryResult.columns.map((col, index) => mapTypeAndNullInferToColumnDef(col, recursiveNames[index]))
78
- : traverseContext.fromColumns;
66
+ if (withTable) {
67
+ for (const [index, col] of mainQueryResult.columns.entries()) {
68
+ const colDef = mapTypeAndNullInferToColumnDef(col, recursiveNames[index], withTable);
69
+ traverseContext.withSchema.push(colDef);
70
+ }
71
+ }
79
72
  unionSelect.forEach((select_core) => {
80
- const unionResult = traverse_select_core(select_core, Object.assign(Object.assign({}, traverseContext), { fromColumns }), subQuery, recursive);
73
+ const unionResult = traverse_select_core(select_core, traverseContext, subQuery, recursive);
81
74
  unionResult.columns.forEach((col, colIndex) => {
82
75
  mainQueryResult.columns[colIndex].table = '';
83
76
  traverseContext.constraints.push({
@@ -108,7 +101,7 @@ function traverse_select_stmt(select_stmt, traverseContext, subQuery = false, re
108
101
  hasOrderByParameter = true;
109
102
  }
110
103
  else {
111
- traverse_expr(expr, Object.assign(Object.assign({}, traverseContext), { fromColumns: fromColumns.concat(selectColumns) }));
104
+ traverse_expr(expr, Object.assign(Object.assign({}, traverseContext), { fromColumns: mainQueryResult.fromColumns.concat(selectColumns) }));
112
105
  }
113
106
  });
114
107
  if (hasOrderByParameter) {
@@ -149,14 +142,14 @@ function traverse_select_stmt(select_stmt, traverseContext, subQuery = false, re
149
142
  }
150
143
  return selectResult;
151
144
  }
152
- function mapTypeAndNullInferToColumnDef(col, name) {
145
+ function mapTypeAndNullInferToColumnDef(col, name, tableName) {
153
146
  return {
154
147
  columnName: name !== null && name !== void 0 ? name : col.name,
155
148
  columnType: col.type,
156
149
  notNull: col.notNull,
157
150
  columnKey: '',
158
- table: col.table,
159
- tableAlias: col.table
151
+ table: tableName !== null && tableName !== void 0 ? tableName : col.table,
152
+ tableAlias: ''
160
153
  };
161
154
  }
162
155
  function traverse_select_core(select_core, traverseContext, subQuery = false, recursive = false, recursiveName) {
@@ -272,7 +265,7 @@ function extractRelationsAndParams(expr, fromColumns, parameters) {
272
265
  .filter((expr) => !expr.isSubQuery)
273
266
  .map((colRef) => {
274
267
  const fieldName = (0, select_columns_1.splitName)(colRef.expr.parentCtx.getText());
275
- const column = (0, select_columns_1.findColumn)(fieldName, fromColumns);
268
+ const column = (0, select_columns_1.findColumnOrVT)(fieldName, fromColumns);
276
269
  return column.tableAlias || column.table;
277
270
  });
278
271
  const expressionList = (0, select_columns_1.getExpressions)(expr, sqlite_1.ExprContext);
@@ -288,19 +281,22 @@ function extractRelationsAndParams(expr, fromColumns, parameters) {
288
281
  function traverse_table_or_subquery(table_or_subquery_list, join_constraint_list, join_operator_list, traverseContext) {
289
282
  const allFields = [];
290
283
  table_or_subquery_list.forEach((table_or_subquery, index) => {
291
- var _a, _b, _c, _d, _e;
284
+ var _a, _b, _c, _d, _e, _f;
292
285
  const numParamsBefore = traverseContext.parameters.length;
293
286
  const isLeftJoin = index > 0 && join_operator_list ? ((_a = join_operator_list[index - 1]) === null || _a === void 0 ? void 0 : _a.LEFT_()) != null : false;
294
- const table_name = table_or_subquery.table_name();
287
+ const table_function_name = table_or_subquery.table_function_name();
288
+ const table_name = table_or_subquery.table_name() || table_function_name;
295
289
  const table_alias_temp = ((_b = table_or_subquery.table_alias()) === null || _b === void 0 ? void 0 : _b.getText()) || '';
296
290
  let tableOrSubqueryFields = [];
291
+ const virtualTableMatch = /\('.*'\)/; //ex. FROM email('fts5')
297
292
  //grammar error: select * from table1 inner join table2....; inner is parsed as table_alias
298
293
  const table_alias = table_alias_temp.toLowerCase() === 'left' ||
299
294
  table_alias_temp.toLowerCase() === 'right' ||
300
295
  table_alias_temp.toLowerCase() === 'full' ||
301
296
  table_alias_temp.toLowerCase() === 'outer' ||
302
297
  table_alias_temp.toLowerCase() === 'inner' ||
303
- table_alias_temp.toLowerCase() === 'cross'
298
+ table_alias_temp.toLowerCase() === 'cross' ||
299
+ table_alias_temp.match(virtualTableMatch)
304
300
  ? ''
305
301
  : table_alias_temp;
306
302
  const join_constraint = join_constraint_list && index > 0 ? join_constraint_list[index - 1] : undefined;
@@ -314,6 +310,16 @@ function traverse_table_or_subquery(table_or_subquery_list, join_constraint_list
314
310
  prefix: schema
315
311
  };
316
312
  tableOrSubqueryFields = (0, select_columns_1.filterColumns)(traverseContext.dbSchema, traverseContext.withSchema, table_alias, tableName);
313
+ if (table_function_name) {
314
+ const table_function_expr = table_or_subquery.expr(0);
315
+ if (table_function_expr) {
316
+ const exprType = traverse_expr(table_function_expr, traverseContext);
317
+ if (exprType.name === '?' && ((_e = tableOrSubqueryFields[0]) === null || _e === void 0 ? void 0 : _e.columnKey) === 'VT') {
318
+ exprType.type.type = 'TEXT';
319
+ exprType.notNull = true;
320
+ }
321
+ }
322
+ }
317
323
  const usingFields = (join_constraint === null || join_constraint === void 0 ? void 0 : join_constraint.USING_()) ? join_constraint === null || join_constraint === void 0 ? void 0 : join_constraint.column_name_list().map((column_name) => column_name.getText()) : [];
318
324
  const filteredFields = usingFields.length > 0 ? filterUsingFields(tableOrSubqueryFields, usingFields) : tableOrSubqueryFields;
319
325
  if (isLeftJoin) {
@@ -344,7 +350,7 @@ function traverse_table_or_subquery(table_or_subquery_list, join_constraint_list
344
350
  tableOrSubqueryFields = traverse_table_or_subquery(table_or_subquery_list2, null, null, traverseContext);
345
351
  allFields.push(...tableOrSubqueryFields);
346
352
  }
347
- const idColumn = (_e = tableOrSubqueryFields.find((field) => field.columnKey === 'PRI')) === null || _e === void 0 ? void 0 : _e.columnName;
353
+ const idColumn = (_f = tableOrSubqueryFields.find((field) => field.columnKey === 'PRI')) === null || _f === void 0 ? void 0 : _f.columnName;
348
354
  const relation = {
349
355
  name: asAlias ? table_alias : tableOrSubqueryName,
350
356
  alias: table_alias,
@@ -700,6 +706,58 @@ function traverse_expr(expr, traverseContext) {
700
706
  table: ''
701
707
  };
702
708
  }
709
+ if (function_name === 'highlight' || function_name === 'snippet') {
710
+ const functionType = (0, collect_constraints_1.freshVar)(expr.getText(), 'TEXT');
711
+ const param0Expr = expr.expr(0);
712
+ const param1Expr = expr.expr(1);
713
+ const param1Type = traverse_expr(param1Expr, traverseContext);
714
+ param1Type.notNull = true;
715
+ traverseContext.constraints.push({
716
+ expression: param1Expr.getText(),
717
+ type1: (0, collect_constraints_1.freshVar)(param1Expr.getText(), 'INTEGER'),
718
+ type2: param1Type.type
719
+ });
720
+ const param2Expr = expr.expr(2);
721
+ const param2Type = traverse_expr(param2Expr, traverseContext);
722
+ param2Type.notNull = true;
723
+ traverseContext.constraints.push({
724
+ expression: param2Expr.getText(),
725
+ type1: (0, collect_constraints_1.freshVar)(param2Expr.getText(), 'TEXT'),
726
+ type2: param2Type.type
727
+ });
728
+ const param3Expr = expr.expr(3);
729
+ const param3Type = traverse_expr(param3Expr, traverseContext);
730
+ param3Type.notNull = true;
731
+ traverseContext.constraints.push({
732
+ expression: param3Expr.getText(),
733
+ type1: (0, collect_constraints_1.freshVar)(param3Expr.getText(), 'TEXT'),
734
+ type2: param3Type.type
735
+ });
736
+ if (function_name === 'snippet') {
737
+ const param4Expr = expr.expr(4);
738
+ const param4Type = traverse_expr(param4Expr, traverseContext);
739
+ param4Type.notNull = true;
740
+ traverseContext.constraints.push({
741
+ expression: param4Expr.getText(),
742
+ type1: (0, collect_constraints_1.freshVar)(param4Expr.getText(), 'TEXT'),
743
+ type2: param4Type.type
744
+ });
745
+ const param5Expr = expr.expr(5);
746
+ const param5Type = traverse_expr(param5Expr, traverseContext);
747
+ param5Type.notNull = true;
748
+ traverseContext.constraints.push({
749
+ expression: param5Expr.getText(),
750
+ type1: (0, collect_constraints_1.freshVar)(param5Expr.getText(), 'INTEGER'),
751
+ type2: param5Type.type
752
+ });
753
+ }
754
+ return {
755
+ name: expr.getText(),
756
+ type: functionType,
757
+ notNull: false,
758
+ table: param0Expr.getText()
759
+ };
760
+ }
703
761
  if (function_name === 'vector_extract') {
704
762
  const functionType = (0, collect_constraints_1.freshVar)(expr.getText(), 'TEXT');
705
763
  const param1Expr = expr.expr(0);
@@ -1044,6 +1102,22 @@ function traverse_expr(expr, traverseContext) {
1044
1102
  table: type.table || ''
1045
1103
  };
1046
1104
  }
1105
+ if (expr.MATCH_()) {
1106
+ const exprLeft = expr.expr(0);
1107
+ const exprRight = expr.expr(1);
1108
+ const typeRight = traverse_expr(exprRight, traverseContext);
1109
+ if (typeRight.name === '?') {
1110
+ typeRight.notNull = true;
1111
+ typeRight.type = (0, collect_constraints_1.freshVar)(exprRight.getText(), 'TEXT');
1112
+ }
1113
+ const type = (0, collect_constraints_1.freshVar)(expr.getText(), 'INTEGER');
1114
+ return {
1115
+ name: type.name,
1116
+ type: type,
1117
+ notNull: true,
1118
+ table: type.table || ''
1119
+ };
1120
+ }
1047
1121
  const select_stmt = expr.select_stmt();
1048
1122
  if (select_stmt) {
1049
1123
  const subQueryType = traverse_select_stmt(select_stmt, Object.assign(Object.assign({}, traverseContext), { subQuery: true }), true);
@@ -1123,7 +1197,7 @@ function traverse_column_name(column_name, table_name, traverseContext) {
1123
1197
  name: column_name.getText(),
1124
1198
  prefix: (table_name === null || table_name === void 0 ? void 0 : table_name.getText()) || ''
1125
1199
  };
1126
- const column = (0, select_columns_1.findColumn)(fieldName, traverseContext.fromColumns);
1200
+ const column = (0, select_columns_1.findColumnOrVT)(fieldName, traverseContext.fromColumns);
1127
1201
  // const typeVar = freshVar(column.columnName, column.columnType.type, column.tableAlias || column.table);
1128
1202
  return column;
1129
1203
  }