typesql-cli 0.4.7 → 0.4.9

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 (55) hide show
  1. package/cli.d.ts +2 -2
  2. package/cli.js +228 -220
  3. package/cli.js.map +1 -1
  4. package/code-generator.d.ts +19 -19
  5. package/code-generator.d.ts.map +1 -1
  6. package/code-generator.js +269 -265
  7. package/code-generator.js.map +1 -1
  8. package/describe-query.d.ts +9 -9
  9. package/describe-query.js +168 -168
  10. package/describe-query.js.map +1 -1
  11. package/mysql-mapping.d.ts +18 -18
  12. package/mysql-mapping.d.ts.map +1 -1
  13. package/mysql-mapping.js +146 -146
  14. package/mysql-mapping.js.map +1 -1
  15. package/mysql-query-analyzer/collect-constraints.d.ts +50 -50
  16. package/mysql-query-analyzer/collect-constraints.d.ts.map +1 -1
  17. package/mysql-query-analyzer/collect-constraints.js +1196 -1195
  18. package/mysql-query-analyzer/collect-constraints.js.map +1 -1
  19. package/mysql-query-analyzer/infer-column-nullability.d.ts +5 -5
  20. package/mysql-query-analyzer/infer-column-nullability.js +307 -307
  21. package/mysql-query-analyzer/infer-column-nullability.js.map +1 -1
  22. package/mysql-query-analyzer/infer-param-nullability.d.ts +6 -6
  23. package/mysql-query-analyzer/infer-param-nullability.js +78 -78
  24. package/mysql-query-analyzer/infer-param-nullability.js.map +1 -1
  25. package/mysql-query-analyzer/parse.d.ts +14 -14
  26. package/mysql-query-analyzer/parse.d.ts.map +1 -1
  27. package/mysql-query-analyzer/parse.js +219 -215
  28. package/mysql-query-analyzer/parse.js.map +1 -1
  29. package/mysql-query-analyzer/select-columns.d.ts +12 -12
  30. package/mysql-query-analyzer/select-columns.js +373 -373
  31. package/mysql-query-analyzer/select-columns.js.map +1 -1
  32. package/mysql-query-analyzer/types.d.ts +72 -72
  33. package/mysql-query-analyzer/types.d.ts.map +1 -1
  34. package/mysql-query-analyzer/types.js +2 -2
  35. package/mysql-query-analyzer/unify.d.ts +4 -4
  36. package/mysql-query-analyzer/unify.js +157 -157
  37. package/mysql-query-analyzer/util.d.ts +6 -6
  38. package/mysql-query-analyzer/util.d.ts.map +1 -1
  39. package/mysql-query-analyzer/util.js +30 -30
  40. package/mysql-query-analyzer/verify-multiple-result.d.ts +3 -3
  41. package/mysql-query-analyzer/verify-multiple-result.js +47 -47
  42. package/mysql-query-analyzer/verify-multiple-result.js.map +1 -1
  43. package/package.json +4 -5
  44. package/queryExectutor.d.ts +15 -13
  45. package/queryExectutor.d.ts.map +1 -1
  46. package/queryExectutor.js +107 -104
  47. package/queryExectutor.js.map +1 -1
  48. package/sql-generator.d.ts +5 -5
  49. package/sql-generator.js +88 -88
  50. package/types.d.ts +89 -89
  51. package/types.d.ts.map +1 -1
  52. package/types.js +2 -2
  53. package/utility-types.d.ts +4 -4
  54. package/utility-types.d.ts.map +1 -1
  55. package/utility-types.js +2 -2
@@ -1,216 +1,220 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.getQuerySpecificationsFromSelectStatement = exports.analiseQuery = exports.extractQueryInfo = exports.extractQueryInfoFromQuerySpecification = exports.parseAndInferParamNullability = exports.parseAndInfer = exports.infer = exports.parse = void 0;
23
- const ts_mysql_parser_1 = __importStar(require("ts-mysql-parser"));
24
- const collect_constraints_1 = require("./collect-constraints");
25
- const select_columns_1 = require("./select-columns");
26
- const infer_param_nullability_1 = require("./infer-param-nullability");
27
- const infer_column_nullability_1 = require("./infer-column-nullability");
28
- const describe_query_1 = require("../describe-query");
29
- const verify_multiple_result_1 = require("./verify-multiple-result");
30
- const parser = new ts_mysql_parser_1.default({
31
- version: '8.0.17',
32
- mode: ts_mysql_parser_1.SqlMode.NoMode
33
- });
34
- function parse(sql) {
35
- const parseResult = parser.parse(sql);
36
- if (parseResult.parserError) {
37
- throw new Error('Parser error' + parseResult.parserError);
38
- }
39
- return parseResult.tree;
40
- }
41
- exports.parse = parse;
42
- function infer(queryContext, dbSchema, namedParameters) {
43
- const typeInferenceResult = collect_constraints_1.analiseTree(queryContext, dbSchema, namedParameters);
44
- // const newTypeInference : TypeInferenceResult = {
45
- // columns: typeInferenceResult.columns.map( col => verifyNotInferred(col)),
46
- // parameters: typeInferenceResult.parameters.map(paramType => verifyNotInferred(paramType))
47
- // }
48
- return typeInferenceResult;
49
- }
50
- exports.infer = infer;
51
- function parseAndInfer(sql, dbSchema) {
52
- const { sql: processedSql, namedParameters } = describe_query_1.preprocessSql(sql);
53
- return infer(parse(processedSql), dbSchema, namedParameters);
54
- }
55
- exports.parseAndInfer = parseAndInfer;
56
- function parseAndInferParamNullability(sql) {
57
- const queryContext = parse(sql);
58
- return infer_param_nullability_1.inferParamNullabilityQuery(queryContext);
59
- }
60
- exports.parseAndInferParamNullability = parseAndInferParamNullability;
61
- function extractQueryInfoFromQuerySpecification(querySpec, dbSchema, namedParameters) {
62
- const fromColumns = select_columns_1.getColumnsFrom(querySpec, dbSchema);
63
- const inferResult = collect_constraints_1.analiseQuerySpecification(querySpec, dbSchema, namedParameters, fromColumns);
64
- // console.log("inferResult=", inferResult);
65
- const columnNullability = infer_column_nullability_1.inferNotNull(querySpec, dbSchema);
66
- const selectedColumns = select_columns_1.getColumnNames(querySpec, fromColumns);
67
- const columnResult = selectedColumns.map((col, index) => {
68
- const columnType = inferResult.columns[index];
69
- const columnNotNull = columnNullability[index];
70
- const colInfo = {
71
- name: col,
72
- type: columnType,
73
- notNull: columnNotNull
74
- };
75
- return colInfo;
76
- });
77
- const paramInference = infer_param_nullability_1.inferParamNullability(querySpec);
78
- const parametersResult = inferResult.parameters.map((param, index) => {
79
- const paramInfo = {
80
- name: '?',
81
- type: param,
82
- notNull: paramInference[index]
83
- };
84
- return paramInfo;
85
- });
86
- const queryResult = {
87
- columns: columnResult,
88
- parameters: parametersResult
89
- };
90
- return queryResult;
91
- }
92
- exports.extractQueryInfoFromQuerySpecification = extractQueryInfoFromQuerySpecification;
93
- function extractOrderByParameters(selectStatement) {
94
- var _a, _b;
95
- 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)) || [];
96
- }
97
- function extractLimitParameters(selectStatement) {
98
- return getLimitOptions(selectStatement)
99
- .filter(limit => limit.PARAM_MARKER())
100
- .map(() => {
101
- const paramInfo = {
102
- type: 'bigint',
103
- notNull: true
104
- };
105
- return paramInfo;
106
- }) || [];
107
- }
108
- function isMultipleRowResult(selectStatement, fromColumns) {
109
- var _a;
110
- const querySpecs = getQuerySpecificationsFromSelectStatement(selectStatement);
111
- if (querySpecs.length == 1) { //UNION queries are multipleRowsResult = true
112
- const whereClauseExpr = (_a = querySpecs[0].whereClause()) === null || _a === void 0 ? void 0 : _a.expr();
113
- const isMultipleRowResult = whereClauseExpr && verify_multiple_result_1.verifyMultipleResult(whereClauseExpr, fromColumns);
114
- if (isMultipleRowResult == false) {
115
- return false;
116
- }
117
- }
118
- const limitOptions = getLimitOptions(selectStatement);
119
- if (limitOptions.length == 1 && limitOptions[0].text == '1') {
120
- return false;
121
- }
122
- if (limitOptions.length == 2 && limitOptions[1].text == '1') {
123
- return false;
124
- }
125
- return true;
126
- }
127
- function getLimitOptions(selectStatement) {
128
- var _a, _b;
129
- return ((_b = (_a = selectStatement.queryExpression()) === null || _a === void 0 ? void 0 : _a.limitClause()) === null || _b === void 0 ? void 0 : _b.limitOptions().limitOption()) || [];
130
- }
131
- function extractQueryInfo(sql, dbSchema) {
132
- var _a, _b, _c, _d;
133
- const { sql: processedSql, namedParameters } = describe_query_1.preprocessSql(sql);
134
- const tree = parse(processedSql);
135
- if (tree instanceof ts_mysql_parser_1.QueryContext) {
136
- const selectStatement = (_a = tree.simpleStatement()) === null || _a === void 0 ? void 0 : _a.selectStatement();
137
- if (selectStatement) {
138
- const querySpec = getQuerySpecificationsFromSelectStatement(selectStatement);
139
- const mainQueryResult = analiseQuery(querySpec, dbSchema, namedParameters);
140
- const orderByParameters = extractOrderByParameters(selectStatement);
141
- const limitParameters = extractLimitParameters(selectStatement);
142
- const allParameters = mainQueryResult.parameters
143
- .map(param => ({ type: describe_query_1.verifyNotInferred(param.type), notNull: param.notNull }))
144
- .concat(limitParameters);
145
- const fromColumns = select_columns_1.getColumnsFrom(querySpec[0], dbSchema);
146
- const multipleRowsResult = isMultipleRowResult(selectStatement, fromColumns);
147
- const resultWithoutOrderBy = {
148
- kind: 'Select',
149
- multipleRowsResult: multipleRowsResult,
150
- columns: mainQueryResult.columns.map(col => ({ columnName: col.name, type: describe_query_1.verifyNotInferred(col.type), notNull: col.notNull })),
151
- parameters: allParameters,
152
- };
153
- const orderByColumns = orderByParameters.length > 0 ? getOrderByColumns(fromColumns, mainQueryResult.columns) : undefined;
154
- if (orderByColumns) {
155
- resultWithoutOrderBy.orderByColumns = orderByColumns;
156
- }
157
- return resultWithoutOrderBy;
158
- }
159
- const insertStatement = (_b = tree.simpleStatement()) === null || _b === void 0 ? void 0 : _b.insertStatement();
160
- if (insertStatement) {
161
- const insertColumns = collect_constraints_1.getInsertColumns(insertStatement, dbSchema);
162
- const typeInfer = collect_constraints_1.analiseInsertStatement(insertStatement, insertColumns);
163
- return typeInfer;
164
- }
165
- const updateStatement = (_c = tree.simpleStatement()) === null || _c === void 0 ? void 0 : _c.updateStatement();
166
- if (updateStatement) {
167
- const typeInfer = collect_constraints_1.analiseUpdateStatement(updateStatement, dbSchema);
168
- return typeInfer;
169
- }
170
- const deleteStatement = (_d = tree.simpleStatement()) === null || _d === void 0 ? void 0 : _d.deleteStatement();
171
- if (deleteStatement) {
172
- const typeInfer = collect_constraints_1.analiseDeleteStatement(deleteStatement, dbSchema);
173
- return typeInfer;
174
- }
175
- }
176
- throw Error('Not supported');
177
- }
178
- exports.extractQueryInfo = extractQueryInfo;
179
- function getOrderByColumns(fromColumns, selectColumns) {
180
- const fromColumnsNames = fromColumns.map(col => col.columnName); //TODO - loading twice
181
- const selectColumnsNames = selectColumns.map(col => col.name);
182
- const allOrderByColumns = Array.from(new Set(fromColumnsNames.concat(selectColumnsNames)));
183
- return allOrderByColumns;
184
- }
185
- function analiseQuery(querySpec, dbSchema, namedParameters) {
186
- const mainQueryResult = extractQueryInfoFromQuerySpecification(querySpec[0], dbSchema, namedParameters);
187
- for (let queryIndex = 1; queryIndex < querySpec.length; queryIndex++) { //union (if have any)
188
- const unionResult = extractQueryInfoFromQuerySpecification(querySpec[queryIndex], dbSchema, namedParameters);
189
- mainQueryResult.columns.forEach((field, fieldIndex) => {
190
- const unionField = unionResult.columns[fieldIndex];
191
- field.notNull = field.notNull && unionField.notNull; //if all the fields at the fieldIndex is null
192
- field.type = collect_constraints_1.unionTypeResult(field.type, unionField.type);
193
- });
194
- mainQueryResult.parameters.push(...unionResult.parameters);
195
- }
196
- return mainQueryResult;
197
- }
198
- exports.analiseQuery = analiseQuery;
199
- function getQuerySpecificationsFromSelectStatement(selectStatement) {
200
- const result = [];
201
- collectQuerySpecifications(selectStatement, result);
202
- return result;
203
- }
204
- exports.getQuerySpecificationsFromSelectStatement = getQuerySpecificationsFromSelectStatement;
205
- function collectQuerySpecifications(tree, result) {
206
- for (let i = 0; i < tree.childCount; i++) {
207
- const child = tree.getChild(i);
208
- if (child instanceof ts_mysql_parser_1.QuerySpecificationContext) {
209
- result.push(child);
210
- }
211
- else {
212
- collectQuerySpecifications(child, result);
213
- }
214
- }
215
- }
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
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;
27
+ const ts_mysql_parser_1 = __importStar(require("ts-mysql-parser"));
28
+ const collect_constraints_1 = require("./collect-constraints");
29
+ const select_columns_1 = require("./select-columns");
30
+ const infer_param_nullability_1 = require("./infer-param-nullability");
31
+ const infer_column_nullability_1 = require("./infer-column-nullability");
32
+ const describe_query_1 = require("../describe-query");
33
+ const verify_multiple_result_1 = require("./verify-multiple-result");
34
+ const parser = new ts_mysql_parser_1.default({
35
+ version: '8.0.17',
36
+ mode: ts_mysql_parser_1.SqlMode.NoMode
37
+ });
38
+ function parse(sql) {
39
+ const parseResult = parser.parse(sql);
40
+ if (parseResult.parserError) {
41
+ throw new Error('Parser error' + parseResult.parserError);
42
+ }
43
+ return parseResult.tree;
44
+ }
45
+ exports.parse = parse;
46
+ function infer(queryContext, dbSchema, namedParameters) {
47
+ const typeInferenceResult = (0, collect_constraints_1.analiseTree)(queryContext, dbSchema, namedParameters);
48
+ // const newTypeInference : TypeInferenceResult = {
49
+ // columns: typeInferenceResult.columns.map( col => verifyNotInferred(col)),
50
+ // parameters: typeInferenceResult.parameters.map(paramType => verifyNotInferred(paramType))
51
+ // }
52
+ return typeInferenceResult;
53
+ }
54
+ exports.infer = infer;
55
+ function parseAndInfer(sql, dbSchema) {
56
+ const { sql: processedSql, namedParameters } = (0, describe_query_1.preprocessSql)(sql);
57
+ return infer(parse(processedSql), dbSchema, namedParameters);
58
+ }
59
+ exports.parseAndInfer = parseAndInfer;
60
+ function parseAndInferParamNullability(sql) {
61
+ const queryContext = parse(sql);
62
+ return (0, infer_param_nullability_1.inferParamNullabilityQuery)(queryContext);
63
+ }
64
+ exports.parseAndInferParamNullability = parseAndInferParamNullability;
65
+ function extractQueryInfoFromQuerySpecification(querySpec, dbSchema, namedParameters) {
66
+ const fromColumns = (0, select_columns_1.getColumnsFrom)(querySpec, dbSchema);
67
+ const inferResult = (0, collect_constraints_1.analiseQuerySpecification)(querySpec, dbSchema, namedParameters, fromColumns);
68
+ // console.log("inferResult=", inferResult);
69
+ const columnNullability = (0, infer_column_nullability_1.inferNotNull)(querySpec, dbSchema);
70
+ const selectedColumns = (0, select_columns_1.getColumnNames)(querySpec, fromColumns);
71
+ const columnResult = selectedColumns.map((col, index) => {
72
+ const columnType = inferResult.columns[index];
73
+ const columnNotNull = columnNullability[index];
74
+ const colInfo = {
75
+ name: col,
76
+ type: columnType,
77
+ notNull: columnNotNull
78
+ };
79
+ return colInfo;
80
+ });
81
+ const paramInference = (0, infer_param_nullability_1.inferParamNullability)(querySpec);
82
+ const parametersResult = inferResult.parameters.map((param, index) => {
83
+ const paramInfo = {
84
+ name: '?',
85
+ type: param,
86
+ notNull: paramInference[index]
87
+ };
88
+ return paramInfo;
89
+ });
90
+ const queryResult = {
91
+ columns: columnResult,
92
+ parameters: parametersResult
93
+ };
94
+ return queryResult;
95
+ }
96
+ exports.extractQueryInfoFromQuerySpecification = extractQueryInfoFromQuerySpecification;
97
+ function extractOrderByParameters(selectStatement) {
98
+ var _a, _b;
99
+ 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)) || [];
100
+ }
101
+ function extractLimitParameters(selectStatement) {
102
+ return getLimitOptions(selectStatement)
103
+ .filter(limit => limit.PARAM_MARKER())
104
+ .map(() => {
105
+ const paramInfo = {
106
+ type: 'bigint',
107
+ notNull: true
108
+ };
109
+ return paramInfo;
110
+ }) || [];
111
+ }
112
+ function isMultipleRowResult(selectStatement, fromColumns) {
113
+ var _a;
114
+ const querySpecs = getQuerySpecificationsFromSelectStatement(selectStatement);
115
+ if (querySpecs.length == 1) { //UNION queries are multipleRowsResult = true
116
+ const whereClauseExpr = (_a = querySpecs[0].whereClause()) === null || _a === void 0 ? void 0 : _a.expr();
117
+ const isMultipleRowResult = whereClauseExpr && (0, verify_multiple_result_1.verifyMultipleResult)(whereClauseExpr, fromColumns);
118
+ if (isMultipleRowResult == false) {
119
+ return false;
120
+ }
121
+ }
122
+ const limitOptions = getLimitOptions(selectStatement);
123
+ if (limitOptions.length == 1 && limitOptions[0].text == '1') {
124
+ return false;
125
+ }
126
+ if (limitOptions.length == 2 && limitOptions[1].text == '1') {
127
+ return false;
128
+ }
129
+ return true;
130
+ }
131
+ function getLimitOptions(selectStatement) {
132
+ var _a, _b;
133
+ return ((_b = (_a = selectStatement.queryExpression()) === null || _a === void 0 ? void 0 : _a.limitClause()) === null || _b === void 0 ? void 0 : _b.limitOptions().limitOption()) || [];
134
+ }
135
+ function extractQueryInfo(sql, dbSchema) {
136
+ var _a, _b, _c, _d;
137
+ const { sql: processedSql, namedParameters } = (0, describe_query_1.preprocessSql)(sql);
138
+ const tree = parse(processedSql);
139
+ if (tree instanceof ts_mysql_parser_1.QueryContext) {
140
+ const selectStatement = (_a = tree.simpleStatement()) === null || _a === void 0 ? void 0 : _a.selectStatement();
141
+ if (selectStatement) {
142
+ const querySpec = getQuerySpecificationsFromSelectStatement(selectStatement);
143
+ const mainQueryResult = analiseQuery(querySpec, dbSchema, namedParameters);
144
+ const orderByParameters = extractOrderByParameters(selectStatement);
145
+ const limitParameters = extractLimitParameters(selectStatement);
146
+ const allParameters = mainQueryResult.parameters
147
+ .map(param => ({ type: (0, describe_query_1.verifyNotInferred)(param.type), notNull: param.notNull }))
148
+ .concat(limitParameters);
149
+ const fromColumns = (0, select_columns_1.getColumnsFrom)(querySpec[0], dbSchema);
150
+ const multipleRowsResult = isMultipleRowResult(selectStatement, fromColumns);
151
+ const resultWithoutOrderBy = {
152
+ kind: 'Select',
153
+ multipleRowsResult: multipleRowsResult,
154
+ columns: mainQueryResult.columns.map(col => ({ columnName: col.name, type: (0, describe_query_1.verifyNotInferred)(col.type), notNull: col.notNull })),
155
+ parameters: allParameters,
156
+ };
157
+ const orderByColumns = orderByParameters.length > 0 ? getOrderByColumns(fromColumns, mainQueryResult.columns) : undefined;
158
+ if (orderByColumns) {
159
+ resultWithoutOrderBy.orderByColumns = orderByColumns;
160
+ }
161
+ return resultWithoutOrderBy;
162
+ }
163
+ const insertStatement = (_b = tree.simpleStatement()) === null || _b === void 0 ? void 0 : _b.insertStatement();
164
+ if (insertStatement) {
165
+ const insertColumns = (0, collect_constraints_1.getInsertColumns)(insertStatement, dbSchema);
166
+ const typeInfer = (0, collect_constraints_1.analiseInsertStatement)(insertStatement, insertColumns);
167
+ return typeInfer;
168
+ }
169
+ const updateStatement = (_c = tree.simpleStatement()) === null || _c === void 0 ? void 0 : _c.updateStatement();
170
+ if (updateStatement) {
171
+ const typeInfer = (0, collect_constraints_1.analiseUpdateStatement)(updateStatement, dbSchema);
172
+ return typeInfer;
173
+ }
174
+ const deleteStatement = (_d = tree.simpleStatement()) === null || _d === void 0 ? void 0 : _d.deleteStatement();
175
+ if (deleteStatement) {
176
+ const typeInfer = (0, collect_constraints_1.analiseDeleteStatement)(deleteStatement, dbSchema);
177
+ return typeInfer;
178
+ }
179
+ }
180
+ throw Error('Not supported');
181
+ }
182
+ exports.extractQueryInfo = extractQueryInfo;
183
+ function getOrderByColumns(fromColumns, selectColumns) {
184
+ const fromColumnsNames = fromColumns.map(col => col.columnName); //TODO - loading twice
185
+ const selectColumnsNames = selectColumns.map(col => col.name);
186
+ const allOrderByColumns = Array.from(new Set(fromColumnsNames.concat(selectColumnsNames)));
187
+ return allOrderByColumns;
188
+ }
189
+ function analiseQuery(querySpec, dbSchema, namedParameters) {
190
+ const mainQueryResult = extractQueryInfoFromQuerySpecification(querySpec[0], dbSchema, namedParameters);
191
+ for (let queryIndex = 1; queryIndex < querySpec.length; queryIndex++) { //union (if have any)
192
+ const unionResult = extractQueryInfoFromQuerySpecification(querySpec[queryIndex], dbSchema, namedParameters);
193
+ mainQueryResult.columns.forEach((field, fieldIndex) => {
194
+ const unionField = unionResult.columns[fieldIndex];
195
+ field.notNull = field.notNull && unionField.notNull; //if all the fields at the fieldIndex is null
196
+ field.type = (0, collect_constraints_1.unionTypeResult)(field.type, unionField.type);
197
+ });
198
+ mainQueryResult.parameters.push(...unionResult.parameters);
199
+ }
200
+ return mainQueryResult;
201
+ }
202
+ exports.analiseQuery = analiseQuery;
203
+ function getQuerySpecificationsFromSelectStatement(selectStatement) {
204
+ const result = [];
205
+ collectQuerySpecifications(selectStatement, result);
206
+ return result;
207
+ }
208
+ exports.getQuerySpecificationsFromSelectStatement = getQuerySpecificationsFromSelectStatement;
209
+ function collectQuerySpecifications(tree, result) {
210
+ for (let i = 0; i < tree.childCount; i++) {
211
+ const child = tree.getChild(i);
212
+ if (child instanceof ts_mysql_parser_1.QuerySpecificationContext) {
213
+ result.push(child);
214
+ }
215
+ else {
216
+ collectQuerySpecifications(child, result);
217
+ }
218
+ }
219
+ }
216
220
  //# 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,13 +1,13 @@
1
- import { RuleContext } from "antlr4ts";
2
- import { ParseTree } from "antlr4ts/tree";
3
- import { QuerySpecificationContext } from "ts-mysql-parser";
4
- import { ColumnSchema, ColumnDef, FieldName } from "./types";
5
- export declare function filterColumns(dbSchema: ColumnSchema[], tablePrefix: string | undefined, table: FieldName): ColumnDef[];
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[]): ColumnDef[];
9
- export declare function splitName(fieldName: string): FieldName;
10
- export declare function findColumn(fieldName: FieldName, columns: ColumnDef[]): ColumnDef;
11
- export declare function findColumn2(fieldName: FieldName, table: string, columns: ColumnSchema[]): ColumnSchema;
12
- export declare function getSimpleExpressions(ctx: RuleContext): ParseTree[];
1
+ import { RuleContext } from "antlr4ts";
2
+ import { ParseTree } from "antlr4ts/tree";
3
+ import { QuerySpecificationContext } from "ts-mysql-parser";
4
+ import { ColumnSchema, ColumnDef, FieldName } from "./types";
5
+ export declare function filterColumns(dbSchema: ColumnSchema[], tablePrefix: string | undefined, table: FieldName): ColumnDef[];
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[]): ColumnDef[];
9
+ export declare function splitName(fieldName: string): FieldName;
10
+ export declare function findColumn(fieldName: FieldName, columns: ColumnDef[]): ColumnDef;
11
+ export declare function findColumn2(fieldName: FieldName, table: string, columns: ColumnSchema[]): ColumnSchema;
12
+ export declare function getSimpleExpressions(ctx: RuleContext): ParseTree[];
13
13
  //# sourceMappingURL=select-columns.d.ts.map