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
@@ -23,15 +23,15 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.getQuerySpecificationsFromSelectStatement = exports.analiseQuery = exports.extractQueryInfo = exports.extractQueryInfoFromQuerySpecification = exports.parseAndInferParamNullability = exports.parseAndInfer = exports.infer = exports.parse = void 0;
26
+ exports.getQuerySpecificationsFromSelectStatement = exports.getAllQuerySpecificationsFromSelectStatement = exports.extractQueryInfo = exports.getLimitOptions = exports.isSumExpressContext = exports.isMultipleRowResult = exports.extractLimitParameters = exports.extractOrderByParameters = exports.parseAndInferParamNullability = exports.parseAndInfer = exports.parse = void 0;
27
27
  const ts_mysql_parser_1 = __importStar(require("ts-mysql-parser"));
28
28
  const tree_1 = require("antlr4ts/tree");
29
29
  const collect_constraints_1 = require("./collect-constraints");
30
- const select_columns_1 = require("./select-columns");
31
30
  const infer_param_nullability_1 = require("./infer-param-nullability");
32
- const infer_column_nullability_1 = require("./infer-column-nullability");
33
31
  const describe_query_1 = require("../describe-query");
34
32
  const verify_multiple_result_1 = require("./verify-multiple-result");
33
+ const unify_1 = require("./unify");
34
+ const traverse_1 = require("./traverse");
35
35
  const parser = new ts_mysql_parser_1.default({
36
36
  version: '8.0.17',
37
37
  mode: ts_mysql_parser_1.SqlMode.NoMode
@@ -44,26 +44,28 @@ function parse(sql) {
44
44
  return parseResult.tree;
45
45
  }
46
46
  exports.parse = parse;
47
- function infer(queryContext, dbSchema, withSchema, namedParameters) {
48
- const context = {
49
- dbSchema,
50
- withSchema,
51
- constraints: [],
52
- parameters: [],
53
- fromColumns: []
54
- };
55
- const typeInferenceResult = (0, collect_constraints_1.analiseTree)(queryContext, context, namedParameters);
56
- // const newTypeInference : TypeInferenceResult = {
57
- // columns: typeInferenceResult.columns.map( col => verifyNotInferred(col)),
58
- // parameters: typeInferenceResult.parameters.map(paramType => verifyNotInferred(paramType))
59
- // }
60
- return typeInferenceResult;
61
- }
62
- exports.infer = infer;
63
47
  //TODO - withSchema DEFAULT VALUE []
64
- function parseAndInfer(sql, dbSchema, withSchema = []) {
65
- const { sql: processedSql, namedParameters } = (0, describe_query_1.preprocessSql)(sql);
66
- return infer(parse(processedSql), dbSchema, withSchema, namedParameters);
48
+ function parseAndInfer(sql, dbSchema) {
49
+ const result = extractQueryInfo(sql, dbSchema);
50
+ if (result.kind == 'Select') {
51
+ return {
52
+ columns: result.columns.map(p => p.type),
53
+ parameters: result.parameters.map(p => p.type)
54
+ };
55
+ }
56
+ if (result.kind == 'Insert') {
57
+ return {
58
+ columns: [],
59
+ parameters: result.parameters.map(p => p.columnType)
60
+ };
61
+ }
62
+ if (result.kind == 'Update') {
63
+ return {
64
+ columns: [],
65
+ parameters: result.data.map(p => p.columnType)
66
+ };
67
+ }
68
+ throw Error("parseAndInfer: " + sql);
67
69
  }
68
70
  exports.parseAndInfer = parseAndInfer;
69
71
  function parseAndInferParamNullability(sql) {
@@ -73,42 +75,11 @@ function parseAndInferParamNullability(sql) {
73
75
  return (0, infer_param_nullability_1.inferParamNullabilityQuery)(selectStatement);
74
76
  }
75
77
  exports.parseAndInferParamNullability = parseAndInferParamNullability;
76
- function extractQueryInfoFromQuerySpecification(querySpec, dbSchema, withSchema, namedParameters) {
77
- const fromColumns = (0, select_columns_1.getColumnsFrom)(querySpec, dbSchema, withSchema);
78
- const inferResult = (0, collect_constraints_1.analiseQuerySpecification)(querySpec, dbSchema, withSchema, fromColumns, namedParameters);
79
- // console.log("inferResult=", inferResult);
80
- const columnNullability = (0, infer_column_nullability_1.inferNotNull)(querySpec, dbSchema, withSchema);
81
- const selectedColumns = (0, select_columns_1.getColumnNames)(querySpec, fromColumns);
82
- const columnResult = selectedColumns.map((col, index) => {
83
- const columnType = inferResult.columns[index];
84
- const columnNotNull = columnNullability[index];
85
- const colInfo = {
86
- name: col,
87
- type: columnType,
88
- notNull: columnNotNull
89
- };
90
- return colInfo;
91
- });
92
- const paramInference = (0, infer_param_nullability_1.inferParamNullability)(querySpec);
93
- const parametersResult = inferResult.parameters.map((param, index) => {
94
- const paramInfo = {
95
- name: '?',
96
- type: param,
97
- notNull: paramInference[index]
98
- };
99
- return paramInfo;
100
- });
101
- const queryResult = {
102
- columns: columnResult,
103
- parameters: parametersResult
104
- };
105
- return queryResult;
106
- }
107
- exports.extractQueryInfoFromQuerySpecification = extractQueryInfoFromQuerySpecification;
108
78
  function extractOrderByParameters(selectStatement) {
109
79
  var _a, _b;
110
80
  return ((_b = (_a = selectStatement.queryExpression()) === null || _a === void 0 ? void 0 : _a.orderClause()) === null || _b === void 0 ? void 0 : _b.orderList().orderExpression().filter(orderExpr => orderExpr.text == '?').map(orderExpr => orderExpr.text)) || [];
111
81
  }
82
+ exports.extractOrderByParameters = extractOrderByParameters;
112
83
  function extractLimitParameters(selectStatement) {
113
84
  return getLimitOptions(selectStatement)
114
85
  .filter(limit => limit.PARAM_MARKER())
@@ -120,9 +91,10 @@ function extractLimitParameters(selectStatement) {
120
91
  return paramInfo;
121
92
  }) || [];
122
93
  }
94
+ exports.extractLimitParameters = extractLimitParameters;
123
95
  function isMultipleRowResult(selectStatement, fromColumns) {
124
96
  var _a, _b;
125
- const querySpecs = getQuerySpecificationsFromSelectStatement(selectStatement);
97
+ const querySpecs = getAllQuerySpecificationsFromSelectStatement(selectStatement);
126
98
  if (querySpecs.length == 1) { //UNION queries are multipleRowsResult = true
127
99
  const fromClause = querySpecs[0].fromClause();
128
100
  if (!fromClause) {
@@ -159,6 +131,7 @@ function isMultipleRowResult(selectStatement, fromColumns) {
159
131
  }
160
132
  return true;
161
133
  }
134
+ exports.isMultipleRowResult = isMultipleRowResult;
162
135
  function isSumExpressContext(selectItem) {
163
136
  var _a;
164
137
  if (selectItem instanceof ts_mysql_parser_1.SimpleExprWindowingFunctionContext
@@ -187,110 +160,104 @@ function isSumExpressContext(selectItem) {
187
160
  }
188
161
  return false;
189
162
  }
163
+ exports.isSumExpressContext = isSumExpressContext;
190
164
  function getLimitOptions(selectStatement) {
191
165
  var _a, _b;
192
166
  return ((_b = (_a = selectStatement.queryExpression()) === null || _a === void 0 ? void 0 : _a.limitClause()) === null || _b === void 0 ? void 0 : _b.limitOptions().limitOption()) || [];
193
167
  }
194
- //TODO - withSchema: ColumnSchema[] DEFAULT VALUE
168
+ exports.getLimitOptions = getLimitOptions;
195
169
  function extractQueryInfo(sql, dbSchema) {
196
- var _a, _b, _c, _d;
197
- const { sql: processedSql, namedParameters } = (0, describe_query_1.preprocessSql)(sql);
198
- const tree = parse(processedSql);
199
- const context = {
200
- dbSchema,
201
- withSchema: [],
202
- parameters: [],
203
- constraints: [],
204
- fromColumns: []
205
- };
206
- if (tree instanceof ts_mysql_parser_1.QueryContext) {
207
- const selectStatement = (_a = tree.simpleStatement()) === null || _a === void 0 ? void 0 : _a.selectStatement();
208
- if (selectStatement) {
209
- // selectStatement:
210
- // queryExpression
211
- // | queryExpressionParens
212
- const queryExpression = selectStatement.queryExpression();
213
- if (queryExpression) {
214
- //queryExpression
215
- const withClause = queryExpression.withClause();
216
- const allWithSchema = [];
217
- const withClauseParameters = [];
218
- if (withClause) {
219
- const withClauseResults = analyseWithClause(withClause, dbSchema, []);
220
- withClauseResults.forEach(withClauseResult => {
221
- allWithSchema.push(...withClauseResult.queryResult.columns);
222
- withClauseParameters.push(...withClauseResult.queryResult.parameters);
223
- });
224
- }
225
- context.withSchema = allWithSchema;
226
- const queryExpressionBody = queryExpression.queryExpressionBody() || queryExpression.queryExpressionParens();
227
- if (queryExpressionBody) {
228
- const querySpec = getQuerySpecificationsFromSelectStatement(queryExpressionBody);
229
- const mainQueryResult = analiseQuery(querySpec, context.dbSchema, context.withSchema, namedParameters);
230
- const orderByParameters = extractOrderByParameters(selectStatement);
231
- const limitParameters = extractLimitParameters(selectStatement);
232
- const allParameters = mainQueryResult.parameters
233
- .concat(withClauseParameters)
234
- .map(param => ({ type: (0, describe_query_1.verifyNotInferred)(param.type), notNull: param.notNull }))
235
- .concat(limitParameters);
236
- const fromColumns = (0, select_columns_1.getColumnsFrom)(querySpec[0], context.dbSchema, context.withSchema);
237
- const multipleRowsResult = isMultipleRowResult(selectStatement, fromColumns);
238
- const resultWithoutOrderBy = {
239
- kind: 'Select',
240
- multipleRowsResult: multipleRowsResult,
241
- columns: mainQueryResult.columns.map(col => ({ columnName: col.name, type: (0, describe_query_1.verifyNotInferred)(col.type), notNull: col.notNull })),
242
- parameters: allParameters,
243
- };
244
- const orderByColumns = orderByParameters.length > 0 ? getOrderByColumns(fromColumns, mainQueryResult.columns) : undefined;
245
- if (orderByColumns) {
246
- resultWithoutOrderBy.orderByColumns = orderByColumns;
247
- }
248
- return resultWithoutOrderBy;
249
- }
250
- }
251
- }
252
- const insertStatement = (_b = tree.simpleStatement()) === null || _b === void 0 ? void 0 : _b.insertStatement();
253
- if (insertStatement) {
254
- const typeInfer = (0, collect_constraints_1.analiseInsertStatement)(insertStatement, context);
255
- return typeInfer;
256
- }
257
- const updateStatement = (_c = tree.simpleStatement()) === null || _c === void 0 ? void 0 : _c.updateStatement();
258
- if (updateStatement) {
259
- const typeInfer = (0, collect_constraints_1.analiseUpdateStatement)(updateStatement, context.dbSchema, context.withSchema);
260
- return typeInfer;
261
- }
262
- const deleteStatement = (_d = tree.simpleStatement()) === null || _d === void 0 ? void 0 : _d.deleteStatement();
263
- if (deleteStatement) {
264
- const typeInfer = (0, collect_constraints_1.analiseDeleteStatement)(deleteStatement, context.dbSchema, context.withSchema);
265
- return typeInfer;
266
- }
170
+ const traverseResult = (0, traverse_1.traverseSql)(sql, dbSchema);
171
+ if (traverseResult.type == 'Select') {
172
+ return extractSelectQueryInfo(traverseResult);
173
+ }
174
+ if (traverseResult.type == 'Insert') {
175
+ const newResult = {
176
+ kind: 'Insert',
177
+ parameters: traverseResult.parameters
178
+ };
179
+ return newResult;
180
+ }
181
+ if (traverseResult.type == 'Update') {
182
+ const substitutions = {}; //TODO - DUPLICADO
183
+ (0, unify_1.unify)(traverseResult.constraints, substitutions);
184
+ const columnResult = traverseResult.data.map((col) => {
185
+ const columnType = (0, collect_constraints_1.getVarType)(substitutions, col.type);
186
+ const columnNotNull = col.notNull;
187
+ const colInfo = {
188
+ name: col.name,
189
+ columnType: (0, describe_query_1.verifyNotInferred)(columnType),
190
+ notNull: columnNotNull
191
+ };
192
+ return colInfo;
193
+ });
194
+ const paramResult = traverseResult.parameters.map((col) => {
195
+ const columnType = (0, collect_constraints_1.getVarType)(substitutions, col.type);
196
+ const columnNotNull = col.notNull;
197
+ const colInfo = {
198
+ name: col.name,
199
+ columnType: (0, describe_query_1.verifyNotInferred)(columnType),
200
+ notNull: columnNotNull
201
+ };
202
+ return colInfo;
203
+ });
204
+ const newResult = {
205
+ kind: 'Update',
206
+ data: columnResult,
207
+ parameters: paramResult
208
+ };
209
+ return newResult;
210
+ }
211
+ if (traverseResult.type == 'Delete') {
212
+ const newResult = {
213
+ kind: 'Delete',
214
+ parameters: traverseResult.parameters
215
+ };
216
+ return newResult;
267
217
  }
268
218
  throw Error('Not supported');
269
219
  }
270
220
  exports.extractQueryInfo = extractQueryInfo;
271
- function getOrderByColumns(fromColumns, selectColumns) {
272
- const fromColumnsNames = fromColumns.map(col => col.columnName); //TODO - loading twice
273
- const selectColumnsNames = selectColumns.map(col => col.name);
274
- const allOrderByColumns = Array.from(new Set(fromColumnsNames.concat(selectColumnsNames)));
275
- return allOrderByColumns;
276
- }
277
- function analiseQuery(querySpec, dbSchema, withSchema, namedParameters, recursive = false) {
278
- const mainQueryResult = extractQueryInfoFromQuerySpecification(querySpec[0], dbSchema, withSchema, namedParameters);
279
- for (let queryIndex = 1; queryIndex < querySpec.length; queryIndex++) { //union (if have any)
280
- if (recursive) {
281
- withSchema.push(...mainQueryResult.columns);
282
- }
283
- const unionResult = extractQueryInfoFromQuerySpecification(querySpec[queryIndex], dbSchema, withSchema, namedParameters);
284
- mainQueryResult.columns.forEach((field, fieldIndex) => {
285
- const unionField = unionResult.columns[fieldIndex];
286
- field.notNull = field.notNull && unionField.notNull; //if all the fields at the fieldIndex is null
287
- field.type = (0, collect_constraints_1.unionTypeResult)(field.type, unionField.type);
288
- });
289
- mainQueryResult.parameters.push(...unionResult.parameters);
221
+ function extractSelectQueryInfo(traverseResult) {
222
+ const substitutions = {}; //TODO - DUPLICADO
223
+ (0, unify_1.unify)(traverseResult.constraints, substitutions);
224
+ const columnResult = traverseResult.columns.map((col) => {
225
+ const columnType = (0, collect_constraints_1.getVarType)(substitutions, col.type);
226
+ const columnNotNull = col.notNull;
227
+ const colInfo = {
228
+ columnName: col.name,
229
+ type: (0, describe_query_1.verifyNotInferred)(columnType),
230
+ notNull: columnNotNull
231
+ };
232
+ return colInfo;
233
+ });
234
+ const paramsResult = traverseResult.parameters.map((param) => {
235
+ const columnType = (0, collect_constraints_1.getVarType)(substitutions, param.type);
236
+ const columnNotNull = param.notNull;
237
+ const colInfo = {
238
+ // columnName: param.name,
239
+ type: (0, describe_query_1.verifyNotInferred)(columnType),
240
+ notNull: columnNotNull
241
+ };
242
+ return colInfo;
243
+ }).concat(traverseResult.limitParameters);
244
+ const resultWithoutOrderBy = {
245
+ kind: 'Select',
246
+ multipleRowsResult: traverseResult.isMultiRow,
247
+ columns: columnResult,
248
+ parameters: paramsResult,
249
+ };
250
+ if (traverseResult.orderByColumns) {
251
+ resultWithoutOrderBy.orderByColumns = traverseResult.orderByColumns;
290
252
  }
291
- return mainQueryResult;
253
+ return resultWithoutOrderBy;
292
254
  }
293
- exports.analiseQuery = analiseQuery;
255
+ function getAllQuerySpecificationsFromSelectStatement(selectStatement) {
256
+ const result = [];
257
+ collectAllQuerySpecifications(selectStatement, result);
258
+ return result;
259
+ }
260
+ exports.getAllQuerySpecificationsFromSelectStatement = getAllQuerySpecificationsFromSelectStatement;
294
261
  function getQuerySpecificationsFromSelectStatement(selectStatement) {
295
262
  const result = [];
296
263
  collectQuerySpecifications(selectStatement, result);
@@ -301,7 +268,8 @@ exports.getQuerySpecificationsFromSelectStatement = getQuerySpecificationsFromSe
301
268
  function collectQuerySpecifications(tree, result) {
302
269
  for (let i = 0; i < tree.childCount; i++) {
303
270
  const child = tree.getChild(i);
304
- if (child instanceof ts_mysql_parser_1.QuerySpecificationContext) {
271
+ //add only first query and unions
272
+ if (child instanceof ts_mysql_parser_1.QuerySpecificationContext && (result.length == 0 || child.parent.UNION_SYMBOL())) {
305
273
  result.push(child);
306
274
  }
307
275
  else {
@@ -309,41 +277,15 @@ function collectQuerySpecifications(tree, result) {
309
277
  }
310
278
  }
311
279
  }
312
- function analyseWithClause(withClause, dbSchema, withSchema) {
313
- const result = withClause.commonTableExpression().map(commonTableExpression => {
314
- var _a;
315
- const identifier = commonTableExpression.identifier().text;
316
- const columnInternalRefList = ((_a = commonTableExpression.columnInternalRefList()) === null || _a === void 0 ? void 0 : _a.columnInternalRef()) || [];
317
- columnInternalRefList.forEach(colRef => {
318
- const identifier = colRef.identifier().text;
319
- withSchema.push({
320
- name: identifier,
321
- notNull: true,
322
- type: '?'
323
- });
324
- });
325
- const subQuery = commonTableExpression.subquery();
326
- const recursive = withClause.RECURSIVE_SYMBOL() ? true : false;
327
- const queryResult = (0, select_columns_1.analyzeSubQuery)(subQuery, dbSchema, withSchema, recursive);
328
- if (recursive) {
329
- const newColumnNames = queryResult.columns.map((col, index) => {
330
- const newR = Object.assign(Object.assign({}, col), { name: withSchema[index].name });
331
- return newR;
332
- });
333
- const newQueryResult = {
334
- columns: newColumnNames,
335
- parameters: queryResult.parameters
336
- };
337
- return {
338
- identifier,
339
- queryResult: newQueryResult
340
- };
280
+ function collectAllQuerySpecifications(tree, result) {
281
+ for (let i = 0; i < tree.childCount; i++) {
282
+ const child = tree.getChild(i);
283
+ if (child instanceof ts_mysql_parser_1.QuerySpecificationContext) {
284
+ result.push(child);
341
285
  }
342
- return {
343
- identifier,
344
- queryResult
345
- };
346
- });
347
- return result;
286
+ else {
287
+ collectAllQuerySpecifications(child, result);
288
+ }
289
+ }
348
290
  }
349
291
  //# sourceMappingURL=parse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/parse.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,14 @@
1
- import { RuleContext } from "antlr4ts";
1
+ import { ParserRuleContext, RuleContext } from "antlr4ts";
2
2
  import { ParseTree } from "antlr4ts/tree";
3
- import { QuerySpecificationContext, TableReferenceContext, SubqueryContext } from "ts-mysql-parser";
4
- import { ColumnSchema, ColumnDef, FieldName, TypeAndNullInfer } from "./types";
5
- export declare function filterColumns(dbSchema: ColumnSchema[], withSchema: TypeAndNullInfer[], tableAlias: string | undefined, table: FieldName): ColumnDef[];
3
+ import { JoinedTableContext, SelectItemContext } from "ts-mysql-parser";
4
+ import { ColumnDef, ColumnSchema, FieldName } from "./types";
5
+ export declare function filterColumns(dbSchema: ColumnSchema[], withSchema: ColumnDef[], tableAlias: string | undefined, table: FieldName): ColumnDef[];
6
6
  export declare function selectAllColumns(tablePrefix: string, fromColumns: ColumnDef[]): ColumnDef[];
7
- export declare function getColumnNames(querySpec: QuerySpecificationContext, fromColumns: ColumnDef[]): string[];
8
- export declare function getColumnsFrom(ctx: QuerySpecificationContext, dbSchema: ColumnSchema[], withSchema: TypeAndNullInfer[]): ColumnDef[];
9
- export declare function extractColumnsFromTableReferences(tablesReferences: TableReferenceContext[], dbSchema: ColumnSchema[], withSchema: TypeAndNullInfer[]): ColumnDef[];
10
- export declare function analyzeSubQuery(subQuery: SubqueryContext, dbSchema: ColumnSchema[], withSchema: TypeAndNullInfer[], recursive?: boolean): import("./types").TypeAndNullInferResult;
7
+ export declare function getColumnName(selectItem: SelectItemContext): string;
8
+ export declare function extractFieldsFromUsingClause(joinedTableContext: JoinedTableContext): string[];
11
9
  export declare function splitName(fieldName: string): FieldName;
10
+ export declare const functionAlias: ColumnSchema[];
12
11
  export declare function findColumn(fieldName: FieldName, columns: ColumnDef[]): ColumnDef;
13
- export declare function findColumn2(fieldName: FieldName, table: string, columns: ColumnSchema[]): ColumnSchema;
12
+ export declare function extractOriginalSql(rule: ParserRuleContext): string | undefined;
14
13
  export declare function getSimpleExpressions(ctx: RuleContext): ParseTree[];
15
14
  //# sourceMappingURL=select-columns.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"select-columns.d.ts","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/select-columns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,WAAW,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,OAAO,EACH,yBAAyB,EAAE,qBAAqB,EAKuF,eAAe,EACzJ,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAK/E,wBAAgB,aAAa,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE,CA0BrJ;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,eAS7E;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,yBAAyB,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,CA6BvG;AAGD,wBAAgB,cAAc,CAAC,GAAG,EAAE,yBAAyB,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAItH;AAGD,wBAAgB,iCAAiC,CAAC,gBAAgB,EAAE,qBAAqB,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,SAAS,EAAE,CAuElK;AAmFD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE,EAAE,SAAS,UAAQ,4CAIrI;AAwCD,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAWtD;AAsDD,wBAAgB,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,SAAS,CAoBhF;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,YAAY,CAWtG;AAWD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,WAAW,GAAG,SAAS,EAAE,CAKlE"}
1
+ {"version":3,"file":"select-columns.d.ts","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/select-columns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,OAAO,EACH,kBAAkB,EAIqH,iBAAiB,EAC3J,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAG7D,wBAAgB,aAAa,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE,CAyB9I;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,eAQ7E;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,iBAAiB,UAW1D;AAED,wBAAgB,4BAA4B,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,MAAM,EAAE,CAM7F;AAGD,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAWtD;AAOD,eAAO,MAAM,aAAa,EAAE,YAAY,EA6CvC,CAAA;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,SAAS,CAoBhF;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,sBAOzD;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,WAAW,GAAG,SAAS,EAAE,CAKlE"}