typesql-cli 0.5.18 → 0.6.1

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 (41) hide show
  1. package/code-generator.js +2 -2
  2. package/code-generator.js.map +1 -1
  3. package/describe-query.d.ts +1 -1
  4. package/describe-query.d.ts.map +1 -1
  5. package/describe-query.js +2 -3
  6. package/describe-query.js.map +1 -1
  7. package/mysql-query-analyzer/collect-constraints.d.ts +22 -49
  8. package/mysql-query-analyzer/collect-constraints.d.ts.map +1 -1
  9. package/mysql-query-analyzer/collect-constraints.js +39 -1757
  10. package/mysql-query-analyzer/collect-constraints.js.map +1 -1
  11. package/mysql-query-analyzer/infer-column-nullability.d.ts +3 -3
  12. package/mysql-query-analyzer/infer-column-nullability.d.ts.map +1 -1
  13. package/mysql-query-analyzer/infer-column-nullability.js +8 -25
  14. package/mysql-query-analyzer/infer-column-nullability.js.map +1 -1
  15. package/mysql-query-analyzer/infer-param-nullability.d.ts +3 -1
  16. package/mysql-query-analyzer/infer-param-nullability.d.ts.map +1 -1
  17. package/mysql-query-analyzer/infer-param-nullability.js +21 -3
  18. package/mysql-query-analyzer/infer-param-nullability.js.map +1 -1
  19. package/mysql-query-analyzer/parse.d.ts +10 -10
  20. package/mysql-query-analyzer/parse.d.ts.map +1 -1
  21. package/mysql-query-analyzer/parse.js +126 -184
  22. package/mysql-query-analyzer/parse.js.map +1 -1
  23. package/mysql-query-analyzer/select-columns.d.ts +8 -9
  24. package/mysql-query-analyzer/select-columns.d.ts.map +1 -1
  25. package/mysql-query-analyzer/select-columns.js +26 -226
  26. package/mysql-query-analyzer/select-columns.js.map +1 -1
  27. package/mysql-query-analyzer/traverse.d.ts +46 -0
  28. package/mysql-query-analyzer/traverse.d.ts.map +1 -0
  29. package/mysql-query-analyzer/traverse.js +1605 -0
  30. package/mysql-query-analyzer/traverse.js.map +1 -0
  31. package/mysql-query-analyzer/types.d.ts +34 -5
  32. package/mysql-query-analyzer/types.d.ts.map +1 -1
  33. package/mysql-query-analyzer/unify.d.ts +4 -3
  34. package/mysql-query-analyzer/unify.d.ts.map +1 -1
  35. package/mysql-query-analyzer/unify.js +540 -48
  36. package/mysql-query-analyzer/unify.js.map +1 -1
  37. package/mysql-query-analyzer/verify-multiple-result.js +1 -1
  38. package/mysql-query-analyzer/verify-multiple-result.js.map +1 -1
  39. package/package.json +1 -1
  40. package/types.d.ts +2 -2
  41. package/types.d.ts.map +1 -1
@@ -1,39 +1,37 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getSimpleExpressions = exports.findColumn2 = exports.findColumn = exports.splitName = exports.analyzeSubQuery = exports.extractColumnsFromTableReferences = exports.getColumnsFrom = exports.getColumnNames = exports.selectAllColumns = exports.filterColumns = void 0;
3
+ exports.getSimpleExpressions = exports.extractOriginalSql = exports.findColumn = exports.functionAlias = exports.splitName = exports.extractFieldsFromUsingClause = exports.getColumnName = exports.selectAllColumns = exports.filterColumns = void 0;
4
4
  const antlr4ts_1 = require("antlr4ts");
5
5
  const Interval_1 = require("antlr4ts/misc/Interval");
6
6
  const ts_mysql_parser_1 = require("ts-mysql-parser");
7
- const parse_1 = require("./parse");
8
- const infer_column_nullability_1 = require("./infer-column-nullability");
7
+ const collect_constraints_1 = require("./collect-constraints");
9
8
  function filterColumns(dbSchema, withSchema, tableAlias, table) {
10
9
  const tableColumns1 = dbSchema
11
10
  .filter(schema => schema.table.toLowerCase() == table.name.toLowerCase() && (schema.schema == table.prefix || table.prefix == ''))
12
11
  .map(tableColumn => {
13
12
  //name and colum are the same on the leaf table
14
13
  const r = {
15
- columnName: tableColumn.column, column: tableColumn.column, columnType: tableColumn.column_type,
14
+ columnName: tableColumn.column, columnType: (0, collect_constraints_1.freshVar)(tableColumn.column, tableColumn.column_type),
16
15
  notNull: tableColumn.notNull, table: table.name, tableAlias: tableAlias || '', columnKey: tableColumn.columnKey
17
16
  };
18
17
  return r;
19
18
  });
20
- const withColumns = withSchema.map(col => {
19
+ const result = tableColumns1.concat(withSchema).map(col => {
21
20
  const r = {
22
21
  table: table.name,
23
22
  tableAlias: tableAlias || '',
24
- column: col.name,
25
- columnName: col.name,
26
- columnType: col.type,
27
- columnKey: "",
23
+ columnName: col.columnName,
24
+ columnType: col.columnType,
25
+ columnKey: col.columnKey,
28
26
  notNull: col.notNull
29
27
  };
30
28
  return r;
31
29
  });
32
- return [...tableColumns1, ...withColumns];
30
+ return result;
33
31
  }
34
32
  exports.filterColumns = filterColumns;
35
33
  function selectAllColumns(tablePrefix, fromColumns) {
36
- const allColumns = [];
34
+ const allColumns = []; //TODO - FILTER
37
35
  fromColumns.forEach(column => {
38
36
  if (tablePrefix == '' || tablePrefix == column.tableAlias || tablePrefix == column.table) {
39
37
  allColumns.push(column);
@@ -42,103 +40,20 @@ function selectAllColumns(tablePrefix, fromColumns) {
42
40
  return allColumns;
43
41
  }
44
42
  exports.selectAllColumns = selectAllColumns;
45
- function getColumnNames(querySpec, fromColumns) {
46
- const allColumns = [];
47
- if (querySpec.selectItemList().MULT_OPERATOR()) {
48
- allColumns.push(...selectAllColumns('', fromColumns).map(col => col.columnName));
49
- }
50
- const ctx = querySpec.selectItemList();
51
- ctx.selectItem().forEach(selectItem => {
52
- var _a, _b;
53
- const tableWild = selectItem.tableWild();
54
- if (tableWild) {
55
- if (tableWild.MULT_OPERATOR()) {
56
- const itemName = splitName(selectItem.text);
57
- allColumns.push(...selectAllColumns(itemName.prefix, fromColumns).map(col => col.columnName));
58
- }
59
- }
60
- else {
61
- const alias = (_b = (_a = selectItem.selectAlias()) === null || _a === void 0 ? void 0 : _a.identifier()) === null || _b === void 0 ? void 0 : _b.text;
62
- const tokens = getSimpleExpressions(selectItem);
63
- let columnName = extractOriginalSql(selectItem.expr()); //TODO VERIFICAR NULL
64
- if (tokens.length == 1 && tokens[0] instanceof ts_mysql_parser_1.SimpleExprColumnRefContext) {
65
- columnName = splitName(tokens[0].text).name;
66
- }
67
- allColumns.push(alias || columnName);
68
- }
69
- });
70
- return allColumns;
71
- }
72
- exports.getColumnNames = getColumnNames;
73
- // TODO - withSchema: TypeAndNullInfer[] DEFAULT VALUE []
74
- function getColumnsFrom(ctx, dbSchema, withSchema) {
43
+ function getColumnName(selectItem) {
75
44
  var _a, _b;
76
- const tableReferences = (_b = (_a = ctx.fromClause()) === null || _a === void 0 ? void 0 : _a.tableReferenceList()) === null || _b === void 0 ? void 0 : _b.tableReference();
77
- const fromColumns = tableReferences ? extractColumnsFromTableReferences(tableReferences, dbSchema, withSchema) : [];
78
- return fromColumns;
79
- }
80
- exports.getColumnsFrom = getColumnsFrom;
81
- //rule: tableReference
82
- function extractColumnsFromTableReferences(tablesReferences, dbSchema, withSchema) {
83
- const result = [];
84
- tablesReferences.forEach(tab => {
85
- const tableFactor = tab.tableFactor();
86
- if (tableFactor) {
87
- const fields = extractFieldsFromTableFactor(tableFactor, dbSchema, withSchema);
88
- result.push(...fields);
89
- }
90
- const allJoinedColumns = [];
91
- let firstLeftJoinIndex = -1;
92
- tab.joinedTable().forEach((joined, index) => {
93
- var _a, _b;
94
- if (((_a = joined.innerJoinType()) === null || _a === void 0 ? void 0 : _a.INNER_SYMBOL()) || ((_b = joined.innerJoinType()) === null || _b === void 0 ? void 0 : _b.JOIN_SYMBOL())) {
95
- firstLeftJoinIndex = -1; //dont need to add notNull = false to joins
96
- }
97
- else if (firstLeftJoinIndex == -1) {
98
- firstLeftJoinIndex = index; //add notNull = false to all joins after the first left join
99
- }
100
- const tableReferences = joined.tableReference();
101
- const onClause = joined.expr(); //ON expr
102
- if (tableReferences) {
103
- const usingFields = extractFieldsFromUsingClause(joined);
104
- const joinedFields = extractColumnsFromTableReferences([tableReferences], dbSchema, withSchema);
105
- //doesn't duplicate the fields of the USING clause. Ex. INNER JOIN mytable2 USING(id);
106
- const joinedFieldsFiltered = usingFields.length > 0 ? filterUsingFields(joinedFields, usingFields) : joinedFields;
107
- if (onClause) {
108
- joinedFieldsFiltered.forEach(field => {
109
- const fieldName = {
110
- name: field.columnName,
111
- prefix: field.tableAlias || ''
112
- };
113
- field.notNull = field.notNull || !(0, infer_column_nullability_1.possibleNull)(fieldName, onClause);
114
- });
115
- //apply inference to the parent join too
116
- result.forEach(field => {
117
- const fieldName = {
118
- name: field.columnName,
119
- prefix: field.tableAlias || ''
120
- };
121
- field.notNull = field.notNull || !(0, infer_column_nullability_1.possibleNull)(fieldName, onClause);
122
- });
123
- }
124
- allJoinedColumns.push(joinedFieldsFiltered);
125
- }
126
- });
127
- allJoinedColumns.forEach((joinedColumns, index) => {
128
- joinedColumns.forEach(field => {
129
- if (firstLeftJoinIndex != -1 && index >= firstLeftJoinIndex) {
130
- const newField = Object.assign(Object.assign({}, field), { notNull: false });
131
- result.push(newField);
132
- }
133
- else {
134
- result.push(field);
135
- }
136
- });
137
- });
138
- });
139
- return result;
45
+ const alias = (_b = (_a = selectItem.selectAlias()) === null || _a === void 0 ? void 0 : _a.identifier()) === null || _b === void 0 ? void 0 : _b.text;
46
+ if (alias) {
47
+ return alias;
48
+ }
49
+ const tokens = getSimpleExpressions(selectItem);
50
+ let columnName = extractOriginalSql(selectItem.expr()); //TODO VERIFICAR NULL
51
+ if (tokens.length == 1 && tokens[0] instanceof ts_mysql_parser_1.SimpleExprColumnRefContext) {
52
+ return splitName(tokens[0].text).name;
53
+ }
54
+ return columnName;
140
55
  }
141
- exports.extractColumnsFromTableReferences = extractColumnsFromTableReferences;
56
+ exports.getColumnName = getColumnName;
142
57
  function extractFieldsFromUsingClause(joinedTableContext) {
143
58
  var _a;
144
59
  const usingFieldsClause = (_a = joinedTableContext.identifierListWithParentheses()) === null || _a === void 0 ? void 0 : _a.identifierList();
@@ -147,109 +62,7 @@ function extractFieldsFromUsingClause(joinedTableContext) {
147
62
  }
148
63
  return [];
149
64
  }
150
- function filterUsingFields(joinedFields, usingFields) {
151
- return joinedFields.filter(joinedField => {
152
- const isUsing = usingFields.includes(joinedField.columnName);
153
- if (!isUsing) {
154
- return joinedField;
155
- }
156
- });
157
- }
158
- //rule: singleTable
159
- function extractFieldsFromSingleTable(dbSchema, withSchema, ctx) {
160
- var _a;
161
- const table = ctx === null || ctx === void 0 ? void 0 : ctx.tableRef().text;
162
- const tableAlias = (_a = ctx === null || ctx === void 0 ? void 0 : ctx.tableAlias()) === null || _a === void 0 ? void 0 : _a.identifier().text;
163
- const tableName = splitName(table);
164
- const fields = filterColumns(dbSchema, withSchema, tableAlias, tableName);
165
- return fields;
166
- }
167
- //rule: singleTableParens
168
- function extractFieldsFromSingleTableParens(dbSchema, withSchema, ctx) {
169
- let fields = [];
170
- //singleTable | singleTableParens
171
- const singleTable = ctx.singleTable();
172
- if (singleTable) {
173
- fields = extractFieldsFromSingleTable(dbSchema, withSchema, singleTable);
174
- }
175
- const singleTableParens = ctx.singleTableParens();
176
- if (singleTableParens) {
177
- fields = extractFieldsFromSingleTableParens(dbSchema, withSchema, singleTableParens);
178
- }
179
- return fields;
180
- }
181
- /*rule:
182
- tableFactor:
183
- singleTable
184
- | singleTableParens
185
- | derivedTable
186
- | tableReferenceListParens
187
- | {serverVersion >= 80004}? tableFunction
188
- */
189
- function extractFieldsFromTableFactor(tableFactor, dbSchema, withSchema) {
190
- var _a;
191
- const singleTable = tableFactor.singleTable();
192
- if (singleTable) {
193
- return extractFieldsFromSingleTable(dbSchema, withSchema, singleTable);
194
- }
195
- const singleTableParens = tableFactor.singleTableParens();
196
- if (singleTableParens) {
197
- return extractFieldsFromSingleTableParens(dbSchema, withSchema, singleTableParens);
198
- }
199
- const derivadTable = tableFactor.derivedTable();
200
- if (derivadTable) {
201
- //walkQueryExpressionParens(queryExpressionParens, namedNodes, constraints, dbSchema);
202
- //TODO - WALKSUBQUERY
203
- const subQuery = derivadTable.subquery();
204
- if (subQuery) {
205
- const tableAlias = (_a = derivadTable.tableAlias()) === null || _a === void 0 ? void 0 : _a.identifier().text;
206
- return extractFieldsFromSubquery(subQuery, dbSchema, withSchema, tableAlias);
207
- }
208
- }
209
- const tableReferenceListParens = tableFactor.tableReferenceListParens();
210
- if (tableReferenceListParens) {
211
- const listParens = extractColumnsFromTableListParens(tableReferenceListParens, dbSchema, withSchema);
212
- return listParens;
213
- }
214
- return [];
215
- }
216
- function analyzeSubQuery(subQuery, dbSchema, withSchema, recursive = false) {
217
- const queries = (0, parse_1.getQuerySpecificationsFromSelectStatement)(subQuery);
218
- const queryResult = (0, parse_1.analiseQuery)(queries, dbSchema, withSchema, [], recursive); //TODO - WHY []?
219
- return queryResult;
220
- }
221
- exports.analyzeSubQuery = analyzeSubQuery;
222
- function extractFieldsFromSubquery(subQuery, dbSchema, withSchema, tableAlias) {
223
- //subquery=true only for select (subquery); not for from(subquery)
224
- // const fromColumns
225
- const queryResult = analyzeSubQuery(subQuery, dbSchema, withSchema);
226
- // console.log("queryResult=", queryResult);
227
- // const tableAlias = derivadTable.tableAlias()?.text;
228
- return queryResult.columns.map(col => {
229
- const newCol = {
230
- column: col.name,
231
- columnName: col.name,
232
- columnType: col.type,
233
- columnKey: '',
234
- notNull: col.notNull,
235
- table: tableAlias || '',
236
- tableAlias: tableAlias
237
- };
238
- return newCol;
239
- });
240
- }
241
- //tableReferenceList | tableReferenceListParens
242
- function extractColumnsFromTableListParens(ctx, dbSchema, withSchema) {
243
- const tableReferenceList = ctx.tableReferenceList();
244
- if (tableReferenceList) {
245
- return extractColumnsFromTableReferences(tableReferenceList.tableReference(), dbSchema, withSchema);
246
- }
247
- const tableReferenceListParens = ctx.tableReferenceListParens();
248
- if (tableReferenceListParens) {
249
- return extractColumnsFromTableListParens(tableReferenceListParens, dbSchema, withSchema);
250
- }
251
- return [];
252
- }
65
+ exports.extractFieldsFromUsingClause = extractFieldsFromUsingClause;
253
66
  function splitName(fieldName) {
254
67
  const fieldNameSplit = fieldName.split('.');
255
68
  const result = {
@@ -267,7 +80,7 @@ function removeBackStick(name) {
267
80
  const withoutBackStick = name.startsWith("`") && name.endsWith("`") ? name.slice(1, -1) : name;
268
81
  return withoutBackStick;
269
82
  }
270
- const functionAlias = [
83
+ exports.functionAlias = [
271
84
  {
272
85
  column: 'CURRENT_DATE',
273
86
  column_type: 'date',
@@ -311,12 +124,11 @@ const functionAlias = [
311
124
  ];
312
125
  function findColumn(fieldName, columns) {
313
126
  //TODO - Put tableAlias always ''
314
- const functionType = functionAlias.find(col => col.column.toLowerCase() == fieldName.name.toLowerCase());
127
+ const functionType = exports.functionAlias.find(col => col.column.toLowerCase() == fieldName.name.toLowerCase());
315
128
  if (functionType) {
316
129
  const colDef = {
317
- column: functionType.column,
318
130
  columnName: functionType.column,
319
- columnType: functionType.column_type,
131
+ columnType: (0, collect_constraints_1.freshVar)(functionType.column, functionType.column_type),
320
132
  columnKey: functionType.columnKey,
321
133
  notNull: functionType.notNull,
322
134
  table: ''
@@ -331,19 +143,6 @@ function findColumn(fieldName, columns) {
331
143
  return found;
332
144
  }
333
145
  exports.findColumn = findColumn;
334
- function findColumn2(fieldName, table, columns) {
335
- //TODO - Put tableAlias always ''
336
- const functionType = functionAlias.find(col => col.column == fieldName.name);
337
- if (functionType) {
338
- return functionType;
339
- }
340
- const found = columns.find(col => col.column.toLowerCase() === fieldName.name.toLowerCase() && table === col.table);
341
- if (!found) {
342
- throw Error('column not found:' + JSON.stringify(fieldName));
343
- }
344
- return found;
345
- }
346
- exports.findColumn2 = findColumn2;
347
146
  function extractOriginalSql(rule) {
348
147
  var _a, _b;
349
148
  const startIndex = rule.start.startIndex;
@@ -352,6 +151,7 @@ function extractOriginalSql(rule) {
352
151
  const result = (_b = rule.start.inputStream) === null || _b === void 0 ? void 0 : _b.getText(interval);
353
152
  return result;
354
153
  }
154
+ exports.extractOriginalSql = extractOriginalSql;
355
155
  function getSimpleExpressions(ctx) {
356
156
  const tokens = [];
357
157
  collectSimpleExpr(tokens, ctx);
@@ -1 +1 @@
1
- {"version":3,"file":"select-columns.js","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/select-columns.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"select-columns.js","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/select-columns.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { DeleteStatementContext, ExprContext, InsertStatementContext, QueryContext, QuerySpecificationContext, SelectStatementContext, UpdateStatementContext, WithClauseContext } from "ts-mysql-parser";
2
+ import { ColumnDef, ColumnSchema, Constraint, FieldName, ParameterInfo, TypeAndNullInfer, TypeVar } from "./types";
3
+ import { ParameterDef } from "../types";
4
+ export type TraverseResult = SelectStatementResult | InsertStatementResult | UpdateStatementResult | DeleteStatementResult;
5
+ export type SelectStatementResult = {
6
+ type: 'Select';
7
+ constraints: Constraint[];
8
+ columns: TypeAndNullInfer[];
9
+ parameters: TypeAndNullInfer[];
10
+ limitParameters: ParameterInfo[];
11
+ isMultiRow: boolean;
12
+ orderByColumns?: string[];
13
+ };
14
+ export type InsertStatementResult = {
15
+ type: 'Insert';
16
+ constraints: Constraint[];
17
+ parameters: ParameterDef[];
18
+ };
19
+ export type UpdateStatementResult = {
20
+ type: 'Update';
21
+ constraints: Constraint[];
22
+ data: TypeAndNullInfer[];
23
+ parameters: TypeAndNullInfer[];
24
+ };
25
+ export type DeleteStatementResult = {
26
+ type: 'Delete';
27
+ constraints: Constraint[];
28
+ parameters: ParameterDef[];
29
+ };
30
+ export declare function traverseQueryContext(queryContext: QueryContext, dbSchema: ColumnSchema[], namedParameters: string[]): SelectStatementResult | InsertStatementResult | UpdateStatementResult | DeleteStatementResult;
31
+ export declare function traverseSql(sql: string, dbSchema: ColumnSchema[]): SelectStatementResult | InsertStatementResult | UpdateStatementResult | DeleteStatementResult;
32
+ export declare function traverseInsertStatement(insertStatement: InsertStatementContext, constraints: Constraint[], parameters: TypeVar[], dbSchema: ColumnSchema[]): InsertStatementResult;
33
+ export declare function traverseDeleteStatement(deleteStatement: DeleteStatementContext, constraints: Constraint[], parameters: TypeVar[], dbSchema: ColumnSchema[]): DeleteStatementResult;
34
+ export declare function getUpdateColumns(updateStatement: UpdateStatementContext, constraints: Constraint[], parameters: TypeVar[], dbSchema: ColumnSchema[], withSchema: ColumnDef[], fromColumns: ColumnDef[]): ColumnDef[];
35
+ type QuerySpecificationResult = {
36
+ columns: TypeAndNullInfer[];
37
+ fromColumns: ColumnDef[];
38
+ };
39
+ export declare function traverseQuerySpecification(querySpec: QuerySpecificationContext, constraints: Constraint[], parameters: TypeVar[], dbSchema: ColumnSchema[], withSchema: ColumnDef[], fromColumnsParent: ColumnDef[], subQuery?: boolean): QuerySpecificationResult;
40
+ export declare function traverseWithClause(withClause: WithClauseContext, constraints: Constraint[], parameters: TypeVar[], dbSchema: ColumnSchema[], withSchema: ColumnDef[]): void;
41
+ export declare function filterColumns(dbSchema: ColumnSchema[], withSchema: ColumnDef[], tableAlias: string | undefined, table: FieldName): ColumnDef[];
42
+ export declare function selectAllColumns(tablePrefix: string, fromColumns: ColumnDef[]): ColumnDef[];
43
+ export declare function isMultipleRowResult(selectStatement: SelectStatementContext, fromColumns: ColumnDef[]): boolean;
44
+ export declare function verifyMultipleResult2(exprContext: ExprContext, fromColumns: ColumnDef[]): boolean;
45
+ export {};
46
+ //# sourceMappingURL=traverse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traverse.d.ts","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/traverse.ts"],"names":[],"mappings":"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"}