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
@@ -13,8 +13,8 @@ function parseAndInferNotNull(sql, dbSchema) {
|
|
13
13
|
const { sql: processedSql, namedParameters } = (0, describe_query_1.preprocessSql)(sql);
|
14
14
|
const tree = (0, parse_1.parse)(processedSql);
|
15
15
|
const result = (0, traverse_1.traverseQueryContext)(tree, dbSchema, namedParameters);
|
16
|
-
if (result.type
|
17
|
-
return result.columns.map(col => col.notNull);
|
16
|
+
if (result.type === 'Select') {
|
17
|
+
return result.columns.map((col) => col.notNull);
|
18
18
|
}
|
19
19
|
return [];
|
20
20
|
}
|
@@ -23,15 +23,18 @@ function inferNotNull(querySpec, dbSchema, fromColumns) {
|
|
23
23
|
const notNullInference = [];
|
24
24
|
const whereClause = querySpec.whereClause();
|
25
25
|
if (querySpec.selectItemList().MULT_OPERATOR()) {
|
26
|
-
|
26
|
+
for (const col of fromColumns) {
|
27
27
|
const field = (0, select_columns_1.splitName)(col.columnName);
|
28
|
-
const notNull = col.notNull ||
|
28
|
+
const notNull = col.notNull ||
|
29
|
+
(whereClause && !possibleNullWhere(field, whereClause)) ||
|
30
|
+
false;
|
29
31
|
notNullInference.push(notNull); //TODO infernot null in where?
|
30
|
-
}
|
32
|
+
}
|
31
33
|
}
|
32
|
-
querySpec.selectItemList().selectItem_list()
|
34
|
+
const selectItem_list = querySpec.selectItemList().selectItem_list();
|
35
|
+
for (const selectItem of selectItem_list) {
|
33
36
|
notNullInference.push(...inferNotNullSelectItem(selectItem, dbSchema, fromColumns, whereClause));
|
34
|
-
}
|
37
|
+
}
|
35
38
|
return notNullInference;
|
36
39
|
}
|
37
40
|
exports.inferNotNull = inferNotNull;
|
@@ -39,12 +42,14 @@ function inferNotNullSelectItem(selectItem, dbSchema, fromColumns, whereClause)
|
|
39
42
|
const notNullItems = [];
|
40
43
|
const tableWild = selectItem.tableWild();
|
41
44
|
if (tableWild === null || tableWild === void 0 ? void 0 : tableWild.MULT_OPERATOR()) {
|
42
|
-
tableWild.identifier_list().forEach(tabWild => {
|
45
|
+
tableWild.identifier_list().forEach((tabWild) => {
|
43
46
|
const prefix = tabWild.getText();
|
44
47
|
const columns = (0, select_columns_1.selectAllColumns)(prefix, fromColumns);
|
45
|
-
columns.forEach(col => {
|
48
|
+
columns.forEach((col) => {
|
46
49
|
const field = (0, select_columns_1.splitName)(col.columnName);
|
47
|
-
const notNull = col.notNull ||
|
50
|
+
const notNull = col.notNull ||
|
51
|
+
(whereClause && !possibleNullWhere(field, whereClause)) ||
|
52
|
+
false;
|
48
53
|
notNullItems.push(notNull);
|
49
54
|
});
|
50
55
|
});
|
@@ -86,7 +91,7 @@ function inferNotNullBoolPri(boolPri, dbSchema, fromColumns) {
|
|
86
91
|
}
|
87
92
|
function inferNotNullPredicate(predicate, dbSchema, fromColumns) {
|
88
93
|
const bitExpr = predicate.bitExpr_list();
|
89
|
-
if (bitExpr.length
|
94
|
+
if (bitExpr.length === 1) {
|
90
95
|
return inferNotNullBitExpr(bitExpr[0], dbSchema, fromColumns);
|
91
96
|
}
|
92
97
|
throw Error('Error during column null inference');
|
@@ -97,12 +102,12 @@ function inferNotNullBitExpr(bitExpr, dbSchema, fromColumns) {
|
|
97
102
|
return inferNotNullSimpleExpr(simpleExpr, dbSchema, fromColumns);
|
98
103
|
}
|
99
104
|
const bitExpr2 = bitExpr.bitExpr_list();
|
100
|
-
const notNull = bitExpr2.every(bitExprItem => inferNotNullBitExpr(bitExprItem, dbSchema, fromColumns));
|
105
|
+
const notNull = bitExpr2.every((bitExprItem) => inferNotNullBitExpr(bitExprItem, dbSchema, fromColumns));
|
101
106
|
return notNull;
|
102
107
|
}
|
103
108
|
function inferNotNullSimpleExpr(simpleExpr, dbSchema, fromColumns) {
|
104
109
|
var _a;
|
105
|
-
const querySpec = (0, infer_param_nullability_1.getParentContext)(simpleExpr, ts_mysql_parser_1.QuerySpecificationContext);
|
110
|
+
const querySpec = ((0, infer_param_nullability_1.getParentContext)(simpleExpr, ts_mysql_parser_1.QuerySpecificationContext));
|
106
111
|
const whereClause = querySpec.whereClause();
|
107
112
|
if (simpleExpr instanceof ts_mysql_parser_1.SimpleExprColumnRefContext) {
|
108
113
|
const columnName = simpleExpr.columnRef().fieldIdentifier().getText();
|
@@ -114,7 +119,6 @@ function inferNotNullSimpleExpr(simpleExpr, dbSchema, fromColumns) {
|
|
114
119
|
if (whereClause && !possibleNullWhere(fieldName, whereClause)) {
|
115
120
|
return true;
|
116
121
|
}
|
117
|
-
;
|
118
122
|
return false;
|
119
123
|
}
|
120
124
|
if (simpleExpr instanceof ts_mysql_parser_1.SimpleExprRuntimeFunctionContext) {
|
@@ -143,7 +147,7 @@ function inferNotNullSimpleExpr(simpleExpr, dbSchema, fromColumns) {
|
|
143
147
|
if (sumExpr.GROUP_CONCAT_SYMBOL()) {
|
144
148
|
const exprList = (_a = sumExpr.exprList()) === null || _a === void 0 ? void 0 : _a.expr_list();
|
145
149
|
if (exprList) {
|
146
|
-
return exprList.every(expr => inferNotNullExpr(expr, dbSchema, fromColumns));
|
150
|
+
return exprList.every((expr) => inferNotNullExpr(expr, dbSchema, fromColumns));
|
147
151
|
}
|
148
152
|
//IF has not exprList, GROUP_CONCAT will concat all the fields from select
|
149
153
|
return false; //TODO - INFER NULLABILITY
|
@@ -155,7 +159,7 @@ function inferNotNullSimpleExpr(simpleExpr, dbSchema, fromColumns) {
|
|
155
159
|
}
|
156
160
|
if (simpleExpr instanceof ts_mysql_parser_1.SimpleExprListContext) {
|
157
161
|
const exprList = simpleExpr.exprList().expr_list();
|
158
|
-
return exprList.every(expr => inferNotNullExpr(expr, dbSchema, fromColumns));
|
162
|
+
return exprList.every((expr) => inferNotNullExpr(expr, dbSchema, fromColumns));
|
159
163
|
}
|
160
164
|
if (simpleExpr instanceof ts_mysql_parser_1.SimpleExprSubQueryContext) {
|
161
165
|
if (simpleExpr.EXISTS_SYMBOL()) {
|
@@ -167,16 +171,14 @@ function inferNotNullSimpleExpr(simpleExpr, dbSchema, fromColumns) {
|
|
167
171
|
const thenExprList = simpleExpr.thenExpression_list();
|
168
172
|
const elseExpr = simpleExpr.elseExpression();
|
169
173
|
if (elseExpr) {
|
170
|
-
|
171
|
-
return caseNotNull && inferNotNullExpr(elseExpr.expr(), dbSchema, fromColumns);
|
172
|
-
}
|
173
|
-
else {
|
174
|
-
return false; //if doesn't have else, the not null can't be inferred
|
174
|
+
const caseNotNull = thenExprList.every((thenExpr) => inferNotNullExpr(thenExpr.expr(), dbSchema, fromColumns));
|
175
|
+
return (caseNotNull && inferNotNullExpr(elseExpr.expr(), dbSchema, fromColumns));
|
175
176
|
}
|
177
|
+
return false; //if doesn't have else, the not null can't be inferred
|
176
178
|
}
|
177
179
|
if (simpleExpr instanceof ts_mysql_parser_1.SimpleExprIntervalContext) {
|
178
180
|
const exprList = simpleExpr.expr_list();
|
179
|
-
return exprList.every(expr => inferNotNullExpr(expr, dbSchema, fromColumns));
|
181
|
+
return exprList.every((expr) => inferNotNullExpr(expr, dbSchema, fromColumns));
|
180
182
|
}
|
181
183
|
if (simpleExpr instanceof ts_mysql_parser_1.SimpleExprWindowingFunctionContext) {
|
182
184
|
return inferNotNullWindowFunctionCall(simpleExpr.windowFunctionCall(), dbSchema, fromColumns);
|
@@ -185,18 +187,17 @@ function inferNotNullSimpleExpr(simpleExpr, dbSchema, fromColumns) {
|
|
185
187
|
const expr = simpleExpr.expr();
|
186
188
|
return inferNotNullExpr(expr, dbSchema, fromColumns);
|
187
189
|
}
|
188
|
-
throw Error(
|
190
|
+
throw Error(`Error during column null inference. Expr: ${simpleExpr.getText()}`);
|
189
191
|
}
|
190
192
|
function inferNotNullWindowFunctionCall(windowFunctionCall, dbSchema, fromColumns) {
|
191
|
-
if (windowFunctionCall.ROW_NUMBER_SYMBOL()
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
193
|
+
if (windowFunctionCall.ROW_NUMBER_SYMBOL() ||
|
194
|
+
windowFunctionCall.RANK_SYMBOL() ||
|
195
|
+
windowFunctionCall.DENSE_RANK_SYMBOL() ||
|
196
|
+
windowFunctionCall.CUME_DIST_SYMBOL() ||
|
197
|
+
windowFunctionCall.PERCENT_RANK_SYMBOL()) {
|
196
198
|
return true;
|
197
199
|
}
|
198
|
-
if (windowFunctionCall.LEAD_SYMBOL()
|
199
|
-
|| windowFunctionCall.LAG_SYMBOL()) {
|
200
|
+
if (windowFunctionCall.LEAD_SYMBOL() || windowFunctionCall.LAG_SYMBOL()) {
|
200
201
|
return false;
|
201
202
|
}
|
202
203
|
const exprWithParentheses = windowFunctionCall.exprWithParentheses();
|
@@ -209,7 +210,9 @@ function inferNotNullWindowFunctionCall(windowFunctionCall, dbSchema, fromColumn
|
|
209
210
|
function inferNotNullRuntimeFunctionCall(simpleExprRuntimeFunction, dbSchema, fromColumns) {
|
210
211
|
var _a, _b;
|
211
212
|
const functionCall = simpleExprRuntimeFunction.runtimeFunctionCall();
|
212
|
-
if (functionCall.NOW_SYMBOL() ||
|
213
|
+
if (functionCall.NOW_SYMBOL() ||
|
214
|
+
functionCall.CURDATE_SYMBOL() ||
|
215
|
+
functionCall.CURTIME_SYMBOL()) {
|
213
216
|
return true;
|
214
217
|
}
|
215
218
|
if (functionCall.MOD_SYMBOL()) {
|
@@ -217,71 +220,79 @@ function inferNotNullRuntimeFunctionCall(simpleExprRuntimeFunction, dbSchema, fr
|
|
217
220
|
}
|
218
221
|
if (functionCall.REPLACE_SYMBOL()) {
|
219
222
|
const exprList = functionCall.expr_list();
|
220
|
-
return exprList.every(expr => inferNotNullExpr(expr, dbSchema, fromColumns));
|
223
|
+
return exprList.every((expr) => inferNotNullExpr(expr, dbSchema, fromColumns));
|
221
224
|
}
|
222
225
|
const trimFunction = functionCall.trimFunction();
|
223
226
|
if (trimFunction) {
|
224
227
|
const exprList = trimFunction.expr_list();
|
225
|
-
return exprList.every(expr => inferNotNullExpr(expr, dbSchema, fromColumns));
|
228
|
+
return exprList.every((expr) => inferNotNullExpr(expr, dbSchema, fromColumns));
|
226
229
|
}
|
227
230
|
const substringFunction = functionCall.substringFunction();
|
228
231
|
if (substringFunction) {
|
229
232
|
const exprList = substringFunction.expr_list();
|
230
|
-
return exprList.every(expr => inferNotNullExpr(expr, dbSchema, fromColumns));
|
231
|
-
}
|
232
|
-
if (functionCall.YEAR_SYMBOL() ||
|
233
|
-
|
233
|
+
return exprList.every((expr) => inferNotNullExpr(expr, dbSchema, fromColumns));
|
234
|
+
}
|
235
|
+
if (functionCall.YEAR_SYMBOL() ||
|
236
|
+
functionCall.MONTH_SYMBOL() ||
|
237
|
+
functionCall.DAY_SYMBOL() ||
|
238
|
+
functionCall.HOUR_SYMBOL() ||
|
239
|
+
functionCall.MINUTE_SYMBOL() ||
|
240
|
+
functionCall.SECOND_SYMBOL()) {
|
234
241
|
const expr = (_a = functionCall.exprWithParentheses()) === null || _a === void 0 ? void 0 : _a.expr();
|
235
242
|
return inferNotNullExpr(expr, dbSchema, fromColumns);
|
236
243
|
}
|
237
|
-
if (functionCall.ADDDATE_SYMBOL()
|
238
|
-
|
239
|
-
|
240
|
-
|
244
|
+
if (functionCall.ADDDATE_SYMBOL() ||
|
245
|
+
functionCall.SUBDATE_SYMBOL() ||
|
246
|
+
functionCall.DATE_ADD_SYMBOL() ||
|
247
|
+
functionCall.DATE_SUB_SYMBOL()) {
|
241
248
|
const exprList = functionCall.expr_list();
|
242
|
-
return exprList.every(expr => inferNotNullExpr(expr, dbSchema, fromColumns));
|
249
|
+
return exprList.every((expr) => inferNotNullExpr(expr, dbSchema, fromColumns));
|
243
250
|
}
|
244
251
|
if (functionCall.COALESCE_SYMBOL()) {
|
245
|
-
const exprList = (_b = functionCall
|
252
|
+
const exprList = (_b = functionCall
|
253
|
+
.exprListWithParentheses()) === null || _b === void 0 ? void 0 : _b.exprList().expr_list();
|
246
254
|
//COALEST: Return the first non-null value in a list
|
247
|
-
return exprList.some(expr => inferNotNullExpr(expr, dbSchema, fromColumns));
|
255
|
+
return exprList.some((expr) => inferNotNullExpr(expr, dbSchema, fromColumns));
|
248
256
|
}
|
249
257
|
if (functionCall.IF_SYMBOL()) {
|
250
258
|
const exprList = functionCall.expr_list();
|
251
|
-
return exprList.every(expr => inferNotNullExpr(expr, dbSchema, fromColumns));
|
252
|
-
;
|
259
|
+
return exprList.every((expr) => inferNotNullExpr(expr, dbSchema, fromColumns));
|
253
260
|
}
|
254
|
-
throw Error(
|
261
|
+
throw Error(`Function not supported: ${functionCall.getText()}`);
|
255
262
|
}
|
256
263
|
function inferNotNullFunctionCall(functionCall, dbSchema, fromColumns) {
|
257
264
|
var _a, _b, _c, _d;
|
258
|
-
const functionName = ((_a = functionCall.pureIdentifier()) === null || _a === void 0 ? void 0 : _a.getText().toLowerCase()) ||
|
265
|
+
const functionName = ((_a = functionCall.pureIdentifier()) === null || _a === void 0 ? void 0 : _a.getText().toLowerCase()) ||
|
266
|
+
((_b = functionCall.qualifiedIdentifier()) === null || _b === void 0 ? void 0 : _b.getText().toLowerCase());
|
259
267
|
const udfExprList = (_c = functionCall.udfExprList()) === null || _c === void 0 ? void 0 : _c.udfExpr_list();
|
260
|
-
if (functionName
|
268
|
+
if (functionName === 'ifnull') {
|
261
269
|
if (udfExprList) {
|
262
270
|
const [expr1, expr2] = udfExprList;
|
263
|
-
const notNull = inferNotNullExpr(expr1.expr(), dbSchema, fromColumns) ||
|
271
|
+
const notNull = inferNotNullExpr(expr1.expr(), dbSchema, fromColumns) ||
|
272
|
+
inferNotNullExpr(expr2.expr(), dbSchema, fromColumns);
|
264
273
|
return notNull;
|
265
274
|
}
|
266
275
|
return false;
|
267
276
|
}
|
268
|
-
if (functionName
|
277
|
+
if (functionName === 'avg') {
|
269
278
|
return false;
|
270
279
|
}
|
271
|
-
if (functionName
|
280
|
+
if (functionName === 'str_to_date') {
|
272
281
|
return false; //invalid date
|
273
282
|
}
|
274
283
|
if (udfExprList) {
|
275
|
-
return udfExprList
|
276
|
-
|
277
|
-
|
284
|
+
return udfExprList
|
285
|
+
.filter((expr, paramIndex) => {
|
286
|
+
return functionName === 'timestampdiff' ? paramIndex !== 0 : true; //filter the first parameter of timestampdiff function
|
287
|
+
})
|
288
|
+
.every((udfExpr) => {
|
278
289
|
const expr = udfExpr.expr();
|
279
290
|
return inferNotNullExpr(expr, dbSchema, fromColumns);
|
280
291
|
});
|
281
292
|
}
|
282
293
|
const exprList = (_d = functionCall.exprList()) === null || _d === void 0 ? void 0 : _d.expr_list();
|
283
294
|
if (exprList) {
|
284
|
-
return exprList.every(expr => {
|
295
|
+
return exprList.every((expr) => {
|
285
296
|
return inferNotNullExpr(expr, dbSchema, fromColumns);
|
286
297
|
});
|
287
298
|
}
|
@@ -300,7 +311,8 @@ function possibleNull(field, exprContext) {
|
|
300
311
|
const expr = res.exprList().expr(0);
|
301
312
|
return possibleNull(field, expr);
|
302
313
|
}
|
303
|
-
if (res instanceof ts_mysql_parser_1.SimpleExprSubQueryContext) {
|
314
|
+
if (res instanceof ts_mysql_parser_1.SimpleExprSubQueryContext) {
|
315
|
+
//exists, not exists
|
304
316
|
return true; //possibleNull
|
305
317
|
}
|
306
318
|
}
|
@@ -311,9 +323,9 @@ function possibleNull(field, exprContext) {
|
|
311
323
|
}
|
312
324
|
}
|
313
325
|
if (boolPri instanceof ts_mysql_parser_1.PrimaryExprCompareContext) {
|
314
|
-
|
315
|
-
|
316
|
-
//TODO - more complex expressions. ex. (value + value2) > 10;
|
326
|
+
const compare = boolPri.boolPri().getText(); //value > 10;
|
327
|
+
const compare2 = boolPri.predicate().getText(); //10 < value
|
328
|
+
//TODO - more complex expressions. ex. (value + value2) > 10;
|
317
329
|
if (areEquals(field, compare) || areEquals(field, compare2)) {
|
318
330
|
return false; //possibleNull
|
319
331
|
}
|
@@ -327,9 +339,9 @@ function possibleNull(field, exprContext) {
|
|
327
339
|
if (exprContext instanceof ts_mysql_parser_1.ExprAndContext) {
|
328
340
|
const [first, ...rest] = exprContext.expr_list();
|
329
341
|
let possibleNullVar = possibleNull(field, first);
|
330
|
-
|
342
|
+
for (const expr of rest) {
|
331
343
|
possibleNullVar = possibleNullVar && possibleNull(field, expr);
|
332
|
-
}
|
344
|
+
}
|
333
345
|
return possibleNullVar;
|
334
346
|
}
|
335
347
|
if (exprContext instanceof ts_mysql_parser_1.ExprXorContext) {
|
@@ -338,12 +350,12 @@ function possibleNull(field, exprContext) {
|
|
338
350
|
if (exprContext instanceof ts_mysql_parser_1.ExprOrContext) {
|
339
351
|
const [first, ...rest] = exprContext.expr_list();
|
340
352
|
let possibleNullVar = possibleNull(field, first);
|
341
|
-
|
353
|
+
for (const expr of rest) {
|
342
354
|
possibleNullVar = possibleNullVar || possibleNull(field, expr);
|
343
|
-
}
|
355
|
+
}
|
344
356
|
return possibleNullVar;
|
345
357
|
}
|
346
|
-
throw Error(
|
358
|
+
throw Error(`Unknow type:${exprContext.constructor.name}`);
|
347
359
|
}
|
348
360
|
exports.possibleNull = possibleNull;
|
349
361
|
function areEquals(field, expressionField) {
|
@@ -353,7 +365,9 @@ function areEquals(field, expressionField) {
|
|
353
365
|
t1.name == name
|
354
366
|
name == t1.name
|
355
367
|
*/
|
356
|
-
return field.name
|
357
|
-
(
|
368
|
+
return (field.name === compare.name &&
|
369
|
+
(field.prefix === compare.prefix ||
|
370
|
+
field.prefix === '' ||
|
371
|
+
compare.prefix === ''));
|
358
372
|
}
|
359
373
|
//# 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":";;;AAAA,8DA+BkC;AAElC,qDAA2E;AAC3E,uEAGmC;AACnC,yCAAkD;AAClD,mCAAgC;AAChC,sDAAkD;AAElD,mCAAmC;AACnC,mBAAmB;AACnB,SAAgB,oBAAoB,CAAC,GAAW,EAAE,QAAwB;IACzE,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,IAAA,8BAAa,EAAC,GAAG,CAAC,CAAC;IAClE,MAAM,IAAI,GAAG,IAAA,aAAK,EAAC,YAAY,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,IAAA,+BAAoB,EAAC,IAAI,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;IACrE,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,EAAE,CAAC;AACX,CAAC;AARD,oDAQC;AAED,SAAgB,YAAY,CAC3B,SAAoC,EACpC,QAAwB,EACxB,WAAwB;IAExB,MAAM,gBAAgB,GAAc,EAAE,CAAC;IACvC,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IAE5C,IAAI,SAAS,CAAC,cAAc,EAAE,CAAC,aAAa,EAAE,EAAE,CAAC;QAChD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,IAAA,0BAAS,EAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACxC,MAAM,OAAO,GACZ,GAAG,CAAC,OAAO;gBACX,CAAC,WAAW,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;gBACvD,KAAK,CAAC;YACP,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,8BAA8B;QAC/D,CAAC;IACF,CAAC;IAED,MAAM,eAAe,GAAG,SAAS,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC;IACrE,KAAK,MAAM,UAAU,IAAI,eAAe,EAAE,CAAC;QAC1C,gBAAgB,CAAC,IAAI,CACpB,GAAG,sBAAsB,CAAC,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC,CACzE,CAAC;IACH,CAAC;IACD,OAAO,gBAAgB,CAAC;AACzB,CAAC;AA1BD,oCA0BC;AAED,SAAS,sBAAsB,CAC9B,UAA6B,EAC7B,QAAwB,EACxB,WAAwB,EACxB,WAA2C;IAE3C,MAAM,YAAY,GAAc,EAAE,CAAC;IACnC,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;IACzC,IAAI,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,aAAa,EAAE,EAAE,CAAC;QAChC,SAAS,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,IAAA,iCAAgB,EAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YACtD,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACvB,MAAM,KAAK,GAAG,IAAA,0BAAS,EAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACxC,MAAM,OAAO,GACZ,GAAG,CAAC,OAAO;oBACX,CAAC,WAAW,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;oBACvD,KAAK,CAAC;gBACP,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,YAAY,CAAC;IACrB,CAAC;IACD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,IAAI,EAAE,CAAC;QACV,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC9D,OAAO,CAAC,OAAO,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,KAAK,CAAC,oCAAoC,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,gBAAgB,CACxB,IAAiB,EACjB,QAAwB,EACxB,WAAwB;IAExB,IAAI,IAAI,YAAY,+BAAa,EAAE,CAAC;QACnC,OAAO,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,KAAK,CAAC,oCAAoC,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,kBAAkB,CAC1B,MAAqB,EACrB,QAAwB,EACxB,WAAwB;IAExB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IACjC,OAAO,mBAAmB,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,mBAAmB,CAC3B,OAAuB,EACvB,QAAwB,EACxB,WAAwB;IAExB,IAAI,OAAO,YAAY,6CAA2B,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;QACtC,OAAO,qBAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,OAAO,YAAY,2CAAyB,EAAE,CAAC;QAClD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QACtC,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;QACzC,MAAM,WAAW,GAAG,mBAAmB,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC5E,MAAM,YAAY,GAAG,qBAAqB,CACzC,YAAY,EACZ,QAAQ,EACR,WAAW,CACX,CAAC;QACF,OAAO,WAAW,IAAI,YAAY,CAAC;IACpC,CAAC;IACD,IAAI,OAAO,YAAY,0CAAwB,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC;IACb,CAAC;IACD,MAAM,KAAK,CAAC,oCAAoC,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,qBAAqB,CAC7B,SAA2B,EAC3B,QAAwB,EACxB,WAAwB;IAExB,MAAM,OAAO,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;IACzC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,KAAK,CAAC,oCAAoC,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,mBAAmB,CAC3B,OAAuB,EACvB,QAAwB,EACxB,WAAwB;IAExB,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IACxC,IAAI,UAAU,EAAE,CAAC;QAChB,OAAO,sBAAsB,CAAC,UAAU,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,EAAE,CAC9C,mBAAmB,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAC,CACvD,CAAC;IACF,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,SAAS,sBAAsB,CAC9B,UAA6B,EAC7B,QAAwB,EACxB,WAAwB;;IAExB,MAAM,SAAS,GAA8B,CAC5C,IAAA,0CAAgB,EAAC,UAAU,EAAE,2CAAyB,CAAC,CACvD,CAAC;IACF,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IAE5C,IAAI,UAAU,YAAY,4CAA0B,EAAE,CAAC;QACtD,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,CAAC;QACtE,MAAM,SAAS,GAAG,IAAA,0BAAS,EAAC,UAAU,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,IAAA,2BAAU,EAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAClD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACb,CAAC;QACD,IAAI,WAAW,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC;YAC/D,OAAO,IAAI,CAAC;QACb,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IACD,IAAI,UAAU,YAAY,kDAAgC,EAAE,CAAC;QAC5D,OAAO,+BAA+B,CAAC,UAAU,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,UAAU,YAAY,2CAAyB,EAAE,CAAC;QACrD,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,EAAE,CAAC;QAC/C,OAAO,wBAAwB,CAAC,YAAY,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,UAAU,YAAY,0CAAwB,EAAE,CAAC;QACpD,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC;QACvD,IAAI,WAAW,EAAE,CAAC;YACjB,OAAO,KAAK,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,UAAU,YAAY,8CAA4B,EAAE,CAAC;QACxD,MAAM,UAAU,GAAG,IAAA,+CAAqB,EAAC,UAAU,CAAC,CAAC;QACrD,OAAO,UAAU,CAAC;IACnB,CAAC;IAED,IAAI,UAAU,YAAY,sCAAoB,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;QACrC,IAAI,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACb,CAAC;QACD,IAAI,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,MAAA,OAAO,CAAC,QAAQ,EAAE,0CAAE,SAAS,EAAE,CAAC;YACjD,IAAI,QAAQ,EAAE,CAAC;gBACd,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAC9B,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAC7C,CAAC;YACH,CAAC;YACD,0EAA0E;YAC1E,OAAO,KAAK,CAAC,CAAC,0BAA0B;QACzC,CAAC;QACD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;QACtC,IAAI,SAAS,EAAE,CAAC;YACf,OAAO,KAAK,CAAC;QACd,CAAC;IACF,CAAC;IAED,IAAI,UAAU,YAAY,uCAAqB,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,CAAC;QACnD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAC9B,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAC7C,CAAC;IACH,CAAC;IAED,IAAI,UAAU,YAAY,2CAAyB,EAAE,CAAC;QACrD,IAAI,UAAU,CAAC,aAAa,EAAE,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QACb,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,IAAI,UAAU,YAAY,uCAAqB,EAAE,CAAC;QACjD,MAAM,YAAY,GAAG,UAAU,CAAC,mBAAmB,EAAE,CAAC;QACtD,MAAM,QAAQ,GAAG,UAAU,CAAC,cAAc,EAAE,CAAC;QAC7C,IAAI,QAAQ,EAAE,CAAC;YACd,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CACnD,gBAAgB,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,CACxD,CAAC;YACF,OAAO,CACN,WAAW,IAAI,gBAAgB,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,CACvE,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC,CAAC,sDAAsD;IACrE,CAAC;IACD,IAAI,UAAU,YAAY,2CAAyB,EAAE,CAAC;QACrD,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;QACxC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAC9B,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAC7C,CAAC;IACH,CAAC;IACD,IAAI,UAAU,YAAY,oDAAkC,EAAE,CAAC;QAC9D,OAAO,8BAA8B,CACpC,UAAU,CAAC,kBAAkB,EAAE,EAC/B,QAAQ,EACR,WAAW,CACX,CAAC;IACH,CAAC;IACD,IAAI,UAAU,YAAY,uCAAqB,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;QAC/B,OAAO,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,KAAK,CACV,6CAA6C,UAAU,CAAC,OAAO,EAAE,EAAE,CACnE,CAAC;AACH,CAAC;AAED,SAAS,8BAA8B,CACtC,kBAA6C,EAC7C,QAAwB,EACxB,WAAwB;IAExB,IACC,kBAAkB,CAAC,iBAAiB,EAAE;QACtC,kBAAkB,CAAC,WAAW,EAAE;QAChC,kBAAkB,CAAC,iBAAiB,EAAE;QACtC,kBAAkB,CAAC,gBAAgB,EAAE;QACrC,kBAAkB,CAAC,mBAAmB,EAAE,EACvC,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC;IACD,IAAI,kBAAkB,CAAC,WAAW,EAAE,IAAI,kBAAkB,CAAC,UAAU,EAAE,EAAE,CAAC;QACzE,OAAO,KAAK,CAAC;IACd,CAAC;IACD,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,mBAAmB,EAAE,CAAC;IACrE,IAAI,mBAAmB,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,EAAE,CAAC;QACxC,OAAO,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,KAAK,CACV,iEAAiE,CACjE,CAAC;AACH,CAAC;AAED,SAAS,+BAA+B,CACvC,yBAA2D,EAC3D,QAAwB,EACxB,WAAwB;;IAExB,MAAM,YAAY,GAAG,yBAAyB,CAAC,mBAAmB,EAAE,CAAC;IACrE,IACC,YAAY,CAAC,UAAU,EAAE;QACzB,YAAY,CAAC,cAAc,EAAE;QAC7B,YAAY,CAAC,cAAc,EAAE,EAC5B,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC;IACD,IAAI,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC,CAAC,wBAAwB;IACvC,CAAC;IACD,IAAI,YAAY,CAAC,cAAc,EAAE,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC;QAC1C,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAC9B,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAC7C,CAAC;IACH,CAAC;IACD,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC;IACjD,IAAI,YAAY,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC;QAC1C,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAC9B,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAC7C,CAAC;IACH,CAAC;IACD,MAAM,iBAAiB,GAAG,YAAY,CAAC,iBAAiB,EAAE,CAAC;IAC3D,IAAI,iBAAiB,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,SAAS,EAAE,CAAC;QAC/C,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAC9B,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAC7C,CAAC;IACH,CAAC;IACD,IACC,YAAY,CAAC,WAAW,EAAE;QAC1B,YAAY,CAAC,YAAY,EAAE;QAC3B,YAAY,CAAC,UAAU,EAAE;QACzB,YAAY,CAAC,WAAW,EAAE;QAC1B,YAAY,CAAC,aAAa,EAAE;QAC5B,YAAY,CAAC,aAAa,EAAE,EAC3B,CAAC;QACF,MAAM,IAAI,GAAG,MAAA,YAAY,CAAC,mBAAmB,EAAE,0CAAE,IAAI,EAAG,CAAC;QACzD,OAAO,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACtD,CAAC;IACD,IACC,YAAY,CAAC,cAAc,EAAE;QAC7B,YAAY,CAAC,cAAc,EAAE;QAC7B,YAAY,CAAC,eAAe,EAAE;QAC9B,YAAY,CAAC,eAAe,EAAE,EAC7B,CAAC;QACF,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC;QAC1C,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAC9B,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAC7C,CAAC;IACH,CAAC;IACD,IAAI,YAAY,CAAC,eAAe,EAAE,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,MAAA,YAAY;aAC3B,uBAAuB,EAAE,0CACxB,QAAQ,GACT,SAAS,EAAG,CAAC;QACf,oDAAoD;QACpD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAC7B,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAC7C,CAAC;IACH,CAAC;IACD,IAAI,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC;QAC1C,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAC9B,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAC7C,CAAC;IACH,CAAC;IACD,MAAM,KAAK,CAAC,2BAA2B,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,wBAAwB,CAChC,YAAiC,EACjC,QAAwB,EACxB,WAAwB;;IAExB,MAAM,YAAY,GACjB,CAAA,MAAA,YAAY,CAAC,cAAc,EAAE,0CAAE,OAAO,GAAG,WAAW,EAAE;SACtD,MAAA,YAAY,CAAC,mBAAmB,EAAE,0CAAE,OAAO,GAAG,WAAW,EAAE,CAAA,CAAC;IAC7D,MAAM,WAAW,GAAG,MAAA,YAAY,CAAC,WAAW,EAAE,0CAAE,YAAY,EAAE,CAAC;IAC/D,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC/B,IAAI,WAAW,EAAE,CAAC;YACjB,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,WAAW,CAAC;YACnC,MAAM,OAAO,GACZ,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC;gBACrD,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;YACvD,OAAO,OAAO,CAAC;QAChB,CAAC;QAED,OAAO,KAAK,CAAC;IACd,CAAC;IACD,IAAI,YAAY,KAAK,KAAK,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACd,CAAC;IACD,IAAI,YAAY,KAAK,aAAa,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC,CAAC,cAAc;IAC7B,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QACjB,OAAO,WAAW;aAChB,MAAM,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE;YAC5B,OAAO,YAAY,KAAK,eAAe,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,sDAAsD;QAC1H,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE;YAClB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YAC5B,OAAO,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;IACD,MAAM,QAAQ,GAAG,MAAA,YAAY,CAAC,QAAQ,EAAE,0CAAE,SAAS,EAAE,CAAC;IACtD,IAAI,QAAQ,EAAE,CAAC;QACd,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9B,OAAO,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,iBAAiB,CACzB,KAAgB,EAChB,WAA+B;IAE/B,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IAChC,OAAO,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,SAAgB,YAAY,CAC3B,KAAgB,EAChB,WAAwB;IAExB,IAAI,WAAW,YAAY,+BAAa,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;QACtC,IAAI,OAAO,YAAY,6CAA2B,EAAE,CAAC;YACpD,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;YACxD,IAAI,GAAG,YAAY,uCAAqB,EAAE,CAAC;gBAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpC,OAAO,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAClC,CAAC;YACD,IAAI,GAAG,YAAY,2CAAyB,EAAE,CAAC;gBAC9C,oBAAoB;gBACpB,OAAO,IAAI,CAAC,CAAC,cAAc;YAC5B,CAAC;QACF,CAAC;QACD,IAAI,OAAO,YAAY,0CAAwB,EAAE,CAAC;YACjD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC9D,OAAO,KAAK,CAAC,CAAC,cAAc;YAC7B,CAAC;QACF,CAAC;QACD,IAAI,OAAO,YAAY,2CAAyB,EAAE,CAAC;YAClD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,aAAa;YAC1D,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,YAAY;YAC5D,6DAA6D;YAC7D,IAAI,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;gBAC7D,OAAO,KAAK,CAAC,CAAC,cAAc;YAC7B,CAAC;QACF,CAAC;QACD,OAAO,IAAI,CAAC,CAAC,cAAc;IAC5B,CAAC;IACD,IAAI,WAAW,YAAY,gCAAc,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QAChC,OAAO,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,WAAW,YAAY,gCAAc,EAAE,CAAC;QAC3C,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC;QACjD,IAAI,eAAe,GAAG,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACjD,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;YACzB,eAAe,GAAG,eAAe,IAAI,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,eAAe,CAAC;IACxB,CAAC;IACD,IAAI,WAAW,YAAY,gCAAc,EAAE,CAAC;QAC3C,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC;IAC7C,CAAC;IACD,IAAI,WAAW,YAAY,+BAAa,EAAE,CAAC;QAC1C,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC;QACjD,IAAI,eAAe,GAAG,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACjD,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;YACzB,eAAe,GAAG,eAAe,IAAI,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,eAAe,CAAC;IACxB,CAAC;IAED,MAAM,KAAK,CAAC,eAAe,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;AAC5D,CAAC;AA1DD,oCA0DC;AAED,SAAS,SAAS,CAAC,KAAgB,EAAE,eAAuB;IAC3D,MAAM,OAAO,GAAG,IAAA,0BAAS,EAAC,eAAe,CAAC,CAAC,CAAC,SAAS;IACrD;;;;MAIE;IACF,OAAO,CACN,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI;QAC3B,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;YAC/B,KAAK,CAAC,MAAM,KAAK,EAAE;YACnB,OAAO,CAAC,MAAM,KAAK,EAAE,CAAC,CACvB,CAAC;AACH,CAAC"}
|
@@ -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,CACzC,YAAY,EAAE,sBAAsB,GAAG,4BAA4B,GACjE,OAAO,EAAE,CAOX;AAED,wBAAgB,oCAAoC,CACnD,eAAe,EAAE,sBAAsB,aAIvC;AAED,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,EAAE,CAGzE;AAED,wBAAgB,qBAAqB,CACpC,KAAK,EAAE,4BAA4B,GACjC,OAAO,CAET;AAoED,wBAAgB,gBAAgB,CAC/B,GAAG,EAAE,WAAW,GAAG,SAAS,EAC5B,aAAa,EAAE,GAAG,GAChB,WAAW,GAAG,SAAS,CAQzB"}
|
@@ -5,18 +5,18 @@ const ts_mysql_parser_1 = require("@wsporto/ts-mysql-parser");
|
|
5
5
|
const parse_1 = require("./parse");
|
6
6
|
function inferParamNullabilityQuery(queryContext) {
|
7
7
|
const queriesSpecification = (0, parse_1.getAllQuerySpecificationsFromSelectStatement)(queryContext);
|
8
|
-
const parameters = queriesSpecification.flatMap(querySpec => getAllParameters(querySpec));
|
9
|
-
return parameters.map(param => inferParameterNotNull(param));
|
8
|
+
const parameters = queriesSpecification.flatMap((querySpec) => getAllParameters(querySpec));
|
9
|
+
return parameters.map((param) => inferParameterNotNull(param));
|
10
10
|
}
|
11
11
|
exports.inferParamNullabilityQuery = inferParamNullabilityQuery;
|
12
12
|
function inferParamNullabilityQueryExpression(queryExpression) {
|
13
13
|
const parameters = getAllParameters(queryExpression);
|
14
|
-
return parameters.map(param => inferParameterNotNull(param));
|
14
|
+
return parameters.map((param) => inferParameterNotNull(param));
|
15
15
|
}
|
16
16
|
exports.inferParamNullabilityQueryExpression = inferParamNullabilityQueryExpression;
|
17
17
|
function inferParamNullability(exprContext) {
|
18
18
|
const parameters = getAllParameters(exprContext);
|
19
|
-
return parameters.map(param => inferParameterNotNull(param));
|
19
|
+
return parameters.map((param) => inferParameterNotNull(param));
|
20
20
|
}
|
21
21
|
exports.inferParamNullability = inferParamNullability;
|
22
22
|
function inferParameterNotNull(param) {
|
@@ -25,27 +25,28 @@ function inferParameterNotNull(param) {
|
|
25
25
|
exports.inferParameterNotNull = inferParameterNotNull;
|
26
26
|
function inferParameterNotNullRule(rule) {
|
27
27
|
var _a, _b;
|
28
|
-
const isNullContext = getParentContext(rule, ts_mysql_parser_1.PrimaryExprIsNullContext);
|
28
|
+
const isNullContext = (getParentContext(rule, ts_mysql_parser_1.PrimaryExprIsNullContext));
|
29
29
|
if (isNullContext) {
|
30
30
|
if (isNullContext.notRule()) {
|
31
31
|
return true;
|
32
32
|
}
|
33
33
|
return false;
|
34
34
|
}
|
35
|
-
const nullIfFunction = getParentContext(rule, ts_mysql_parser_1.FunctionCallContext);
|
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() === '?' &&
|
43
|
+
secondArg.getText().toLowerCase() === 'null') {
|
43
44
|
return false;
|
44
45
|
}
|
45
46
|
}
|
46
47
|
return true;
|
47
48
|
}
|
48
|
-
if (functionIdentifier
|
49
|
+
if (functionIdentifier === 'ifnull') {
|
49
50
|
return false;
|
50
51
|
}
|
51
52
|
const parent = rule.parentCtx;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"infer-param-nullability.js","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/infer-param-nullability.ts"],"names":[],"mappings":";;;AAAA,
|
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;AAmBjB,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAO/C;AAGD,wBAAgB,aAAa,CAC5B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,YAAY,EAAE,GACtB,mBAAmB,CAqBrB;AAED,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,EAAE,CAIpE;AAED,wBAAgB,wBAAwB,CACvC,eAAe,EAAE,sBAAsB,YAWvC;AAED,wBAAgB,sBAAsB,CACrC,eAAe,EAAE,sBAAsB,GACrC,aAAa,EAAE,CAYjB;AAED,wBAAgB,mBAAmB,CAClC,eAAe,EAAE,sBAAsB,EACvC,WAAW,EAAE,SAAS,EAAE,WAiDxB;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,SAAS,WAgCxD;AAED,wBAAgB,eAAe,CAAC,eAAe,EAAE,sBAAsB,2DAQtE;AAED,wBAAgB,gBAAgB,CAC/B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,YAAY,EAAE,GACtB,eAAe,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,CA2E1E;AA8CD,wBAAgB,4CAA4C,CAC3D,eAAe,EACZ,sBAAsB,GACtB,0BAA0B,GAC1B,4BAA4B,GAC5B,eAAe,+BAMlB"}
|