typesql-cli 0.9.6 → 0.10.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.
- package/README.md +2 -3
- package/cli.js +76 -78
- package/cli.js.map +1 -1
- package/code-generator.d.ts +7 -7
- package/code-generator.d.ts.map +1 -1
- package/code-generator.js +193 -194
- package/code-generator.js.map +1 -1
- package/describe-dynamic-query.d.ts +1 -1
- package/describe-dynamic-query.d.ts.map +1 -1
- package/describe-dynamic-query.js +47 -42
- package/describe-dynamic-query.js.map +1 -1
- package/describe-nested-query.d.ts +2 -2
- package/describe-nested-query.d.ts.map +1 -1
- package/describe-nested-query.js +28 -25
- package/describe-nested-query.js.map +1 -1
- package/describe-query.d.ts +4 -4
- package/describe-query.d.ts.map +1 -1
- package/describe-query.js +24 -25
- package/describe-query.js.map +1 -1
- package/drivers/libsql.d.ts +2 -2
- package/drivers/libsql.d.ts.map +1 -1
- package/drivers/libsql.js +4 -5
- package/drivers/libsql.js.map +1 -1
- package/mysql-mapping.d.ts +1 -1
- package/mysql-mapping.d.ts.map +1 -1
- package/mysql-mapping.js +13 -13
- package/mysql-mapping.js.map +1 -1
- package/mysql-query-analyzer/collect-constraints.d.ts +4 -4
- package/mysql-query-analyzer/collect-constraints.d.ts.map +1 -1
- package/mysql-query-analyzer/collect-constraints.js +29 -31
- package/mysql-query-analyzer/collect-constraints.js.map +1 -1
- package/mysql-query-analyzer/infer-column-nullability.d.ts +2 -2
- package/mysql-query-analyzer/infer-column-nullability.d.ts.map +1 -1
- package/mysql-query-analyzer/infer-column-nullability.js +61 -63
- package/mysql-query-analyzer/infer-column-nullability.js.map +1 -1
- package/mysql-query-analyzer/infer-param-nullability.d.ts +2 -2
- package/mysql-query-analyzer/infer-param-nullability.d.ts.map +1 -1
- package/mysql-query-analyzer/infer-param-nullability.js +13 -14
- package/mysql-query-analyzer/infer-param-nullability.js.map +1 -1
- package/mysql-query-analyzer/parse.d.ts +2 -2
- package/mysql-query-analyzer/parse.d.ts.map +1 -1
- package/mysql-query-analyzer/parse.js +42 -40
- package/mysql-query-analyzer/parse.js.map +1 -1
- package/mysql-query-analyzer/select-columns.d.ts +4 -4
- package/mysql-query-analyzer/select-columns.d.ts.map +1 -1
- package/mysql-query-analyzer/select-columns.js +70 -65
- package/mysql-query-analyzer/select-columns.js.map +1 -1
- package/mysql-query-analyzer/traverse.d.ts +4 -4
- package/mysql-query-analyzer/traverse.d.ts.map +1 -1
- package/mysql-query-analyzer/traverse.js +211 -188
- package/mysql-query-analyzer/traverse.js.map +1 -1
- package/mysql-query-analyzer/types.d.ts +5 -5
- package/mysql-query-analyzer/types.d.ts.map +1 -1
- package/mysql-query-analyzer/unify.d.ts +2 -2
- package/mysql-query-analyzer/unify.d.ts.map +1 -1
- package/mysql-query-analyzer/unify.js +485 -487
- package/mysql-query-analyzer/unify.js.map +1 -1
- package/mysql-query-analyzer/util.d.ts.map +1 -1
- package/mysql-query-analyzer/util.js +4 -6
- package/mysql-query-analyzer/util.js.map +1 -1
- package/mysql-query-analyzer/verify-multiple-result.d.ts +2 -2
- package/mysql-query-analyzer/verify-multiple-result.d.ts.map +1 -1
- package/mysql-query-analyzer/verify-multiple-result.js +9 -9
- package/mysql-query-analyzer/verify-multiple-result.js.map +1 -1
- package/package.json +46 -44
- package/queryExectutor.d.ts +4 -4
- package/queryExectutor.d.ts.map +1 -1
- package/queryExectutor.js +48 -51
- package/queryExectutor.js.map +1 -1
- package/sql-generator.d.ts +2 -2
- package/sql-generator.d.ts.map +1 -1
- package/sql-generator.js +30 -29
- package/sql-generator.js.map +1 -1
- package/sqlite-query-analyzer/code-generator.d.ts +6 -6
- package/sqlite-query-analyzer/code-generator.d.ts.map +1 -1
- package/sqlite-query-analyzer/code-generator.js +226 -177
- package/sqlite-query-analyzer/code-generator.js.map +1 -1
- package/sqlite-query-analyzer/parser.d.ts +4 -4
- package/sqlite-query-analyzer/parser.d.ts.map +1 -1
- package/sqlite-query-analyzer/parser.js +17 -18
- package/sqlite-query-analyzer/parser.js.map +1 -1
- package/sqlite-query-analyzer/query-executor.d.ts +6 -6
- package/sqlite-query-analyzer/query-executor.d.ts.map +1 -1
- package/sqlite-query-analyzer/query-executor.js +42 -33
- package/sqlite-query-analyzer/query-executor.js.map +1 -1
- package/sqlite-query-analyzer/replace-list-params.d.ts +1 -1
- package/sqlite-query-analyzer/replace-list-params.d.ts.map +1 -1
- package/sqlite-query-analyzer/replace-list-params.js +5 -5
- package/sqlite-query-analyzer/replace-list-params.js.map +1 -1
- package/sqlite-query-analyzer/sqlite-describe-nested-query.d.ts +4 -4
- package/sqlite-query-analyzer/sqlite-describe-nested-query.d.ts.map +1 -1
- package/sqlite-query-analyzer/sqlite-describe-nested-query.js +19 -17
- package/sqlite-query-analyzer/sqlite-describe-nested-query.js.map +1 -1
- package/sqlite-query-analyzer/traverse.d.ts +5 -5
- package/sqlite-query-analyzer/traverse.d.ts.map +1 -1
- package/sqlite-query-analyzer/traverse.js +185 -155
- package/sqlite-query-analyzer/traverse.js.map +1 -1
- package/ts-dynamic-query-descriptor.d.ts +1 -1
- package/ts-dynamic-query-descriptor.d.ts.map +1 -1
- package/ts-dynamic-query-descriptor.js +7 -8
- package/ts-dynamic-query-descriptor.js.map +1 -1
- package/ts-nested-descriptor.d.ts +4 -4
- package/ts-nested-descriptor.d.ts.map +1 -1
- package/ts-nested-descriptor.js +13 -14
- package/ts-nested-descriptor.js.map +1 -1
- package/types.d.ts +18 -15
- package/types.d.ts.map +1 -1
- package/util.d.ts.map +1 -1
- package/util.js.map +1 -1
- package/utility-types.d.ts.map +1 -1
@@ -23,7 +23,16 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
23
23
|
return result;
|
24
24
|
};
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
26
|
-
exports.
|
26
|
+
exports.parse = parse;
|
27
|
+
exports.parseAndInfer = parseAndInfer;
|
28
|
+
exports.parseAndInferParamNullability = parseAndInferParamNullability;
|
29
|
+
exports.extractOrderByParameters = extractOrderByParameters;
|
30
|
+
exports.extractLimitParameters = extractLimitParameters;
|
31
|
+
exports.isMultipleRowResult = isMultipleRowResult;
|
32
|
+
exports.isSumExpressContext = isSumExpressContext;
|
33
|
+
exports.getLimitOptions = getLimitOptions;
|
34
|
+
exports.extractQueryInfo = extractQueryInfo;
|
35
|
+
exports.getAllQuerySpecificationsFromSelectStatement = getAllQuerySpecificationsFromSelectStatement;
|
27
36
|
const ts_mysql_parser_1 = __importStar(require("@wsporto/ts-mysql-parser"));
|
28
37
|
const collect_constraints_1 = require("./collect-constraints");
|
29
38
|
const infer_param_nullability_1 = require("./infer-param-nullability");
|
@@ -40,68 +49,65 @@ const parser = new ts_mysql_parser_1.default({
|
|
40
49
|
function parse(sql) {
|
41
50
|
const parseResult = parser.parse(sql);
|
42
51
|
if (parseResult.parserError) {
|
43
|
-
throw new Error(
|
52
|
+
throw new Error(`Parser error${parseResult.parserError}`);
|
44
53
|
}
|
45
54
|
return parseResult.tree;
|
46
55
|
}
|
47
|
-
exports.parse = parse;
|
48
56
|
//TODO - withSchema DEFAULT VALUE []
|
49
57
|
function parseAndInfer(sql, dbSchema) {
|
50
58
|
const result = extractQueryInfo(sql, dbSchema);
|
51
|
-
if (result.kind
|
59
|
+
if (result.kind === 'Select') {
|
52
60
|
return {
|
53
|
-
columns: result.columns.map(p => p.type),
|
54
|
-
parameters: result.parameters.map(p => p.type)
|
61
|
+
columns: result.columns.map((p) => p.type),
|
62
|
+
parameters: result.parameters.map((p) => p.type)
|
55
63
|
};
|
56
64
|
}
|
57
|
-
if (result.kind
|
65
|
+
if (result.kind === 'Insert') {
|
58
66
|
return {
|
59
67
|
columns: [],
|
60
|
-
parameters: result.parameters.map(p => p.columnType)
|
68
|
+
parameters: result.parameters.map((p) => p.columnType)
|
61
69
|
};
|
62
70
|
}
|
63
|
-
if (result.kind
|
71
|
+
if (result.kind === 'Update') {
|
64
72
|
return {
|
65
73
|
columns: [],
|
66
|
-
parameters: result.data.map(p => p.columnType)
|
74
|
+
parameters: result.data.map((p) => p.columnType)
|
67
75
|
};
|
68
76
|
}
|
69
|
-
throw Error(
|
77
|
+
throw Error(`parseAndInfer: ${sql}`);
|
70
78
|
}
|
71
|
-
exports.parseAndInfer = parseAndInfer;
|
72
79
|
function parseAndInferParamNullability(sql) {
|
73
80
|
var _a;
|
74
81
|
const queryContext = parse(sql);
|
75
82
|
const selectStatement = (_a = queryContext.simpleStatement()) === null || _a === void 0 ? void 0 : _a.selectStatement();
|
76
83
|
return (0, infer_param_nullability_1.inferParamNullabilityQuery)(selectStatement);
|
77
84
|
}
|
78
|
-
exports.parseAndInferParamNullability = parseAndInferParamNullability;
|
79
85
|
function extractOrderByParameters(selectStatement) {
|
80
86
|
var _a, _b;
|
81
|
-
return ((_b = (_a = selectStatement
|
87
|
+
return (((_b = (_a = selectStatement
|
88
|
+
.queryExpression()) === null || _a === void 0 ? void 0 : _a.orderClause()) === null || _b === void 0 ? void 0 : _b.orderList().orderExpression_list().filter((orderExpr) => orderExpr.getText() === '?').map((orderExpr) => orderExpr.getText())) || []);
|
82
89
|
}
|
83
|
-
exports.extractOrderByParameters = extractOrderByParameters;
|
84
90
|
function extractLimitParameters(selectStatement) {
|
85
|
-
return getLimitOptions(selectStatement)
|
86
|
-
.filter(limit => limit.PARAM_MARKER())
|
91
|
+
return (getLimitOptions(selectStatement)
|
92
|
+
.filter((limit) => limit.PARAM_MARKER())
|
87
93
|
.map(() => {
|
88
94
|
const paramInfo = {
|
89
95
|
type: 'bigint',
|
90
96
|
notNull: true
|
91
97
|
};
|
92
98
|
return paramInfo;
|
93
|
-
}) || [];
|
99
|
+
}) || []);
|
94
100
|
}
|
95
|
-
exports.extractLimitParameters = extractLimitParameters;
|
96
101
|
function isMultipleRowResult(selectStatement, fromColumns) {
|
97
102
|
var _a, _b;
|
98
103
|
const querySpecs = getAllQuerySpecificationsFromSelectStatement(selectStatement);
|
99
|
-
if (querySpecs.length
|
104
|
+
if (querySpecs.length === 1) {
|
105
|
+
//UNION queries are multipleRowsResult = true
|
100
106
|
const fromClause = querySpecs[0].fromClause();
|
101
107
|
if (!fromClause) {
|
102
108
|
return false;
|
103
109
|
}
|
104
|
-
if (querySpecs[0].selectItemList().getChildCount()
|
110
|
+
if (querySpecs[0].selectItemList().getChildCount() === 1) {
|
105
111
|
const selectItem = querySpecs[0].selectItemList().getChild(0);
|
106
112
|
//if selectItem = * (TerminalNode) childCount = 0; selectItem.expr() throws exception
|
107
113
|
const expr = selectItem.getChildCount() > 0 ? selectItem.expr() : null;
|
@@ -119,24 +125,22 @@ function isMultipleRowResult(selectStatement, fromColumns) {
|
|
119
125
|
}
|
120
126
|
const whereClauseExpr = (_b = querySpecs[0].whereClause()) === null || _b === void 0 ? void 0 : _b.expr();
|
121
127
|
const isMultipleRowResult = whereClauseExpr && (0, verify_multiple_result_1.verifyMultipleResult)(whereClauseExpr, fromColumns);
|
122
|
-
if (isMultipleRowResult
|
128
|
+
if (isMultipleRowResult === false) {
|
123
129
|
return false;
|
124
130
|
}
|
125
131
|
}
|
126
132
|
const limitOptions = getLimitOptions(selectStatement);
|
127
|
-
if (limitOptions.length
|
133
|
+
if (limitOptions.length === 1 && limitOptions[0].getText() === '1') {
|
128
134
|
return false;
|
129
135
|
}
|
130
|
-
if (limitOptions.length
|
136
|
+
if (limitOptions.length === 2 && limitOptions[1].getText() === '1') {
|
131
137
|
return false;
|
132
138
|
}
|
133
139
|
return true;
|
134
140
|
}
|
135
|
-
exports.isMultipleRowResult = isMultipleRowResult;
|
136
141
|
function isSumExpressContext(selectItem) {
|
137
142
|
var _a;
|
138
|
-
if (selectItem instanceof ts_mysql_parser_1.SimpleExprWindowingFunctionContext
|
139
|
-
|| selectItem instanceof ts_mysql_parser_1.TerminalNode) {
|
143
|
+
if (selectItem instanceof ts_mysql_parser_1.SimpleExprWindowingFunctionContext || selectItem instanceof ts_mysql_parser_1.TerminalNode) {
|
140
144
|
return false;
|
141
145
|
}
|
142
146
|
if (selectItem instanceof ts_mysql_parser_1.SumExprContext) {
|
@@ -152,28 +156,26 @@ function isSumExpressContext(selectItem) {
|
|
152
156
|
}
|
153
157
|
//https://dev.mysql.com/doc/refman/8.0/en/aggregate-functions.html
|
154
158
|
if (selectItem instanceof ts_mysql_parser_1.FunctionCallContext) {
|
155
|
-
if (((_a = selectItem.qualifiedIdentifier()) === null || _a === void 0 ? void 0 : _a.getText().toLowerCase())
|
159
|
+
if (((_a = selectItem.qualifiedIdentifier()) === null || _a === void 0 ? void 0 : _a.getText().toLowerCase()) === 'avg') {
|
156
160
|
return true;
|
157
161
|
}
|
158
162
|
}
|
159
|
-
if (selectItem instanceof ts_mysql_parser_1.ParserRuleContext && selectItem.getChildCount()
|
163
|
+
if (selectItem instanceof ts_mysql_parser_1.ParserRuleContext && selectItem.getChildCount() === 1) {
|
160
164
|
return isSumExpressContext(selectItem.getChild(0));
|
161
165
|
}
|
162
166
|
return false;
|
163
167
|
}
|
164
|
-
exports.isSumExpressContext = isSumExpressContext;
|
165
168
|
function getLimitOptions(selectStatement) {
|
166
169
|
var _a, _b;
|
167
170
|
return ((_b = (_a = selectStatement.queryExpression()) === null || _a === void 0 ? void 0 : _a.limitClause()) === null || _b === void 0 ? void 0 : _b.limitOptions().limitOption_list()) || [];
|
168
171
|
}
|
169
|
-
exports.getLimitOptions = getLimitOptions;
|
170
172
|
function extractQueryInfo(sql, dbSchema) {
|
171
173
|
const { sql: processedSql, namedParameters } = (0, describe_query_1.preprocessSql)(sql);
|
172
174
|
const gererateNested = (0, describe_query_1.hasAnnotation)(sql, '@nested');
|
173
175
|
const gererateDynamicQuery = (0, describe_query_1.hasAnnotation)(sql, '@dynamicQuery');
|
174
176
|
const tree = parse(processedSql);
|
175
177
|
const traverseResult = (0, traverse_1.traverseQueryContext)(tree, dbSchema, namedParameters);
|
176
|
-
if (traverseResult.type
|
178
|
+
if (traverseResult.type === 'Select') {
|
177
179
|
const queryInfoResult = extractSelectQueryInfo(traverseResult);
|
178
180
|
if (gererateNested) {
|
179
181
|
const nestedInfo = (0, describe_nested_query_1.generateNestedInfo)(tree, dbSchema, queryInfoResult.columns);
|
@@ -185,14 +187,14 @@ function extractQueryInfo(sql, dbSchema) {
|
|
185
187
|
}
|
186
188
|
return queryInfoResult;
|
187
189
|
}
|
188
|
-
if (traverseResult.type
|
190
|
+
if (traverseResult.type === 'Insert') {
|
189
191
|
const newResult = {
|
190
192
|
kind: 'Insert',
|
191
193
|
parameters: traverseResult.parameters
|
192
194
|
};
|
193
195
|
return newResult;
|
194
196
|
}
|
195
|
-
if (traverseResult.type
|
197
|
+
if (traverseResult.type === 'Update') {
|
196
198
|
const substitutions = {}; //TODO - DUPLICADO
|
197
199
|
(0, unify_1.unify)(traverseResult.constraints, substitutions);
|
198
200
|
const columnResult = traverseResult.data.map((col) => {
|
@@ -222,7 +224,7 @@ function extractQueryInfo(sql, dbSchema) {
|
|
222
224
|
};
|
223
225
|
return newResult;
|
224
226
|
}
|
225
|
-
if (traverseResult.type
|
227
|
+
if (traverseResult.type === 'Delete') {
|
226
228
|
const newResult = {
|
227
229
|
kind: 'Delete',
|
228
230
|
parameters: traverseResult.parameters
|
@@ -231,7 +233,6 @@ function extractQueryInfo(sql, dbSchema) {
|
|
231
233
|
}
|
232
234
|
throw Error('Not supported');
|
233
235
|
}
|
234
|
-
exports.extractQueryInfo = extractQueryInfo;
|
235
236
|
function extractSelectQueryInfo(traverseResult) {
|
236
237
|
const substitutions = {}; //TODO - DUPLICADO
|
237
238
|
(0, unify_1.unify)(traverseResult.constraints, substitutions);
|
@@ -246,7 +247,8 @@ function extractSelectQueryInfo(traverseResult) {
|
|
246
247
|
};
|
247
248
|
return colInfo;
|
248
249
|
});
|
249
|
-
const paramsResult = traverseResult.parameters
|
250
|
+
const paramsResult = traverseResult.parameters
|
251
|
+
.map((param) => {
|
250
252
|
const columnType = (0, collect_constraints_1.getVarType)(substitutions, param.type);
|
251
253
|
const columnNotNull = param.notNull;
|
252
254
|
const colInfo = {
|
@@ -255,12 +257,13 @@ function extractSelectQueryInfo(traverseResult) {
|
|
255
257
|
notNull: columnNotNull
|
256
258
|
};
|
257
259
|
return colInfo;
|
258
|
-
})
|
260
|
+
})
|
261
|
+
.concat(traverseResult.limitParameters);
|
259
262
|
const resultWithoutOrderBy = {
|
260
263
|
kind: 'Select',
|
261
264
|
multipleRowsResult: traverseResult.isMultiRow,
|
262
265
|
columns: columnResult,
|
263
|
-
parameters: paramsResult
|
266
|
+
parameters: paramsResult
|
264
267
|
};
|
265
268
|
if (traverseResult.orderByColumns) {
|
266
269
|
resultWithoutOrderBy.orderByColumns = traverseResult.orderByColumns;
|
@@ -272,7 +275,6 @@ function getAllQuerySpecificationsFromSelectStatement(selectStatement) {
|
|
272
275
|
collectAllQuerySpecifications(selectStatement, result);
|
273
276
|
return result;
|
274
277
|
}
|
275
|
-
exports.getAllQuerySpecificationsFromSelectStatement = getAllQuerySpecificationsFromSelectStatement;
|
276
278
|
function collectAllQuerySpecifications(tree, result) {
|
277
279
|
for (let i = 0; i < tree.getChildCount(); i++) {
|
278
280
|
const child = tree.getChild(i);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/parse.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/parse.ts"],"names":[],"mappings":"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"}
|
@@ -1,7 +1,7 @@
|
|
1
|
-
import { ParserRuleContext } from
|
2
|
-
import { ParseTree } from
|
3
|
-
import { JoinedTableContext, SelectItemContext, ExprContext } from '@wsporto/ts-mysql-parser';
|
4
|
-
import { ColumnDef, ColumnSchema, FieldName } from
|
1
|
+
import { ParserRuleContext } from '@wsporto/ts-mysql-parser';
|
2
|
+
import type { ParseTree } from '@wsporto/ts-mysql-parser';
|
3
|
+
import { type JoinedTableContext, type SelectItemContext, type ExprContext } from '@wsporto/ts-mysql-parser';
|
4
|
+
import type { ColumnDef, ColumnSchema, FieldName } from './types';
|
5
5
|
export declare function includeColumn(column: ColumnDef, table: string): boolean;
|
6
6
|
export declare function filterColumns(dbSchema: ColumnSchema[], withSchema: ColumnDef[], tableAlias: string | undefined, table: FieldName): ColumnDef[];
|
7
7
|
export declare function selectAllColumns(tablePrefix: string, fromColumns: ColumnDef[]): ColumnDef[];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"select-columns.d.ts","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/select-columns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;
|
1
|
+
{"version":3,"file":"select-columns.d.ts","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/select-columns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EACN,KAAK,kBAAkB,EA0BvB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAIhB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAIlE,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,WAE7D;AAED,wBAAgB,aAAa,CAC5B,QAAQ,EAAE,YAAY,EAAE,EACxB,UAAU,EAAE,SAAS,EAAE,EACvB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,KAAK,EAAE,SAAS,GACd,SAAS,EAAE,CAyBb;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,CAS7F;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAWtD;AAOD,eAAO,MAAM,aAAa,EAAE,YAAY,EAiHvC,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,4BAK/F;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,SAAS,CAOhF;AAMD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,SAAS,GAAG,SAAS,CAuBlG;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,UAKzD;AAED,KAAK,IAAI,GAAG;IACX,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAgB,cAAc,CAAC,GAAG,EAAE,iBAAiB,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI,EAAE,CAI5E;AAkBD,MAAM,MAAM,qBAAqB,GAAG;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,WAAW,CAAC;CAClB,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,qBAAqB,EAAE,QAejF;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,iBAAiB,GAAG,SAAS,EAAE,CAIxE"}
|
@@ -1,46 +1,59 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.
|
3
|
+
exports.functionAlias = void 0;
|
4
|
+
exports.includeColumn = includeColumn;
|
5
|
+
exports.filterColumns = filterColumns;
|
6
|
+
exports.selectAllColumns = selectAllColumns;
|
7
|
+
exports.getColumnName = getColumnName;
|
8
|
+
exports.extractFieldsFromUsingClause = extractFieldsFromUsingClause;
|
9
|
+
exports.splitName = splitName;
|
10
|
+
exports.findColumnSchema = findColumnSchema;
|
11
|
+
exports.findColumn = findColumn;
|
12
|
+
exports.findColumnOrNull = findColumnOrNull;
|
13
|
+
exports.extractOriginalSql = extractOriginalSql;
|
14
|
+
exports.getExpressions = getExpressions;
|
15
|
+
exports.getTopLevelAndExpr = getTopLevelAndExpr;
|
16
|
+
exports.getSimpleExpressions = getSimpleExpressions;
|
4
17
|
const ts_mysql_parser_1 = require("@wsporto/ts-mysql-parser");
|
5
18
|
const ts_mysql_parser_2 = require("@wsporto/ts-mysql-parser");
|
6
19
|
const collect_constraints_1 = require("./collect-constraints");
|
7
20
|
const sqlite_1 = require("@wsporto/ts-mysql-parser/dist/sqlite");
|
8
21
|
function includeColumn(column, table) {
|
9
22
|
var _a;
|
10
|
-
return column.table.toLowerCase()
|
23
|
+
return column.table.toLowerCase() === table.toLowerCase() || ((_a = column.tableAlias) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === table.toLowerCase();
|
11
24
|
}
|
12
|
-
exports.includeColumn = includeColumn;
|
13
25
|
function filterColumns(dbSchema, withSchema, tableAlias, table) {
|
14
26
|
var _a;
|
15
|
-
const schemaName = table.prefix
|
27
|
+
const schemaName = table.prefix === '' ? (_a = dbSchema.find((col) => col.table === table.name)) === null || _a === void 0 ? void 0 : _a.schema : table.prefix; //find first
|
16
28
|
const tableColumns1 = dbSchema
|
17
|
-
.filter(schema => schema.table.toLowerCase()
|
18
|
-
.map(tableColumn => {
|
29
|
+
.filter((schema) => schema.table.toLowerCase() === table.name.toLowerCase() && schema.schema === schemaName)
|
30
|
+
.map((tableColumn) => {
|
19
31
|
//name and colum are the same on the leaf table
|
20
32
|
const r = {
|
21
|
-
columnName: tableColumn.column,
|
22
|
-
|
33
|
+
columnName: tableColumn.column,
|
34
|
+
columnType: (0, collect_constraints_1.createColumnTypeFomColumnSchema)(tableColumn),
|
35
|
+
notNull: tableColumn.notNull,
|
36
|
+
table: table.name,
|
37
|
+
tableAlias: tableAlias || '',
|
38
|
+
columnKey: tableColumn.columnKey
|
23
39
|
};
|
24
40
|
return r;
|
25
41
|
});
|
26
|
-
const result = tableColumns1.concat(withSchema.filter(schema => schema.table.toLowerCase()
|
27
|
-
map(col => {
|
42
|
+
const result = tableColumns1.concat(withSchema.filter((schema) => schema.table.toLowerCase() === table.name.toLowerCase())).map((col) => {
|
28
43
|
const r = Object.assign(Object.assign({}, col), { table: table.name, tableAlias: tableAlias });
|
29
44
|
return r;
|
30
45
|
});
|
31
46
|
return result;
|
32
47
|
}
|
33
|
-
exports.filterColumns = filterColumns;
|
34
48
|
function selectAllColumns(tablePrefix, fromColumns) {
|
35
49
|
const allColumns = []; //TODO - FILTER
|
36
|
-
fromColumns.forEach(column => {
|
37
|
-
if (tablePrefix
|
50
|
+
fromColumns.forEach((column) => {
|
51
|
+
if (tablePrefix === '' || tablePrefix === column.tableAlias || tablePrefix === column.table) {
|
38
52
|
allColumns.push(column);
|
39
53
|
}
|
40
54
|
});
|
41
55
|
return allColumns;
|
42
56
|
}
|
43
|
-
exports.selectAllColumns = selectAllColumns;
|
44
57
|
function getColumnName(selectItem) {
|
45
58
|
var _a, _b;
|
46
59
|
const alias = (_b = (_a = selectItem.selectAlias()) === null || _a === void 0 ? void 0 : _a.identifier()) === null || _b === void 0 ? void 0 : _b.getText();
|
@@ -48,27 +61,28 @@ function getColumnName(selectItem) {
|
|
48
61
|
return alias;
|
49
62
|
}
|
50
63
|
const tokens = getSimpleExpressions(selectItem);
|
51
|
-
|
52
|
-
if (tokens.length
|
64
|
+
const columnName = extractOriginalSql(selectItem.expr()); //TODO VERIFICAR NULL
|
65
|
+
if (tokens.length === 1 && tokens[0] instanceof ts_mysql_parser_2.SimpleExprColumnRefContext) {
|
53
66
|
return splitName(tokens[0].getText()).name;
|
54
67
|
}
|
55
68
|
return columnName;
|
56
69
|
}
|
57
|
-
exports.getColumnName = getColumnName;
|
58
70
|
function extractFieldsFromUsingClause(joinedTableContext) {
|
59
71
|
var _a;
|
60
72
|
const usingFieldsClause = (_a = joinedTableContext.identifierListWithParentheses()) === null || _a === void 0 ? void 0 : _a.identifierList();
|
61
73
|
if (usingFieldsClause) {
|
62
|
-
return usingFieldsClause
|
74
|
+
return usingFieldsClause
|
75
|
+
.getText()
|
76
|
+
.split(',')
|
77
|
+
.map((field) => field.trim());
|
63
78
|
}
|
64
79
|
return [];
|
65
80
|
}
|
66
|
-
exports.extractFieldsFromUsingClause = extractFieldsFromUsingClause;
|
67
81
|
function splitName(fieldName) {
|
68
82
|
const fieldNameSplit = fieldName.split('.');
|
69
83
|
const result = {
|
70
|
-
name: fieldNameSplit.length
|
71
|
-
prefix: fieldNameSplit.length
|
84
|
+
name: fieldNameSplit.length === 2 ? fieldNameSplit[1] : fieldNameSplit[0],
|
85
|
+
prefix: fieldNameSplit.length === 2 ? fieldNameSplit[0] : ''
|
72
86
|
};
|
73
87
|
const withoutStick = {
|
74
88
|
name: removeBackStick(result.name),
|
@@ -76,9 +90,8 @@ function splitName(fieldName) {
|
|
76
90
|
};
|
77
91
|
return withoutStick;
|
78
92
|
}
|
79
|
-
exports.splitName = splitName;
|
80
93
|
function removeBackStick(name) {
|
81
|
-
const withoutBackStick = name.startsWith(
|
94
|
+
const withoutBackStick = name.startsWith('`') && name.endsWith('`') ? name.slice(1, -1) : name;
|
82
95
|
return withoutBackStick;
|
83
96
|
}
|
84
97
|
exports.functionAlias = [
|
@@ -193,32 +206,29 @@ exports.functionAlias = [
|
|
193
206
|
notNull: true,
|
194
207
|
schema: '',
|
195
208
|
table: ''
|
196
|
-
}
|
209
|
+
}
|
197
210
|
];
|
198
211
|
function findColumnSchema(tableName, columnName, dbSchema) {
|
199
|
-
const found = dbSchema.find(col => col.table.toLowerCase()
|
200
|
-
&& col.column.toLowerCase() == columnName.toLowerCase());
|
212
|
+
const found = dbSchema.find((col) => col.table.toLowerCase() === tableName.toLowerCase() && col.column.toLowerCase() === columnName.toLowerCase());
|
201
213
|
return found;
|
202
214
|
}
|
203
|
-
exports.findColumnSchema = findColumnSchema;
|
204
215
|
function findColumn(fieldName, columns) {
|
205
216
|
const found = findColumnOrNull(fieldName, columns);
|
206
217
|
if (!found) {
|
207
|
-
throw Error(
|
218
|
+
throw Error(`no such column: ${formatField(fieldName)}`);
|
208
219
|
}
|
209
220
|
return found;
|
210
221
|
}
|
211
|
-
exports.findColumn = findColumn;
|
212
222
|
function formatField(fieldName) {
|
213
|
-
return fieldName.prefix
|
223
|
+
return fieldName.prefix === '' ? fieldName.name : `${fieldName.prefix}.${fieldName.name}`;
|
214
224
|
}
|
215
225
|
function findColumnOrNull(fieldName, columns) {
|
216
|
-
const found = columns.find(col => col.columnName.toLowerCase()
|
217
|
-
(fieldName.prefix
|
226
|
+
const found = columns.find((col) => col.columnName.toLowerCase() === fieldName.name.toLowerCase() &&
|
227
|
+
(fieldName.prefix === '' || fieldName.prefix === col.tableAlias || fieldName.prefix === col.table));
|
218
228
|
if (found) {
|
219
229
|
return found;
|
220
230
|
}
|
221
|
-
const functionType = exports.functionAlias.find(col => col.column.toLowerCase()
|
231
|
+
const functionType = exports.functionAlias.find((col) => col.column.toLowerCase() === fieldName.name.toLowerCase());
|
222
232
|
if (functionType) {
|
223
233
|
const colDef = {
|
224
234
|
columnName: functionType.column,
|
@@ -231,7 +241,6 @@ function findColumnOrNull(fieldName, columns) {
|
|
231
241
|
}
|
232
242
|
return found;
|
233
243
|
}
|
234
|
-
exports.findColumnOrNull = findColumnOrNull;
|
235
244
|
function extractOriginalSql(rule) {
|
236
245
|
var _a, _b;
|
237
246
|
const startIndex = rule.start.start;
|
@@ -239,13 +248,11 @@ function extractOriginalSql(rule) {
|
|
239
248
|
const result = (_b = rule.start.getInputStream()) === null || _b === void 0 ? void 0 : _b.getText(startIndex, stopIndex);
|
240
249
|
return result;
|
241
250
|
}
|
242
|
-
exports.extractOriginalSql = extractOriginalSql;
|
243
251
|
function getExpressions(ctx, exprType) {
|
244
252
|
const tokens = [];
|
245
253
|
collectExpr(tokens, ctx, exprType);
|
246
254
|
return tokens;
|
247
255
|
}
|
248
|
-
exports.getExpressions = getExpressions;
|
249
256
|
function collectExpr(tokens, parent, exprType, isSubQuery = false) {
|
250
257
|
if (parent instanceof exprType) {
|
251
258
|
tokens.push({
|
@@ -256,7 +263,7 @@ function collectExpr(tokens, parent, exprType, isSubQuery = false) {
|
|
256
263
|
for (let i = 0; i < parent.getChildCount(); i++) {
|
257
264
|
const child = parent.getChild(i);
|
258
265
|
if (child instanceof ts_mysql_parser_1.ParserRuleContext) {
|
259
|
-
collectExpr(tokens, child, exprType,
|
266
|
+
collectExpr(tokens, child, exprType, isSubQuery || child instanceof ts_mysql_parser_2.SimpleExprSubQueryContext || child instanceof sqlite_1.Select_coreContext);
|
260
267
|
}
|
261
268
|
}
|
262
269
|
}
|
@@ -277,49 +284,47 @@ function getTopLevelAndExpr(expr, all) {
|
|
277
284
|
});
|
278
285
|
}
|
279
286
|
}
|
280
|
-
exports.getTopLevelAndExpr = getTopLevelAndExpr;
|
281
287
|
function getSimpleExpressions(ctx) {
|
282
288
|
const tokens = [];
|
283
289
|
collectSimpleExpr(tokens, ctx);
|
284
290
|
return tokens;
|
285
291
|
}
|
286
|
-
exports.getSimpleExpressions = getSimpleExpressions;
|
287
292
|
function collectSimpleExpr(tokens, parent) {
|
288
293
|
if (isSimpleExpression(parent)) {
|
289
294
|
tokens.push(parent);
|
290
295
|
}
|
291
296
|
for (let i = 0; i < parent.getChildCount(); i++) {
|
292
297
|
const child = parent.getChild(i);
|
293
|
-
if (
|
298
|
+
if (child instanceof ts_mysql_parser_1.ParserRuleContext) {
|
294
299
|
collectSimpleExpr(tokens, child);
|
295
300
|
}
|
296
301
|
}
|
297
302
|
}
|
298
303
|
function isSimpleExpression(ctx) {
|
299
|
-
return ctx instanceof ts_mysql_parser_2.SimpleExprVariableContext
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
304
|
+
return (ctx instanceof ts_mysql_parser_2.SimpleExprVariableContext ||
|
305
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprColumnRefContext ||
|
306
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprRuntimeFunctionContext ||
|
307
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprFunctionContext ||
|
308
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprCollateContext ||
|
309
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprLiteralContext ||
|
310
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprParamMarkerContext ||
|
311
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprSumContext ||
|
312
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprGroupingOperationContext ||
|
313
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprWindowingFunctionContext ||
|
314
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprConcatContext ||
|
315
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprUnaryContext ||
|
316
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprNotContext ||
|
317
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprListContext ||
|
318
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprSubQueryContext ||
|
319
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprOdbcContext ||
|
320
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprMatchContext ||
|
321
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprBinaryContext ||
|
322
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprCastContext ||
|
323
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprCaseContext ||
|
324
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprConvertContext ||
|
325
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprConvertUsingContext ||
|
326
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprDefaultContext ||
|
327
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprValuesContext ||
|
328
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprIntervalContext);
|
324
329
|
}
|
325
330
|
//# sourceMappingURL=select-columns.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"select-columns.js","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/select-columns.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"select-columns.js","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/select-columns.ts"],"names":[],"mappings":"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"}
|