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
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"collect-constraints.js","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/collect-constraints.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"collect-constraints.js","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/collect-constraints.ts"],"names":[],"mappings":"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"}
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import { QuerySpecificationContext, ExprContext } from '@wsporto/ts-mysql-parser';
|
2
|
-
import { ColumnSchema, FieldName, ColumnDef } from
|
1
|
+
import { QuerySpecificationContext, type ExprContext } from '@wsporto/ts-mysql-parser';
|
2
|
+
import type { ColumnSchema, FieldName, ColumnDef } from './types';
|
3
3
|
export declare function parseAndInferNotNull(sql: string, dbSchema: ColumnSchema[]): boolean[];
|
4
4
|
export declare function inferNotNull(querySpec: QuerySpecificationContext, dbSchema: ColumnSchema[], fromColumns: ColumnDef[]): boolean[];
|
5
5
|
export declare function possibleNull(field: FieldName, exprContext: ExprContext): boolean;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"infer-column-nullability.d.ts","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/infer-column-nullability.ts"],"names":[],"mappings":"AAAA,OAAO,
|
1
|
+
{"version":3,"file":"infer-column-nullability.d.ts","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/infer-column-nullability.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,yBAAyB,EAEzB,KAAK,WAAW,EA4BhB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AASlE,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,aAQzE;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,yBAAyB,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,aAiBpH;AAgSD,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAuDhF"}
|
@@ -1,6 +1,8 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.
|
3
|
+
exports.parseAndInferNotNull = parseAndInferNotNull;
|
4
|
+
exports.inferNotNull = inferNotNull;
|
5
|
+
exports.possibleNull = possibleNull;
|
4
6
|
const ts_mysql_parser_1 = require("@wsporto/ts-mysql-parser");
|
5
7
|
const select_columns_1 = require("./select-columns");
|
6
8
|
const infer_param_nullability_1 = require("./infer-param-nullability");
|
@@ -13,36 +15,35 @@ function parseAndInferNotNull(sql, dbSchema) {
|
|
13
15
|
const { sql: processedSql, namedParameters } = (0, describe_query_1.preprocessSql)(sql);
|
14
16
|
const tree = (0, parse_1.parse)(processedSql);
|
15
17
|
const result = (0, traverse_1.traverseQueryContext)(tree, dbSchema, namedParameters);
|
16
|
-
if (result.type
|
17
|
-
return result.columns.map(col => col.notNull);
|
18
|
+
if (result.type === 'Select') {
|
19
|
+
return result.columns.map((col) => col.notNull);
|
18
20
|
}
|
19
21
|
return [];
|
20
22
|
}
|
21
|
-
exports.parseAndInferNotNull = parseAndInferNotNull;
|
22
23
|
function inferNotNull(querySpec, dbSchema, fromColumns) {
|
23
24
|
const notNullInference = [];
|
24
25
|
const whereClause = querySpec.whereClause();
|
25
26
|
if (querySpec.selectItemList().MULT_OPERATOR()) {
|
26
|
-
|
27
|
+
for (const col of fromColumns) {
|
27
28
|
const field = (0, select_columns_1.splitName)(col.columnName);
|
28
29
|
const notNull = col.notNull || (whereClause && !possibleNullWhere(field, whereClause)) || false;
|
29
30
|
notNullInference.push(notNull); //TODO infernot null in where?
|
30
|
-
}
|
31
|
+
}
|
31
32
|
}
|
32
|
-
querySpec.selectItemList().selectItem_list()
|
33
|
+
const selectItem_list = querySpec.selectItemList().selectItem_list();
|
34
|
+
for (const selectItem of selectItem_list) {
|
33
35
|
notNullInference.push(...inferNotNullSelectItem(selectItem, dbSchema, fromColumns, whereClause));
|
34
|
-
}
|
36
|
+
}
|
35
37
|
return notNullInference;
|
36
38
|
}
|
37
|
-
exports.inferNotNull = inferNotNull;
|
38
39
|
function inferNotNullSelectItem(selectItem, dbSchema, fromColumns, whereClause) {
|
39
40
|
const notNullItems = [];
|
40
41
|
const tableWild = selectItem.tableWild();
|
41
42
|
if (tableWild === null || tableWild === void 0 ? void 0 : tableWild.MULT_OPERATOR()) {
|
42
|
-
tableWild.identifier_list().forEach(tabWild => {
|
43
|
+
tableWild.identifier_list().forEach((tabWild) => {
|
43
44
|
const prefix = tabWild.getText();
|
44
45
|
const columns = (0, select_columns_1.selectAllColumns)(prefix, fromColumns);
|
45
|
-
columns.forEach(col => {
|
46
|
+
columns.forEach((col) => {
|
46
47
|
const field = (0, select_columns_1.splitName)(col.columnName);
|
47
48
|
const notNull = col.notNull || (whereClause && !possibleNullWhere(field, whereClause)) || false;
|
48
49
|
notNullItems.push(notNull);
|
@@ -86,7 +87,7 @@ function inferNotNullBoolPri(boolPri, dbSchema, fromColumns) {
|
|
86
87
|
}
|
87
88
|
function inferNotNullPredicate(predicate, dbSchema, fromColumns) {
|
88
89
|
const bitExpr = predicate.bitExpr_list();
|
89
|
-
if (bitExpr.length
|
90
|
+
if (bitExpr.length === 1) {
|
90
91
|
return inferNotNullBitExpr(bitExpr[0], dbSchema, fromColumns);
|
91
92
|
}
|
92
93
|
throw Error('Error during column null inference');
|
@@ -97,7 +98,7 @@ function inferNotNullBitExpr(bitExpr, dbSchema, fromColumns) {
|
|
97
98
|
return inferNotNullSimpleExpr(simpleExpr, dbSchema, fromColumns);
|
98
99
|
}
|
99
100
|
const bitExpr2 = bitExpr.bitExpr_list();
|
100
|
-
const notNull = bitExpr2.every(bitExprItem => inferNotNullBitExpr(bitExprItem, dbSchema, fromColumns));
|
101
|
+
const notNull = bitExpr2.every((bitExprItem) => inferNotNullBitExpr(bitExprItem, dbSchema, fromColumns));
|
101
102
|
return notNull;
|
102
103
|
}
|
103
104
|
function inferNotNullSimpleExpr(simpleExpr, dbSchema, fromColumns) {
|
@@ -114,7 +115,6 @@ function inferNotNullSimpleExpr(simpleExpr, dbSchema, fromColumns) {
|
|
114
115
|
if (whereClause && !possibleNullWhere(fieldName, whereClause)) {
|
115
116
|
return true;
|
116
117
|
}
|
117
|
-
;
|
118
118
|
return false;
|
119
119
|
}
|
120
120
|
if (simpleExpr instanceof ts_mysql_parser_1.SimpleExprRuntimeFunctionContext) {
|
@@ -143,7 +143,7 @@ function inferNotNullSimpleExpr(simpleExpr, dbSchema, fromColumns) {
|
|
143
143
|
if (sumExpr.GROUP_CONCAT_SYMBOL()) {
|
144
144
|
const exprList = (_a = sumExpr.exprList()) === null || _a === void 0 ? void 0 : _a.expr_list();
|
145
145
|
if (exprList) {
|
146
|
-
return exprList.every(expr => inferNotNullExpr(expr, dbSchema, fromColumns));
|
146
|
+
return exprList.every((expr) => inferNotNullExpr(expr, dbSchema, fromColumns));
|
147
147
|
}
|
148
148
|
//IF has not exprList, GROUP_CONCAT will concat all the fields from select
|
149
149
|
return false; //TODO - INFER NULLABILITY
|
@@ -155,7 +155,7 @@ function inferNotNullSimpleExpr(simpleExpr, dbSchema, fromColumns) {
|
|
155
155
|
}
|
156
156
|
if (simpleExpr instanceof ts_mysql_parser_1.SimpleExprListContext) {
|
157
157
|
const exprList = simpleExpr.exprList().expr_list();
|
158
|
-
return exprList.every(expr => inferNotNullExpr(expr, dbSchema, fromColumns));
|
158
|
+
return exprList.every((expr) => inferNotNullExpr(expr, dbSchema, fromColumns));
|
159
159
|
}
|
160
160
|
if (simpleExpr instanceof ts_mysql_parser_1.SimpleExprSubQueryContext) {
|
161
161
|
if (simpleExpr.EXISTS_SYMBOL()) {
|
@@ -167,16 +167,14 @@ function inferNotNullSimpleExpr(simpleExpr, dbSchema, fromColumns) {
|
|
167
167
|
const thenExprList = simpleExpr.thenExpression_list();
|
168
168
|
const elseExpr = simpleExpr.elseExpression();
|
169
169
|
if (elseExpr) {
|
170
|
-
|
170
|
+
const caseNotNull = thenExprList.every((thenExpr) => inferNotNullExpr(thenExpr.expr(), dbSchema, fromColumns));
|
171
171
|
return caseNotNull && inferNotNullExpr(elseExpr.expr(), dbSchema, fromColumns);
|
172
172
|
}
|
173
|
-
else
|
174
|
-
return false; //if doesn't have else, the not null can't be inferred
|
175
|
-
}
|
173
|
+
return false; //if doesn't have else, the not null can't be inferred
|
176
174
|
}
|
177
175
|
if (simpleExpr instanceof ts_mysql_parser_1.SimpleExprIntervalContext) {
|
178
176
|
const exprList = simpleExpr.expr_list();
|
179
|
-
return exprList.every(expr => inferNotNullExpr(expr, dbSchema, fromColumns));
|
177
|
+
return exprList.every((expr) => inferNotNullExpr(expr, dbSchema, fromColumns));
|
180
178
|
}
|
181
179
|
if (simpleExpr instanceof ts_mysql_parser_1.SimpleExprWindowingFunctionContext) {
|
182
180
|
return inferNotNullWindowFunctionCall(simpleExpr.windowFunctionCall(), dbSchema, fromColumns);
|
@@ -185,18 +183,17 @@ function inferNotNullSimpleExpr(simpleExpr, dbSchema, fromColumns) {
|
|
185
183
|
const expr = simpleExpr.expr();
|
186
184
|
return inferNotNullExpr(expr, dbSchema, fromColumns);
|
187
185
|
}
|
188
|
-
throw Error(
|
186
|
+
throw Error(`Error during column null inference. Expr: ${simpleExpr.getText()}`);
|
189
187
|
}
|
190
188
|
function inferNotNullWindowFunctionCall(windowFunctionCall, dbSchema, fromColumns) {
|
191
|
-
if (windowFunctionCall.ROW_NUMBER_SYMBOL()
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
189
|
+
if (windowFunctionCall.ROW_NUMBER_SYMBOL() ||
|
190
|
+
windowFunctionCall.RANK_SYMBOL() ||
|
191
|
+
windowFunctionCall.DENSE_RANK_SYMBOL() ||
|
192
|
+
windowFunctionCall.CUME_DIST_SYMBOL() ||
|
193
|
+
windowFunctionCall.PERCENT_RANK_SYMBOL()) {
|
196
194
|
return true;
|
197
195
|
}
|
198
|
-
if (windowFunctionCall.LEAD_SYMBOL()
|
199
|
-
|| windowFunctionCall.LAG_SYMBOL()) {
|
196
|
+
if (windowFunctionCall.LEAD_SYMBOL() || windowFunctionCall.LAG_SYMBOL()) {
|
200
197
|
return false;
|
201
198
|
}
|
202
199
|
const exprWithParentheses = windowFunctionCall.exprWithParentheses();
|
@@ -217,47 +214,47 @@ function inferNotNullRuntimeFunctionCall(simpleExprRuntimeFunction, dbSchema, fr
|
|
217
214
|
}
|
218
215
|
if (functionCall.REPLACE_SYMBOL()) {
|
219
216
|
const exprList = functionCall.expr_list();
|
220
|
-
return exprList.every(expr => inferNotNullExpr(expr, dbSchema, fromColumns));
|
217
|
+
return exprList.every((expr) => inferNotNullExpr(expr, dbSchema, fromColumns));
|
221
218
|
}
|
222
219
|
const trimFunction = functionCall.trimFunction();
|
223
220
|
if (trimFunction) {
|
224
221
|
const exprList = trimFunction.expr_list();
|
225
|
-
return exprList.every(expr => inferNotNullExpr(expr, dbSchema, fromColumns));
|
222
|
+
return exprList.every((expr) => inferNotNullExpr(expr, dbSchema, fromColumns));
|
226
223
|
}
|
227
224
|
const substringFunction = functionCall.substringFunction();
|
228
225
|
if (substringFunction) {
|
229
226
|
const exprList = substringFunction.expr_list();
|
230
|
-
return exprList.every(expr => inferNotNullExpr(expr, dbSchema, fromColumns));
|
231
|
-
}
|
232
|
-
if (functionCall.YEAR_SYMBOL() ||
|
233
|
-
|
227
|
+
return exprList.every((expr) => inferNotNullExpr(expr, dbSchema, fromColumns));
|
228
|
+
}
|
229
|
+
if (functionCall.YEAR_SYMBOL() ||
|
230
|
+
functionCall.MONTH_SYMBOL() ||
|
231
|
+
functionCall.DAY_SYMBOL() ||
|
232
|
+
functionCall.HOUR_SYMBOL() ||
|
233
|
+
functionCall.MINUTE_SYMBOL() ||
|
234
|
+
functionCall.SECOND_SYMBOL()) {
|
234
235
|
const expr = (_a = functionCall.exprWithParentheses()) === null || _a === void 0 ? void 0 : _a.expr();
|
235
236
|
return inferNotNullExpr(expr, dbSchema, fromColumns);
|
236
237
|
}
|
237
|
-
if (functionCall.ADDDATE_SYMBOL()
|
238
|
-
|| functionCall.SUBDATE_SYMBOL()
|
239
|
-
|| functionCall.DATE_ADD_SYMBOL()
|
240
|
-
|| functionCall.DATE_SUB_SYMBOL()) {
|
238
|
+
if (functionCall.ADDDATE_SYMBOL() || functionCall.SUBDATE_SYMBOL() || functionCall.DATE_ADD_SYMBOL() || functionCall.DATE_SUB_SYMBOL()) {
|
241
239
|
const exprList = functionCall.expr_list();
|
242
|
-
return exprList.every(expr => inferNotNullExpr(expr, dbSchema, fromColumns));
|
240
|
+
return exprList.every((expr) => inferNotNullExpr(expr, dbSchema, fromColumns));
|
243
241
|
}
|
244
242
|
if (functionCall.COALESCE_SYMBOL()) {
|
245
243
|
const exprList = (_b = functionCall.exprListWithParentheses()) === null || _b === void 0 ? void 0 : _b.exprList().expr_list();
|
246
244
|
//COALEST: Return the first non-null value in a list
|
247
|
-
return exprList.some(expr => inferNotNullExpr(expr, dbSchema, fromColumns));
|
245
|
+
return exprList.some((expr) => inferNotNullExpr(expr, dbSchema, fromColumns));
|
248
246
|
}
|
249
247
|
if (functionCall.IF_SYMBOL()) {
|
250
248
|
const exprList = functionCall.expr_list();
|
251
|
-
return exprList.every(expr => inferNotNullExpr(expr, dbSchema, fromColumns));
|
252
|
-
;
|
249
|
+
return exprList.every((expr) => inferNotNullExpr(expr, dbSchema, fromColumns));
|
253
250
|
}
|
254
|
-
throw Error(
|
251
|
+
throw Error(`Function not supported: ${functionCall.getText()}`);
|
255
252
|
}
|
256
253
|
function inferNotNullFunctionCall(functionCall, dbSchema, fromColumns) {
|
257
254
|
var _a, _b, _c, _d;
|
258
255
|
const functionName = ((_a = functionCall.pureIdentifier()) === null || _a === void 0 ? void 0 : _a.getText().toLowerCase()) || ((_b = functionCall.qualifiedIdentifier()) === null || _b === void 0 ? void 0 : _b.getText().toLowerCase());
|
259
256
|
const udfExprList = (_c = functionCall.udfExprList()) === null || _c === void 0 ? void 0 : _c.udfExpr_list();
|
260
|
-
if (functionName
|
257
|
+
if (functionName === 'ifnull') {
|
261
258
|
if (udfExprList) {
|
262
259
|
const [expr1, expr2] = udfExprList;
|
263
260
|
const notNull = inferNotNullExpr(expr1.expr(), dbSchema, fromColumns) || inferNotNullExpr(expr2.expr(), dbSchema, fromColumns);
|
@@ -265,23 +262,25 @@ function inferNotNullFunctionCall(functionCall, dbSchema, fromColumns) {
|
|
265
262
|
}
|
266
263
|
return false;
|
267
264
|
}
|
268
|
-
if (functionName
|
265
|
+
if (functionName === 'avg') {
|
269
266
|
return false;
|
270
267
|
}
|
271
|
-
if (functionName
|
268
|
+
if (functionName === 'str_to_date') {
|
272
269
|
return false; //invalid date
|
273
270
|
}
|
274
271
|
if (udfExprList) {
|
275
|
-
return udfExprList
|
276
|
-
|
277
|
-
|
272
|
+
return udfExprList
|
273
|
+
.filter((expr, paramIndex) => {
|
274
|
+
return functionName === 'timestampdiff' ? paramIndex !== 0 : true; //filter the first parameter of timestampdiff function
|
275
|
+
})
|
276
|
+
.every((udfExpr) => {
|
278
277
|
const expr = udfExpr.expr();
|
279
278
|
return inferNotNullExpr(expr, dbSchema, fromColumns);
|
280
279
|
});
|
281
280
|
}
|
282
281
|
const exprList = (_d = functionCall.exprList()) === null || _d === void 0 ? void 0 : _d.expr_list();
|
283
282
|
if (exprList) {
|
284
|
-
return exprList.every(expr => {
|
283
|
+
return exprList.every((expr) => {
|
285
284
|
return inferNotNullExpr(expr, dbSchema, fromColumns);
|
286
285
|
});
|
287
286
|
}
|
@@ -300,7 +299,8 @@ function possibleNull(field, exprContext) {
|
|
300
299
|
const expr = res.exprList().expr(0);
|
301
300
|
return possibleNull(field, expr);
|
302
301
|
}
|
303
|
-
if (res instanceof ts_mysql_parser_1.SimpleExprSubQueryContext) {
|
302
|
+
if (res instanceof ts_mysql_parser_1.SimpleExprSubQueryContext) {
|
303
|
+
//exists, not exists
|
304
304
|
return true; //possibleNull
|
305
305
|
}
|
306
306
|
}
|
@@ -311,9 +311,9 @@ function possibleNull(field, exprContext) {
|
|
311
311
|
}
|
312
312
|
}
|
313
313
|
if (boolPri instanceof ts_mysql_parser_1.PrimaryExprCompareContext) {
|
314
|
-
|
315
|
-
|
316
|
-
//TODO - more complex expressions. ex. (value + value2) > 10;
|
314
|
+
const compare = boolPri.boolPri().getText(); //value > 10;
|
315
|
+
const compare2 = boolPri.predicate().getText(); //10 < value
|
316
|
+
//TODO - more complex expressions. ex. (value + value2) > 10;
|
317
317
|
if (areEquals(field, compare) || areEquals(field, compare2)) {
|
318
318
|
return false; //possibleNull
|
319
319
|
}
|
@@ -327,9 +327,9 @@ function possibleNull(field, exprContext) {
|
|
327
327
|
if (exprContext instanceof ts_mysql_parser_1.ExprAndContext) {
|
328
328
|
const [first, ...rest] = exprContext.expr_list();
|
329
329
|
let possibleNullVar = possibleNull(field, first);
|
330
|
-
|
330
|
+
for (const expr of rest) {
|
331
331
|
possibleNullVar = possibleNullVar && possibleNull(field, expr);
|
332
|
-
}
|
332
|
+
}
|
333
333
|
return possibleNullVar;
|
334
334
|
}
|
335
335
|
if (exprContext instanceof ts_mysql_parser_1.ExprXorContext) {
|
@@ -338,14 +338,13 @@ function possibleNull(field, exprContext) {
|
|
338
338
|
if (exprContext instanceof ts_mysql_parser_1.ExprOrContext) {
|
339
339
|
const [first, ...rest] = exprContext.expr_list();
|
340
340
|
let possibleNullVar = possibleNull(field, first);
|
341
|
-
|
341
|
+
for (const expr of rest) {
|
342
342
|
possibleNullVar = possibleNullVar || possibleNull(field, expr);
|
343
|
-
}
|
343
|
+
}
|
344
344
|
return possibleNullVar;
|
345
345
|
}
|
346
|
-
throw Error(
|
346
|
+
throw Error(`Unknow type:${exprContext.constructor.name}`);
|
347
347
|
}
|
348
|
-
exports.possibleNull = possibleNull;
|
349
348
|
function areEquals(field, expressionField) {
|
350
349
|
const compare = (0, select_columns_1.splitName)(expressionField); //t1.name
|
351
350
|
/*
|
@@ -353,7 +352,6 @@ function areEquals(field, expressionField) {
|
|
353
352
|
t1.name == name
|
354
353
|
name == t1.name
|
355
354
|
*/
|
356
|
-
return field.name
|
357
|
-
((field.prefix == compare.prefix) || (field.prefix == '' || compare.prefix == ''));
|
355
|
+
return field.name === compare.name && (field.prefix === compare.prefix || field.prefix === '' || compare.prefix === '');
|
358
356
|
}
|
359
357
|
//# sourceMappingURL=infer-column-nullability.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"infer-column-nullability.js","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/infer-column-nullability.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"infer-column-nullability.js","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/infer-column-nullability.ts"],"names":[],"mappings":"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"}
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import { SimpleExprParamMarkerContext, ExprContext, InsertQueryExpressionContext, SelectStatementContext, QueryExpressionContext } from '@wsporto/ts-mysql-parser';
|
2
|
-
import { RuleContext } from
|
1
|
+
import { SimpleExprParamMarkerContext, type ExprContext, type InsertQueryExpressionContext, type SelectStatementContext, type QueryExpressionContext } from '@wsporto/ts-mysql-parser';
|
2
|
+
import type { RuleContext } from '@wsporto/ts-mysql-parser';
|
3
3
|
export declare function inferParamNullabilityQuery(queryContext: SelectStatementContext | InsertQueryExpressionContext): boolean[];
|
4
4
|
export declare function inferParamNullabilityQueryExpression(queryExpression: QueryExpressionContext): boolean[];
|
5
5
|
export declare function inferParamNullability(exprContext: ExprContext): boolean[];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"infer-param-nullability.d.ts","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/infer-param-nullability.ts"],"names":[],"mappings":"AAAA,OAAO,
|
1
|
+
{"version":3,"file":"infer-param-nullability.d.ts","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/infer-param-nullability.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,4BAA4B,EAG5B,KAAK,WAAW,EAChB,KAAK,4BAA4B,EACjC,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAE3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG5D,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,sBAAsB,GAAG,4BAA4B,GAAG,OAAO,EAAE,CAIzH;AAED,wBAAgB,oCAAoC,CAAC,eAAe,EAAE,sBAAsB,aAG3F;AAED,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,EAAE,CAGzE;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,4BAA4B,GAAG,OAAO,CAElF;AAqDD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,WAAW,GAAG,SAAS,EAAE,aAAa,EAAE,GAAG,GAAG,WAAW,GAAG,SAAS,CAQ1G"}
|
@@ -1,28 +1,28 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.
|
3
|
+
exports.inferParamNullabilityQuery = inferParamNullabilityQuery;
|
4
|
+
exports.inferParamNullabilityQueryExpression = inferParamNullabilityQueryExpression;
|
5
|
+
exports.inferParamNullability = inferParamNullability;
|
6
|
+
exports.inferParameterNotNull = inferParameterNotNull;
|
7
|
+
exports.getParentContext = getParentContext;
|
4
8
|
const ts_mysql_parser_1 = require("@wsporto/ts-mysql-parser");
|
5
9
|
const parse_1 = require("./parse");
|
6
10
|
function inferParamNullabilityQuery(queryContext) {
|
7
11
|
const queriesSpecification = (0, parse_1.getAllQuerySpecificationsFromSelectStatement)(queryContext);
|
8
|
-
const parameters = queriesSpecification.flatMap(querySpec => getAllParameters(querySpec));
|
9
|
-
return parameters.map(param => inferParameterNotNull(param));
|
12
|
+
const parameters = queriesSpecification.flatMap((querySpec) => getAllParameters(querySpec));
|
13
|
+
return parameters.map((param) => inferParameterNotNull(param));
|
10
14
|
}
|
11
|
-
exports.inferParamNullabilityQuery = inferParamNullabilityQuery;
|
12
15
|
function inferParamNullabilityQueryExpression(queryExpression) {
|
13
16
|
const parameters = getAllParameters(queryExpression);
|
14
|
-
return parameters.map(param => inferParameterNotNull(param));
|
17
|
+
return parameters.map((param) => inferParameterNotNull(param));
|
15
18
|
}
|
16
|
-
exports.inferParamNullabilityQueryExpression = inferParamNullabilityQueryExpression;
|
17
19
|
function inferParamNullability(exprContext) {
|
18
20
|
const parameters = getAllParameters(exprContext);
|
19
|
-
return parameters.map(param => inferParameterNotNull(param));
|
21
|
+
return parameters.map((param) => inferParameterNotNull(param));
|
20
22
|
}
|
21
|
-
exports.inferParamNullability = inferParamNullability;
|
22
23
|
function inferParameterNotNull(param) {
|
23
24
|
return inferParameterNotNullRule(param);
|
24
25
|
}
|
25
|
-
exports.inferParameterNotNull = inferParameterNotNull;
|
26
26
|
function inferParameterNotNullRule(rule) {
|
27
27
|
var _a, _b;
|
28
28
|
const isNullContext = getParentContext(rule, ts_mysql_parser_1.PrimaryExprIsNullContext);
|
@@ -34,18 +34,18 @@ function inferParameterNotNullRule(rule) {
|
|
34
34
|
}
|
35
35
|
const nullIfFunction = getParentContext(rule, ts_mysql_parser_1.FunctionCallContext);
|
36
36
|
const functionIdentifier = (_a = nullIfFunction === null || nullIfFunction === void 0 ? void 0 : nullIfFunction.pureIdentifier()) === null || _a === void 0 ? void 0 : _a.getText().toLowerCase();
|
37
|
-
if (functionIdentifier
|
37
|
+
if (functionIdentifier === 'nullif') {
|
38
38
|
const expressionList = (_b = nullIfFunction.udfExprList()) === null || _b === void 0 ? void 0 : _b.udfExpr_list();
|
39
|
-
if (expressionList && expressionList.length
|
39
|
+
if (expressionList && expressionList.length === 2) {
|
40
40
|
const firstArg = expressionList[0];
|
41
41
|
const secondArg = expressionList[1];
|
42
|
-
if (firstArg.getText()
|
42
|
+
if (firstArg.getText() === '?' && secondArg.getText().toLowerCase() === 'null') {
|
43
43
|
return false;
|
44
44
|
}
|
45
45
|
}
|
46
46
|
return true;
|
47
47
|
}
|
48
|
-
if (functionIdentifier
|
48
|
+
if (functionIdentifier === 'ifnull') {
|
49
49
|
return false;
|
50
50
|
}
|
51
51
|
const parent = rule.parentCtx;
|
@@ -79,5 +79,4 @@ function getParentContext(ctx, parentContext) {
|
|
79
79
|
}
|
80
80
|
return undefined;
|
81
81
|
}
|
82
|
-
exports.getParentContext = getParentContext;
|
83
82
|
//# sourceMappingURL=infer-param-nullability.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"infer-param-nullability.js","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/infer-param-nullability.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"infer-param-nullability.js","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/infer-param-nullability.ts"],"names":[],"mappings":"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"}
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import { QueryContext, QuerySpecificationContext, SelectStatementContext, SubqueryContext, QueryExpressionBodyContext, InsertQueryExpressionContext, ParseTree } from '@wsporto/ts-mysql-parser';
|
2
|
-
import { ColumnSchema, TypeInferenceResult, QueryInfoResult, InsertInfoResult, UpdateInfoResult, DeleteInfoResult, ParameterInfo, ColumnDef } from './types';
|
1
|
+
import { type QueryContext, QuerySpecificationContext, type SelectStatementContext, type SubqueryContext, type QueryExpressionBodyContext, type InsertQueryExpressionContext, type ParseTree } from '@wsporto/ts-mysql-parser';
|
2
|
+
import type { ColumnSchema, TypeInferenceResult, QueryInfoResult, InsertInfoResult, UpdateInfoResult, DeleteInfoResult, ParameterInfo, ColumnDef } from './types';
|
3
3
|
export declare function parse(sql: string): QueryContext;
|
4
4
|
export declare function parseAndInfer(sql: string, dbSchema: ColumnSchema[]): TypeInferenceResult;
|
5
5
|
export declare function parseAndInferParamNullability(sql: string): boolean[];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/parse.ts"],"names":[],"mappings":"AAAA,OAAoB,
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/parse.ts"],"names":[],"mappings":"AAAA,OAAoB,EAEnB,KAAK,YAAY,EACjB,yBAAyB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACpB,KAAK,0BAA0B,EAC/B,KAAK,4BAA4B,EAMjC,KAAK,SAAS,EAGd,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EACX,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EAEb,SAAS,EAET,MAAM,SAAS,CAAC;AAejB,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAO/C;AAGD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,mBAAmB,CAqBxF;AAED,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,EAAE,CAIpE;AAED,wBAAgB,wBAAwB,CAAC,eAAe,EAAE,sBAAsB,YAU/E;AAED,wBAAgB,sBAAsB,CAAC,eAAe,EAAE,sBAAsB,GAAG,aAAa,EAAE,CAY/F;AAED,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,sBAAsB,EAAE,WAAW,EAAE,SAAS,EAAE,WAyCpG;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,SAAS,WA0BxD;AAED,wBAAgB,eAAe,CAAC,eAAe,EAAE,sBAAsB,2DAEtE;AAED,wBAAgB,gBAAgB,CAC/B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,YAAY,EAAE,GACtB,eAAe,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,CAmE1E;AA4CD,wBAAgB,4CAA4C,CAC3D,eAAe,EAAE,sBAAsB,GAAG,0BAA0B,GAAG,4BAA4B,GAAG,eAAe,+BAMrH"}
|