typesql-cli 0.15.0-experimental.3 → 0.15.0-experimental.4
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/package.json +1 -1
- package/postgres-query-analyzer/describe.d.ts.map +1 -1
- package/postgres-query-analyzer/describe.js.map +1 -1
- package/postgres-query-analyzer/parser.d.ts +1 -9
- package/postgres-query-analyzer/parser.d.ts.map +1 -1
- package/postgres-query-analyzer/parser.js.map +1 -1
- package/postgres-query-analyzer/traverse.d.ts +9 -1
- package/postgres-query-analyzer/traverse.d.ts.map +1 -1
- package/postgres-query-analyzer/traverse.js +275 -138
- package/postgres-query-analyzer/traverse.js.map +1 -1
- package/sqlite-query-analyzer/replace-list-params.js +8 -0
- package/sqlite-query-analyzer/replace-list-params.js.map +1 -1
package/package.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"describe.d.ts","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/describe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,SAAS,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGjE,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAI/B,OAAO,EAAc,WAAW,EAAW,MAAM,YAAY,CAAC;
|
1
|
+
{"version":3,"file":"describe.d.ts","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/describe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,SAAS,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGjE,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAI/B,OAAO,EAAc,WAAW,EAAW,MAAM,YAAY,CAAC;AAyB9D,MAAM,MAAM,kBAAkB,GAAG;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB,CAAC;AAoBF,wBAAgB,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,SAAS,EAAE,YAAY,CAAC,CAazH"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"describe.js","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/describe.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"describe.js","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/describe.ts"],"names":[],"mappings":"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"}
|
@@ -1,12 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import { PostgresTraverseResult } from './traverse';
|
2
2
|
import { PostgresColumnSchema } from '../drivers/types';
|
3
|
-
export type PostgresTraverseResult = {
|
4
|
-
queryType: QueryType;
|
5
|
-
columnsNullability: boolean[];
|
6
|
-
parametersNullability: boolean[];
|
7
|
-
whereParamtersNullability?: boolean[];
|
8
|
-
parameterList: boolean[];
|
9
|
-
limit?: number;
|
10
|
-
};
|
11
3
|
export declare function parseSql(sql: string, dbSchema: PostgresColumnSchema[]): PostgresTraverseResult;
|
12
4
|
//# sourceMappingURL=parser.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/parser.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAe,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAGxD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,GAAG,sBAAsB,CAM9F"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/parser.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/parser.ts"],"names":[],"mappings":";;AAKA,4BAMC;AAXD,+DAAyE;AACzE,yCAAiE;AAIjE,SAAgB,QAAQ,CAAC,GAAW,EAAE,QAAgC;IACrE,MAAM,MAAM,GAAG,IAAA,mBAAS,EAAC,GAAG,CAAC,CAAC;IAE9B,MAAM,cAAc,GAAG,IAAA,sBAAW,EAAC,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;IAE5D,OAAO,cAAc,CAAC;AACvB,CAAC"}
|
@@ -1,5 +1,13 @@
|
|
1
1
|
import { StmtContext } from '@wsporto/typesql-parser/postgres/PostgreSQLParser';
|
2
|
-
import { PostgresTraverseResult } from './parser';
|
3
2
|
import { PostgresColumnSchema } from '../drivers/types';
|
3
|
+
import { QueryType } from '../types';
|
4
|
+
export type PostgresTraverseResult = {
|
5
|
+
queryType: QueryType;
|
6
|
+
columnsNullability: boolean[];
|
7
|
+
parametersNullability: boolean[];
|
8
|
+
whereParamtersNullability?: boolean[];
|
9
|
+
parameterList: boolean[];
|
10
|
+
limit?: number;
|
11
|
+
};
|
4
12
|
export declare function traverseSmt(stmt: StmtContext, dbSchema: PostgresColumnSchema[]): PostgresTraverseResult;
|
5
13
|
//# sourceMappingURL=traverse.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"traverse.d.ts","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/traverse.ts"],"names":[],"mappings":"AAAA,OAAO,
|
1
|
+
{"version":3,"file":"traverse.d.ts","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/traverse.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4jC,WAAW,EAA4L,MAAM,mDAAmD,CAAC;AAEp0C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAGxD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAcrC,MAAM,MAAM,sBAAsB,GAAG;IACpC,SAAS,EAAE,SAAS,CAAC;IACrB,kBAAkB,EAAE,OAAO,EAAE,CAAC;IAC9B,qBAAqB,EAAE,OAAO,EAAE,CAAC;IACjC,yBAAyB,CAAC,EAAE,OAAO,EAAE,CAAC;IACtC,aAAa,EAAE,OAAO,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,CAAA;AAOD,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,oBAAoB,EAAE,GAAG,sBAAsB,CAuBvG"}
|
@@ -11,7 +11,7 @@ function traverseSmt(stmt, dbSchema) {
|
|
11
11
|
};
|
12
12
|
const selectstmt = stmt.selectstmt();
|
13
13
|
if (selectstmt) {
|
14
|
-
const result = traverseSelectstmt(selectstmt, dbSchema, traverseResult);
|
14
|
+
const result = traverseSelectstmt(selectstmt, dbSchema, [], traverseResult);
|
15
15
|
return result;
|
16
16
|
}
|
17
17
|
const insertstmt = stmt.insertstmt();
|
@@ -41,58 +41,62 @@ function collectContextsOfType(ctx, targetType) {
|
|
41
41
|
});
|
42
42
|
return results;
|
43
43
|
}
|
44
|
-
function traverseSelectstmt(selectstmt, dbSchema, traverseResult) {
|
44
|
+
function traverseSelectstmt(selectstmt, dbSchema, fromColumns, traverseResult) {
|
45
45
|
const result = collectContextsOfType(selectstmt, PostgreSQLParser_1.C_expr_exprContext).filter(c_expr => c_expr.PARAM());
|
46
46
|
const paramIsListResult = result.map(param => paramIsList(param));
|
47
|
-
const columns = traverse_selectstmt(selectstmt, dbSchema, traverseResult);
|
47
|
+
const columns = traverse_selectstmt(selectstmt, dbSchema, fromColumns, traverseResult);
|
48
48
|
const columnsNullability = columns.map(col => !col.is_nullable);
|
49
49
|
const limit = checkLimit(selectstmt);
|
50
50
|
return {
|
51
51
|
queryType: 'Select',
|
52
52
|
columnsNullability,
|
53
|
-
parametersNullability:
|
53
|
+
parametersNullability: traverseResult.parametersNullability,
|
54
54
|
parameterList: paramIsListResult,
|
55
55
|
limit
|
56
56
|
};
|
57
57
|
}
|
58
|
-
function traverse_selectstmt(selectstmt, dbSchema, traverseResult) {
|
58
|
+
function traverse_selectstmt(selectstmt, dbSchema, fromColumns, traverseResult) {
|
59
59
|
const select_no_parens = selectstmt.select_no_parens();
|
60
60
|
if (select_no_parens) {
|
61
|
-
return traverse_select_no_parens(select_no_parens, dbSchema, traverseResult);
|
61
|
+
return traverse_select_no_parens(select_no_parens, dbSchema, fromColumns, traverseResult);
|
62
62
|
}
|
63
63
|
return [];
|
64
64
|
}
|
65
|
-
function traverse_select_no_parens(select_no_parens, dbSchema, traverseResult) {
|
65
|
+
function traverse_select_no_parens(select_no_parens, dbSchema, fromColumns, traverseResult) {
|
66
66
|
let withColumns = [];
|
67
67
|
const with_clause = select_no_parens.with_clause();
|
68
68
|
if (with_clause) {
|
69
|
-
|
69
|
+
with_clause.cte_list().common_table_expr_list()
|
70
|
+
.forEach(common_table_expr => {
|
71
|
+
const withResult = traverse_common_table_expr(common_table_expr, dbSchema, withColumns.concat(fromColumns), traverseResult);
|
72
|
+
withColumns.push(...withResult);
|
73
|
+
});
|
70
74
|
}
|
71
75
|
const select_clause = select_no_parens.select_clause();
|
72
76
|
if (select_clause) {
|
73
|
-
return traverse_select_clause(select_clause, withColumns.concat(
|
77
|
+
return traverse_select_clause(select_clause, dbSchema, withColumns.concat(fromColumns), traverseResult);
|
74
78
|
}
|
75
79
|
return [];
|
76
80
|
}
|
77
|
-
function traverse_common_table_expr(common_table_expr, dbSchema, traverseResult) {
|
81
|
+
function traverse_common_table_expr(common_table_expr, dbSchema, fromColumns, traverseResult) {
|
78
82
|
const tableName = common_table_expr.name().getText();
|
79
83
|
const select_stmt = common_table_expr.preparablestmt().selectstmt();
|
80
84
|
if (select_stmt) {
|
81
|
-
const columns = traverse_selectstmt(select_stmt, dbSchema, traverseResult);
|
85
|
+
const columns = traverse_selectstmt(select_stmt, dbSchema, fromColumns, traverseResult);
|
82
86
|
const columnsWithTalbeName = columns.map(col => (Object.assign(Object.assign({}, col), { table_name: tableName })));
|
83
87
|
return columnsWithTalbeName;
|
84
88
|
}
|
85
89
|
return [];
|
86
90
|
}
|
87
|
-
function traverse_select_clause(select_clause, dbSchema, traverseResult) {
|
91
|
+
function traverse_select_clause(select_clause, dbSchema, fromColumns, traverseResult) {
|
88
92
|
const simple_select_intersect_list = select_clause.simple_select_intersect_list();
|
89
93
|
let selectColumns = [];
|
90
94
|
if (simple_select_intersect_list) {
|
91
|
-
selectColumns = traverse_simple_select_intersect(simple_select_intersect_list[0], dbSchema, traverseResult);
|
95
|
+
selectColumns = traverse_simple_select_intersect(simple_select_intersect_list[0], dbSchema, fromColumns, traverseResult);
|
92
96
|
}
|
93
97
|
//union
|
94
98
|
for (let index = 1; index < simple_select_intersect_list.length; index++) {
|
95
|
-
const unionNotNull = traverse_simple_select_intersect(simple_select_intersect_list[index], dbSchema, traverseResult);
|
99
|
+
const unionNotNull = traverse_simple_select_intersect(simple_select_intersect_list[index], dbSchema, fromColumns, traverseResult);
|
96
100
|
selectColumns = selectColumns.map((value, columnIndex) => {
|
97
101
|
const col = Object.assign(Object.assign({}, value), { is_nullable: value.is_nullable || unionNotNull[columnIndex].is_nullable });
|
98
102
|
return col;
|
@@ -100,238 +104,316 @@ function traverse_select_clause(select_clause, dbSchema, traverseResult) {
|
|
100
104
|
}
|
101
105
|
return selectColumns;
|
102
106
|
}
|
103
|
-
function traverse_simple_select_intersect(simple_select_intersect, dbSchema, traverseResult) {
|
107
|
+
function traverse_simple_select_intersect(simple_select_intersect, dbSchema, fromColumns, traverseResult) {
|
104
108
|
const simple_select_pramary = simple_select_intersect.simple_select_pramary_list()[0];
|
105
109
|
if (simple_select_pramary) {
|
106
|
-
return traverse_simple_select_pramary(simple_select_pramary, dbSchema, traverseResult);
|
110
|
+
return traverse_simple_select_pramary(simple_select_pramary, dbSchema, fromColumns, traverseResult);
|
107
111
|
}
|
108
112
|
return [];
|
109
113
|
}
|
110
|
-
function traverse_simple_select_pramary(simple_select_pramary, dbSchema, traverseResult) {
|
114
|
+
function traverse_simple_select_pramary(simple_select_pramary, dbSchema, parentFromColumns, traverseResult) {
|
111
115
|
const fromColumns = [];
|
112
116
|
const from_clause = simple_select_pramary.from_clause();
|
113
117
|
if (from_clause) {
|
114
118
|
const where_clause = simple_select_pramary.where_clause();
|
115
|
-
const fields = traverse_from_clause(from_clause, dbSchema, traverseResult);
|
119
|
+
const fields = traverse_from_clause(from_clause, dbSchema, parentFromColumns, traverseResult);
|
116
120
|
const fieldsNotNull = where_clause != null ? fields.map(field => checkIsNullable(where_clause, field)) : fields;
|
117
121
|
fromColumns.push(...fieldsNotNull);
|
118
122
|
}
|
119
|
-
const
|
123
|
+
const values_clause = simple_select_pramary.values_clause();
|
124
|
+
if (values_clause) {
|
125
|
+
const valuesColumns = traverse_values_clause(values_clause, dbSchema, parentFromColumns, traverseResult);
|
126
|
+
return valuesColumns;
|
127
|
+
}
|
128
|
+
const filteredColumns = filterColumns_simple_select_pramary(simple_select_pramary, dbSchema, parentFromColumns.concat(fromColumns), traverseResult);
|
120
129
|
return filteredColumns;
|
121
130
|
}
|
122
|
-
function
|
131
|
+
function traverse_values_clause(values_clause, dbSchema, fromColumns, traverseResult) {
|
132
|
+
const expr_list_list = values_clause.expr_list_list();
|
133
|
+
if (expr_list_list) {
|
134
|
+
return expr_list_list.flatMap(expr_list => traverse_expr_list(expr_list, dbSchema, fromColumns, traverseResult));
|
135
|
+
}
|
136
|
+
return [];
|
137
|
+
}
|
138
|
+
function traverse_expr_list(expr_list, dbSchema, fromColumns, traverseResult) {
|
139
|
+
const columns = expr_list.a_expr_list().map(a_expr => {
|
140
|
+
const notNull = traverse_a_expr(a_expr, dbSchema, fromColumns, traverseResult);
|
141
|
+
const result = {
|
142
|
+
column_name: a_expr.getText(),
|
143
|
+
is_nullable: !notNull,
|
144
|
+
table_name: '',
|
145
|
+
table_schema: ''
|
146
|
+
};
|
147
|
+
return result;
|
148
|
+
});
|
149
|
+
return columns;
|
150
|
+
}
|
151
|
+
function filterColumns_simple_select_pramary(simple_select_pramary, dbSchema, fromColumns, traverseResult) {
|
123
152
|
const target_list_ = simple_select_pramary.target_list_();
|
124
153
|
if (target_list_) {
|
125
154
|
const target_list = target_list_.target_list();
|
126
155
|
if (target_list) {
|
127
|
-
return filterColumns_target_list(target_list, fromColumns, traverseResult);
|
156
|
+
return filterColumns_target_list(target_list, dbSchema, fromColumns, traverseResult);
|
128
157
|
}
|
129
158
|
}
|
130
159
|
return [];
|
131
160
|
}
|
132
|
-
function filterColumns_target_list(target_list, fromColumns, traverseResult) {
|
161
|
+
function filterColumns_target_list(target_list, dbSchema, fromColumns, traverseResult) {
|
133
162
|
const columns = target_list.target_el_list().flatMap(target_el => {
|
134
163
|
const fieldName = (0, select_columns_1.splitName)(target_el.getText());
|
135
164
|
if (fieldName.name == '*') {
|
136
165
|
const columns = filterColumns(fromColumns, fieldName);
|
137
166
|
return columns;
|
138
167
|
}
|
139
|
-
const column = isNotNull_target_el(target_el, fromColumns, traverseResult);
|
168
|
+
const column = isNotNull_target_el(target_el, dbSchema, fromColumns, traverseResult);
|
140
169
|
return [column];
|
141
170
|
});
|
142
171
|
return columns;
|
143
172
|
}
|
144
|
-
function isNotNull_target_el(target_el, fromColumns, traverseResult) {
|
173
|
+
function isNotNull_target_el(target_el, dbSchema, fromColumns, traverseResult) {
|
145
174
|
if (target_el instanceof PostgreSQLParser_1.Target_labelContext) {
|
146
175
|
const a_expr = target_el.a_expr();
|
147
|
-
const
|
176
|
+
const exprResult = traverse_a_expr(a_expr, dbSchema, fromColumns, traverseResult);
|
148
177
|
const colLabel = target_el.colLabel();
|
149
178
|
const alias = colLabel != null ? colLabel.getText() : '';
|
150
179
|
const fieldName = (0, select_columns_1.splitName)(a_expr.getText());
|
151
180
|
return {
|
152
181
|
column_name: alias || fieldName.name,
|
153
|
-
is_nullable:
|
182
|
+
is_nullable: exprResult.is_nullable,
|
154
183
|
table_name: fieldName.prefix,
|
155
184
|
table_schema: ''
|
156
185
|
};
|
157
186
|
}
|
158
187
|
throw Error('Column not found');
|
159
188
|
}
|
160
|
-
function traverse_a_expr(a_expr, fromColumns, traverseResult) {
|
189
|
+
function traverse_a_expr(a_expr, dbSchema, fromColumns, traverseResult) {
|
161
190
|
const a_expr_qual = a_expr.a_expr_qual();
|
162
191
|
if (a_expr_qual) {
|
163
|
-
|
192
|
+
const notNull = traverse_a_expr_qual(a_expr_qual, dbSchema, fromColumns, traverseResult);
|
193
|
+
return notNull;
|
164
194
|
}
|
165
|
-
return
|
195
|
+
return {
|
196
|
+
column_name: '',
|
197
|
+
is_nullable: true
|
198
|
+
};
|
166
199
|
}
|
167
|
-
function traverse_a_expr_qual(a_expr_qual, fromColumns, traverseResult) {
|
200
|
+
function traverse_a_expr_qual(a_expr_qual, dbSchema, fromColumns, traverseResult) {
|
168
201
|
const a_expr_lessless = a_expr_qual.a_expr_lessless();
|
169
202
|
if (a_expr_lessless) {
|
170
|
-
return traverse_a_expr_lessless(a_expr_lessless, fromColumns, traverseResult);
|
203
|
+
return traverse_a_expr_lessless(a_expr_lessless, dbSchema, fromColumns, traverseResult);
|
171
204
|
}
|
172
|
-
|
205
|
+
throw Error('traverse_a_expr_qual - Not expected:' + a_expr_qual.getText());
|
173
206
|
}
|
174
|
-
function traverse_a_expr_lessless(a_expr_lessless, fromColumns, traverseResult) {
|
207
|
+
function traverse_a_expr_lessless(a_expr_lessless, dbSchema, fromColumns, traverseResult) {
|
175
208
|
const a_expr_or = a_expr_lessless.a_expr_or_list()[0];
|
176
209
|
if (a_expr_or) {
|
177
|
-
return traverse_expr_or(a_expr_or, fromColumns, traverseResult);
|
210
|
+
return traverse_expr_or(a_expr_or, dbSchema, fromColumns, traverseResult);
|
178
211
|
}
|
179
|
-
|
212
|
+
throw Error('traverse_a_expr_lessless - Not expected:' + a_expr_lessless.getText());
|
180
213
|
}
|
181
|
-
function traverse_expr_or(a_expr_or, fromColumns, traverseResult) {
|
214
|
+
function traverse_expr_or(a_expr_or, dbSchema, fromColumns, traverseResult) {
|
182
215
|
const a_expr_and = a_expr_or.a_expr_and_list()[0];
|
183
216
|
if (a_expr_and) {
|
184
|
-
return traverse_expr_and(a_expr_and, fromColumns, traverseResult);
|
217
|
+
return traverse_expr_and(a_expr_and, dbSchema, fromColumns, traverseResult);
|
185
218
|
}
|
186
|
-
|
219
|
+
throw Error('traverse_expr_or - Not expected:' + a_expr_or.getText());
|
187
220
|
}
|
188
|
-
function traverse_expr_and(a_expr_and, fromColumns, traverseResult) {
|
221
|
+
function traverse_expr_and(a_expr_and, dbSchema, fromColumns, traverseResult) {
|
189
222
|
const a_expr_between = a_expr_and.a_expr_between_list()[0];
|
190
223
|
if (a_expr_between) {
|
191
|
-
return traverse_expr_between(a_expr_between, fromColumns, traverseResult);
|
224
|
+
return traverse_expr_between(a_expr_between, dbSchema, fromColumns, traverseResult);
|
192
225
|
}
|
193
|
-
|
226
|
+
throw Error('traverse_expr_and - Not expected:' + a_expr_and.getText());
|
194
227
|
}
|
195
|
-
function traverse_expr_between(a_expr_between, fromColumns, traverseResult) {
|
228
|
+
function traverse_expr_between(a_expr_between, dbSchema, fromColumns, traverseResult) {
|
196
229
|
const a_expr_in = a_expr_between.a_expr_in_list()[0];
|
197
230
|
if (a_expr_in) {
|
198
|
-
return traverse_expr_in(a_expr_in, fromColumns, traverseResult);
|
231
|
+
return traverse_expr_in(a_expr_in, dbSchema, fromColumns, traverseResult);
|
199
232
|
}
|
200
|
-
|
233
|
+
throw Error('traverse_expr_between - Not expected:' + a_expr_between.getText());
|
201
234
|
}
|
202
|
-
function traverse_expr_in(a_expr_in, fromColumns, traverseResult) {
|
235
|
+
function traverse_expr_in(a_expr_in, dbSchema, fromColumns, traverseResult) {
|
203
236
|
const a_expr_unary = a_expr_in.a_expr_unary_not();
|
204
237
|
if (a_expr_unary) {
|
205
|
-
return traverse_expr_unary(a_expr_unary, fromColumns, traverseResult);
|
238
|
+
return traverse_expr_unary(a_expr_unary, dbSchema, fromColumns, traverseResult);
|
206
239
|
}
|
207
|
-
|
240
|
+
throw Error('traverse_expr_in - Not expected:' + a_expr_in.getText());
|
208
241
|
}
|
209
|
-
function traverse_expr_unary(a_expr_unary, fromColumns, traverseResult) {
|
242
|
+
function traverse_expr_unary(a_expr_unary, dbSchema, fromColumns, traverseResult) {
|
210
243
|
const a_expr_isnull = a_expr_unary.a_expr_isnull();
|
211
244
|
if (a_expr_isnull) {
|
212
|
-
return traverse_expr_isnull(a_expr_isnull, fromColumns, traverseResult);
|
245
|
+
return traverse_expr_isnull(a_expr_isnull, dbSchema, fromColumns, traverseResult);
|
213
246
|
}
|
214
|
-
|
247
|
+
throw Error('traverse_expr_unary - Not expected:' + a_expr_unary.getText());
|
215
248
|
}
|
216
|
-
function traverse_expr_isnull(a_expr_isnull, fromColumns, traverseResult) {
|
249
|
+
function traverse_expr_isnull(a_expr_isnull, dbSchema, fromColumns, traverseResult) {
|
217
250
|
const a_expr_is_not = a_expr_isnull.a_expr_is_not();
|
218
251
|
if (a_expr_is_not) {
|
219
|
-
return traverse_expr_is_not(a_expr_is_not, fromColumns, traverseResult);
|
252
|
+
return traverse_expr_is_not(a_expr_is_not, dbSchema, fromColumns, traverseResult);
|
220
253
|
}
|
221
|
-
|
254
|
+
throw Error('traverse_expr_isnull - Not expected:' + a_expr_isnull.getText());
|
222
255
|
}
|
223
|
-
function traverse_expr_is_not(a_expr_is_not, fromColumns, traverseResult) {
|
256
|
+
function traverse_expr_is_not(a_expr_is_not, dbSchema, fromColumns, traverseResult) {
|
224
257
|
const a_expr_compare = a_expr_is_not.a_expr_compare();
|
225
258
|
if (a_expr_compare) {
|
226
|
-
return traverse_expr_compare(a_expr_compare, fromColumns, traverseResult);
|
259
|
+
return traverse_expr_compare(a_expr_compare, dbSchema, fromColumns, traverseResult);
|
227
260
|
}
|
228
|
-
|
261
|
+
throw Error('traverse_expr_is_not - Not expected:' + a_expr_is_not.getText());
|
229
262
|
}
|
230
|
-
function traverse_expr_compare(a_expr_compare, fromColumns, traverseResult) {
|
263
|
+
function traverse_expr_compare(a_expr_compare, dbSchema, fromColumns, traverseResult) {
|
231
264
|
const a_expr_like = a_expr_compare.a_expr_like_list()[0];
|
232
265
|
if (a_expr_like) {
|
233
|
-
return traverse_expr_like(a_expr_like, fromColumns, traverseResult);
|
266
|
+
return traverse_expr_like(a_expr_like, dbSchema, fromColumns, traverseResult);
|
234
267
|
}
|
235
|
-
|
268
|
+
throw Error('traverse_expr_compare - Not expected:' + a_expr_compare.getText());
|
236
269
|
}
|
237
|
-
function traverse_expr_like(a_expr_like, fromColumns, traverseResult) {
|
270
|
+
function traverse_expr_like(a_expr_like, dbSchema, fromColumns, traverseResult) {
|
238
271
|
const a_expr_qual_op = a_expr_like.a_expr_qual_op_list()[0];
|
239
272
|
if (a_expr_qual_op) {
|
240
|
-
return traverse_expr_qual_op(a_expr_qual_op, fromColumns, traverseResult);
|
273
|
+
return traverse_expr_qual_op(a_expr_qual_op, dbSchema, fromColumns, traverseResult);
|
241
274
|
}
|
242
|
-
|
275
|
+
throw Error('traverse_expr_like - Not expected:' + a_expr_like.getText());
|
243
276
|
}
|
244
|
-
function traverse_expr_qual_op(a_expr_qual_op, fromColumns, traverseResult) {
|
277
|
+
function traverse_expr_qual_op(a_expr_qual_op, dbSchema, fromColumns, traverseResult) {
|
245
278
|
const a_expr_unary_qualop = a_expr_qual_op.a_expr_unary_qualop_list()[0];
|
246
279
|
if (a_expr_unary_qualop) {
|
247
|
-
return traverse_expr_unary_qualop(a_expr_unary_qualop, fromColumns, traverseResult);
|
280
|
+
return traverse_expr_unary_qualop(a_expr_unary_qualop, dbSchema, fromColumns, traverseResult);
|
248
281
|
}
|
249
|
-
|
282
|
+
throw Error('traverse_expr_qual_op - Not expected:' + a_expr_qual_op.getText());
|
250
283
|
}
|
251
|
-
function traverse_expr_unary_qualop(a_expr_unary_qualop, fromColumns, traverseResult) {
|
284
|
+
function traverse_expr_unary_qualop(a_expr_unary_qualop, dbSchema, fromColumns, traverseResult) {
|
252
285
|
const a_expr_add = a_expr_unary_qualop.a_expr_add();
|
253
286
|
if (a_expr_add) {
|
254
|
-
const
|
255
|
-
|
287
|
+
const exprResult = a_expr_add.a_expr_mul_list().map(a_expr_mul => traverse_expr_mul(a_expr_mul, dbSchema, fromColumns, traverseResult));
|
288
|
+
const result = {
|
289
|
+
column_name: a_expr_unary_qualop.getText(),
|
290
|
+
is_nullable: exprResult.some(col => col.is_nullable)
|
291
|
+
};
|
292
|
+
return result;
|
256
293
|
}
|
257
|
-
|
294
|
+
throw Error('traverse_expr_unary_qualop - Not expected:' + a_expr_unary_qualop.getText());
|
258
295
|
}
|
259
|
-
function traverse_expr_mul(a_expr_mul, fromColumns, traverseResult) {
|
296
|
+
function traverse_expr_mul(a_expr_mul, dbSchema, fromColumns, traverseResult) {
|
260
297
|
const a_expr_mul_list = a_expr_mul.a_expr_caret_list();
|
261
298
|
if (a_expr_mul_list) {
|
262
|
-
|
299
|
+
const notNullInfo = a_expr_mul.a_expr_caret_list().map(a_expr_caret => traverse_expr_caret(a_expr_caret, dbSchema, fromColumns, traverseResult));
|
300
|
+
const result = {
|
301
|
+
column_name: a_expr_mul.getText(),
|
302
|
+
is_nullable: notNullInfo.some(notNullInfo => notNullInfo.is_nullable)
|
303
|
+
};
|
304
|
+
return result;
|
263
305
|
}
|
264
|
-
|
306
|
+
throw Error('traverse_expr_mul - Not expected:' + a_expr_mul.getText());
|
265
307
|
}
|
266
|
-
function traverse_expr_caret(a_expr_caret, fromColumns, traverseResult) {
|
308
|
+
function traverse_expr_caret(a_expr_caret, dbSchema, fromColumns, traverseResult) {
|
267
309
|
const a_expr_unary_sign_list = a_expr_caret.a_expr_unary_sign_list();
|
268
310
|
if (a_expr_unary_sign_list) {
|
269
|
-
|
270
|
-
|
311
|
+
const notNullInfo = a_expr_caret.a_expr_unary_sign_list()
|
312
|
+
.map(a_expr_unary_sign => traverse_expr_unary_sign(a_expr_unary_sign, dbSchema, fromColumns, traverseResult));
|
313
|
+
const result = {
|
314
|
+
column_name: a_expr_caret.getText(),
|
315
|
+
is_nullable: notNullInfo.some(notNullInfo => notNullInfo.is_nullable)
|
316
|
+
};
|
317
|
+
return result;
|
271
318
|
}
|
272
|
-
|
319
|
+
throw Error('traverse_expr_caret - Not expected:' + a_expr_caret.getText());
|
273
320
|
}
|
274
|
-
function traverse_expr_unary_sign(a_expr_unary_sign, fromColumns, traverseResult) {
|
321
|
+
function traverse_expr_unary_sign(a_expr_unary_sign, dbSchema, fromColumns, traverseResult) {
|
275
322
|
const a_expr_at_time_zone = a_expr_unary_sign.a_expr_at_time_zone();
|
276
323
|
if (a_expr_at_time_zone) {
|
277
|
-
return traverse_expr_at_time_zone(a_expr_at_time_zone, fromColumns, traverseResult);
|
324
|
+
return traverse_expr_at_time_zone(a_expr_at_time_zone, dbSchema, fromColumns, traverseResult);
|
278
325
|
}
|
279
|
-
|
326
|
+
throw Error('traverse_expr_unary_sign - Not expected:' + a_expr_unary_sign.getText());
|
280
327
|
}
|
281
|
-
function traverse_expr_at_time_zone(a_expr_at_time_zone, fromColumns, traverseResult) {
|
328
|
+
function traverse_expr_at_time_zone(a_expr_at_time_zone, dbSchema, fromColumns, traverseResult) {
|
282
329
|
const a_expr_collate = a_expr_at_time_zone.a_expr_collate();
|
283
330
|
if (a_expr_collate) {
|
284
|
-
return traverse_expr_collate(a_expr_collate, fromColumns, traverseResult);
|
331
|
+
return traverse_expr_collate(a_expr_collate, dbSchema, fromColumns, traverseResult);
|
285
332
|
}
|
286
|
-
|
333
|
+
throw Error('traverse_expr_at_time_zone - Not expected:' + a_expr_at_time_zone.getText());
|
287
334
|
}
|
288
|
-
function traverse_expr_collate(a_expr_collate, fromColumns, traverseResult) {
|
335
|
+
function traverse_expr_collate(a_expr_collate, dbSchema, fromColumns, traverseResult) {
|
289
336
|
const a_expr_typecast = a_expr_collate.a_expr_typecast();
|
290
337
|
if (a_expr_typecast) {
|
291
|
-
return traverse_expr_typecast(a_expr_typecast, fromColumns, traverseResult);
|
338
|
+
return traverse_expr_typecast(a_expr_typecast, dbSchema, fromColumns, traverseResult);
|
292
339
|
}
|
293
|
-
|
340
|
+
throw Error('traverse_expr_collate - Not expected:' + a_expr_collate.getText());
|
294
341
|
}
|
295
|
-
function traverse_expr_typecast(a_expr_typecast, fromColumns, traverseResult) {
|
342
|
+
function traverse_expr_typecast(a_expr_typecast, dbSchema, fromColumns, traverseResult) {
|
296
343
|
const c_expr = a_expr_typecast.c_expr();
|
297
344
|
if (c_expr) {
|
298
|
-
return traversec_expr(c_expr, fromColumns, traverseResult);
|
345
|
+
return traversec_expr(c_expr, dbSchema, fromColumns, traverseResult);
|
299
346
|
}
|
300
|
-
|
347
|
+
throw Error('traverse_expr_typecast - Not expected:' + a_expr_typecast.getText());
|
301
348
|
}
|
302
|
-
function traversec_expr(c_expr, fromColumns, traverseResult) {
|
349
|
+
function traversec_expr(c_expr, dbSchema, fromColumns, traverseResult) {
|
303
350
|
var _a, _b;
|
304
351
|
if (c_expr instanceof PostgreSQLParser_1.C_expr_exprContext) {
|
305
352
|
const columnref = c_expr.columnref();
|
306
353
|
if (columnref) {
|
307
354
|
const fieldName = (0, select_columns_1.splitName)(columnref.getText());
|
308
355
|
const col = findColumn(fieldName, fromColumns);
|
309
|
-
return
|
356
|
+
return col;
|
310
357
|
}
|
311
358
|
const aexprconst = c_expr.aexprconst();
|
312
359
|
if (aexprconst) {
|
313
|
-
|
360
|
+
const is_nullable = aexprconst.NULL_P() != null;
|
361
|
+
return {
|
362
|
+
column_name: aexprconst.getText(),
|
363
|
+
is_nullable
|
364
|
+
};
|
314
365
|
}
|
315
366
|
if (c_expr.PARAM()) {
|
316
|
-
traverseResult.parametersNullability.push(
|
367
|
+
traverseResult.parametersNullability.push(true);
|
368
|
+
return {
|
369
|
+
column_name: c_expr.PARAM().getText(),
|
370
|
+
is_nullable: false
|
371
|
+
};
|
317
372
|
}
|
318
373
|
const func_application = (_a = c_expr.func_expr()) === null || _a === void 0 ? void 0 : _a.func_application();
|
319
374
|
if (func_application) {
|
320
|
-
|
375
|
+
const isNotNull = traversefunc_application(func_application, dbSchema, fromColumns, traverseResult);
|
376
|
+
return {
|
377
|
+
column_name: func_application.getText(),
|
378
|
+
is_nullable: !isNotNull
|
379
|
+
};
|
321
380
|
}
|
322
381
|
const func_expr_common_subexpr = (_b = c_expr.func_expr()) === null || _b === void 0 ? void 0 : _b.func_expr_common_subexpr();
|
323
382
|
if (func_expr_common_subexpr) {
|
324
|
-
|
383
|
+
const isNotNull = traversefunc_expr_common_subexpr(func_expr_common_subexpr, dbSchema, fromColumns, traverseResult);
|
384
|
+
return {
|
385
|
+
column_name: func_expr_common_subexpr.getText(),
|
386
|
+
is_nullable: !isNotNull
|
387
|
+
};
|
388
|
+
}
|
389
|
+
const select_with_parens = c_expr.select_with_parens();
|
390
|
+
if (select_with_parens) {
|
391
|
+
traverse_select_with_parens(select_with_parens, dbSchema, fromColumns, traverseResult);
|
392
|
+
return {
|
393
|
+
column_name: select_with_parens.getText(),
|
394
|
+
is_nullable: true
|
395
|
+
};
|
396
|
+
}
|
397
|
+
const a_expr_in_parens = c_expr._a_expr_in_parens;
|
398
|
+
if (a_expr_in_parens) {
|
399
|
+
return traverse_a_expr(a_expr_in_parens, dbSchema, fromColumns, traverseResult);
|
325
400
|
}
|
326
401
|
}
|
327
402
|
if (c_expr instanceof PostgreSQLParser_1.C_expr_caseContext) {
|
328
|
-
|
403
|
+
const isNotNull = traversec_expr_case(c_expr, dbSchema, fromColumns, traverseResult);
|
404
|
+
return {
|
405
|
+
column_name: c_expr.getText(),
|
406
|
+
is_nullable: !isNotNull
|
407
|
+
};
|
329
408
|
}
|
330
409
|
if (c_expr instanceof PostgreSQLParser_1.C_expr_existsContext) {
|
331
410
|
//todo - traverse
|
332
|
-
return
|
411
|
+
return {
|
412
|
+
column_name: c_expr.getText(),
|
413
|
+
is_nullable: false
|
414
|
+
};
|
333
415
|
}
|
334
|
-
|
416
|
+
throw Error('traversec_expr - Not expected:' + c_expr.getText());
|
335
417
|
}
|
336
418
|
function filterColumns(fromColumns, fieldName) {
|
337
419
|
return fromColumns.filter(col => (fieldName.prefix === '' || col.table_name === fieldName.prefix)
|
@@ -344,77 +426,96 @@ function excludeColumns(fromColumns, excludeList) {
|
|
344
426
|
return !found;
|
345
427
|
});
|
346
428
|
}
|
347
|
-
function traversec_expr_case(c_expr_case, fromColumns, traverseResult) {
|
429
|
+
function traversec_expr_case(c_expr_case, dbSchema, fromColumns, traverseResult) {
|
348
430
|
var _a;
|
349
431
|
const case_expr = c_expr_case.case_expr();
|
350
|
-
const whenIsNotNull = case_expr.when_clause_list().when_clause_list().every(when_clause => traversewhen_clause(when_clause, fromColumns, traverseResult));
|
432
|
+
const whenIsNotNull = case_expr.when_clause_list().when_clause_list().every(when_clause => traversewhen_clause(when_clause, dbSchema, fromColumns, traverseResult));
|
351
433
|
const elseExpr = (_a = case_expr.case_default()) === null || _a === void 0 ? void 0 : _a.a_expr();
|
352
|
-
const elseIsNotNull = elseExpr ? traverse_a_expr(elseExpr, fromColumns, traverseResult) : false;
|
434
|
+
const elseIsNotNull = elseExpr ? !traverse_a_expr(elseExpr, dbSchema, fromColumns, traverseResult).is_nullable : false;
|
353
435
|
return elseIsNotNull && whenIsNotNull;
|
354
436
|
}
|
355
|
-
function traversewhen_clause(when_clause, fromColumns, traverseResult) {
|
437
|
+
function traversewhen_clause(when_clause, dbSchema, fromColumns, traverseResult) {
|
356
438
|
const a_expr_list = when_clause.a_expr_list();
|
357
439
|
const thenExprList = a_expr_list.filter((_, index) => index % 2 == 1);
|
358
|
-
return thenExprList.every(thenExpr => traverse_a_expr(thenExpr, fromColumns, traverseResult));
|
440
|
+
return thenExprList.every(thenExpr => traverse_a_expr(thenExpr, dbSchema, fromColumns, traverseResult));
|
359
441
|
}
|
360
|
-
function traversefunc_application(func_application, fromColumns, traverseResult) {
|
442
|
+
function traversefunc_application(func_application, dbSchema, fromColumns, traverseResult) {
|
443
|
+
var _a;
|
361
444
|
const functionName = func_application.func_name().getText().toLowerCase();
|
445
|
+
const func_arg_expr_list = ((_a = func_application.func_arg_list()) === null || _a === void 0 ? void 0 : _a.func_arg_expr_list()) || [];
|
446
|
+
const argsResult = func_arg_expr_list.map(func_arg_expr => traversefunc_arg_expr(func_arg_expr, dbSchema, fromColumns, traverseResult));
|
362
447
|
if (functionName === 'count') {
|
363
448
|
return true;
|
364
449
|
}
|
365
|
-
if (functionName === 'concat') {
|
366
|
-
const func_arg_expr_list = func_application.func_arg_list().func_arg_expr_list();
|
450
|
+
if (functionName === 'concat' || functionName === 'concat_ws') {
|
367
451
|
if (func_arg_expr_list) {
|
368
|
-
return
|
452
|
+
return argsResult.every(col => col);
|
369
453
|
}
|
370
454
|
return false;
|
371
455
|
}
|
456
|
+
if (functionName === 'to_date') {
|
457
|
+
const firstArg = argsResult[0];
|
458
|
+
return firstArg;
|
459
|
+
}
|
372
460
|
if (functionName === 'generate_series') {
|
373
461
|
return true;
|
374
462
|
}
|
463
|
+
if (func_arg_expr_list) {
|
464
|
+
func_arg_expr_list.forEach(func_arg_expr => traversefunc_arg_expr(func_arg_expr, dbSchema, fromColumns, traverseResult));
|
465
|
+
}
|
375
466
|
return false;
|
376
467
|
}
|
377
|
-
function traversefunc_expr_common_subexpr(func_expr_common_subexpr, fromColumns, traverseResult) {
|
468
|
+
function traversefunc_expr_common_subexpr(func_expr_common_subexpr, dbSchema, fromColumns, traverseResult) {
|
378
469
|
if (func_expr_common_subexpr.COALESCE()) {
|
379
470
|
const func_arg_list = func_expr_common_subexpr.expr_list().a_expr_list();
|
380
|
-
const result = func_arg_list.
|
381
|
-
|
471
|
+
const result = func_arg_list.map(func_arg_expr => {
|
472
|
+
const paramResult = traverse_a_expr(func_arg_expr, dbSchema, fromColumns, traverseResult);
|
473
|
+
if (isParameter(paramResult.column_name)) {
|
474
|
+
traverseResult.parametersNullability[traverseResult.parametersNullability.length - 1] = false;
|
475
|
+
paramResult.is_nullable = true;
|
476
|
+
}
|
477
|
+
return paramResult;
|
478
|
+
});
|
479
|
+
return result.some(col => !col.is_nullable);
|
382
480
|
}
|
383
481
|
if (func_expr_common_subexpr.EXTRACT()) {
|
384
482
|
const a_expr = func_expr_common_subexpr.extract_list().a_expr();
|
385
|
-
const result = traverse_a_expr(a_expr, fromColumns, traverseResult);
|
386
|
-
return result;
|
483
|
+
const result = traverse_a_expr(a_expr, dbSchema, fromColumns, traverseResult);
|
484
|
+
return !result.is_nullable;
|
387
485
|
}
|
388
486
|
return false;
|
389
487
|
}
|
390
|
-
function traversefunc_arg_expr(func_arg_expr, fromColumns, traverseResult) {
|
488
|
+
function traversefunc_arg_expr(func_arg_expr, dbSchema, fromColumns, traverseResult) {
|
391
489
|
const a_expr = func_arg_expr.a_expr();
|
392
|
-
return traverse_a_expr(a_expr, fromColumns, traverseResult);
|
490
|
+
return !traverse_a_expr(a_expr, dbSchema, fromColumns, traverseResult).is_nullable;
|
393
491
|
}
|
394
492
|
function findColumn(fieldName, fromColumns) {
|
395
|
-
const col = fromColumns.find(col => (fieldName.prefix === '' || col.table_name === fieldName.prefix) && col.column_name === fieldName.name);
|
493
|
+
const col = fromColumns.find(col => (fieldName.prefix === '' || col.table_name.toLowerCase() === fieldName.prefix.toLowerCase()) && col.column_name.toLowerCase() === fieldName.name.toLowerCase());
|
396
494
|
if (col == null) {
|
397
|
-
throw Error('Column not found: ' + fieldName);
|
495
|
+
throw Error('Column not found: ' + fieldNameToString(fieldName));
|
398
496
|
}
|
399
497
|
return col;
|
400
498
|
}
|
499
|
+
function fieldNameToString(fieldName) {
|
500
|
+
return fieldName.prefix !== '' ? `${fieldName.prefix}.${fieldName.name}` : fieldName.name;
|
501
|
+
}
|
401
502
|
function checkIsNullable(where_clause, field) {
|
402
503
|
const isNotNullResult = !field.is_nullable || isNotNull(field, where_clause);
|
403
504
|
const col = Object.assign(Object.assign({}, field), { is_nullable: !isNotNullResult });
|
404
505
|
return col;
|
405
506
|
}
|
406
|
-
function traverse_from_clause(from_clause, dbSchema, traverseResult) {
|
507
|
+
function traverse_from_clause(from_clause, dbSchema, fromColumns, traverseResult) {
|
407
508
|
const from_list = from_clause.from_list();
|
408
509
|
if (from_list) {
|
409
|
-
return traverse_from_list(from_list, dbSchema, traverseResult);
|
510
|
+
return traverse_from_list(from_list, dbSchema, fromColumns, traverseResult);
|
410
511
|
}
|
411
512
|
return [];
|
412
513
|
}
|
413
|
-
function traverse_from_list(from_list, dbSchema, traverseResult) {
|
414
|
-
const
|
415
|
-
return
|
514
|
+
function traverse_from_list(from_list, dbSchema, fromColumns, traverseResult) {
|
515
|
+
const newColumns = from_list.table_ref_list().flatMap(table_ref => traverse_table_ref(table_ref, dbSchema, fromColumns, traverseResult));
|
516
|
+
return newColumns;
|
416
517
|
}
|
417
|
-
function traverse_table_ref(table_ref, dbSchema, traverseResult) {
|
518
|
+
function traverse_table_ref(table_ref, dbSchema, fromColumns, traverseResult) {
|
418
519
|
const allColumns = [];
|
419
520
|
const relation_expr = table_ref.relation_expr();
|
420
521
|
const aliasClause = table_ref.alias_clause();
|
@@ -422,8 +523,8 @@ function traverse_table_ref(table_ref, dbSchema, traverseResult) {
|
|
422
523
|
if (relation_expr) {
|
423
524
|
const tableName = traverse_relation_expr(relation_expr, dbSchema);
|
424
525
|
const tableNameWithAlias = alias ? alias : tableName;
|
425
|
-
const
|
426
|
-
allColumns.push(...
|
526
|
+
const fromColumnsResult = fromColumns.concat(dbSchema).filter(col => col.table_name === tableName).map(col => (Object.assign(Object.assign({}, col), { table_name: tableNameWithAlias })));
|
527
|
+
allColumns.push(...fromColumnsResult);
|
427
528
|
}
|
428
529
|
const table_ref_list = table_ref.table_ref_list();
|
429
530
|
const join_type_list = table_ref.join_type_list();
|
@@ -432,7 +533,7 @@ function traverse_table_ref(table_ref, dbSchema, traverseResult) {
|
|
432
533
|
const joinColumns = table_ref_list.flatMap((table_ref, joinIndex) => {
|
433
534
|
const joinType = join_type_list[joinIndex]; //INNER, LEFT
|
434
535
|
const joinQual = join_qual_list[joinIndex];
|
435
|
-
const joinColumns = traverse_table_ref(table_ref, dbSchema, traverseResult);
|
536
|
+
const joinColumns = traverse_table_ref(table_ref, dbSchema, fromColumns, traverseResult);
|
436
537
|
const isUsing = (joinQual === null || joinQual === void 0 ? void 0 : joinQual.USING()) ? true : false;
|
437
538
|
const isLeftJoin = joinType === null || joinType === void 0 ? void 0 : joinType.LEFT();
|
438
539
|
const filteredColumns = isUsing ? filterUsingColumns(joinColumns, joinQual) : joinColumns;
|
@@ -443,7 +544,7 @@ function traverse_table_ref(table_ref, dbSchema, traverseResult) {
|
|
443
544
|
}
|
444
545
|
const select_with_parens = table_ref.select_with_parens();
|
445
546
|
if (select_with_parens) {
|
446
|
-
const columns = traverse_select_with_parens(select_with_parens, dbSchema, traverseResult);
|
547
|
+
const columns = traverse_select_with_parens(select_with_parens, dbSchema, fromColumns, traverseResult);
|
447
548
|
const withAlias = columns.map(col => (Object.assign(Object.assign({}, col), { table_name: alias || col.table_name })));
|
448
549
|
return withAlias;
|
449
550
|
}
|
@@ -454,14 +555,14 @@ function filterUsingColumns(fromColumns, joinQual) {
|
|
454
555
|
const filteredColumns = excludeColumns(fromColumns, excludeList);
|
455
556
|
return filteredColumns;
|
456
557
|
}
|
457
|
-
function traverse_select_with_parens(select_with_parens, dbSchema, traverseResult) {
|
558
|
+
function traverse_select_with_parens(select_with_parens, dbSchema, fromColumns, traverseResult) {
|
458
559
|
const select_with_parens2 = select_with_parens.select_with_parens();
|
459
560
|
if (select_with_parens2) {
|
460
|
-
return traverse_select_with_parens(select_with_parens2, dbSchema, traverseResult);
|
561
|
+
return traverse_select_with_parens(select_with_parens2, dbSchema, fromColumns, traverseResult);
|
461
562
|
}
|
462
563
|
const select_no_parens = select_with_parens.select_no_parens();
|
463
564
|
if (select_no_parens) {
|
464
|
-
return traverse_select_no_parens(select_no_parens, dbSchema, traverseResult);
|
565
|
+
return traverse_select_no_parens(select_no_parens, dbSchema, fromColumns, traverseResult);
|
465
566
|
}
|
466
567
|
return [];
|
467
568
|
}
|
@@ -521,16 +622,19 @@ function paramIsList(c_expr) {
|
|
521
622
|
const a_expr_qual = a_expr_lessless === null || a_expr_lessless === void 0 ? void 0 : a_expr_lessless.parentCtx;
|
522
623
|
const a_expr = a_expr_qual === null || a_expr_qual === void 0 ? void 0 : a_expr_qual.parentCtx;
|
523
624
|
const expr_list = a_expr === null || a_expr === void 0 ? void 0 : a_expr.parentCtx;
|
524
|
-
|
625
|
+
const in_expr_list = expr_list === null || expr_list === void 0 ? void 0 : expr_list.parentCtx;
|
626
|
+
return in_expr_list instanceof PostgreSQLParser_1.In_expr_listContext;
|
525
627
|
}
|
526
628
|
function traverseInsertstmt(insertstmt, dbSchema) {
|
527
629
|
const insert_target = insertstmt.insert_target();
|
528
630
|
const tableName = insert_target.getText();
|
529
631
|
const insertColumns = dbSchema.filter(col => col.table_name === tableName);
|
530
632
|
const insert_rest = insertstmt.insert_rest();
|
531
|
-
const
|
633
|
+
const insertColumnsList = insert_rest.insert_column_list()
|
532
634
|
.insert_column_item_list()
|
533
635
|
.map(insert_column_item => traverse_insert_column_item(insert_column_item, insertColumns));
|
636
|
+
const selectstmt = insert_rest.selectstmt();
|
637
|
+
const parametersNullability = traverse_insert_select_stmt(selectstmt, dbSchema, insertColumnsList);
|
534
638
|
return {
|
535
639
|
queryType: 'Insert',
|
536
640
|
parametersNullability,
|
@@ -538,6 +642,35 @@ function traverseInsertstmt(insertstmt, dbSchema) {
|
|
538
642
|
parameterList: []
|
539
643
|
};
|
540
644
|
}
|
645
|
+
function traverse_insert_select_stmt(selectstmt, dbSchema, insertColumnlist) {
|
646
|
+
var _a, _b, _c, _d;
|
647
|
+
const simple_select = (_c = (_b = (_a = selectstmt.select_no_parens()) === null || _a === void 0 ? void 0 : _a.select_clause()) === null || _b === void 0 ? void 0 : _b.simple_select_intersect_list()) === null || _c === void 0 ? void 0 : _c[0];
|
648
|
+
if (simple_select) {
|
649
|
+
const simple_select_pramary = (_d = simple_select === null || simple_select === void 0 ? void 0 : simple_select.simple_select_pramary_list()) === null || _d === void 0 ? void 0 : _d[0];
|
650
|
+
if (simple_select_pramary) {
|
651
|
+
return simple_select_pramary.values_clause().expr_list_list()
|
652
|
+
.flatMap(expr_list => traverse_insert_a_expr_list(expr_list, dbSchema, insertColumnlist));
|
653
|
+
}
|
654
|
+
}
|
655
|
+
return [];
|
656
|
+
}
|
657
|
+
function traverse_insert_a_expr_list(expr_list, dbSchema, insertColumns) {
|
658
|
+
const parametersNullability = [];
|
659
|
+
expr_list.a_expr_list().forEach((a_expr, index) => {
|
660
|
+
const traverseResult = {
|
661
|
+
columnsNullability: [],
|
662
|
+
parametersNullability: []
|
663
|
+
};
|
664
|
+
const result = traverse_a_expr(a_expr, dbSchema, insertColumns, traverseResult);
|
665
|
+
if (isParameter(result.column_name)) {
|
666
|
+
parametersNullability.push(!insertColumns[index].is_nullable);
|
667
|
+
}
|
668
|
+
else {
|
669
|
+
parametersNullability.push(...traverseResult.parametersNullability);
|
670
|
+
}
|
671
|
+
});
|
672
|
+
return parametersNullability;
|
673
|
+
}
|
541
674
|
function traverseDeletestmt(deleteStmt, dbSchema, traverseResult) {
|
542
675
|
return {
|
543
676
|
queryType: 'Delete',
|
@@ -551,12 +684,12 @@ function traverseUpdatestmt(updatestmt, dbSchema, traverseResult) {
|
|
551
684
|
const tableName = relation_expr_opt_alias.getText();
|
552
685
|
const updateColumns = dbSchema.filter(col => col.table_name === tableName);
|
553
686
|
updatestmt.set_clause_list().set_clause_list()
|
554
|
-
.map(set_clause => traverse_set_clause(set_clause, updateColumns, traverseResult));
|
687
|
+
.map(set_clause => traverse_set_clause(set_clause, dbSchema, updateColumns, traverseResult));
|
555
688
|
const dataParameters = traverseResult.parametersNullability;
|
556
689
|
const where_clause = updatestmt.where_or_current_clause();
|
557
690
|
if (where_clause) {
|
558
691
|
const a_expr = where_clause.a_expr();
|
559
|
-
traverse_a_expr(a_expr, updateColumns, traverseResult);
|
692
|
+
traverse_a_expr(a_expr, dbSchema, updateColumns, traverseResult);
|
560
693
|
}
|
561
694
|
const whereParameters = traverseResult.parametersNullability.slice(dataParameters.length);
|
562
695
|
return {
|
@@ -567,15 +700,14 @@ function traverseUpdatestmt(updatestmt, dbSchema, traverseResult) {
|
|
567
700
|
whereParamtersNullability: whereParameters
|
568
701
|
};
|
569
702
|
}
|
570
|
-
function traverse_set_clause(set_clause, updateColumns, traverseResult) {
|
703
|
+
function traverse_set_clause(set_clause, dbSchema, updateColumns, traverseResult) {
|
571
704
|
const set_target = set_clause.set_target();
|
572
705
|
const columnName = (0, select_columns_1.splitName)(set_target.getText());
|
573
706
|
const column = findColumn(columnName, updateColumns);
|
574
707
|
const a_expr = set_clause.a_expr();
|
575
|
-
const
|
576
|
-
|
577
|
-
|
578
|
-
traverseResult.parametersNullability[i] = traverseResult.parametersNullability[i] || !column.is_nullable;
|
708
|
+
const a_exprResult = traverse_a_expr(a_expr, dbSchema, updateColumns, traverseResult);
|
709
|
+
if (isParameter(a_exprResult.column_name)) {
|
710
|
+
traverseResult.parametersNullability[traverseResult.parametersNullability.length - 1] = !column.is_nullable;
|
579
711
|
}
|
580
712
|
return !column.is_nullable;
|
581
713
|
}
|
@@ -587,7 +719,7 @@ function isNotNull_colid(colid, dbSchema) {
|
|
587
719
|
const columnName = colid.getText();
|
588
720
|
const fieldName = (0, select_columns_1.splitName)(columnName);
|
589
721
|
const column = findColumn(fieldName, dbSchema);
|
590
|
-
return
|
722
|
+
return column;
|
591
723
|
}
|
592
724
|
function isNotNull(field, where_clause) {
|
593
725
|
const a_expr = where_clause.a_expr();
|
@@ -791,4 +923,9 @@ function checkLimit_select_no_parens(select_no_parens) {
|
|
791
923
|
function checkLimit_select_with_parens(select_with_parens) {
|
792
924
|
return checkLimit(select_with_parens);
|
793
925
|
}
|
926
|
+
function isParameter(str) {
|
927
|
+
// Regular expression to match $1, $2, $123, etc. with optional casts (e.g. $1::int4)
|
928
|
+
const paramPattern = /^\$[0-9]+(::[a-zA-Z_][a-zA-Z0-9_]*)?$/;
|
929
|
+
return paramPattern.test(str);
|
930
|
+
}
|
794
931
|
//# sourceMappingURL=traverse.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"traverse.js","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/traverse.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"traverse.js","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/traverse.ts"],"names":[],"mappings":"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"}
|
@@ -54,7 +54,15 @@ function getValueForType(paramIndex, typeOid, isList) {
|
|
54
54
|
return `'1', '2'`;
|
55
55
|
}
|
56
56
|
return `'${paramIndex + 1}'`;
|
57
|
+
case 'date':
|
58
|
+
return `'${formatDate(new Date())}'`;
|
57
59
|
}
|
58
60
|
return '1';
|
59
61
|
}
|
62
|
+
function formatDate(date) {
|
63
|
+
const year = date.getFullYear();
|
64
|
+
const month = String(date.getMonth() + 1).padStart(2, '0'); // Months are zero-indexed, so add 1
|
65
|
+
const day = String(date.getDate()).padStart(2, '0');
|
66
|
+
return `${year}-${month}-${day}`;
|
67
|
+
}
|
60
68
|
//# sourceMappingURL=replace-list-params.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"replace-list-params.js","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/replace-list-params.ts"],"names":[],"mappings":";;AAGA,8CAgBC;AAED,sDAaC;AAED,0EAQC;AA5CD,mDAAqD;AAGrD,SAAgB,iBAAiB,CAAC,GAAW,EAAE,kBAA8C;IAC5F,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,OAAO,GAAG,CAAC;IACZ,CAAC;IACD,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,kBAAkB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAClD,MAAM,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;QACpD,MAAM,IAAI,aAAa,KAAK,CAAC,IAAI,kBAAkB,CAAC;QACpD,IAAI,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM;YACN,MAAM,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9D,CAAC;QACD,KAAK,GAAG,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAgB,qBAAqB,CAAC,GAAW,EAAE,aAAwB,EAAE,WAAqB;IACjG,MAAM,UAAU,GAAG,UAAU,CAAC;IAE9B,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACvD,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,6BAA6B;QAEzE,IAAI,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,OAAO,kCAAkC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC;QACtE,CAAC;aAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACd,CAAC;IACF,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAgB,+BAA+B,CAAC,GAAW,EAAE,YAAuB,EAAE,WAAqB;IAC1G,MAAM,UAAU,GAAG,UAAU,CAAC;IAE9B,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACvD,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QAC3C,OAAO,eAAe,CAAC,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CAAC,UAAkB,EAAE,OAAe,EAAE,MAAe;IAC5E,QAAQ,wBAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,KAAK,MAAM;YACV,IAAI,MAAM,EAAE,CAAC;gBACZ,OAAO,MAAM,CAAC;YACf,CAAC;YACD,OAAO,GAAG,UAAU,MAAM,CAAC;QAC5B,KAAK,MAAM;YACV,IAAI,MAAM,EAAE,CAAC;gBACZ,OAAO,UAAU,CAAC;YACnB,CAAC;YACD,OAAO,IAAI,UAAU,GAAG,CAAC,GAAG,CAAC;
|
1
|
+
{"version":3,"file":"replace-list-params.js","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/replace-list-params.ts"],"names":[],"mappings":"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"}
|