typesql-cli 0.5.17 → 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 +40 -1770
  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 -8
  24. package/mysql-query-analyzer/select-columns.d.ts.map +1 -1
  25. package/mysql-query-analyzer/select-columns.js +26 -225
  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.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,102 +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
  }
56
+ exports.getColumnName = getColumnName;
141
57
  function extractFieldsFromUsingClause(joinedTableContext) {
142
58
  var _a;
143
59
  const usingFieldsClause = (_a = joinedTableContext.identifierListWithParentheses()) === null || _a === void 0 ? void 0 : _a.identifierList();
@@ -146,109 +62,7 @@ function extractFieldsFromUsingClause(joinedTableContext) {
146
62
  }
147
63
  return [];
148
64
  }
149
- function filterUsingFields(joinedFields, usingFields) {
150
- return joinedFields.filter(joinedField => {
151
- const isUsing = usingFields.includes(joinedField.columnName);
152
- if (!isUsing) {
153
- return joinedField;
154
- }
155
- });
156
- }
157
- //rule: singleTable
158
- function extractFieldsFromSingleTable(dbSchema, withSchema, ctx) {
159
- var _a;
160
- const table = ctx === null || ctx === void 0 ? void 0 : ctx.tableRef().text;
161
- const tableAlias = (_a = ctx === null || ctx === void 0 ? void 0 : ctx.tableAlias()) === null || _a === void 0 ? void 0 : _a.identifier().text;
162
- const tableName = splitName(table);
163
- const fields = filterColumns(dbSchema, withSchema, tableAlias, tableName);
164
- return fields;
165
- }
166
- //rule: singleTableParens
167
- function extractFieldsFromSingleTableParens(dbSchema, withSchema, ctx) {
168
- let fields = [];
169
- //singleTable | singleTableParens
170
- const singleTable = ctx.singleTable();
171
- if (singleTable) {
172
- fields = extractFieldsFromSingleTable(dbSchema, withSchema, singleTable);
173
- }
174
- const singleTableParens = ctx.singleTableParens();
175
- if (singleTableParens) {
176
- fields = extractFieldsFromSingleTableParens(dbSchema, withSchema, singleTableParens);
177
- }
178
- return fields;
179
- }
180
- /*rule:
181
- tableFactor:
182
- singleTable
183
- | singleTableParens
184
- | derivedTable
185
- | tableReferenceListParens
186
- | {serverVersion >= 80004}? tableFunction
187
- */
188
- function extractFieldsFromTableFactor(tableFactor, dbSchema, withSchema) {
189
- var _a;
190
- const singleTable = tableFactor.singleTable();
191
- if (singleTable) {
192
- return extractFieldsFromSingleTable(dbSchema, withSchema, singleTable);
193
- }
194
- const singleTableParens = tableFactor.singleTableParens();
195
- if (singleTableParens) {
196
- return extractFieldsFromSingleTableParens(dbSchema, withSchema, singleTableParens);
197
- }
198
- const derivadTable = tableFactor.derivedTable();
199
- if (derivadTable) {
200
- //walkQueryExpressionParens(queryExpressionParens, namedNodes, constraints, dbSchema);
201
- //TODO - WALKSUBQUERY
202
- const subQuery = derivadTable.subquery();
203
- if (subQuery) {
204
- const tableAlias = (_a = derivadTable.tableAlias()) === null || _a === void 0 ? void 0 : _a.identifier().text;
205
- return extractFieldsFromSubquery(subQuery, dbSchema, withSchema, tableAlias);
206
- }
207
- }
208
- const tableReferenceListParens = tableFactor.tableReferenceListParens();
209
- if (tableReferenceListParens) {
210
- const listParens = extractColumnsFromTableListParens(tableReferenceListParens, dbSchema, withSchema);
211
- return listParens;
212
- }
213
- return [];
214
- }
215
- function analyzeSubQuery(subQuery, dbSchema, withSchema, recursive = false) {
216
- const queries = (0, parse_1.getQuerySpecificationsFromSelectStatement)(subQuery);
217
- const queryResult = (0, parse_1.analiseQuery)(queries, dbSchema, withSchema, [], recursive); //TODO - WHY []?
218
- return queryResult;
219
- }
220
- exports.analyzeSubQuery = analyzeSubQuery;
221
- function extractFieldsFromSubquery(subQuery, dbSchema, withSchema, tableAlias) {
222
- //subquery=true only for select (subquery); not for from(subquery)
223
- // const fromColumns
224
- const queryResult = analyzeSubQuery(subQuery, dbSchema, withSchema);
225
- // console.log("queryResult=", queryResult);
226
- // const tableAlias = derivadTable.tableAlias()?.text;
227
- return queryResult.columns.map(col => {
228
- const newCol = {
229
- column: col.name,
230
- columnName: col.name,
231
- columnType: col.type,
232
- columnKey: '',
233
- notNull: col.notNull,
234
- table: tableAlias || '',
235
- tableAlias: tableAlias
236
- };
237
- return newCol;
238
- });
239
- }
240
- //tableReferenceList | tableReferenceListParens
241
- function extractColumnsFromTableListParens(ctx, dbSchema, withSchema) {
242
- const tableReferenceList = ctx.tableReferenceList();
243
- if (tableReferenceList) {
244
- return extractColumnsFromTableReferences(tableReferenceList.tableReference(), dbSchema, withSchema);
245
- }
246
- const tableReferenceListParens = ctx.tableReferenceListParens();
247
- if (tableReferenceListParens) {
248
- return extractColumnsFromTableListParens(tableReferenceListParens, dbSchema, withSchema);
249
- }
250
- return [];
251
- }
65
+ exports.extractFieldsFromUsingClause = extractFieldsFromUsingClause;
252
66
  function splitName(fieldName) {
253
67
  const fieldNameSplit = fieldName.split('.');
254
68
  const result = {
@@ -266,7 +80,7 @@ function removeBackStick(name) {
266
80
  const withoutBackStick = name.startsWith("`") && name.endsWith("`") ? name.slice(1, -1) : name;
267
81
  return withoutBackStick;
268
82
  }
269
- const functionAlias = [
83
+ exports.functionAlias = [
270
84
  {
271
85
  column: 'CURRENT_DATE',
272
86
  column_type: 'date',
@@ -310,12 +124,11 @@ const functionAlias = [
310
124
  ];
311
125
  function findColumn(fieldName, columns) {
312
126
  //TODO - Put tableAlias always ''
313
- const functionType = functionAlias.find(col => col.column.toLowerCase() == fieldName.name.toLowerCase());
127
+ const functionType = exports.functionAlias.find(col => col.column.toLowerCase() == fieldName.name.toLowerCase());
314
128
  if (functionType) {
315
129
  const colDef = {
316
- column: functionType.column,
317
130
  columnName: functionType.column,
318
- columnType: functionType.column_type,
131
+ columnType: (0, collect_constraints_1.freshVar)(functionType.column, functionType.column_type),
319
132
  columnKey: functionType.columnKey,
320
133
  notNull: functionType.notNull,
321
134
  table: ''
@@ -330,19 +143,6 @@ function findColumn(fieldName, columns) {
330
143
  return found;
331
144
  }
332
145
  exports.findColumn = findColumn;
333
- function findColumn2(fieldName, table, columns) {
334
- //TODO - Put tableAlias always ''
335
- const functionType = functionAlias.find(col => col.column == fieldName.name);
336
- if (functionType) {
337
- return functionType;
338
- }
339
- const found = columns.find(col => col.column.toLowerCase() === fieldName.name.toLowerCase() && table === col.table);
340
- if (!found) {
341
- throw Error('column not found:' + JSON.stringify(fieldName));
342
- }
343
- return found;
344
- }
345
- exports.findColumn2 = findColumn2;
346
146
  function extractOriginalSql(rule) {
347
147
  var _a, _b;
348
148
  const startIndex = rule.start.startIndex;
@@ -351,6 +151,7 @@ function extractOriginalSql(rule) {
351
151
  const result = (_b = rule.start.inputStream) === null || _b === void 0 ? void 0 : _b.getText(interval);
352
152
  return result;
353
153
  }
154
+ exports.extractOriginalSql = extractOriginalSql;
354
155
  function getSimpleExpressions(ctx) {
355
156
  const tokens = [];
356
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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"}