typesql-cli 0.15.0-experimental.2 → 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/dialects/postgres.d.ts.map +1 -1
- package/dialects/postgres.js +12 -2
- package/dialects/postgres.js.map +1 -1
- package/package.json +1 -1
- package/postgres-query-analyzer/describe.d.ts.map +1 -1
- package/postgres-query-analyzer/describe.js +7 -2
- package/postgres-query-analyzer/describe.js.map +1 -1
- package/postgres-query-analyzer/parser.d.ts +1 -8
- 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 +348 -137
- 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/sqlite-query-analyzer/types.d.ts +1 -1
- package/sqlite-query-analyzer/types.d.ts.map +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../../src/dialects/postgres.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,eAAO,MAAM,aAAa,
|
1
|
+
{"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../../src/dialects/postgres.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,eAAO,MAAM,aAAa,EAqBrB,GAAG,CAAC;AAGT,wBAAgB,aAAa,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,CAyEhE"}
|
package/dialects/postgres.js
CHANGED
@@ -21,6 +21,8 @@ exports.postgresTypes = {
|
|
21
21
|
1042: 'bpchar',
|
22
22
|
1043: 'varchar',
|
23
23
|
2950: 'uuid',
|
24
|
+
1114: 'timestamp',
|
25
|
+
1184: 'timestamptz'
|
24
26
|
};
|
25
27
|
function mapColumnType(postgresType) {
|
26
28
|
switch (postgresType) {
|
@@ -43,9 +45,9 @@ function mapColumnType(postgresType) {
|
|
43
45
|
case 'name[]':
|
44
46
|
return 'string[]';
|
45
47
|
case 'int8':
|
46
|
-
return '
|
48
|
+
return 'string';
|
47
49
|
case 'int8[]':
|
48
|
-
return '
|
50
|
+
return 'string[]';
|
49
51
|
case 'int2':
|
50
52
|
return 'number';
|
51
53
|
case 'int2[]':
|
@@ -86,6 +88,14 @@ function mapColumnType(postgresType) {
|
|
86
88
|
return 'number';
|
87
89
|
case 'float8[]':
|
88
90
|
return 'number[]';
|
91
|
+
case 'timestamp':
|
92
|
+
return 'Date';
|
93
|
+
case 'timestamp[]':
|
94
|
+
return 'Date[]';
|
95
|
+
case 'timestamptz':
|
96
|
+
return 'Date';
|
97
|
+
case 'timestamptz[]':
|
98
|
+
return 'Date[]';
|
89
99
|
}
|
90
100
|
}
|
91
101
|
//# sourceMappingURL=postgres.js.map
|
package/dialects/postgres.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../../src/dialects/postgres.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../../src/dialects/postgres.ts"],"names":[],"mappings":";;;AA2BA,sCAyEC;AAjGY,QAAA,aAAa,GAAG;IAC5B,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,OAAO;IACX,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,SAAS;IACb,EAAE,EAAE,MAAM;IACV,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,QAAQ;IACb,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,aAAa;CACZ,CAAC;AAGT,SAAgB,aAAa,CAAC,YAA0B;IACvD,QAAQ,YAAY,EAAE,CAAC;QACtB,KAAK,MAAM;YACV,OAAO,SAAS,CAAC;QAClB,KAAK,QAAQ;YACZ,OAAO,WAAW,CAAC;QACpB,KAAK,OAAO;YACX,OAAO,aAAa,CAAC;QACtB,KAAK,MAAM;YACV,OAAO,QAAQ,CAAC;QACjB,KAAK,QAAQ;YACZ,OAAO,QAAQ,CAAC;QACjB,KAAK,QAAQ;YACZ,OAAO,QAAQ,CAAC;QACjB,KAAK,UAAU;YACd,OAAO,UAAU,CAAC;QACnB,KAAK,MAAM;YACV,OAAO,QAAQ,CAAC;QACjB,KAAK,QAAQ;YACZ,OAAO,UAAU,CAAC;QACnB,KAAK,MAAM;YACV,OAAO,QAAQ,CAAC;QACjB,KAAK,QAAQ;YACZ,OAAO,UAAU,CAAC;QACnB,KAAK,MAAM;YACV,OAAO,QAAQ,CAAC;QACjB,KAAK,QAAQ;YACZ,OAAO,UAAU,CAAC;QACnB,KAAK,MAAM;YACV,OAAO,QAAQ,CAAC;QACjB,KAAK,QAAQ;YACZ,OAAO,UAAU,CAAC;QACnB,KAAK,MAAM;YACV,OAAO,QAAQ,CAAC;QACjB,KAAK,QAAQ;YACZ,OAAO,UAAU,CAAC;QACnB,KAAK,SAAS;YACb,OAAO,QAAQ,CAAC;QACjB,KAAK,WAAW;YACf,OAAO,UAAU,CAAC;QACnB,KAAK,MAAM;YACV,OAAO,MAAM,CAAC;QACf,KAAK,QAAQ;YACZ,OAAO,QAAQ,CAAC;QACjB,KAAK,KAAK;YACT,OAAO,SAAS,CAAC;QAClB,KAAK,OAAO;YACX,OAAO,WAAW,CAAC;QACpB,KAAK,SAAS;YACb,OAAO,QAAQ,CAAC;QACjB,KAAK,WAAW;YACf,OAAO,UAAU,CAAC;QACnB,KAAK,MAAM;YACV,OAAO,QAAQ,CAAC;QACjB,KAAK,QAAQ;YACZ,OAAO,UAAU,CAAC;QACnB,KAAK,QAAQ;YACZ,OAAO,QAAQ,CAAC;QACjB,KAAK,UAAU;YACd,OAAO,UAAU,CAAC;QACnB,KAAK,QAAQ;YACZ,OAAO,QAAQ,CAAC;QACjB,KAAK,UAAU;YACd,OAAO,UAAU,CAAA;QAClB,KAAK,WAAW;YACf,OAAO,MAAM,CAAA;QACd,KAAK,aAAa;YACjB,OAAO,QAAQ,CAAC;QACjB,KAAK,aAAa;YACjB,OAAO,MAAM,CAAC;QACf,KAAK,eAAe;YACnB,OAAO,QAAQ,CAAC;IAClB,CAAC;AACF,CAAC"}
|
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"}
|
@@ -56,6 +56,10 @@ function describeQuery(postgres, sql, namedParameters) {
|
|
56
56
|
}
|
57
57
|
function getMultipleRowInfo(postgres, sql, describeResult, parseResult) {
|
58
58
|
if (parseResult.queryType === 'Select') {
|
59
|
+
if (parseResult.limit === 1) {
|
60
|
+
const result = Object.assign(Object.assign({}, describeResult), { multipleRowsResult: false });
|
61
|
+
return (0, neverthrow_1.okAsync)(result);
|
62
|
+
}
|
59
63
|
const newSql = (0, replace_list_params_1.replacePostgresParamsWithValues)(sql, parseResult.parameterList, describeResult.parameters);
|
60
64
|
return (0, postgres_1.postgresAnalyze)(postgres, newSql).map(analyzeResult => {
|
61
65
|
const singleRow = isSingleRow(analyzeResult);
|
@@ -67,8 +71,9 @@ function getMultipleRowInfo(postgres, sql, describeResult, parseResult) {
|
|
67
71
|
return (0, neverthrow_1.okAsync)(result);
|
68
72
|
}
|
69
73
|
function isSingleRow(queryPlans) {
|
70
|
-
const
|
71
|
-
|
74
|
+
const first = parseSingleQueryPlan(queryPlans[0]);
|
75
|
+
const isAggregate = queryPlans[0].startsWith('Aggregate ') && first === 1;
|
76
|
+
if (isAggregate) {
|
72
77
|
return true;
|
73
78
|
}
|
74
79
|
const parseResult = queryPlans
|
@@ -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,11 +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
|
-
};
|
10
3
|
export declare function parseSql(sql: string, dbSchema: PostgresColumnSchema[]): PostgresTraverseResult;
|
11
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,41 +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
|
+
const limit = checkLimit(selectstmt);
|
49
50
|
return {
|
50
51
|
queryType: 'Select',
|
51
52
|
columnsNullability,
|
52
|
-
parametersNullability:
|
53
|
-
parameterList: paramIsListResult
|
53
|
+
parametersNullability: traverseResult.parametersNullability,
|
54
|
+
parameterList: paramIsListResult,
|
55
|
+
limit
|
54
56
|
};
|
55
57
|
}
|
56
|
-
function traverse_selectstmt(selectstmt, dbSchema, traverseResult) {
|
58
|
+
function traverse_selectstmt(selectstmt, dbSchema, fromColumns, traverseResult) {
|
57
59
|
const select_no_parens = selectstmt.select_no_parens();
|
58
60
|
if (select_no_parens) {
|
59
|
-
return traverse_select_no_parens(select_no_parens, dbSchema, traverseResult);
|
61
|
+
return traverse_select_no_parens(select_no_parens, dbSchema, fromColumns, traverseResult);
|
60
62
|
}
|
61
63
|
return [];
|
62
64
|
}
|
63
|
-
function traverse_select_no_parens(select_no_parens, dbSchema, traverseResult) {
|
65
|
+
function traverse_select_no_parens(select_no_parens, dbSchema, fromColumns, traverseResult) {
|
66
|
+
let withColumns = [];
|
67
|
+
const with_clause = select_no_parens.with_clause();
|
68
|
+
if (with_clause) {
|
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
|
+
});
|
74
|
+
}
|
64
75
|
const select_clause = select_no_parens.select_clause();
|
65
76
|
if (select_clause) {
|
66
|
-
return traverse_select_clause(select_clause, dbSchema, traverseResult);
|
77
|
+
return traverse_select_clause(select_clause, dbSchema, withColumns.concat(fromColumns), traverseResult);
|
78
|
+
}
|
79
|
+
return [];
|
80
|
+
}
|
81
|
+
function traverse_common_table_expr(common_table_expr, dbSchema, fromColumns, traverseResult) {
|
82
|
+
const tableName = common_table_expr.name().getText();
|
83
|
+
const select_stmt = common_table_expr.preparablestmt().selectstmt();
|
84
|
+
if (select_stmt) {
|
85
|
+
const columns = traverse_selectstmt(select_stmt, dbSchema, fromColumns, traverseResult);
|
86
|
+
const columnsWithTalbeName = columns.map(col => (Object.assign(Object.assign({}, col), { table_name: tableName })));
|
87
|
+
return columnsWithTalbeName;
|
67
88
|
}
|
68
89
|
return [];
|
69
90
|
}
|
70
|
-
function traverse_select_clause(select_clause, dbSchema, traverseResult) {
|
91
|
+
function traverse_select_clause(select_clause, dbSchema, fromColumns, traverseResult) {
|
71
92
|
const simple_select_intersect_list = select_clause.simple_select_intersect_list();
|
72
93
|
let selectColumns = [];
|
73
94
|
if (simple_select_intersect_list) {
|
74
|
-
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);
|
75
96
|
}
|
76
97
|
//union
|
77
98
|
for (let index = 1; index < simple_select_intersect_list.length; index++) {
|
78
|
-
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);
|
79
100
|
selectColumns = selectColumns.map((value, columnIndex) => {
|
80
101
|
const col = Object.assign(Object.assign({}, value), { is_nullable: value.is_nullable || unionNotNull[columnIndex].is_nullable });
|
81
102
|
return col;
|
@@ -83,230 +104,316 @@ function traverse_select_clause(select_clause, dbSchema, traverseResult) {
|
|
83
104
|
}
|
84
105
|
return selectColumns;
|
85
106
|
}
|
86
|
-
function traverse_simple_select_intersect(simple_select_intersect, dbSchema, traverseResult) {
|
107
|
+
function traverse_simple_select_intersect(simple_select_intersect, dbSchema, fromColumns, traverseResult) {
|
87
108
|
const simple_select_pramary = simple_select_intersect.simple_select_pramary_list()[0];
|
88
109
|
if (simple_select_pramary) {
|
89
|
-
return traverse_simple_select_pramary(simple_select_pramary, dbSchema, traverseResult);
|
110
|
+
return traverse_simple_select_pramary(simple_select_pramary, dbSchema, fromColumns, traverseResult);
|
90
111
|
}
|
91
112
|
return [];
|
92
113
|
}
|
93
|
-
function traverse_simple_select_pramary(simple_select_pramary, dbSchema, traverseResult) {
|
114
|
+
function traverse_simple_select_pramary(simple_select_pramary, dbSchema, parentFromColumns, traverseResult) {
|
94
115
|
const fromColumns = [];
|
95
116
|
const from_clause = simple_select_pramary.from_clause();
|
96
117
|
if (from_clause) {
|
97
118
|
const where_clause = simple_select_pramary.where_clause();
|
98
|
-
const fields = traverse_from_clause(from_clause, dbSchema, traverseResult);
|
119
|
+
const fields = traverse_from_clause(from_clause, dbSchema, parentFromColumns, traverseResult);
|
99
120
|
const fieldsNotNull = where_clause != null ? fields.map(field => checkIsNullable(where_clause, field)) : fields;
|
100
121
|
fromColumns.push(...fieldsNotNull);
|
101
122
|
}
|
102
|
-
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);
|
103
129
|
return filteredColumns;
|
104
130
|
}
|
105
|
-
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) {
|
106
152
|
const target_list_ = simple_select_pramary.target_list_();
|
107
153
|
if (target_list_) {
|
108
154
|
const target_list = target_list_.target_list();
|
109
155
|
if (target_list) {
|
110
|
-
return filterColumns_target_list(target_list, fromColumns, traverseResult);
|
156
|
+
return filterColumns_target_list(target_list, dbSchema, fromColumns, traverseResult);
|
111
157
|
}
|
112
158
|
}
|
113
159
|
return [];
|
114
160
|
}
|
115
|
-
function filterColumns_target_list(target_list, fromColumns, traverseResult) {
|
161
|
+
function filterColumns_target_list(target_list, dbSchema, fromColumns, traverseResult) {
|
116
162
|
const columns = target_list.target_el_list().flatMap(target_el => {
|
117
163
|
const fieldName = (0, select_columns_1.splitName)(target_el.getText());
|
118
164
|
if (fieldName.name == '*') {
|
119
165
|
const columns = filterColumns(fromColumns, fieldName);
|
120
166
|
return columns;
|
121
167
|
}
|
122
|
-
const column = isNotNull_target_el(target_el, fromColumns, traverseResult);
|
168
|
+
const column = isNotNull_target_el(target_el, dbSchema, fromColumns, traverseResult);
|
123
169
|
return [column];
|
124
170
|
});
|
125
171
|
return columns;
|
126
172
|
}
|
127
|
-
function isNotNull_target_el(target_el, fromColumns, traverseResult) {
|
173
|
+
function isNotNull_target_el(target_el, dbSchema, fromColumns, traverseResult) {
|
128
174
|
if (target_el instanceof PostgreSQLParser_1.Target_labelContext) {
|
129
175
|
const a_expr = target_el.a_expr();
|
130
|
-
const
|
176
|
+
const exprResult = traverse_a_expr(a_expr, dbSchema, fromColumns, traverseResult);
|
131
177
|
const colLabel = target_el.colLabel();
|
132
178
|
const alias = colLabel != null ? colLabel.getText() : '';
|
133
179
|
const fieldName = (0, select_columns_1.splitName)(a_expr.getText());
|
134
180
|
return {
|
135
181
|
column_name: alias || fieldName.name,
|
136
|
-
is_nullable:
|
182
|
+
is_nullable: exprResult.is_nullable,
|
137
183
|
table_name: fieldName.prefix,
|
138
184
|
table_schema: ''
|
139
185
|
};
|
140
186
|
}
|
141
187
|
throw Error('Column not found');
|
142
188
|
}
|
143
|
-
function traverse_a_expr(a_expr, fromColumns, traverseResult) {
|
189
|
+
function traverse_a_expr(a_expr, dbSchema, fromColumns, traverseResult) {
|
144
190
|
const a_expr_qual = a_expr.a_expr_qual();
|
145
191
|
if (a_expr_qual) {
|
146
|
-
|
192
|
+
const notNull = traverse_a_expr_qual(a_expr_qual, dbSchema, fromColumns, traverseResult);
|
193
|
+
return notNull;
|
147
194
|
}
|
148
|
-
return
|
195
|
+
return {
|
196
|
+
column_name: '',
|
197
|
+
is_nullable: true
|
198
|
+
};
|
149
199
|
}
|
150
|
-
function traverse_a_expr_qual(a_expr_qual, fromColumns, traverseResult) {
|
200
|
+
function traverse_a_expr_qual(a_expr_qual, dbSchema, fromColumns, traverseResult) {
|
151
201
|
const a_expr_lessless = a_expr_qual.a_expr_lessless();
|
152
202
|
if (a_expr_lessless) {
|
153
|
-
return traverse_a_expr_lessless(a_expr_lessless, fromColumns, traverseResult);
|
203
|
+
return traverse_a_expr_lessless(a_expr_lessless, dbSchema, fromColumns, traverseResult);
|
154
204
|
}
|
155
|
-
|
205
|
+
throw Error('traverse_a_expr_qual - Not expected:' + a_expr_qual.getText());
|
156
206
|
}
|
157
|
-
function traverse_a_expr_lessless(a_expr_lessless, fromColumns, traverseResult) {
|
207
|
+
function traverse_a_expr_lessless(a_expr_lessless, dbSchema, fromColumns, traverseResult) {
|
158
208
|
const a_expr_or = a_expr_lessless.a_expr_or_list()[0];
|
159
209
|
if (a_expr_or) {
|
160
|
-
return traverse_expr_or(a_expr_or, fromColumns, traverseResult);
|
210
|
+
return traverse_expr_or(a_expr_or, dbSchema, fromColumns, traverseResult);
|
161
211
|
}
|
162
|
-
|
212
|
+
throw Error('traverse_a_expr_lessless - Not expected:' + a_expr_lessless.getText());
|
163
213
|
}
|
164
|
-
function traverse_expr_or(a_expr_or, fromColumns, traverseResult) {
|
214
|
+
function traverse_expr_or(a_expr_or, dbSchema, fromColumns, traverseResult) {
|
165
215
|
const a_expr_and = a_expr_or.a_expr_and_list()[0];
|
166
216
|
if (a_expr_and) {
|
167
|
-
return traverse_expr_and(a_expr_and, fromColumns, traverseResult);
|
217
|
+
return traverse_expr_and(a_expr_and, dbSchema, fromColumns, traverseResult);
|
168
218
|
}
|
169
|
-
|
219
|
+
throw Error('traverse_expr_or - Not expected:' + a_expr_or.getText());
|
170
220
|
}
|
171
|
-
function traverse_expr_and(a_expr_and, fromColumns, traverseResult) {
|
221
|
+
function traverse_expr_and(a_expr_and, dbSchema, fromColumns, traverseResult) {
|
172
222
|
const a_expr_between = a_expr_and.a_expr_between_list()[0];
|
173
223
|
if (a_expr_between) {
|
174
|
-
return traverse_expr_between(a_expr_between, fromColumns, traverseResult);
|
224
|
+
return traverse_expr_between(a_expr_between, dbSchema, fromColumns, traverseResult);
|
175
225
|
}
|
176
|
-
|
226
|
+
throw Error('traverse_expr_and - Not expected:' + a_expr_and.getText());
|
177
227
|
}
|
178
|
-
function traverse_expr_between(a_expr_between, fromColumns, traverseResult) {
|
228
|
+
function traverse_expr_between(a_expr_between, dbSchema, fromColumns, traverseResult) {
|
179
229
|
const a_expr_in = a_expr_between.a_expr_in_list()[0];
|
180
230
|
if (a_expr_in) {
|
181
|
-
return traverse_expr_in(a_expr_in, fromColumns, traverseResult);
|
231
|
+
return traverse_expr_in(a_expr_in, dbSchema, fromColumns, traverseResult);
|
182
232
|
}
|
183
|
-
|
233
|
+
throw Error('traverse_expr_between - Not expected:' + a_expr_between.getText());
|
184
234
|
}
|
185
|
-
function traverse_expr_in(a_expr_in, fromColumns, traverseResult) {
|
235
|
+
function traverse_expr_in(a_expr_in, dbSchema, fromColumns, traverseResult) {
|
186
236
|
const a_expr_unary = a_expr_in.a_expr_unary_not();
|
187
237
|
if (a_expr_unary) {
|
188
|
-
return traverse_expr_unary(a_expr_unary, fromColumns, traverseResult);
|
238
|
+
return traverse_expr_unary(a_expr_unary, dbSchema, fromColumns, traverseResult);
|
189
239
|
}
|
190
|
-
|
240
|
+
throw Error('traverse_expr_in - Not expected:' + a_expr_in.getText());
|
191
241
|
}
|
192
|
-
function traverse_expr_unary(a_expr_unary, fromColumns, traverseResult) {
|
242
|
+
function traverse_expr_unary(a_expr_unary, dbSchema, fromColumns, traverseResult) {
|
193
243
|
const a_expr_isnull = a_expr_unary.a_expr_isnull();
|
194
244
|
if (a_expr_isnull) {
|
195
|
-
return traverse_expr_isnull(a_expr_isnull, fromColumns, traverseResult);
|
245
|
+
return traverse_expr_isnull(a_expr_isnull, dbSchema, fromColumns, traverseResult);
|
196
246
|
}
|
197
|
-
|
247
|
+
throw Error('traverse_expr_unary - Not expected:' + a_expr_unary.getText());
|
198
248
|
}
|
199
|
-
function traverse_expr_isnull(a_expr_isnull, fromColumns, traverseResult) {
|
249
|
+
function traverse_expr_isnull(a_expr_isnull, dbSchema, fromColumns, traverseResult) {
|
200
250
|
const a_expr_is_not = a_expr_isnull.a_expr_is_not();
|
201
251
|
if (a_expr_is_not) {
|
202
|
-
return traverse_expr_is_not(a_expr_is_not, fromColumns, traverseResult);
|
252
|
+
return traverse_expr_is_not(a_expr_is_not, dbSchema, fromColumns, traverseResult);
|
203
253
|
}
|
204
|
-
|
254
|
+
throw Error('traverse_expr_isnull - Not expected:' + a_expr_isnull.getText());
|
205
255
|
}
|
206
|
-
function traverse_expr_is_not(a_expr_is_not, fromColumns, traverseResult) {
|
256
|
+
function traverse_expr_is_not(a_expr_is_not, dbSchema, fromColumns, traverseResult) {
|
207
257
|
const a_expr_compare = a_expr_is_not.a_expr_compare();
|
208
258
|
if (a_expr_compare) {
|
209
|
-
return traverse_expr_compare(a_expr_compare, fromColumns, traverseResult);
|
259
|
+
return traverse_expr_compare(a_expr_compare, dbSchema, fromColumns, traverseResult);
|
210
260
|
}
|
211
|
-
|
261
|
+
throw Error('traverse_expr_is_not - Not expected:' + a_expr_is_not.getText());
|
212
262
|
}
|
213
|
-
function traverse_expr_compare(a_expr_compare, fromColumns, traverseResult) {
|
263
|
+
function traverse_expr_compare(a_expr_compare, dbSchema, fromColumns, traverseResult) {
|
214
264
|
const a_expr_like = a_expr_compare.a_expr_like_list()[0];
|
215
265
|
if (a_expr_like) {
|
216
|
-
return traverse_expr_like(a_expr_like, fromColumns, traverseResult);
|
266
|
+
return traverse_expr_like(a_expr_like, dbSchema, fromColumns, traverseResult);
|
217
267
|
}
|
218
|
-
|
268
|
+
throw Error('traverse_expr_compare - Not expected:' + a_expr_compare.getText());
|
219
269
|
}
|
220
|
-
function traverse_expr_like(a_expr_like, fromColumns, traverseResult) {
|
270
|
+
function traverse_expr_like(a_expr_like, dbSchema, fromColumns, traverseResult) {
|
221
271
|
const a_expr_qual_op = a_expr_like.a_expr_qual_op_list()[0];
|
222
272
|
if (a_expr_qual_op) {
|
223
|
-
return traverse_expr_qual_op(a_expr_qual_op, fromColumns, traverseResult);
|
273
|
+
return traverse_expr_qual_op(a_expr_qual_op, dbSchema, fromColumns, traverseResult);
|
224
274
|
}
|
225
|
-
|
275
|
+
throw Error('traverse_expr_like - Not expected:' + a_expr_like.getText());
|
226
276
|
}
|
227
|
-
function traverse_expr_qual_op(a_expr_qual_op, fromColumns, traverseResult) {
|
277
|
+
function traverse_expr_qual_op(a_expr_qual_op, dbSchema, fromColumns, traverseResult) {
|
228
278
|
const a_expr_unary_qualop = a_expr_qual_op.a_expr_unary_qualop_list()[0];
|
229
279
|
if (a_expr_unary_qualop) {
|
230
|
-
return traverse_expr_unary_qualop(a_expr_unary_qualop, fromColumns, traverseResult);
|
280
|
+
return traverse_expr_unary_qualop(a_expr_unary_qualop, dbSchema, fromColumns, traverseResult);
|
231
281
|
}
|
232
|
-
|
282
|
+
throw Error('traverse_expr_qual_op - Not expected:' + a_expr_qual_op.getText());
|
233
283
|
}
|
234
|
-
function traverse_expr_unary_qualop(a_expr_unary_qualop, fromColumns, traverseResult) {
|
284
|
+
function traverse_expr_unary_qualop(a_expr_unary_qualop, dbSchema, fromColumns, traverseResult) {
|
235
285
|
const a_expr_add = a_expr_unary_qualop.a_expr_add();
|
236
286
|
if (a_expr_add) {
|
237
|
-
const
|
238
|
-
|
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;
|
239
293
|
}
|
240
|
-
|
294
|
+
throw Error('traverse_expr_unary_qualop - Not expected:' + a_expr_unary_qualop.getText());
|
241
295
|
}
|
242
|
-
function traverse_expr_mul(a_expr_mul, fromColumns, traverseResult) {
|
296
|
+
function traverse_expr_mul(a_expr_mul, dbSchema, fromColumns, traverseResult) {
|
243
297
|
const a_expr_mul_list = a_expr_mul.a_expr_caret_list();
|
244
298
|
if (a_expr_mul_list) {
|
245
|
-
|
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;
|
246
305
|
}
|
247
|
-
|
306
|
+
throw Error('traverse_expr_mul - Not expected:' + a_expr_mul.getText());
|
248
307
|
}
|
249
|
-
function traverse_expr_caret(a_expr_caret, fromColumns, traverseResult) {
|
308
|
+
function traverse_expr_caret(a_expr_caret, dbSchema, fromColumns, traverseResult) {
|
250
309
|
const a_expr_unary_sign_list = a_expr_caret.a_expr_unary_sign_list();
|
251
310
|
if (a_expr_unary_sign_list) {
|
252
|
-
|
253
|
-
|
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;
|
254
318
|
}
|
255
|
-
|
319
|
+
throw Error('traverse_expr_caret - Not expected:' + a_expr_caret.getText());
|
256
320
|
}
|
257
|
-
function traverse_expr_unary_sign(a_expr_unary_sign, fromColumns, traverseResult) {
|
321
|
+
function traverse_expr_unary_sign(a_expr_unary_sign, dbSchema, fromColumns, traverseResult) {
|
258
322
|
const a_expr_at_time_zone = a_expr_unary_sign.a_expr_at_time_zone();
|
259
323
|
if (a_expr_at_time_zone) {
|
260
|
-
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);
|
261
325
|
}
|
262
|
-
|
326
|
+
throw Error('traverse_expr_unary_sign - Not expected:' + a_expr_unary_sign.getText());
|
263
327
|
}
|
264
|
-
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) {
|
265
329
|
const a_expr_collate = a_expr_at_time_zone.a_expr_collate();
|
266
330
|
if (a_expr_collate) {
|
267
|
-
return traverse_expr_collate(a_expr_collate, fromColumns, traverseResult);
|
331
|
+
return traverse_expr_collate(a_expr_collate, dbSchema, fromColumns, traverseResult);
|
268
332
|
}
|
269
|
-
|
333
|
+
throw Error('traverse_expr_at_time_zone - Not expected:' + a_expr_at_time_zone.getText());
|
270
334
|
}
|
271
|
-
function traverse_expr_collate(a_expr_collate, fromColumns, traverseResult) {
|
335
|
+
function traverse_expr_collate(a_expr_collate, dbSchema, fromColumns, traverseResult) {
|
272
336
|
const a_expr_typecast = a_expr_collate.a_expr_typecast();
|
273
337
|
if (a_expr_typecast) {
|
274
|
-
return traverse_expr_typecast(a_expr_typecast, fromColumns, traverseResult);
|
338
|
+
return traverse_expr_typecast(a_expr_typecast, dbSchema, fromColumns, traverseResult);
|
275
339
|
}
|
276
|
-
|
340
|
+
throw Error('traverse_expr_collate - Not expected:' + a_expr_collate.getText());
|
277
341
|
}
|
278
|
-
function traverse_expr_typecast(a_expr_typecast, fromColumns, traverseResult) {
|
342
|
+
function traverse_expr_typecast(a_expr_typecast, dbSchema, fromColumns, traverseResult) {
|
279
343
|
const c_expr = a_expr_typecast.c_expr();
|
280
344
|
if (c_expr) {
|
281
|
-
return traversec_expr(c_expr, fromColumns, traverseResult);
|
345
|
+
return traversec_expr(c_expr, dbSchema, fromColumns, traverseResult);
|
282
346
|
}
|
283
|
-
|
347
|
+
throw Error('traverse_expr_typecast - Not expected:' + a_expr_typecast.getText());
|
284
348
|
}
|
285
|
-
function traversec_expr(c_expr, fromColumns, traverseResult) {
|
286
|
-
var _a;
|
349
|
+
function traversec_expr(c_expr, dbSchema, fromColumns, traverseResult) {
|
350
|
+
var _a, _b;
|
287
351
|
if (c_expr instanceof PostgreSQLParser_1.C_expr_exprContext) {
|
288
352
|
const columnref = c_expr.columnref();
|
289
353
|
if (columnref) {
|
290
354
|
const fieldName = (0, select_columns_1.splitName)(columnref.getText());
|
291
|
-
const col = findColumn(fieldName
|
292
|
-
return
|
355
|
+
const col = findColumn(fieldName, fromColumns);
|
356
|
+
return col;
|
293
357
|
}
|
294
358
|
const aexprconst = c_expr.aexprconst();
|
295
359
|
if (aexprconst) {
|
296
|
-
|
360
|
+
const is_nullable = aexprconst.NULL_P() != null;
|
361
|
+
return {
|
362
|
+
column_name: aexprconst.getText(),
|
363
|
+
is_nullable
|
364
|
+
};
|
297
365
|
}
|
298
366
|
if (c_expr.PARAM()) {
|
299
|
-
traverseResult.parametersNullability.push(
|
367
|
+
traverseResult.parametersNullability.push(true);
|
368
|
+
return {
|
369
|
+
column_name: c_expr.PARAM().getText(),
|
370
|
+
is_nullable: false
|
371
|
+
};
|
300
372
|
}
|
301
373
|
const func_application = (_a = c_expr.func_expr()) === null || _a === void 0 ? void 0 : _a.func_application();
|
302
374
|
if (func_application) {
|
303
|
-
|
375
|
+
const isNotNull = traversefunc_application(func_application, dbSchema, fromColumns, traverseResult);
|
376
|
+
return {
|
377
|
+
column_name: func_application.getText(),
|
378
|
+
is_nullable: !isNotNull
|
379
|
+
};
|
380
|
+
}
|
381
|
+
const func_expr_common_subexpr = (_b = c_expr.func_expr()) === null || _b === void 0 ? void 0 : _b.func_expr_common_subexpr();
|
382
|
+
if (func_expr_common_subexpr) {
|
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);
|
304
400
|
}
|
305
401
|
}
|
306
402
|
if (c_expr instanceof PostgreSQLParser_1.C_expr_caseContext) {
|
307
|
-
|
403
|
+
const isNotNull = traversec_expr_case(c_expr, dbSchema, fromColumns, traverseResult);
|
404
|
+
return {
|
405
|
+
column_name: c_expr.getText(),
|
406
|
+
is_nullable: !isNotNull
|
407
|
+
};
|
308
408
|
}
|
309
|
-
|
409
|
+
if (c_expr instanceof PostgreSQLParser_1.C_expr_existsContext) {
|
410
|
+
//todo - traverse
|
411
|
+
return {
|
412
|
+
column_name: c_expr.getText(),
|
413
|
+
is_nullable: false
|
414
|
+
};
|
415
|
+
}
|
416
|
+
throw Error('traversec_expr - Not expected:' + c_expr.getText());
|
310
417
|
}
|
311
418
|
function filterColumns(fromColumns, fieldName) {
|
312
419
|
return fromColumns.filter(col => (fieldName.prefix === '' || col.table_name === fieldName.prefix)
|
@@ -319,61 +426,96 @@ function excludeColumns(fromColumns, excludeList) {
|
|
319
426
|
return !found;
|
320
427
|
});
|
321
428
|
}
|
322
|
-
function traversec_expr_case(c_expr_case, fromColumns, traverseResult) {
|
429
|
+
function traversec_expr_case(c_expr_case, dbSchema, fromColumns, traverseResult) {
|
323
430
|
var _a;
|
324
431
|
const case_expr = c_expr_case.case_expr();
|
325
|
-
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));
|
326
433
|
const elseExpr = (_a = case_expr.case_default()) === null || _a === void 0 ? void 0 : _a.a_expr();
|
327
|
-
const elseIsNotNull = elseExpr ? traverse_a_expr(elseExpr, fromColumns, traverseResult) : false;
|
434
|
+
const elseIsNotNull = elseExpr ? !traverse_a_expr(elseExpr, dbSchema, fromColumns, traverseResult).is_nullable : false;
|
328
435
|
return elseIsNotNull && whenIsNotNull;
|
329
436
|
}
|
330
|
-
function traversewhen_clause(when_clause, fromColumns, traverseResult) {
|
437
|
+
function traversewhen_clause(when_clause, dbSchema, fromColumns, traverseResult) {
|
331
438
|
const a_expr_list = when_clause.a_expr_list();
|
332
439
|
const thenExprList = a_expr_list.filter((_, index) => index % 2 == 1);
|
333
|
-
return thenExprList.every(thenExpr => traverse_a_expr(thenExpr, fromColumns, traverseResult));
|
440
|
+
return thenExprList.every(thenExpr => traverse_a_expr(thenExpr, dbSchema, fromColumns, traverseResult));
|
334
441
|
}
|
335
|
-
function traversefunc_application(func_application, fromColumns, traverseResult) {
|
442
|
+
function traversefunc_application(func_application, dbSchema, fromColumns, traverseResult) {
|
443
|
+
var _a;
|
336
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));
|
337
447
|
if (functionName === 'count') {
|
338
448
|
return true;
|
339
449
|
}
|
340
|
-
if (functionName === 'concat') {
|
341
|
-
const func_arg_expr_list = func_application.func_arg_list().func_arg_expr_list();
|
450
|
+
if (functionName === 'concat' || functionName === 'concat_ws') {
|
342
451
|
if (func_arg_expr_list) {
|
343
|
-
return
|
452
|
+
return argsResult.every(col => col);
|
344
453
|
}
|
345
454
|
return false;
|
346
455
|
}
|
456
|
+
if (functionName === 'to_date') {
|
457
|
+
const firstArg = argsResult[0];
|
458
|
+
return firstArg;
|
459
|
+
}
|
460
|
+
if (functionName === 'generate_series') {
|
461
|
+
return true;
|
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
|
+
}
|
347
466
|
return false;
|
348
467
|
}
|
349
|
-
function
|
468
|
+
function traversefunc_expr_common_subexpr(func_expr_common_subexpr, dbSchema, fromColumns, traverseResult) {
|
469
|
+
if (func_expr_common_subexpr.COALESCE()) {
|
470
|
+
const func_arg_list = func_expr_common_subexpr.expr_list().a_expr_list();
|
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);
|
480
|
+
}
|
481
|
+
if (func_expr_common_subexpr.EXTRACT()) {
|
482
|
+
const a_expr = func_expr_common_subexpr.extract_list().a_expr();
|
483
|
+
const result = traverse_a_expr(a_expr, dbSchema, fromColumns, traverseResult);
|
484
|
+
return !result.is_nullable;
|
485
|
+
}
|
486
|
+
return false;
|
487
|
+
}
|
488
|
+
function traversefunc_arg_expr(func_arg_expr, dbSchema, fromColumns, traverseResult) {
|
350
489
|
const a_expr = func_arg_expr.a_expr();
|
351
|
-
return traverse_a_expr(a_expr, fromColumns, traverseResult);
|
490
|
+
return !traverse_a_expr(a_expr, dbSchema, fromColumns, traverseResult).is_nullable;
|
352
491
|
}
|
353
492
|
function findColumn(fieldName, fromColumns) {
|
354
|
-
const col = fromColumns.find(col => col.column_name === fieldName);
|
493
|
+
const col = fromColumns.find(col => (fieldName.prefix === '' || col.table_name.toLowerCase() === fieldName.prefix.toLowerCase()) && col.column_name.toLowerCase() === fieldName.name.toLowerCase());
|
355
494
|
if (col == null) {
|
356
|
-
throw Error('Column not found: ' + fieldName);
|
495
|
+
throw Error('Column not found: ' + fieldNameToString(fieldName));
|
357
496
|
}
|
358
497
|
return col;
|
359
498
|
}
|
499
|
+
function fieldNameToString(fieldName) {
|
500
|
+
return fieldName.prefix !== '' ? `${fieldName.prefix}.${fieldName.name}` : fieldName.name;
|
501
|
+
}
|
360
502
|
function checkIsNullable(where_clause, field) {
|
361
503
|
const isNotNullResult = !field.is_nullable || isNotNull(field, where_clause);
|
362
504
|
const col = Object.assign(Object.assign({}, field), { is_nullable: !isNotNullResult });
|
363
505
|
return col;
|
364
506
|
}
|
365
|
-
function traverse_from_clause(from_clause, dbSchema, traverseResult) {
|
507
|
+
function traverse_from_clause(from_clause, dbSchema, fromColumns, traverseResult) {
|
366
508
|
const from_list = from_clause.from_list();
|
367
509
|
if (from_list) {
|
368
|
-
return traverse_from_list(from_list, dbSchema, traverseResult);
|
510
|
+
return traverse_from_list(from_list, dbSchema, fromColumns, traverseResult);
|
369
511
|
}
|
370
512
|
return [];
|
371
513
|
}
|
372
|
-
function traverse_from_list(from_list, dbSchema, traverseResult) {
|
373
|
-
const
|
374
|
-
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;
|
375
517
|
}
|
376
|
-
function traverse_table_ref(table_ref, dbSchema, traverseResult) {
|
518
|
+
function traverse_table_ref(table_ref, dbSchema, fromColumns, traverseResult) {
|
377
519
|
const allColumns = [];
|
378
520
|
const relation_expr = table_ref.relation_expr();
|
379
521
|
const aliasClause = table_ref.alias_clause();
|
@@ -381,26 +523,30 @@ function traverse_table_ref(table_ref, dbSchema, traverseResult) {
|
|
381
523
|
if (relation_expr) {
|
382
524
|
const tableName = traverse_relation_expr(relation_expr, dbSchema);
|
383
525
|
const tableNameWithAlias = alias ? alias : tableName;
|
384
|
-
const
|
385
|
-
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);
|
386
528
|
}
|
387
529
|
const table_ref_list = table_ref.table_ref_list();
|
388
|
-
|
530
|
+
const join_type_list = table_ref.join_type_list();
|
389
531
|
const join_qual_list = table_ref.join_qual_list();
|
390
532
|
if (table_ref_list) {
|
391
533
|
const joinColumns = table_ref_list.flatMap((table_ref, joinIndex) => {
|
392
|
-
|
534
|
+
const joinType = join_type_list[joinIndex]; //INNER, LEFT
|
393
535
|
const joinQual = join_qual_list[joinIndex];
|
394
|
-
const joinColumns = traverse_table_ref(table_ref, dbSchema, traverseResult);
|
536
|
+
const joinColumns = traverse_table_ref(table_ref, dbSchema, fromColumns, traverseResult);
|
395
537
|
const isUsing = (joinQual === null || joinQual === void 0 ? void 0 : joinQual.USING()) ? true : false;
|
538
|
+
const isLeftJoin = joinType === null || joinType === void 0 ? void 0 : joinType.LEFT();
|
396
539
|
const filteredColumns = isUsing ? filterUsingColumns(joinColumns, joinQual) : joinColumns;
|
397
|
-
|
540
|
+
const resultColumns = isLeftJoin ? filteredColumns.map(col => (Object.assign(Object.assign({}, col), { is_nullable: true }))) : filteredColumns;
|
541
|
+
return resultColumns;
|
398
542
|
});
|
399
543
|
allColumns.push(...joinColumns);
|
400
544
|
}
|
401
545
|
const select_with_parens = table_ref.select_with_parens();
|
402
546
|
if (select_with_parens) {
|
403
|
-
|
547
|
+
const columns = traverse_select_with_parens(select_with_parens, dbSchema, fromColumns, traverseResult);
|
548
|
+
const withAlias = columns.map(col => (Object.assign(Object.assign({}, col), { table_name: alias || col.table_name })));
|
549
|
+
return withAlias;
|
404
550
|
}
|
405
551
|
return allColumns;
|
406
552
|
}
|
@@ -409,14 +555,14 @@ function filterUsingColumns(fromColumns, joinQual) {
|
|
409
555
|
const filteredColumns = excludeColumns(fromColumns, excludeList);
|
410
556
|
return filteredColumns;
|
411
557
|
}
|
412
|
-
function traverse_select_with_parens(select_with_parens, dbSchema, traverseResult) {
|
558
|
+
function traverse_select_with_parens(select_with_parens, dbSchema, fromColumns, traverseResult) {
|
413
559
|
const select_with_parens2 = select_with_parens.select_with_parens();
|
414
560
|
if (select_with_parens2) {
|
415
|
-
return traverse_select_with_parens(select_with_parens2, dbSchema, traverseResult);
|
561
|
+
return traverse_select_with_parens(select_with_parens2, dbSchema, fromColumns, traverseResult);
|
416
562
|
}
|
417
563
|
const select_no_parens = select_with_parens.select_no_parens();
|
418
564
|
if (select_no_parens) {
|
419
|
-
return traverse_select_no_parens(select_no_parens, dbSchema, traverseResult);
|
565
|
+
return traverse_select_no_parens(select_no_parens, dbSchema, fromColumns, traverseResult);
|
420
566
|
}
|
421
567
|
return [];
|
422
568
|
}
|
@@ -434,12 +580,22 @@ function traverse_qualified_name(qualified_name, dbSchema) {
|
|
434
580
|
}
|
435
581
|
function traverse_colid(colid, dbSchema) {
|
436
582
|
const identifier = colid.identifier();
|
437
|
-
|
583
|
+
if (identifier) {
|
584
|
+
return traverse_identifier(identifier, dbSchema);
|
585
|
+
}
|
586
|
+
const unreserved_keyword = colid.unreserved_keyword();
|
587
|
+
if (unreserved_keyword) {
|
588
|
+
return traverse_unreserved_keyword(unreserved_keyword, dbSchema);
|
589
|
+
}
|
590
|
+
return '';
|
438
591
|
}
|
439
592
|
function traverse_identifier(identifier, dbSchema) {
|
440
593
|
const tableName = identifier.Identifier().getText();
|
441
594
|
return tableName;
|
442
595
|
}
|
596
|
+
function traverse_unreserved_keyword(unreserved_keyword, dbSchema) {
|
597
|
+
return unreserved_keyword.getText();
|
598
|
+
}
|
443
599
|
function paramIsList(c_expr) {
|
444
600
|
// Traverse up the parent chain until we find an IN clause
|
445
601
|
// This guarentee the param is a direct child of the in clause. Ex. id IN ($1);
|
@@ -466,16 +622,19 @@ function paramIsList(c_expr) {
|
|
466
622
|
const a_expr_qual = a_expr_lessless === null || a_expr_lessless === void 0 ? void 0 : a_expr_lessless.parentCtx;
|
467
623
|
const a_expr = a_expr_qual === null || a_expr_qual === void 0 ? void 0 : a_expr_qual.parentCtx;
|
468
624
|
const expr_list = a_expr === null || a_expr === void 0 ? void 0 : a_expr.parentCtx;
|
469
|
-
|
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;
|
470
627
|
}
|
471
628
|
function traverseInsertstmt(insertstmt, dbSchema) {
|
472
629
|
const insert_target = insertstmt.insert_target();
|
473
630
|
const tableName = insert_target.getText();
|
474
631
|
const insertColumns = dbSchema.filter(col => col.table_name === tableName);
|
475
632
|
const insert_rest = insertstmt.insert_rest();
|
476
|
-
const
|
633
|
+
const insertColumnsList = insert_rest.insert_column_list()
|
477
634
|
.insert_column_item_list()
|
478
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);
|
479
638
|
return {
|
480
639
|
queryType: 'Insert',
|
481
640
|
parametersNullability,
|
@@ -483,6 +642,35 @@ function traverseInsertstmt(insertstmt, dbSchema) {
|
|
483
642
|
parameterList: []
|
484
643
|
};
|
485
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
|
+
}
|
486
674
|
function traverseDeletestmt(deleteStmt, dbSchema, traverseResult) {
|
487
675
|
return {
|
488
676
|
queryType: 'Delete',
|
@@ -496,12 +684,12 @@ function traverseUpdatestmt(updatestmt, dbSchema, traverseResult) {
|
|
496
684
|
const tableName = relation_expr_opt_alias.getText();
|
497
685
|
const updateColumns = dbSchema.filter(col => col.table_name === tableName);
|
498
686
|
updatestmt.set_clause_list().set_clause_list()
|
499
|
-
.map(set_clause => traverse_set_clause(set_clause, updateColumns, traverseResult));
|
687
|
+
.map(set_clause => traverse_set_clause(set_clause, dbSchema, updateColumns, traverseResult));
|
500
688
|
const dataParameters = traverseResult.parametersNullability;
|
501
689
|
const where_clause = updatestmt.where_or_current_clause();
|
502
690
|
if (where_clause) {
|
503
691
|
const a_expr = where_clause.a_expr();
|
504
|
-
traverse_a_expr(a_expr, updateColumns, traverseResult);
|
692
|
+
traverse_a_expr(a_expr, dbSchema, updateColumns, traverseResult);
|
505
693
|
}
|
506
694
|
const whereParameters = traverseResult.parametersNullability.slice(dataParameters.length);
|
507
695
|
return {
|
@@ -512,15 +700,14 @@ function traverseUpdatestmt(updatestmt, dbSchema, traverseResult) {
|
|
512
700
|
whereParamtersNullability: whereParameters
|
513
701
|
};
|
514
702
|
}
|
515
|
-
function traverse_set_clause(set_clause, updateColumns, traverseResult) {
|
703
|
+
function traverse_set_clause(set_clause, dbSchema, updateColumns, traverseResult) {
|
516
704
|
const set_target = set_clause.set_target();
|
517
|
-
const columnName = set_target.getText();
|
705
|
+
const columnName = (0, select_columns_1.splitName)(set_target.getText());
|
518
706
|
const column = findColumn(columnName, updateColumns);
|
519
707
|
const a_expr = set_clause.a_expr();
|
520
|
-
const
|
521
|
-
|
522
|
-
|
523
|
-
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;
|
524
711
|
}
|
525
712
|
return !column.is_nullable;
|
526
713
|
}
|
@@ -530,8 +717,9 @@ function traverse_insert_column_item(insert_column_item, dbSchema) {
|
|
530
717
|
}
|
531
718
|
function isNotNull_colid(colid, dbSchema) {
|
532
719
|
const columnName = colid.getText();
|
533
|
-
const
|
534
|
-
|
720
|
+
const fieldName = (0, select_columns_1.splitName)(columnName);
|
721
|
+
const column = findColumn(fieldName, dbSchema);
|
722
|
+
return column;
|
535
723
|
}
|
536
724
|
function isNotNull(field, where_clause) {
|
537
725
|
const a_expr = where_clause.a_expr();
|
@@ -717,4 +905,27 @@ function isNotNull_c_expr(c_expr, field) {
|
|
717
905
|
}
|
718
906
|
return false;
|
719
907
|
}
|
908
|
+
function checkLimit(selectstmt) {
|
909
|
+
const select_no_parens = selectstmt.select_no_parens();
|
910
|
+
if (select_no_parens) {
|
911
|
+
return checkLimit_select_no_parens(select_no_parens);
|
912
|
+
}
|
913
|
+
const select_with_parens = selectstmt.select_with_parens();
|
914
|
+
if (select_with_parens) {
|
915
|
+
return checkLimit_select_with_parens(select_with_parens);
|
916
|
+
}
|
917
|
+
return undefined;
|
918
|
+
}
|
919
|
+
function checkLimit_select_no_parens(select_no_parens) {
|
920
|
+
var _a, _b, _c;
|
921
|
+
return +((_c = (_b = (_a = select_no_parens.select_limit()) === null || _a === void 0 ? void 0 : _a.limit_clause()) === null || _b === void 0 ? void 0 : _b.select_limit_value()) === null || _c === void 0 ? void 0 : _c.getText());
|
922
|
+
}
|
923
|
+
function checkLimit_select_with_parens(select_with_parens) {
|
924
|
+
return checkLimit(select_with_parens);
|
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
|
+
}
|
720
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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"}
|
@@ -6,5 +6,5 @@ export type EnumColumnMap = {
|
|
6
6
|
};
|
7
7
|
export type EnumType = `ENUM(${string})`;
|
8
8
|
export type SQLiteType = 'INTEGER' | 'INTEGER[]' | 'TEXT' | 'TEXT[]' | 'NUMERIC' | 'NUMERIC[]' | 'REAL' | 'REAL[]' | 'DATE' | 'DATE_TIME' | 'BLOB' | 'BOOLEAN' | EnumType | 'any';
|
9
|
-
export type PostgresType = 'bool' | 'bool[]' | 'bytea' | 'char' | 'char[]' | 'bpchar' | 'bpchar[]' | 'name' | 'name[]' | 'int4' | 'int4[]' | 'int8' | 'int8[]' | 'int2' | 'int2[]' | 'text' | 'text[]' | 'varchar' | 'varchar[]' | 'date' | 'date[]' | 'bit' | 'bit[]' | 'numeric' | 'numeric[]' | 'uuid' | 'uuid[]' | 'float4' | 'float4[]' | 'float8' | 'float8[]';
|
9
|
+
export type PostgresType = 'bool' | 'bool[]' | 'bytea' | 'char' | 'char[]' | 'bpchar' | 'bpchar[]' | 'name' | 'name[]' | 'int4' | 'int4[]' | 'int8' | 'int8[]' | 'int2' | 'int2[]' | 'text' | 'text[]' | 'varchar' | 'varchar[]' | 'date' | 'date[]' | 'bit' | 'bit[]' | 'numeric' | 'numeric[]' | 'uuid' | 'uuid[]' | 'float4' | 'float4[]' | 'float8' | 'float8[]' | 'timestamp' | 'timestamp[]' | 'timestamptz' | 'timestamptz[]';
|
10
10
|
//# sourceMappingURL=types.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG;IACrB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;CAC/B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC3B,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC/B,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG,QAAQ,MAAM,GAAG,CAAC;AAEzC,MAAM,MAAM,UAAU,GACnB,SAAS,GACT,WAAW,GACX,MAAM,GACN,QAAQ,GACR,SAAS,GACT,WAAW,GACX,MAAM,GACN,QAAQ,GACR,MAAM,GACN,WAAW,GACX,MAAM,GACN,SAAS,GACT,QAAQ,GACR,KAAK,CAAC;AAET,MAAM,MAAM,YAAY,GACrB,MAAM,GACN,QAAQ,GACR,OAAO,GACP,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,MAAM,GACN,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,SAAS,GACT,WAAW,GACX,MAAM,GACN,QAAQ,GACR,KAAK,GACL,OAAO,GACP,SAAS,GACT,WAAW,GACX,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,UAAU,CAAC"}
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/sqlite-query-analyzer/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG;IACrB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;CAC/B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC3B,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC/B,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG,QAAQ,MAAM,GAAG,CAAC;AAEzC,MAAM,MAAM,UAAU,GACnB,SAAS,GACT,WAAW,GACX,MAAM,GACN,QAAQ,GACR,SAAS,GACT,WAAW,GACX,MAAM,GACN,QAAQ,GACR,MAAM,GACN,WAAW,GACX,MAAM,GACN,SAAS,GACT,QAAQ,GACR,KAAK,CAAC;AAET,MAAM,MAAM,YAAY,GACrB,MAAM,GACN,QAAQ,GACR,OAAO,GACP,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,MAAM,GACN,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,SAAS,GACT,WAAW,GACX,MAAM,GACN,QAAQ,GACR,KAAK,GACL,OAAO,GACP,SAAS,GACT,WAAW,GACX,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,UAAU,GACV,WAAW,GACX,aAAa,GACb,aAAa,GACb,eAAe,CAAC"}
|