typesql-cli 0.9.6 → 0.10.0
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 +87 -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 +257 -193
- 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 +51 -39
- 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 +43 -24
- 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 +29 -21
- 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 +3 -3
- 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 +9 -9
- 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 +21 -16
- 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 +81 -67
- 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 +11 -10
- 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 +39 -32
- 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 +76 -53
- 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 +312 -206
- 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 +533 -491
- 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 +2 -3
- 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 +12 -8
- package/mysql-query-analyzer/verify-multiple-result.js.map +1 -1
- package/package.json +46 -45
- package/queryExectutor.d.ts +4 -4
- package/queryExectutor.d.ts.map +1 -1
- package/queryExectutor.js +11 -13
- 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 +29 -25
- package/sql-generator.js.map +1 -1
- package/sqlite-query-analyzer/code-generator.d.ts +5 -5
- package/sqlite-query-analyzer/code-generator.d.ts.map +1 -1
- package/sqlite-query-analyzer/code-generator.js +372 -221
- 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 +30 -17
- package/sqlite-query-analyzer/parser.js.map +1 -1
- package/sqlite-query-analyzer/query-executor.d.ts +5 -5
- package/sqlite-query-analyzer/query-executor.d.ts.map +1 -1
- package/sqlite-query-analyzer/query-executor.js +39 -25
- 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 +4 -3
- 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 +33 -18
- 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 +249 -160
- 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 +4 -4
- 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 +11 -11
- package/ts-nested-descriptor.js.map +1 -1
- package/types.d.ts +13 -14
- 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
@@ -40,7 +40,7 @@ const parser = new ts_mysql_parser_1.default({
|
|
40
40
|
function parse(sql) {
|
41
41
|
const parseResult = parser.parse(sql);
|
42
42
|
if (parseResult.parserError) {
|
43
|
-
throw new Error(
|
43
|
+
throw new Error(`Parser error${parseResult.parserError}`);
|
44
44
|
}
|
45
45
|
return parseResult.tree;
|
46
46
|
}
|
@@ -48,25 +48,25 @@ exports.parse = parse;
|
|
48
48
|
//TODO - withSchema DEFAULT VALUE []
|
49
49
|
function parseAndInfer(sql, dbSchema) {
|
50
50
|
const result = extractQueryInfo(sql, dbSchema);
|
51
|
-
if (result.kind
|
51
|
+
if (result.kind === 'Select') {
|
52
52
|
return {
|
53
|
-
columns: result.columns.map(p => p.type),
|
54
|
-
parameters: result.parameters.map(p => p.type)
|
53
|
+
columns: result.columns.map((p) => p.type),
|
54
|
+
parameters: result.parameters.map((p) => p.type)
|
55
55
|
};
|
56
56
|
}
|
57
|
-
if (result.kind
|
57
|
+
if (result.kind === 'Insert') {
|
58
58
|
return {
|
59
59
|
columns: [],
|
60
|
-
parameters: result.parameters.map(p => p.columnType)
|
60
|
+
parameters: result.parameters.map((p) => p.columnType)
|
61
61
|
};
|
62
62
|
}
|
63
|
-
if (result.kind
|
63
|
+
if (result.kind === 'Update') {
|
64
64
|
return {
|
65
65
|
columns: [],
|
66
|
-
parameters: result.data.map(p => p.columnType)
|
66
|
+
parameters: result.data.map((p) => p.columnType)
|
67
67
|
};
|
68
68
|
}
|
69
|
-
throw Error(
|
69
|
+
throw Error(`parseAndInfer: ${sql}`);
|
70
70
|
}
|
71
71
|
exports.parseAndInfer = parseAndInfer;
|
72
72
|
function parseAndInferParamNullability(sql) {
|
@@ -78,31 +78,33 @@ function parseAndInferParamNullability(sql) {
|
|
78
78
|
exports.parseAndInferParamNullability = parseAndInferParamNullability;
|
79
79
|
function extractOrderByParameters(selectStatement) {
|
80
80
|
var _a, _b;
|
81
|
-
return ((_b = (_a = selectStatement
|
81
|
+
return (((_b = (_a = selectStatement
|
82
|
+
.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
83
|
}
|
83
84
|
exports.extractOrderByParameters = extractOrderByParameters;
|
84
85
|
function extractLimitParameters(selectStatement) {
|
85
|
-
return getLimitOptions(selectStatement)
|
86
|
-
.filter(limit => limit.PARAM_MARKER())
|
86
|
+
return (getLimitOptions(selectStatement)
|
87
|
+
.filter((limit) => limit.PARAM_MARKER())
|
87
88
|
.map(() => {
|
88
89
|
const paramInfo = {
|
89
90
|
type: 'bigint',
|
90
91
|
notNull: true
|
91
92
|
};
|
92
93
|
return paramInfo;
|
93
|
-
}) || [];
|
94
|
+
}) || []);
|
94
95
|
}
|
95
96
|
exports.extractLimitParameters = extractLimitParameters;
|
96
97
|
function isMultipleRowResult(selectStatement, fromColumns) {
|
97
98
|
var _a, _b;
|
98
99
|
const querySpecs = getAllQuerySpecificationsFromSelectStatement(selectStatement);
|
99
|
-
if (querySpecs.length
|
100
|
+
if (querySpecs.length === 1) {
|
101
|
+
//UNION queries are multipleRowsResult = true
|
100
102
|
const fromClause = querySpecs[0].fromClause();
|
101
103
|
if (!fromClause) {
|
102
104
|
return false;
|
103
105
|
}
|
104
|
-
if (querySpecs[0].selectItemList().getChildCount()
|
105
|
-
const selectItem = querySpecs[0].selectItemList().getChild(0);
|
106
|
+
if (querySpecs[0].selectItemList().getChildCount() === 1) {
|
107
|
+
const selectItem = (querySpecs[0].selectItemList().getChild(0));
|
106
108
|
//if selectItem = * (TerminalNode) childCount = 0; selectItem.expr() throws exception
|
107
109
|
const expr = selectItem.getChildCount() > 0 ? selectItem.expr() : null;
|
108
110
|
if (expr) {
|
@@ -113,21 +115,22 @@ function isMultipleRowResult(selectStatement, fromColumns) {
|
|
113
115
|
}
|
114
116
|
}
|
115
117
|
}
|
116
|
-
const joinedTable = (_a = fromClause
|
118
|
+
const joinedTable = (_a = fromClause
|
119
|
+
.tableReferenceList()) === null || _a === void 0 ? void 0 : _a.tableReference(0).joinedTable_list();
|
117
120
|
if (joinedTable && joinedTable.length > 0) {
|
118
121
|
return true;
|
119
122
|
}
|
120
123
|
const whereClauseExpr = (_b = querySpecs[0].whereClause()) === null || _b === void 0 ? void 0 : _b.expr();
|
121
124
|
const isMultipleRowResult = whereClauseExpr && (0, verify_multiple_result_1.verifyMultipleResult)(whereClauseExpr, fromColumns);
|
122
|
-
if (isMultipleRowResult
|
125
|
+
if (isMultipleRowResult === false) {
|
123
126
|
return false;
|
124
127
|
}
|
125
128
|
}
|
126
129
|
const limitOptions = getLimitOptions(selectStatement);
|
127
|
-
if (limitOptions.length
|
130
|
+
if (limitOptions.length === 1 && limitOptions[0].getText() === '1') {
|
128
131
|
return false;
|
129
132
|
}
|
130
|
-
if (limitOptions.length
|
133
|
+
if (limitOptions.length === 2 && limitOptions[1].getText() === '1') {
|
131
134
|
return false;
|
132
135
|
}
|
133
136
|
return true;
|
@@ -135,8 +138,8 @@ function isMultipleRowResult(selectStatement, fromColumns) {
|
|
135
138
|
exports.isMultipleRowResult = isMultipleRowResult;
|
136
139
|
function isSumExpressContext(selectItem) {
|
137
140
|
var _a;
|
138
|
-
if (selectItem instanceof ts_mysql_parser_1.SimpleExprWindowingFunctionContext
|
139
|
-
|
141
|
+
if (selectItem instanceof ts_mysql_parser_1.SimpleExprWindowingFunctionContext ||
|
142
|
+
selectItem instanceof ts_mysql_parser_1.TerminalNode) {
|
140
143
|
return false;
|
141
144
|
}
|
142
145
|
if (selectItem instanceof ts_mysql_parser_1.SumExprContext) {
|
@@ -152,11 +155,12 @@ function isSumExpressContext(selectItem) {
|
|
152
155
|
}
|
153
156
|
//https://dev.mysql.com/doc/refman/8.0/en/aggregate-functions.html
|
154
157
|
if (selectItem instanceof ts_mysql_parser_1.FunctionCallContext) {
|
155
|
-
if (((_a = selectItem.qualifiedIdentifier()) === null || _a === void 0 ? void 0 : _a.getText().toLowerCase())
|
158
|
+
if (((_a = selectItem.qualifiedIdentifier()) === null || _a === void 0 ? void 0 : _a.getText().toLowerCase()) === 'avg') {
|
156
159
|
return true;
|
157
160
|
}
|
158
161
|
}
|
159
|
-
if (selectItem instanceof ts_mysql_parser_1.ParserRuleContext &&
|
162
|
+
if (selectItem instanceof ts_mysql_parser_1.ParserRuleContext &&
|
163
|
+
selectItem.getChildCount() === 1) {
|
160
164
|
return isSumExpressContext(selectItem.getChild(0));
|
161
165
|
}
|
162
166
|
return false;
|
@@ -164,7 +168,8 @@ function isSumExpressContext(selectItem) {
|
|
164
168
|
exports.isSumExpressContext = isSumExpressContext;
|
165
169
|
function getLimitOptions(selectStatement) {
|
166
170
|
var _a, _b;
|
167
|
-
return ((_b = (_a = selectStatement
|
171
|
+
return (((_b = (_a = selectStatement
|
172
|
+
.queryExpression()) === null || _a === void 0 ? void 0 : _a.limitClause()) === null || _b === void 0 ? void 0 : _b.limitOptions().limitOption_list()) || []);
|
168
173
|
}
|
169
174
|
exports.getLimitOptions = getLimitOptions;
|
170
175
|
function extractQueryInfo(sql, dbSchema) {
|
@@ -173,7 +178,7 @@ function extractQueryInfo(sql, dbSchema) {
|
|
173
178
|
const gererateDynamicQuery = (0, describe_query_1.hasAnnotation)(sql, '@dynamicQuery');
|
174
179
|
const tree = parse(processedSql);
|
175
180
|
const traverseResult = (0, traverse_1.traverseQueryContext)(tree, dbSchema, namedParameters);
|
176
|
-
if (traverseResult.type
|
181
|
+
if (traverseResult.type === 'Select') {
|
177
182
|
const queryInfoResult = extractSelectQueryInfo(traverseResult);
|
178
183
|
if (gererateNested) {
|
179
184
|
const nestedInfo = (0, describe_nested_query_1.generateNestedInfo)(tree, dbSchema, queryInfoResult.columns);
|
@@ -185,14 +190,14 @@ function extractQueryInfo(sql, dbSchema) {
|
|
185
190
|
}
|
186
191
|
return queryInfoResult;
|
187
192
|
}
|
188
|
-
if (traverseResult.type
|
193
|
+
if (traverseResult.type === 'Insert') {
|
189
194
|
const newResult = {
|
190
195
|
kind: 'Insert',
|
191
196
|
parameters: traverseResult.parameters
|
192
197
|
};
|
193
198
|
return newResult;
|
194
199
|
}
|
195
|
-
if (traverseResult.type
|
200
|
+
if (traverseResult.type === 'Update') {
|
196
201
|
const substitutions = {}; //TODO - DUPLICADO
|
197
202
|
(0, unify_1.unify)(traverseResult.constraints, substitutions);
|
198
203
|
const columnResult = traverseResult.data.map((col) => {
|
@@ -222,7 +227,7 @@ function extractQueryInfo(sql, dbSchema) {
|
|
222
227
|
};
|
223
228
|
return newResult;
|
224
229
|
}
|
225
|
-
if (traverseResult.type
|
230
|
+
if (traverseResult.type === 'Delete') {
|
226
231
|
const newResult = {
|
227
232
|
kind: 'Delete',
|
228
233
|
parameters: traverseResult.parameters
|
@@ -246,7 +251,8 @@ function extractSelectQueryInfo(traverseResult) {
|
|
246
251
|
};
|
247
252
|
return colInfo;
|
248
253
|
});
|
249
|
-
const paramsResult = traverseResult.parameters
|
254
|
+
const paramsResult = traverseResult.parameters
|
255
|
+
.map((param) => {
|
250
256
|
const columnType = (0, collect_constraints_1.getVarType)(substitutions, param.type);
|
251
257
|
const columnNotNull = param.notNull;
|
252
258
|
const colInfo = {
|
@@ -255,12 +261,13 @@ function extractSelectQueryInfo(traverseResult) {
|
|
255
261
|
notNull: columnNotNull
|
256
262
|
};
|
257
263
|
return colInfo;
|
258
|
-
})
|
264
|
+
})
|
265
|
+
.concat(traverseResult.limitParameters);
|
259
266
|
const resultWithoutOrderBy = {
|
260
267
|
kind: 'Select',
|
261
268
|
multipleRowsResult: traverseResult.isMultiRow,
|
262
269
|
columns: columnResult,
|
263
|
-
parameters: paramsResult
|
270
|
+
parameters: paramsResult
|
264
271
|
};
|
265
272
|
if (traverseResult.orderByColumns) {
|
266
273
|
resultWithoutOrderBy.orderByColumns = traverseResult.orderByColumns;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/parse.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
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,WAK7D;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,CAsCb;AAED,wBAAgB,gBAAgB,CAC/B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,SAAS,EAAE,eAaxB;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,iBAAiB,UAW1D;AAED,wBAAgB,4BAA4B,CAC3C,kBAAkB,EAAE,kBAAkB,GACpC,MAAM,EAAE,CAWV;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAWtD;AAQD,eAAO,MAAM,aAAa,EAAE,YAAY,EAiHvC,CAAC;AAEF,wBAAgB,gBAAgB,CAC/B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,YAAY,EAAE,4BAQxB;AAED,wBAAgB,UAAU,CACzB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,SAAS,EAAE,GAClB,SAAS,CAOX;AAQD,wBAAgB,gBAAgB,CAC/B,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,SAAS,EAAE,GAClB,SAAS,GAAG,SAAS,CA2BvB;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;AA8BD,MAAM,MAAM,qBAAqB,GAAG;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,WAAW,CAAC;CAClB,CAAC;AAEF,wBAAgB,kBAAkB,CACjC,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,qBAAqB,EAAE,QAoB5B;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,iBAAiB,GAAG,SAAS,EAAE,CAIxE"}
|
@@ -7,24 +7,33 @@ const collect_constraints_1 = require("./collect-constraints");
|
|
7
7
|
const sqlite_1 = require("@wsporto/ts-mysql-parser/dist/sqlite");
|
8
8
|
function includeColumn(column, table) {
|
9
9
|
var _a;
|
10
|
-
return column.table.toLowerCase()
|
10
|
+
return (column.table.toLowerCase() === table.toLowerCase() ||
|
11
|
+
((_a = column.tableAlias) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === table.toLowerCase());
|
11
12
|
}
|
12
13
|
exports.includeColumn = includeColumn;
|
13
14
|
function filterColumns(dbSchema, withSchema, tableAlias, table) {
|
14
15
|
var _a;
|
15
|
-
const schemaName = table.prefix
|
16
|
+
const schemaName = table.prefix === ''
|
17
|
+
? (_a = dbSchema.find((col) => col.table === table.name)) === null || _a === void 0 ? void 0 : _a.schema
|
18
|
+
: table.prefix; //find first
|
16
19
|
const tableColumns1 = dbSchema
|
17
|
-
.filter(schema => schema.table.toLowerCase()
|
18
|
-
.
|
20
|
+
.filter((schema) => schema.table.toLowerCase() === table.name.toLowerCase() &&
|
21
|
+
schema.schema === schemaName)
|
22
|
+
.map((tableColumn) => {
|
19
23
|
//name and colum are the same on the leaf table
|
20
24
|
const r = {
|
21
|
-
columnName: tableColumn.column,
|
22
|
-
|
25
|
+
columnName: tableColumn.column,
|
26
|
+
columnType: (0, collect_constraints_1.createColumnTypeFomColumnSchema)(tableColumn),
|
27
|
+
notNull: tableColumn.notNull,
|
28
|
+
table: table.name,
|
29
|
+
tableAlias: tableAlias || '',
|
30
|
+
columnKey: tableColumn.columnKey
|
23
31
|
};
|
24
32
|
return r;
|
25
33
|
});
|
26
|
-
const result = tableColumns1
|
27
|
-
|
34
|
+
const result = tableColumns1
|
35
|
+
.concat(withSchema.filter((schema) => schema.table.toLowerCase() === table.name.toLowerCase()))
|
36
|
+
.map((col) => {
|
28
37
|
const r = Object.assign(Object.assign({}, col), { table: table.name, tableAlias: tableAlias });
|
29
38
|
return r;
|
30
39
|
});
|
@@ -33,8 +42,10 @@ function filterColumns(dbSchema, withSchema, tableAlias, table) {
|
|
33
42
|
exports.filterColumns = filterColumns;
|
34
43
|
function selectAllColumns(tablePrefix, fromColumns) {
|
35
44
|
const allColumns = []; //TODO - FILTER
|
36
|
-
fromColumns.forEach(column => {
|
37
|
-
if (tablePrefix
|
45
|
+
fromColumns.forEach((column) => {
|
46
|
+
if (tablePrefix === '' ||
|
47
|
+
tablePrefix === column.tableAlias ||
|
48
|
+
tablePrefix === column.table) {
|
38
49
|
allColumns.push(column);
|
39
50
|
}
|
40
51
|
});
|
@@ -48,8 +59,8 @@ function getColumnName(selectItem) {
|
|
48
59
|
return alias;
|
49
60
|
}
|
50
61
|
const tokens = getSimpleExpressions(selectItem);
|
51
|
-
|
52
|
-
if (tokens.length
|
62
|
+
const columnName = extractOriginalSql(selectItem.expr()); //TODO VERIFICAR NULL
|
63
|
+
if (tokens.length === 1 && tokens[0] instanceof ts_mysql_parser_2.SimpleExprColumnRefContext) {
|
53
64
|
return splitName(tokens[0].getText()).name;
|
54
65
|
}
|
55
66
|
return columnName;
|
@@ -57,9 +68,13 @@ function getColumnName(selectItem) {
|
|
57
68
|
exports.getColumnName = getColumnName;
|
58
69
|
function extractFieldsFromUsingClause(joinedTableContext) {
|
59
70
|
var _a;
|
60
|
-
const usingFieldsClause = (_a = joinedTableContext
|
71
|
+
const usingFieldsClause = (_a = joinedTableContext
|
72
|
+
.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
|
}
|
@@ -67,8 +82,8 @@ exports.extractFieldsFromUsingClause = extractFieldsFromUsingClause;
|
|
67
82
|
function splitName(fieldName) {
|
68
83
|
const fieldNameSplit = fieldName.split('.');
|
69
84
|
const result = {
|
70
|
-
name: fieldNameSplit.length
|
71
|
-
prefix: fieldNameSplit.length
|
85
|
+
name: fieldNameSplit.length === 2 ? fieldNameSplit[1] : fieldNameSplit[0],
|
86
|
+
prefix: fieldNameSplit.length === 2 ? fieldNameSplit[0] : ''
|
72
87
|
};
|
73
88
|
const withoutStick = {
|
74
89
|
name: removeBackStick(result.name),
|
@@ -78,7 +93,7 @@ function splitName(fieldName) {
|
|
78
93
|
}
|
79
94
|
exports.splitName = splitName;
|
80
95
|
function removeBackStick(name) {
|
81
|
-
const withoutBackStick = name.startsWith(
|
96
|
+
const withoutBackStick = name.startsWith('`') && name.endsWith('`') ? name.slice(1, -1) : name;
|
82
97
|
return withoutBackStick;
|
83
98
|
}
|
84
99
|
exports.functionAlias = [
|
@@ -193,32 +208,36 @@ exports.functionAlias = [
|
|
193
208
|
notNull: true,
|
194
209
|
schema: '',
|
195
210
|
table: ''
|
196
|
-
}
|
211
|
+
}
|
197
212
|
];
|
198
213
|
function findColumnSchema(tableName, columnName, dbSchema) {
|
199
|
-
const found = dbSchema.find(col => col.table.toLowerCase()
|
200
|
-
|
214
|
+
const found = dbSchema.find((col) => col.table.toLowerCase() === tableName.toLowerCase() &&
|
215
|
+
col.column.toLowerCase() === columnName.toLowerCase());
|
201
216
|
return found;
|
202
217
|
}
|
203
218
|
exports.findColumnSchema = findColumnSchema;
|
204
219
|
function findColumn(fieldName, columns) {
|
205
220
|
const found = findColumnOrNull(fieldName, columns);
|
206
221
|
if (!found) {
|
207
|
-
throw Error(
|
222
|
+
throw Error(`no such column: ${formatField(fieldName)}`);
|
208
223
|
}
|
209
224
|
return found;
|
210
225
|
}
|
211
226
|
exports.findColumn = findColumn;
|
212
227
|
function formatField(fieldName) {
|
213
|
-
return fieldName.prefix
|
228
|
+
return fieldName.prefix === ''
|
229
|
+
? fieldName.name
|
230
|
+
: `${fieldName.prefix}.${fieldName.name}`;
|
214
231
|
}
|
215
232
|
function findColumnOrNull(fieldName, columns) {
|
216
|
-
const found = columns.find(col => col.columnName.toLowerCase()
|
217
|
-
(fieldName.prefix
|
233
|
+
const found = columns.find((col) => col.columnName.toLowerCase() === fieldName.name.toLowerCase() &&
|
234
|
+
(fieldName.prefix === '' ||
|
235
|
+
fieldName.prefix === col.tableAlias ||
|
236
|
+
fieldName.prefix === col.table));
|
218
237
|
if (found) {
|
219
238
|
return found;
|
220
239
|
}
|
221
|
-
const functionType = exports.functionAlias.find(col => col.column.toLowerCase()
|
240
|
+
const functionType = exports.functionAlias.find((col) => col.column.toLowerCase() === fieldName.name.toLowerCase());
|
222
241
|
if (functionType) {
|
223
242
|
const colDef = {
|
224
243
|
columnName: functionType.column,
|
@@ -256,12 +275,16 @@ function collectExpr(tokens, parent, exprType, isSubQuery = false) {
|
|
256
275
|
for (let i = 0; i < parent.getChildCount(); i++) {
|
257
276
|
const child = parent.getChild(i);
|
258
277
|
if (child instanceof ts_mysql_parser_1.ParserRuleContext) {
|
259
|
-
collectExpr(tokens, child, exprType,
|
278
|
+
collectExpr(tokens, child, exprType, isSubQuery ||
|
279
|
+
child instanceof ts_mysql_parser_2.SimpleExprSubQueryContext ||
|
280
|
+
child instanceof sqlite_1.Select_coreContext);
|
260
281
|
}
|
261
282
|
}
|
262
283
|
}
|
263
284
|
function getTopLevelAndExpr(expr, all) {
|
264
|
-
if (expr instanceof ts_mysql_parser_2.ExprAndContext ||
|
285
|
+
if (expr instanceof ts_mysql_parser_2.ExprAndContext ||
|
286
|
+
expr instanceof ts_mysql_parser_2.ExprXorContext ||
|
287
|
+
expr instanceof ts_mysql_parser_2.ExprOrContext) {
|
265
288
|
const exprLeft = expr.expr(0);
|
266
289
|
getTopLevelAndExpr(exprLeft, all);
|
267
290
|
const exprRight = expr.expr(1);
|
@@ -290,36 +313,36 @@ function collectSimpleExpr(tokens, parent) {
|
|
290
313
|
}
|
291
314
|
for (let i = 0; i < parent.getChildCount(); i++) {
|
292
315
|
const child = parent.getChild(i);
|
293
|
-
if (
|
316
|
+
if (child instanceof ts_mysql_parser_1.ParserRuleContext) {
|
294
317
|
collectSimpleExpr(tokens, child);
|
295
318
|
}
|
296
319
|
}
|
297
320
|
}
|
298
321
|
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
|
-
|
322
|
+
return (ctx instanceof ts_mysql_parser_2.SimpleExprVariableContext ||
|
323
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprColumnRefContext ||
|
324
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprRuntimeFunctionContext ||
|
325
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprFunctionContext ||
|
326
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprCollateContext ||
|
327
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprLiteralContext ||
|
328
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprParamMarkerContext ||
|
329
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprSumContext ||
|
330
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprGroupingOperationContext ||
|
331
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprWindowingFunctionContext ||
|
332
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprConcatContext ||
|
333
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprUnaryContext ||
|
334
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprNotContext ||
|
335
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprListContext ||
|
336
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprSubQueryContext ||
|
337
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprOdbcContext ||
|
338
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprMatchContext ||
|
339
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprBinaryContext ||
|
340
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprCastContext ||
|
341
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprCaseContext ||
|
342
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprConvertContext ||
|
343
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprConvertUsingContext ||
|
344
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprDefaultContext ||
|
345
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprValuesContext ||
|
346
|
+
ctx instanceof ts_mysql_parser_2.SimpleExprIntervalContext);
|
324
347
|
}
|
325
348
|
//# 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":";;;AAAA,8DAA6D;AAG7D,
|
1
|
+
{"version":3,"file":"select-columns.js","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/select-columns.ts"],"names":[],"mappings":"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"}
|
@@ -1,7 +1,7 @@
|
|
1
|
-
import { DeleteStatementContext, ExprContext, InsertStatementContext, QueryContext, QuerySpecificationContext, SelectStatementContext, UpdateStatementContext, WithClauseContext } from '@wsporto/ts-mysql-parser';
|
2
|
-
import { ColumnDef, ColumnSchema, Constraint, DynamicSqlInfo, DynamicSqlInfo2, FieldName, ParameterInfo, TraverseContext, TypeAndNullInfer, TypeAndNullInferParam } from
|
3
|
-
import { ParameterDef } from
|
4
|
-
import { Relation2 } from '../sqlite-query-analyzer/sqlite-describe-nested-query';
|
1
|
+
import { type DeleteStatementContext, ExprContext, type InsertStatementContext, type QueryContext, type QuerySpecificationContext, type SelectStatementContext, type UpdateStatementContext, type WithClauseContext } from '@wsporto/ts-mysql-parser';
|
2
|
+
import type { ColumnDef, ColumnSchema, Constraint, DynamicSqlInfo, DynamicSqlInfo2, FieldName, ParameterInfo, TraverseContext, TypeAndNullInfer, TypeAndNullInferParam } from './types';
|
3
|
+
import type { ParameterDef } from '../types';
|
4
|
+
import type { Relation2 } from '../sqlite-query-analyzer/sqlite-describe-nested-query';
|
5
5
|
export type TraverseResult = SelectStatementResult | InsertStatementResult | UpdateStatementResult | DeleteStatementResult;
|
6
6
|
export type SelectStatementResult = {
|
7
7
|
type: 'Select';
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"traverse.d.ts","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/traverse.ts"],"names":[],"mappings":"AAAA,OAAO,
|
1
|
+
{"version":3,"file":"traverse.d.ts","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/traverse.ts"],"names":[],"mappings":"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"}
|