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.
@@ -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,EAmBrB,GAAG,CAAC;AAGT,wBAAgB,aAAa,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,CAiEhE"}
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"}
@@ -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 'number';
48
+ return 'string';
47
49
  case 'int8[]':
48
- return 'number[]';
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
@@ -1 +1 @@
1
- {"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../../src/dialects/postgres.ts"],"names":[],"mappings":";;;AAyBA,sCAiEC;AAvFY,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;CACL,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,CAAC;IACpB,CAAC;AACF,CAAC"}
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,6 +1,6 @@
1
1
  {
2
2
  "name": "typesql-cli",
3
- "version": "0.15.0-experimental.2",
3
+ "version": "0.15.0-experimental.4",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -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;AAwB9D,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
+ {"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 isLimitOne = queryPlans[0].startsWith("Limit ") && parseSingleQueryPlan(queryPlans[0]) === 1;
71
- if (isLimitOne) {
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":"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"}
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 { QueryType } from '../types';
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":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,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;CACzB,CAAA;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,GAAG,sBAAsB,CAM9F"}
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":";;AAaA,4BAMC;AAnBD,+DAAyE;AACzE,yCAAyC;AAYzC,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
+ {"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,EAA27B,WAAW,EAA2I,MAAM,mDAAmD,CAAC;AAClpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAElD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAgBxD,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,oBAAoB,EAAE,GAAG,sBAAsB,CAuBvG"}
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 filteredColumns = filterColumns_simple_select_pramary(simple_select_pramary, fromColumns, traverseResult);
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 filterColumns_simple_select_pramary(simple_select_pramary, fromColumns, traverseResult) {
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 isNotNull = traverse_a_expr(a_expr, fromColumns, traverseResult);
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: !isNotNull,
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
- return traverse_a_expr_qual(a_expr_qual, fromColumns, traverseResult);
192
+ const notNull = traverse_a_expr_qual(a_expr_qual, dbSchema, fromColumns, traverseResult);
193
+ return notNull;
147
194
  }
148
- return false;
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
- return false;
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
- return false;
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
- return false;
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
- return false;
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
- return false;
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
- return false;
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
- return false;
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
- return false;
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
- return false;
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
- return false;
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
- return false;
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
- return false;
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 isNotNull = a_expr_add.a_expr_mul_list().every(a_expr_mul => traverse_expr_mul(a_expr_mul, fromColumns, traverseResult));
238
- return isNotNull;
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
- return false;
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
- return a_expr_mul.a_expr_caret_list().every(a_expr_caret => traverse_expr_caret(a_expr_caret, fromColumns, traverseResult));
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
- return false;
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
- return a_expr_caret.a_expr_unary_sign_list().every(a_expr_unary_sign => traverse_expr_unary_sign(a_expr_unary_sign, fromColumns, traverseResult));
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
- return false;
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
- return false;
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
- return false;
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
- return false;
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
- return false;
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.name, fromColumns);
292
- return !col.is_nullable;
355
+ const col = findColumn(fieldName, fromColumns);
356
+ return col;
293
357
  }
294
358
  const aexprconst = c_expr.aexprconst();
295
359
  if (aexprconst) {
296
- return aexprconst.NULL_P() === null;
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(false);
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
- return traversefunc_application(func_application, fromColumns, traverseResult);
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
- return traversec_expr_case(c_expr, fromColumns, traverseResult);
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
- return false;
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 func_arg_expr_list.every(func_arg_expr => traversefunc_arg_expr(func_arg_expr, fromColumns, traverseResult));
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 traversefunc_arg_expr(func_arg_expr, fromColumns, traverseResult) {
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 fromColumns = from_list.table_ref_list().flatMap(table_ref => traverse_table_ref(table_ref, dbSchema, traverseResult));
374
- return fromColumns;
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 fromColumns = dbSchema.filter(col => col.table_name === tableName).map(col => (Object.assign(Object.assign({}, col), { table_name: tableNameWithAlias })));
385
- allColumns.push(...fromColumns);
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
- // const join_type_list = table_ref.join_type_list();
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
- // const joinType = join_type_list[joinIndex]; //INNER, LEFT
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
- return filteredColumns;
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
- return traverse_select_with_parens(select_with_parens, dbSchema, traverseResult);
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
- return traverse_identifier(identifier, dbSchema);
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
- return expr_list instanceof PostgreSQLParser_1.Expr_listContext;
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 parametersNullability = insert_rest.insert_column_list()
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 paramsBefore = traverseResult.parametersNullability.length;
521
- traverse_a_expr(a_expr, updateColumns, traverseResult);
522
- for (let i = paramsBefore; i < traverseResult.parametersNullability.length; i++) {
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 column = findColumn(columnName, dbSchema);
534
- return !column.is_nullable;
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;IAE/B,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,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"}