typesql-cli 0.10.0 → 0.10.2

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.
Files changed (90) hide show
  1. package/README.md +1 -1
  2. package/cli.js +9 -20
  3. package/cli.js.map +1 -1
  4. package/code-generator.d.ts.map +1 -1
  5. package/code-generator.js +46 -111
  6. package/code-generator.js.map +1 -1
  7. package/describe-dynamic-query.d.ts.map +1 -1
  8. package/describe-dynamic-query.js +6 -13
  9. package/describe-dynamic-query.js.map +1 -1
  10. package/describe-nested-query.d.ts.map +1 -1
  11. package/describe-nested-query.js +11 -27
  12. package/describe-nested-query.js.map +1 -1
  13. package/describe-query.d.ts.map +1 -1
  14. package/describe-query.js +9 -18
  15. package/describe-query.js.map +1 -1
  16. package/drivers/libsql.d.ts.map +1 -1
  17. package/drivers/libsql.js +1 -2
  18. package/drivers/libsql.js.map +1 -1
  19. package/mysql-mapping.d.ts.map +1 -1
  20. package/mysql-mapping.js +4 -4
  21. package/mysql-mapping.js.map +1 -1
  22. package/mysql-query-analyzer/collect-constraints.d.ts.map +1 -1
  23. package/mysql-query-analyzer/collect-constraints.js +17 -24
  24. package/mysql-query-analyzer/collect-constraints.js.map +1 -1
  25. package/mysql-query-analyzer/infer-column-nullability.d.ts.map +1 -1
  26. package/mysql-query-analyzer/infer-column-nullability.js +13 -29
  27. package/mysql-query-analyzer/infer-column-nullability.js.map +1 -1
  28. package/mysql-query-analyzer/infer-param-nullability.d.ts.map +1 -1
  29. package/mysql-query-analyzer/infer-param-nullability.js +8 -10
  30. package/mysql-query-analyzer/infer-param-nullability.js.map +1 -1
  31. package/mysql-query-analyzer/parse.d.ts.map +1 -1
  32. package/mysql-query-analyzer/parse.js +15 -20
  33. package/mysql-query-analyzer/parse.js.map +1 -1
  34. package/mysql-query-analyzer/select-columns.d.ts +1 -0
  35. package/mysql-query-analyzer/select-columns.d.ts.map +1 -1
  36. package/mysql-query-analyzer/select-columns.js +51 -43
  37. package/mysql-query-analyzer/select-columns.js.map +1 -1
  38. package/mysql-query-analyzer/traverse.d.ts.map +1 -1
  39. package/mysql-query-analyzer/traverse.js +61 -144
  40. package/mysql-query-analyzer/traverse.js.map +1 -1
  41. package/mysql-query-analyzer/types.d.ts +2 -2
  42. package/mysql-query-analyzer/types.d.ts.map +1 -1
  43. package/mysql-query-analyzer/unify.d.ts.map +1 -1
  44. package/mysql-query-analyzer/unify.js +15 -59
  45. package/mysql-query-analyzer/unify.js.map +1 -1
  46. package/mysql-query-analyzer/util.d.ts.map +1 -1
  47. package/mysql-query-analyzer/util.js +2 -3
  48. package/mysql-query-analyzer/util.js.map +1 -1
  49. package/mysql-query-analyzer/verify-multiple-result.d.ts.map +1 -1
  50. package/mysql-query-analyzer/verify-multiple-result.js +3 -7
  51. package/mysql-query-analyzer/verify-multiple-result.js.map +1 -1
  52. package/package.json +47 -46
  53. package/queryExectutor.d.ts.map +1 -1
  54. package/queryExectutor.js +37 -38
  55. package/queryExectutor.js.map +1 -1
  56. package/sql-generator.d.ts.map +1 -1
  57. package/sql-generator.js +5 -8
  58. package/sql-generator.js.map +1 -1
  59. package/sqlite-query-analyzer/code-generator.d.ts +2 -2
  60. package/sqlite-query-analyzer/code-generator.d.ts.map +1 -1
  61. package/sqlite-query-analyzer/code-generator.js +119 -219
  62. package/sqlite-query-analyzer/code-generator.js.map +1 -1
  63. package/sqlite-query-analyzer/parser.d.ts.map +1 -1
  64. package/sqlite-query-analyzer/parser.js +9 -23
  65. package/sqlite-query-analyzer/parser.js.map +1 -1
  66. package/sqlite-query-analyzer/query-executor.d.ts +6 -2
  67. package/sqlite-query-analyzer/query-executor.d.ts.map +1 -1
  68. package/sqlite-query-analyzer/query-executor.js +34 -22
  69. package/sqlite-query-analyzer/query-executor.js.map +1 -1
  70. package/sqlite-query-analyzer/replace-list-params.d.ts.map +1 -1
  71. package/sqlite-query-analyzer/replace-list-params.js +1 -2
  72. package/sqlite-query-analyzer/replace-list-params.js.map +1 -1
  73. package/sqlite-query-analyzer/sqlite-describe-nested-query.d.ts.map +1 -1
  74. package/sqlite-query-analyzer/sqlite-describe-nested-query.js +9 -22
  75. package/sqlite-query-analyzer/sqlite-describe-nested-query.js.map +1 -1
  76. package/sqlite-query-analyzer/traverse.d.ts.map +1 -1
  77. package/sqlite-query-analyzer/traverse.js +55 -98
  78. package/sqlite-query-analyzer/traverse.js.map +1 -1
  79. package/sqlite-query-analyzer/types.d.ts +1 -1
  80. package/sqlite-query-analyzer/types.d.ts.map +1 -1
  81. package/ts-dynamic-query-descriptor.d.ts.map +1 -1
  82. package/ts-dynamic-query-descriptor.js +3 -4
  83. package/ts-dynamic-query-descriptor.js.map +1 -1
  84. package/ts-nested-descriptor.d.ts.map +1 -1
  85. package/ts-nested-descriptor.js +2 -3
  86. package/ts-nested-descriptor.js.map +1 -1
  87. package/types.d.ts +6 -2
  88. package/types.d.ts.map +1 -1
  89. package/util.d.ts.map +1 -1
  90. package/util.js.map +1 -1
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.describeNestedQuery = void 0;
3
+ exports.describeNestedQuery = describeNestedQuery;
4
4
  const Either_1 = require("fp-ts/lib/Either");
5
5
  function describeNestedQuery(columns, relations) {
6
6
  const isJunctionTableMap = new Map();
@@ -14,11 +14,8 @@ function describeNestedQuery(columns, relations) {
14
14
  const filterJunctionTables = relations.filter((relation) => !isJunctionTableMap.get(relation.alias || relation.name));
15
15
  const result = [];
16
16
  for (const [index, relation] of filterJunctionTables.entries()) {
17
- const parent = isJunctionTableMap.get(relation.parentRelation)
18
- ? parentRef.get(relation.parentRelation)
19
- : undefined;
20
- const groupIndex = columns.findIndex((col) => col.columnName === relation.joinColumn &&
21
- (col.table === relation.name || col.table === relation.alias));
17
+ const parent = isJunctionTableMap.get(relation.parentRelation) ? parentRef.get(relation.parentRelation) : undefined;
18
+ const groupIndex = columns.findIndex((col) => col.columnName === relation.joinColumn && (col.table === relation.name || col.table === relation.alias));
22
19
  if (groupIndex === -1) {
23
20
  const error = {
24
21
  name: 'Error during nested result creation',
@@ -32,9 +29,7 @@ function describeNestedQuery(columns, relations) {
32
29
  alias: relation.alias,
33
30
  fields: columns
34
31
  .map((item, index) => ({ item, index }))
35
- .filter((col) => (parent != null &&
36
- (col.item.table === parent.name ||
37
- col.item.table === parent.alias)) ||
32
+ .filter((col) => (parent != null && (col.item.table === parent.name || col.item.table === parent.alias)) ||
38
33
  col.item.table === relation.name ||
39
34
  col.item.table === relation.alias ||
40
35
  (relation.parentRelation === '' && col.item.table === ''))
@@ -42,30 +37,22 @@ function describeNestedQuery(columns, relations) {
42
37
  relations: filterJunctionTables
43
38
  .slice(index + 1)
44
39
  .filter((child) => {
45
- const parent = isJunctionTableMap.get(child.parentRelation)
46
- ? parentRef.get(child.parentRelation)
47
- : relation;
48
- return (child.parentRelation === parent.name ||
49
- (child.alias !== '' && child.parentRelation === parent.alias));
40
+ const parent = isJunctionTableMap.get(child.parentRelation) ? parentRef.get(child.parentRelation) : relation;
41
+ return child.parentRelation === parent.name || (child.alias !== '' && child.parentRelation === parent.alias);
50
42
  })
51
43
  .map((relation) => ({
52
44
  name: relation.name,
53
45
  alias: relation.alias,
54
- cardinality: isJunctionTableMap.get(relation.parentRelation)
55
- ? 'many'
56
- : relation.cardinality
46
+ cardinality: isJunctionTableMap.get(relation.parentRelation) ? 'many' : relation.cardinality
57
47
  }))
58
48
  };
59
49
  result.push(relationInfo);
60
50
  }
61
51
  return (0, Either_1.right)(result);
62
52
  }
63
- exports.describeNestedQuery = describeNestedQuery;
64
53
  function isJunctionTable(relation, relations) {
65
- const childRelation = relations.find((r) => r.parentRelation === relation.name ||
66
- (r.alias !== '' && r.parentRelation === relation.alias));
67
- const isJunctionTable = relation.cardinality === 'many' &&
68
- (childRelation === null || childRelation === void 0 ? void 0 : childRelation.parentCardinality) === 'many';
54
+ const childRelation = relations.find((r) => r.parentRelation === relation.name || (r.alias !== '' && r.parentRelation === relation.alias));
55
+ const isJunctionTable = relation.cardinality === 'many' && (childRelation === null || childRelation === void 0 ? void 0 : childRelation.parentCardinality) === 'many';
69
56
  return isJunctionTable;
70
57
  }
71
58
  //# sourceMappingURL=sqlite-describe-nested-query.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-describe-nested-query.js","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/sqlite-describe-nested-query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlite-describe-nested-query.js","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/sqlite-describe-nested-query.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,EACX,SAAS,EAET,eAAe,EAGf,MAAM,+BAA+B,CAAC;AASvC,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;AA8B7C,wBAAgB,2BAA2B,CAC1C,QAAQ,EAAE,eAAe,EACzB,eAAe,EAAE,eAAe,GAC9B,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,CAWvC;AAgzCD,wBAAgB,SAAS,CACxB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,WAAW,GAAG,IAAI,GACvB,OAAO,CAmBT;AAgCD,wBAAgB,mBAAmB,CAClC,WAAW,EAAE,kBAAkB,EAC/B,WAAW,EAAE,SAAS,EAAE,WAmCxB"}
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;AA6rCD,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,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isMultipleRowResult = exports.isNotNull = exports.tryTraverse_Sql_stmtContext = void 0;
3
+ exports.tryTraverse_Sql_stmtContext = tryTraverse_Sql_stmtContext;
4
+ exports.isNotNull = isNotNull;
5
+ exports.isMultipleRowResult = isMultipleRowResult;
4
6
  const sqlite_1 = require("@wsporto/ts-mysql-parser/dist/sqlite");
5
7
  const select_columns_1 = require("../mysql-query-analyzer/select-columns");
6
8
  const collect_constraints_1 = require("../mysql-query-analyzer/collect-constraints");
@@ -42,7 +44,6 @@ function tryTraverse_Sql_stmtContext(sql_stmt, traverseContext) {
42
44
  });
43
45
  }
44
46
  }
45
- exports.tryTraverse_Sql_stmtContext = tryTraverse_Sql_stmtContext;
46
47
  function traverse_select_stmt(select_stmt, traverseContext, subQuery = false, recursive = false, recursiveNames = []) {
47
48
  const common_table_stmt = select_stmt.common_table_stmt();
48
49
  if (common_table_stmt) {
@@ -50,16 +51,14 @@ function traverse_select_stmt(select_stmt, traverseContext, subQuery = false, re
50
51
  const common_table_expression = common_table_stmt.common_table_expression_list();
51
52
  common_table_expression.forEach((common_table_expression) => {
52
53
  const table_name = common_table_expression.table_name();
53
- const recursiveNames = common_table_expression
54
- .column_name_list()
55
- .map((column_name) => column_name.getText());
54
+ const recursiveNames = common_table_expression.column_name_list().map((column_name) => column_name.getText());
56
55
  const select_stmt = common_table_expression.select_stmt();
57
56
  const select_stmt_result = traverse_select_stmt(select_stmt, Object.assign(Object.assign({}, traverseContext), { subQuery: true }), subQuery, recursive, recursiveNames);
58
57
  select_stmt_result.columns.forEach((col, index) => {
59
58
  var _a;
60
59
  traverseContext.withSchema.push({
61
60
  table: table_name.getText(),
62
- columnName: recursive ? (_a = recursiveNames[index]) !== null && _a !== void 0 ? _a : col.name : col.name,
61
+ columnName: recursive ? ((_a = recursiveNames[index]) !== null && _a !== void 0 ? _a : col.name) : col.name,
63
62
  columnType: col.type,
64
63
  columnKey: '',
65
64
  notNull: col.notNull
@@ -109,7 +108,7 @@ function traverse_select_stmt(select_stmt, traverseContext, subQuery = false, re
109
108
  hasOrderByParameter = true;
110
109
  }
111
110
  else {
112
- traverse_expr(expr, Object.assign(Object.assign({}, traverseContext), { fromColumns: fromColumns.concat(selectColumns) }));
111
+ traverse_expr(expr, Object.assign(Object.assign({}, traverseContext), { fromColumns: mainQueryResult.fromColumns.concat(selectColumns) }));
113
112
  }
114
113
  });
115
114
  if (hasOrderByParameter) {
@@ -177,9 +176,7 @@ function traverse_select_core(select_core, traverseContext, subQuery = false, re
177
176
  columnsResult.push(...fields);
178
177
  }
179
178
  const result_column = select_core.result_column_list();
180
- const fromColumns = subQuery || recursive
181
- ? traverseContext.fromColumns.concat(columnsResult)
182
- : columnsResult;
179
+ const fromColumns = subQuery || recursive ? traverseContext.fromColumns.concat(columnsResult) : columnsResult;
183
180
  result_column.forEach((result_column) => {
184
181
  var _a, _b;
185
182
  if (result_column.STAR()) {
@@ -210,9 +207,7 @@ function traverse_select_core(select_core, traverseContext, subQuery = false, re
210
207
  const exprType = traverse_expr(expr, Object.assign(Object.assign({}, traverseContext), { fromColumns: fromColumns }));
211
208
  if (alias) {
212
209
  traverseContext.relations
213
- .filter((relation) => relation.joinColumn === exprType.name &&
214
- (relation.name === exprType.table ||
215
- relation.alias === exprType.table))
210
+ .filter((relation) => relation.joinColumn === exprType.name && (relation.name === exprType.table || relation.alias === exprType.table))
216
211
  .forEach((relation) => {
217
212
  relation.joinColumn = alias;
218
213
  });
@@ -266,9 +261,7 @@ function traverse_select_core(select_core, traverseContext, subQuery = false, re
266
261
  traverse_expr(havingExpr, Object.assign(Object.assign({}, traverseContext), { fromColumns: newColumns.concat(fromColumns) }));
267
262
  }
268
263
  const querySpecification = {
269
- columns: listType.map((col) => (Object.assign(Object.assign({}, col), { notNull: col.notNull ||
270
- isNotNull(col.name, whereExpr) ||
271
- isNotNull(col.name, havingExpr) }))),
264
+ columns: listType.map((col) => (Object.assign(Object.assign({}, col), { notNull: col.notNull || isNotNull(col.name, whereExpr) || isNotNull(col.name, havingExpr) }))),
272
265
  fromColumns: columnsResult //TODO - return isMultipleRowResult instead
273
266
  };
274
267
  return querySpecification;
@@ -279,7 +272,7 @@ function extractRelationsAndParams(expr, fromColumns, parameters) {
279
272
  .filter((expr) => !expr.isSubQuery)
280
273
  .map((colRef) => {
281
274
  const fieldName = (0, select_columns_1.splitName)(colRef.expr.parentCtx.getText());
282
- const column = (0, select_columns_1.findColumn)(fieldName, fromColumns);
275
+ const column = (0, select_columns_1.findColumnOrVT)(fieldName, fromColumns);
283
276
  return column.tableAlias || column.table;
284
277
  });
285
278
  const expressionList = (0, select_columns_1.getExpressions)(expr, sqlite_1.ExprContext);
@@ -297,9 +290,7 @@ function traverse_table_or_subquery(table_or_subquery_list, join_constraint_list
297
290
  table_or_subquery_list.forEach((table_or_subquery, index) => {
298
291
  var _a, _b, _c, _d, _e;
299
292
  const numParamsBefore = traverseContext.parameters.length;
300
- const isLeftJoin = index > 0 && join_operator_list
301
- ? ((_a = join_operator_list[index - 1]) === null || _a === void 0 ? void 0 : _a.LEFT_()) != null
302
- : false;
293
+ const isLeftJoin = index > 0 && join_operator_list ? ((_a = join_operator_list[index - 1]) === null || _a === void 0 ? void 0 : _a.LEFT_()) != null : false;
303
294
  const table_name = table_or_subquery.table_name();
304
295
  const table_alias_temp = ((_b = table_or_subquery.table_alias()) === null || _b === void 0 ? void 0 : _b.getText()) || '';
305
296
  let tableOrSubqueryFields = [];
@@ -312,14 +303,10 @@ function traverse_table_or_subquery(table_or_subquery_list, join_constraint_list
312
303
  table_alias_temp.toLowerCase() === 'cross'
313
304
  ? ''
314
305
  : table_alias_temp;
315
- const join_constraint = join_constraint_list && index > 0
316
- ? join_constraint_list[index - 1]
317
- : undefined;
306
+ const join_constraint = join_constraint_list && index > 0 ? join_constraint_list[index - 1] : undefined;
318
307
  const asAlias = table_or_subquery.AS_() || false;
319
308
  const tableAlias = (_c = table_or_subquery.table_alias()) === null || _c === void 0 ? void 0 : _c.getText();
320
- const tableOrSubqueryName = table_name
321
- ? table_name.any_name().getText()
322
- : '';
309
+ const tableOrSubqueryName = table_name ? table_name.any_name().getText() : '';
323
310
  const schema = ((_d = table_or_subquery.schema_name()) === null || _d === void 0 ? void 0 : _d.getText()) || '';
324
311
  if (table_name) {
325
312
  const tableName = {
@@ -327,12 +314,8 @@ function traverse_table_or_subquery(table_or_subquery_list, join_constraint_list
327
314
  prefix: schema
328
315
  };
329
316
  tableOrSubqueryFields = (0, select_columns_1.filterColumns)(traverseContext.dbSchema, traverseContext.withSchema, table_alias, tableName);
330
- const usingFields = (join_constraint === null || join_constraint === void 0 ? void 0 : join_constraint.USING_())
331
- ? join_constraint === null || join_constraint === void 0 ? void 0 : join_constraint.column_name_list().map((column_name) => column_name.getText())
332
- : [];
333
- const filteredFields = usingFields.length > 0
334
- ? filterUsingFields(tableOrSubqueryFields, usingFields)
335
- : tableOrSubqueryFields;
317
+ 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
+ const filteredFields = usingFields.length > 0 ? filterUsingFields(tableOrSubqueryFields, usingFields) : tableOrSubqueryFields;
336
319
  if (isLeftJoin) {
337
320
  allFields.push(...filteredFields.map((field) => (Object.assign(Object.assign({}, field), { notNull: false }))));
338
321
  }
@@ -377,24 +360,17 @@ function traverse_table_or_subquery(table_or_subquery_list, join_constraint_list
377
360
  traverse_expr(expr, Object.assign(Object.assign({}, traverseContext), { fromColumns: allFields }));
378
361
  const allJoinColumsn = getAllColumns(expr);
379
362
  allJoinColumsn.forEach((joinColumn) => {
380
- const column = allFields.find((col) => col.columnName === joinColumn.name &&
381
- (col.tableAlias === joinColumn.prefix ||
382
- col.table === joinColumn.prefix));
383
- const filterUniqueKeys = allFields.filter((col) => (joinColumn.prefix === col.table ||
384
- joinColumn.prefix === col.tableAlias) &&
385
- col.columnKey === 'PRI');
363
+ const column = allFields.find((col) => col.columnName === joinColumn.name && (col.tableAlias === joinColumn.prefix || col.table === joinColumn.prefix));
364
+ const filterUniqueKeys = allFields.filter((col) => (joinColumn.prefix === col.table || joinColumn.prefix === col.tableAlias) && col.columnKey === 'PRI');
386
365
  const compositeKey = filterUniqueKeys.find((uni) => uni.columnName === column.columnName);
387
- const notUnique = (filterUniqueKeys.length > 1 && compositeKey) ||
388
- ((column === null || column === void 0 ? void 0 : column.columnKey) !== 'UNI' && (column === null || column === void 0 ? void 0 : column.columnKey) !== 'PRI');
389
- if (joinColumn.prefix !== relation.name &&
390
- joinColumn.prefix !== relation.alias) {
366
+ const notUnique = (filterUniqueKeys.length > 1 && compositeKey) || ((column === null || column === void 0 ? void 0 : column.columnKey) !== 'UNI' && (column === null || column === void 0 ? void 0 : column.columnKey) !== 'PRI');
367
+ if (joinColumn.prefix !== relation.name && joinColumn.prefix !== relation.alias) {
391
368
  relation.parentRelation = joinColumn.prefix;
392
369
  if (notUnique) {
393
370
  relation.parentCardinality = 'many';
394
371
  }
395
372
  }
396
- if (joinColumn.prefix === relation.name ||
397
- joinColumn.prefix === relation.alias) {
373
+ if (joinColumn.prefix === relation.name || joinColumn.prefix === relation.alias) {
398
374
  if (notUnique) {
399
375
  relation.cardinality = 'many';
400
376
  }
@@ -405,12 +381,8 @@ function traverse_table_or_subquery(table_or_subquery_list, join_constraint_list
405
381
  if (!traverseContext.subQuery) {
406
382
  traverseContext.relations.push(relation);
407
383
  //dynamic query
408
- const fragment = `${join_operator_list != null && index > 0
409
- ? extractOriginalSql(join_operator_list[index - 1])
410
- : 'FROM'} ${extractOriginalSql(table_or_subquery_list[index])}${join_constraint != null ? ` ${extractOriginalSql(join_constraint)}` : ''}`;
411
- const params = traverseContext.parameters
412
- .slice(numParamsBefore)
413
- .map((_, index) => index + numParamsBefore);
384
+ const fragment = `${join_operator_list != null && index > 0 ? extractOriginalSql(join_operator_list[index - 1]) : 'FROM'} ${extractOriginalSql(table_or_subquery_list[index])}${join_constraint != null ? ` ${extractOriginalSql(join_constraint)}` : ''}`;
385
+ const params = traverseContext.parameters.slice(numParamsBefore).map((_, index) => index + numParamsBefore);
414
386
  traverseContext.dynamicSqlInfo2.from.push({
415
387
  fragment: fragment,
416
388
  relationName: relation.name,
@@ -606,9 +578,7 @@ function traverse_expr(expr, traverseContext) {
606
578
  table: functionType.table || ''
607
579
  };
608
580
  }
609
- if (function_name === 'date' ||
610
- function_name === 'time' ||
611
- function_name === 'datetime') {
581
+ if (function_name === 'date' || function_name === 'time' || function_name === 'datetime') {
612
582
  const functionType = (0, collect_constraints_1.freshVar)(expr.getText(), 'DATE');
613
583
  const paramExpr = expr.expr(0);
614
584
  const paramType = traverse_expr(paramExpr, traverseContext);
@@ -680,9 +650,7 @@ function traverse_expr(expr, traverseContext) {
680
650
  table: functionType.table || ''
681
651
  };
682
652
  }
683
- if (function_name === 'row_number' ||
684
- function_name === 'rank' ||
685
- function_name === 'dense_rank') {
653
+ if (function_name === 'row_number' || function_name === 'rank' || function_name === 'dense_rank') {
686
654
  const functionType = (0, collect_constraints_1.freshVar)(expr.getText(), 'INTEGER');
687
655
  return {
688
656
  name: functionType.name,
@@ -868,8 +836,7 @@ function traverse_expr(expr, traverseContext) {
868
836
  type1: returnType,
869
837
  type2: typeLeft.type
870
838
  });
871
- const isDateFunctionContext = expr.parentCtx instanceof sqlite_1.ExprContext &&
872
- ((_b = expr.parentCtx.function_name()) === null || _b === void 0 ? void 0 : _b.getText().toLowerCase()) === 'date';
839
+ const isDateFunctionContext = expr.parentCtx instanceof sqlite_1.ExprContext && ((_b = expr.parentCtx.function_name()) === null || _b === void 0 ? void 0 : _b.getText().toLowerCase()) === 'date';
873
840
  if (!isDateFunctionContext) {
874
841
  traverseContext.constraints.push({
875
842
  expression: exprRight.getText(),
@@ -1077,6 +1044,22 @@ function traverse_expr(expr, traverseContext) {
1077
1044
  table: type.table || ''
1078
1045
  };
1079
1046
  }
1047
+ if (expr.MATCH_()) {
1048
+ const exprLeft = expr.expr(0);
1049
+ const exprRight = expr.expr(1);
1050
+ const typeRight = traverse_expr(exprRight, traverseContext);
1051
+ if (typeRight.name === '?') {
1052
+ typeRight.notNull = true;
1053
+ typeRight.type = (0, collect_constraints_1.freshVar)(exprRight.getText(), 'TEXT');
1054
+ }
1055
+ const type = (0, collect_constraints_1.freshVar)(expr.getText(), 'INTEGER');
1056
+ return {
1057
+ name: type.name,
1058
+ type: type,
1059
+ notNull: true,
1060
+ table: type.table || ''
1061
+ };
1062
+ }
1080
1063
  const select_stmt = expr.select_stmt();
1081
1064
  if (select_stmt) {
1082
1065
  const subQueryType = traverse_select_stmt(select_stmt, Object.assign(Object.assign({}, traverseContext), { subQuery: true }), true);
@@ -1111,8 +1094,7 @@ function traverse_expr(expr, traverseContext) {
1111
1094
  const whenTypes = [];
1112
1095
  expr.expr_list().forEach((expr_, index) => {
1113
1096
  const type = traverse_expr(expr_, traverseContext);
1114
- if (index % 2 === 0 &&
1115
- (!expr.ELSE_() || index < expr.expr_list().length - 1)) {
1097
+ if (index % 2 === 0 && (!expr.ELSE_() || index < expr.expr_list().length - 1)) {
1116
1098
  whenTypes.push(type);
1117
1099
  }
1118
1100
  else {
@@ -1157,7 +1139,7 @@ function traverse_column_name(column_name, table_name, traverseContext) {
1157
1139
  name: column_name.getText(),
1158
1140
  prefix: (table_name === null || table_name === void 0 ? void 0 : table_name.getText()) || ''
1159
1141
  };
1160
- const column = (0, select_columns_1.findColumn)(fieldName, traverseContext.fromColumns);
1142
+ const column = (0, select_columns_1.findColumnOrVT)(fieldName, traverseContext.fromColumns);
1161
1143
  // const typeVar = freshVar(column.columnName, column.columnType.type, column.tableAlias || column.table);
1162
1144
  return column;
1163
1145
  }
@@ -1166,22 +1148,17 @@ function isNotNull(columnName, where) {
1166
1148
  return false;
1167
1149
  }
1168
1150
  if (where.AND_()) {
1169
- const ifNullList = where
1170
- .expr_list()
1171
- .map((expr) => isNotNull(columnName, expr));
1151
+ const ifNullList = where.expr_list().map((expr) => isNotNull(columnName, expr));
1172
1152
  const result = ifNullList.some((v) => v);
1173
1153
  return result;
1174
1154
  }
1175
1155
  if (where.OR_()) {
1176
- const possibleNullList = where
1177
- .expr_list()
1178
- .map((expr) => isNotNull(columnName, expr));
1156
+ const possibleNullList = where.expr_list().map((expr) => isNotNull(columnName, expr));
1179
1157
  const result = possibleNullList.every((v) => v);
1180
1158
  return result;
1181
1159
  }
1182
1160
  return isNotNullExpr(columnName, where);
1183
1161
  }
1184
- exports.isNotNull = isNotNull;
1185
1162
  function isNotNullExpr(columnName, expr) {
1186
1163
  if (expr.OPEN_PAR() && expr.CLOSE_PAR()) {
1187
1164
  const innerExpr = expr.expr(0);
@@ -1192,9 +1169,7 @@ function isNotNullExpr(columnName, expr) {
1192
1169
  expr.GT_EQ() ||
1193
1170
  expr.LT() ||
1194
1171
  expr.LT_EQ() ||
1195
- (expr.IS_() &&
1196
- expr.expr_list().length === 2 &&
1197
- expr.expr(1).getText() === 'notnull')) {
1172
+ (expr.IS_() && expr.expr_list().length === 2 && expr.expr(1).getText() === 'notnull')) {
1198
1173
  const exprLeft = expr.expr(0);
1199
1174
  const exprRight = expr.expr(1);
1200
1175
  const column_name_left = exprLeft.column_name();
@@ -1217,22 +1192,16 @@ function isMultipleRowResult(select_stmt, fromColumns) {
1217
1192
  if (!from) {
1218
1193
  return false;
1219
1194
  }
1220
- const groupBy = select_stmt
1221
- .select_core_list()
1222
- .some((select_core) => select_core.GROUP_() != null);
1195
+ const groupBy = select_stmt.select_core_list().some((select_core) => select_core.GROUP_() != null);
1223
1196
  if (groupBy) {
1224
1197
  return true;
1225
1198
  }
1226
- const agreegateFunction = select_core
1227
- .result_column_list()
1228
- .some((result_column) => isAgregateFunction(result_column));
1199
+ const agreegateFunction = select_core.result_column_list().some((result_column) => isAgregateFunction(result_column));
1229
1200
  if (agreegateFunction) {
1230
1201
  return false;
1231
1202
  }
1232
1203
  const _whereExpr = select_core._whereExpr;
1233
- const isSingleResult = select_core.join_clause() == null &&
1234
- _whereExpr &&
1235
- where_is_single_result(_whereExpr, fromColumns);
1204
+ const isSingleResult = select_core.join_clause() == null && _whereExpr && where_is_single_result(_whereExpr, fromColumns);
1236
1205
  if (isSingleResult === true) {
1237
1206
  return false;
1238
1207
  }
@@ -1242,7 +1211,6 @@ function isMultipleRowResult(select_stmt, fromColumns) {
1242
1211
  }
1243
1212
  return true;
1244
1213
  }
1245
- exports.isMultipleRowResult = isMultipleRowResult;
1246
1214
  function isAgregateFunction(result_column) {
1247
1215
  var _a;
1248
1216
  if (((_a = result_column.expr()) === null || _a === void 0 ? void 0 : _a.over_clause()) != null) {
@@ -1321,9 +1289,7 @@ function traverse_insert_stmt(insert_stmt, traverseContext) {
1321
1289
  type1: col.columnType,
1322
1290
  type2: exprType.type
1323
1291
  });
1324
- const notNullColumn = col.columnKey === 'PRI' && col.columnType.type === 'INTEGER'
1325
- ? false
1326
- : col.notNull;
1292
+ const notNullColumn = col.columnKey === 'PRI' && col.columnType.type === 'INTEGER' ? false : col.notNull;
1327
1293
  insertColumns.push(Object.assign(Object.assign({}, param), { notNull: exprType.name === '?' ? notNullColumn : param.notNull }));
1328
1294
  });
1329
1295
  });
@@ -1339,15 +1305,11 @@ function traverse_insert_stmt(insert_stmt, traverseContext) {
1339
1305
  type1: col.columnType,
1340
1306
  type2: selectColumn.type
1341
1307
  });
1342
- const notNullColumn = col.columnKey === 'PRI' && col.columnType.type === 'INTEGER'
1343
- ? false
1344
- : col.notNull;
1308
+ const notNullColumn = col.columnKey === 'PRI' && col.columnType.type === 'INTEGER' ? false : col.notNull;
1345
1309
  columnNullability.set(selectColumn.type.id, notNullColumn);
1346
1310
  });
1347
1311
  traverseContext.parameters.forEach((param) => {
1348
- insertColumns.push(Object.assign(Object.assign({}, param), { notNull: columnNullability.get(param.type.id) != null
1349
- ? columnNullability.get(param.type.id)
1350
- : param.notNull }));
1312
+ insertColumns.push(Object.assign(Object.assign({}, param), { notNull: columnNullability.get(param.type.id) != null ? columnNullability.get(param.type.id) : param.notNull }));
1351
1313
  });
1352
1314
  }
1353
1315
  const upsert_clause = insert_stmt.upsert_clause();
@@ -1359,9 +1321,7 @@ function traverse_insert_stmt(insert_stmt, traverseContext) {
1359
1321
  const col = traverse_column_name(column_name, null, Object.assign(Object.assign({}, traverseContext), { fromColumns }));
1360
1322
  const expr = upsert_clause.expr(index);
1361
1323
  const table_name = expr.table_name();
1362
- const excludedColumns = table_name && table_name.getText() === 'excluded'
1363
- ? fromColumns.map((col) => (Object.assign(Object.assign({}, col), { table: 'excluded' })))
1364
- : [];
1324
+ const excludedColumns = table_name && table_name.getText() === 'excluded' ? fromColumns.map((col) => (Object.assign(Object.assign({}, col), { table: 'excluded' }))) : [];
1365
1325
  const exprType = traverse_expr(expr, Object.assign(Object.assign({}, traverseContext), { fromColumns: fromColumns.concat(excludedColumns) }));
1366
1326
  traverseContext.constraints.push({
1367
1327
  expression: column_name.getText(),
@@ -1374,9 +1334,7 @@ function traverse_insert_stmt(insert_stmt, traverseContext) {
1374
1334
  });
1375
1335
  }
1376
1336
  const returning_clause = insert_stmt.returning_clause();
1377
- const returninColumns = returning_clause
1378
- ? traverse_returning_clause(returning_clause, fromColumns)
1379
- : [];
1337
+ const returninColumns = returning_clause ? traverse_returning_clause(returning_clause, fromColumns) : [];
1380
1338
  const queryResult = {
1381
1339
  queryType: 'Insert',
1382
1340
  constraints: traverseContext.constraints,
@@ -1420,8 +1378,7 @@ function traverse_update_stmt(update_stmt, traverseContext) {
1420
1378
  expr_list.forEach((expr, index) => {
1421
1379
  paramsBefore = traverseContext.parameters.length;
1422
1380
  const exprType = traverse_expr(expr, Object.assign(Object.assign({}, traverseContext), { fromColumns }));
1423
- if (!update_stmt.WHERE_() ||
1424
- expr.start.start < update_stmt.WHERE_().symbol.start) {
1381
+ if (!update_stmt.WHERE_() || expr.start.start < update_stmt.WHERE_().symbol.start) {
1425
1382
  const col = columns[index];
1426
1383
  traverseContext.constraints.push({
1427
1384
  expression: expr.getText(),