typesql-cli 0.16.5 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dialects/postgres.d.ts.map +1 -1
  2. package/dialects/postgres.js +4 -0
  3. package/dialects/postgres.js.map +1 -1
  4. package/drivers/postgres.d.ts +15 -0
  5. package/drivers/postgres.d.ts.map +1 -1
  6. package/drivers/postgres.js +61 -1
  7. package/drivers/postgres.js.map +1 -1
  8. package/drivers/types.d.ts +9 -0
  9. package/drivers/types.d.ts.map +1 -1
  10. package/mysql-query-analyzer/infer-column-nullability.d.ts.map +1 -1
  11. package/mysql-query-analyzer/infer-column-nullability.js +3 -0
  12. package/mysql-query-analyzer/infer-column-nullability.js.map +1 -1
  13. package/package.json +1 -1
  14. package/postgres-query-analyzer/describe.d.ts.map +1 -1
  15. package/postgres-query-analyzer/describe.js +50 -26
  16. package/postgres-query-analyzer/describe.js.map +1 -1
  17. package/postgres-query-analyzer/enum-parser.d.ts +2 -0
  18. package/postgres-query-analyzer/enum-parser.d.ts.map +1 -0
  19. package/postgres-query-analyzer/enum-parser.js +19 -0
  20. package/postgres-query-analyzer/enum-parser.js.map +1 -0
  21. package/postgres-query-analyzer/enum_parser.d.ts +2 -0
  22. package/postgres-query-analyzer/enum_parser.d.ts.map +1 -0
  23. package/postgres-query-analyzer/enum_parser.js +17 -0
  24. package/postgres-query-analyzer/enum_parser.js.map +1 -0
  25. package/postgres-query-analyzer/parser.d.ts +3 -2
  26. package/postgres-query-analyzer/parser.d.ts.map +1 -1
  27. package/postgres-query-analyzer/parser.js +4 -4
  28. package/postgres-query-analyzer/parser.js.map +1 -1
  29. package/postgres-query-analyzer/traverse.d.ts +8 -2
  30. package/postgres-query-analyzer/traverse.d.ts.map +1 -1
  31. package/postgres-query-analyzer/traverse.js +58 -12
  32. package/postgres-query-analyzer/traverse.js.map +1 -1
  33. package/util.d.ts +1 -0
  34. package/util.d.ts.map +1 -1
  35. package/util.js +10 -1
  36. package/util.js.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,EAuCrB,GAAG,CAAC;AAGT,wBAAgB,aAAa,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,CA6FhE"}
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,EAuCrB,GAAG,CAAC;AAGT,wBAAgB,aAAa,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM,CAiGhE"}
@@ -43,6 +43,10 @@ exports.postgresTypes = {
43
43
  2951: '_uuid'
44
44
  };
45
45
  function mapColumnType(postgresType) {
46
+ if (postgresType.startsWith('enum(')) {
47
+ const enumValues = postgresType.substring(postgresType.indexOf('(') + 1, postgresType.indexOf(')'));
48
+ return enumValues.split(',').join(' | ');
49
+ }
46
50
  switch (postgresType) {
47
51
  case 'bool':
48
52
  return 'boolean';
@@ -1 +1 @@
1
- {"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../../src/dialects/postgres.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../../src/dialects/postgres.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,21 @@ import { Result, ResultAsync } from 'neverthrow';
5
5
  import { ColumnSchema } from '../mysql-query-analyzer/types';
6
6
  import { ForeignKeyInfo } from '../sqlite-query-analyzer/query-executor';
7
7
  export declare function loadDbSchema(sql: Sql): ResultAsync<PostgresColumnSchema[], TypeSqlError>;
8
+ export type EnumMap = Map<number, EnumResult[]>;
9
+ export declare function loadEnums(sql: Sql): ResultAsync<EnumMap, TypeSqlError>;
10
+ export type EnumResult = {
11
+ type_oid: number;
12
+ enumlabel: string;
13
+ };
14
+ export type CheckConstraintResult = Record<string, string>;
15
+ export declare function loadCheckConstraints(sql: Sql): ResultAsync<CheckConstraintResult, TypeSqlError>;
16
+ export type CheckConstraintType = {
17
+ schema_name: string;
18
+ table_name: string;
19
+ column_name: string;
20
+ constraint_name: string;
21
+ constraint_definition: string;
22
+ };
8
23
  export declare function mapToColumnSchema(col: PostgresColumnSchema): ColumnSchema;
9
24
  export declare const postgresDescribe: (sql: Sql, sqlQuery: string) => ResultAsync<PostgresDescribe, TypeSqlError>;
10
25
  export declare function createPostgresClient(databaseUri: string): Result<DatabaseClient, TypeSqlError>;
@@ -1 +1 @@
1
- {"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../../src/drivers/postgres.ts"],"names":[],"mappings":"AAAA,OAAiB,EAAiB,GAAG,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAuB,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAM,MAAM,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAEzE,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW,CAAC,oBAAoB,EAAE,EAAE,YAAY,CAAC,CA0DxF;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,oBAAoB,GAAG,YAAY,CAYzE;AAED,eAAO,MAAM,gBAAgB,QAAS,GAAG,YAAY,MAAM,KAAG,WAAW,CAAC,gBAAgB,EAAE,YAAY,CAkBvG,CAAA;AAWD,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC,cAAc,EAAE,YAAY,CAAC,CAM9F;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW,CAAC,cAAc,EAAE,EAAE,YAAY,CAAC,CA8BrF"}
1
+ {"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../../src/drivers/postgres.ts"],"names":[],"mappings":"AAAA,OAAiB,EAAiB,GAAG,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAuB,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAM,MAAM,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAIzE,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW,CAAC,oBAAoB,EAAE,EAAE,YAAY,CAAC,CA0DxF;AAED,MAAM,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAA;AAE/C,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,CAKtE;AAED,MAAM,MAAM,UAAU,GAAG;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CAClB,CAAA;AAcD,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAC1D,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAY/F;AAED,MAAM,MAAM,mBAAmB,GAAG;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;CAC9B,CAAA;AAwBD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,oBAAoB,GAAG,YAAY,CAYzE;AAED,eAAO,MAAM,gBAAgB,QAAS,GAAG,YAAY,MAAM,KAAG,WAAW,CAAC,gBAAgB,EAAE,YAAY,CAkBvG,CAAA;AAWD,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC,cAAc,EAAE,YAAY,CAAC,CAM9F;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW,CAAC,cAAc,EAAE,EAAE,YAAY,CAAC,CA8BrF"}
@@ -14,12 +14,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.postgresDescribe = void 0;
16
16
  exports.loadDbSchema = loadDbSchema;
17
+ exports.loadEnums = loadEnums;
18
+ exports.loadCheckConstraints = loadCheckConstraints;
17
19
  exports.mapToColumnSchema = mapToColumnSchema;
18
20
  exports.createPostgresClient = createPostgresClient;
19
21
  exports.loadForeignKeys = loadForeignKeys;
20
22
  const postgres_1 = __importDefault(require("postgres"));
21
23
  const neverthrow_1 = require("neverthrow");
22
24
  const postgres_2 = require("../dialects/postgres");
25
+ const util_1 = require("../util");
26
+ const enum_parser_1 = require("../postgres-query-analyzer/enum-parser");
23
27
  function loadDbSchema(sql) {
24
28
  return neverthrow_1.ResultAsync.fromThrowable(() => __awaiter(this, void 0, void 0, function* () {
25
29
  const result = yield sql `
@@ -54,7 +58,7 @@ function loadDbSchema(sql) {
54
58
  ON t.table_name = col.table_name
55
59
  AND t.table_schema = col.table_schema
56
60
  JOIN
57
- pg_catalog.pg_type ty on pg_catalog.format_type(ty.oid, NULL) = col.data_type
61
+ pg_catalog.pg_type ty on ty.typname = col.udt_name
58
62
  LEFT JOIN
59
63
  pg_constraint con ON con.conrelid = c.oid
60
64
  AND col.ordinal_position = ANY (con.conkey)
@@ -75,6 +79,62 @@ function loadDbSchema(sql) {
75
79
  }));
76
80
  }), err => convertPostgresErrorToTypeSQLError(err))();
77
81
  }
82
+ function loadEnums(sql) {
83
+ return (neverthrow_1.ResultAsync.fromThrowable(() => _loadEnums(sql), err => convertPostgresErrorToTypeSQLError(err))()).map(enumResult => {
84
+ const enumMap = (0, util_1.groupBy)(enumResult, (e) => e.type_oid);
85
+ return enumMap;
86
+ });
87
+ }
88
+ function _loadEnums(sql) {
89
+ return __awaiter(this, void 0, void 0, function* () {
90
+ const result = yield sql `
91
+ SELECT
92
+ t.oid AS type_oid,
93
+ e.enumlabel
94
+ FROM pg_type t
95
+ JOIN pg_enum e ON t.oid = e.enumtypid
96
+ WHERE t.typname = 'sizes_enum'
97
+ ORDER BY e.enumsortorder`;
98
+ return result;
99
+ });
100
+ }
101
+ function loadCheckConstraints(sql) {
102
+ return (neverthrow_1.ResultAsync.fromThrowable(() => _loadCheckConstraints(sql), err => convertPostgresErrorToTypeSQLError(err))()).map(enumResult => {
103
+ const checkConstraintResult = {};
104
+ for (const enumColumn of enumResult) {
105
+ const key = `[${enumColumn.schema_name}][${enumColumn.table_name}][${enumColumn.column_name}]`;
106
+ const value = (0, enum_parser_1.transformCheckToEnum)(enumColumn.constraint_definition);
107
+ if (value) {
108
+ checkConstraintResult[key] = value;
109
+ }
110
+ }
111
+ return checkConstraintResult;
112
+ });
113
+ }
114
+ function _loadCheckConstraints(sql) {
115
+ return __awaiter(this, void 0, void 0, function* () {
116
+ const result = yield sql `
117
+ SELECT
118
+ n.nspname AS schema_name,
119
+ t.relname AS table_name,
120
+ c.conname AS constraint_name,
121
+ pg_get_constraintdef(c.oid) AS constraint_definition,
122
+ a.attname AS column_name
123
+ FROM
124
+ pg_constraint c
125
+ JOIN
126
+ pg_class t ON c.conrelid = t.oid
127
+ JOIN
128
+ pg_namespace n ON t.relnamespace = n.oid
129
+ LEFT JOIN
130
+ unnest(c.conkey) AS ck(attnum) ON TRUE
131
+ LEFT JOIN
132
+ pg_attribute a ON a.attrelid = c.conrelid AND a.attnum = ck.attnum
133
+ WHERE
134
+ c.contype = 'c'`;
135
+ return result;
136
+ });
137
+ }
78
138
  function mapToColumnSchema(col) {
79
139
  const columnSchema = {
80
140
  column: col.column_name,
@@ -1 +1 @@
1
- {"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../../src/drivers/postgres.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../../src/drivers/postgres.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { TaskEither } from 'fp-ts/lib/TaskEither';
2
+ import { CheckConstraintResult, EnumMap } from './postgres';
2
3
  export type PostgresColumnSchema = {
3
4
  oid: number;
4
5
  table_schema: string;
@@ -14,6 +15,14 @@ export type DescribeQueryColumn = {
14
15
  tableId: number;
15
16
  typeId: number;
16
17
  };
18
+ export type DescribeParameters = {
19
+ sql: string;
20
+ postgresDescribeResult: PostgresDescribe;
21
+ dbSchema: PostgresColumnSchema[];
22
+ enumsTypes: EnumMap;
23
+ checkConstraints: CheckConstraintResult;
24
+ namedParameters: string[];
25
+ };
17
26
  export type PostgresDescribe = {
18
27
  parameters: number[];
19
28
  columns: DescribeQueryColumn[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/drivers/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,MAAM,oBAAoB,GAAG;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,KAAK,GAAG,KAAK,GAAG,EAAE,CAAC;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAEf,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC9B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAC/B,CAAA;AACD,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG;IACpD,kBAAkB,EAAE,OAAO,CAAC;CAC5B,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAA;AAEpD,MAAM,MAAM,MAAM,CAAC,UAAU,IAAI;IAChC,YAAY,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,UAAU,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;CAC/E,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/drivers/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5D,MAAM,MAAM,oBAAoB,GAAG;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,KAAK,GAAG,KAAK,GAAG,EAAE,CAAC;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAEf,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,sBAAsB,EAAE,gBAAgB,CAAC;IACzC,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,eAAe,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC9B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAC/B,CAAA;AACD,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG;IACpD,kBAAkB,EAAE,OAAO,CAAC;CAC5B,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAA;AAEpD,MAAM,MAAM,MAAM,CAAC,UAAU,IAAI;IAChC,YAAY,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,UAAU,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;CAC/E,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"infer-column-nullability.d.ts","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/infer-column-nullability.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,yBAAyB,EAEzB,KAAK,WAAW,EA4BhB,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AASlE,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,2BAQzE;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,yBAAyB,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,aAiBpH;AAgSD,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAuDhF"}
1
+ {"version":3,"file":"infer-column-nullability.d.ts","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/infer-column-nullability.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,yBAAyB,EAEzB,KAAK,WAAW,EA4BhB,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AASlE,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,2BAQzE;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,yBAAyB,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,aAiBpH;AAmSD,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAuDhF"}
@@ -262,6 +262,9 @@ function inferNotNullFunctionCall(functionCall, dbSchema, fromColumns) {
262
262
  }
263
263
  return false;
264
264
  }
265
+ if (functionName === 'nullif') {
266
+ return false;
267
+ }
265
268
  if (functionName === 'avg') {
266
269
  return false;
267
270
  }
@@ -1 +1 @@
1
- {"version":3,"file":"infer-column-nullability.js","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/infer-column-nullability.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"infer-column-nullability.js","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/infer-column-nullability.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "typesql-cli",
3
- "version": "0.16.5",
3
+ "version": "0.17.0",
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,EAAO,MAAM,YAAY,CAAC;AAoF1D,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,CAMzH"}
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,EAAO,MAAM,YAAY,CAAC;AAmF1D,MAAM,MAAM,kBAAkB,GAAG;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB,CAAC;AAoCF,wBAAgB,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,SAAS,EAAE,YAAY,CAAC,CAgBzH"}
@@ -10,11 +10,11 @@ const sqlite_describe_nested_query_1 = require("../sqlite-query-analyzer/sqlite-
10
10
  const Either_1 = require("fp-ts/lib/Either");
11
11
  const describe_query_1 = require("../describe-query");
12
12
  const describe_dynamic_query_1 = require("../describe-dynamic-query");
13
- function describeQueryRefine(sql, postgresDescribeResult, dbSchema, namedParameters) {
14
- var _a;
13
+ function describeQueryRefine(describeParameters) {
14
+ const { sql, dbSchema, postgresDescribeResult, enumsTypes, checkConstraints, namedParameters } = describeParameters;
15
15
  const generateNestedInfo = (0, describe_query_1.hasAnnotation)(sql, '@nested');
16
16
  const generateDynamicQueryInfo = (0, describe_query_1.hasAnnotation)(sql, '@dynamicQuery');
17
- const parseResult = (0, parser_1.safeParseSql)(sql, dbSchema, { collectNestedInfo: generateNestedInfo, collectDynamicQueryInfo: generateDynamicQueryInfo });
17
+ const parseResult = (0, parser_1.safeParseSql)(sql, dbSchema, checkConstraints, { collectNestedInfo: generateNestedInfo, collectDynamicQueryInfo: generateDynamicQueryInfo });
18
18
  if (parseResult.isErr()) {
19
19
  return (0, neverthrow_1.err)({
20
20
  name: 'ParserError',
@@ -22,21 +22,20 @@ function describeQueryRefine(sql, postgresDescribeResult, dbSchema, namedParamet
22
22
  });
23
23
  }
24
24
  const traverseResult = parseResult.value;
25
- const totalNumberOfParameters = traverseResult.parametersNullability.length + (((_a = traverseResult.whereParamtersNullability) === null || _a === void 0 ? void 0 : _a.length) || 0);
26
- const paramNames = namedParameters.length > 0 ? namedParameters : Array.from({ length: totalNumberOfParameters }).map((_, index) => `param${index + 1}`);
25
+ const paramNames = namedParameters.length > 0 ? namedParameters : Array.from({ length: traverseResult.parameterList.length }).map((_, index) => `param${index + 1}`);
27
26
  //replace list parameters
28
27
  const newSql = (0, replace_list_params_1.replacePostgresParams)(sql, traverseResult.parameterList, paramNames);
29
28
  const descResult = {
30
29
  sql: newSql,
31
30
  queryType: traverseResult.queryType,
32
31
  multipleRowsResult: traverseResult.multipleRowsResult,
33
- columns: getColumnsForQuery(traverseResult, postgresDescribeResult),
32
+ columns: getColumnsForQuery(traverseResult, postgresDescribeResult, enumsTypes, checkConstraints),
34
33
  parameters: traverseResult.queryType === 'Update'
35
- ? getParamtersForWhere(traverseResult, postgresDescribeResult, paramNames)
36
- : getParamtersForQuery(traverseResult, postgresDescribeResult, paramNames)
34
+ ? getParamtersForWhere(traverseResult, postgresDescribeResult, enumsTypes, checkConstraints, paramNames)
35
+ : getParamtersForQuery(traverseResult, postgresDescribeResult, enumsTypes, paramNames)
37
36
  };
38
37
  if (traverseResult.queryType === 'Update') {
39
- descResult.data = getDataForQuery(traverseResult, postgresDescribeResult, paramNames);
38
+ descResult.data = getDataForQuery(traverseResult, postgresDescribeResult, enumsTypes, checkConstraints, paramNames);
40
39
  }
41
40
  if (traverseResult.returning) {
42
41
  descResult.returning = traverseResult.returning;
@@ -77,45 +76,70 @@ function transformToMap(dbSchema) {
77
76
  }, {});
78
77
  return hash;
79
78
  }
80
- function mapToColumnInfo(col, posgresTypes, colInfo) {
79
+ function mapToColumnInfo(col, posgresTypes, enumTypes, checkConstraints, colInfo) {
81
80
  var _a;
81
+ const constraintKey = `[${colInfo.table_schema}][${colInfo.table_name}][${colInfo.column_name}]`;
82
82
  return {
83
83
  columnName: col.name,
84
84
  notNull: !colInfo.is_nullable,
85
- type: (_a = posgresTypes[col.typeId]) !== null && _a !== void 0 ? _a : '?',
85
+ type: (_a = createType(col.typeId, posgresTypes, enumTypes.get(col.typeId), checkConstraints[constraintKey])) !== null && _a !== void 0 ? _a : '?',
86
86
  table: colInfo.table_name
87
87
  };
88
88
  }
89
- function mapToParamDef(paramName, paramType, notNull, isList) {
89
+ function createType(typeId, postgresTypes, enumType, checkConstraint) {
90
+ if (enumType) {
91
+ return createEnumType(enumType);
92
+ }
93
+ if (checkConstraint) {
94
+ return checkConstraint;
95
+ }
96
+ return postgresTypes[typeId];
97
+ }
98
+ function createEnumType(enumList) {
99
+ const enumListStr = enumList.map(col => `'${col.enumlabel}'`).join(',');
100
+ return `enum(${enumListStr})`;
101
+ }
102
+ function mapToParamDef(postgresTypes, enumTypes, paramName, paramType, checkConstraint, notNull, isList) {
90
103
  const arrayType = isList ? '[]' : '';
91
104
  return {
92
105
  name: paramName,
93
106
  notNull,
94
- columnType: `${postgres_2.postgresTypes[paramType]}${arrayType}`
107
+ columnType: `${createType(paramType, postgresTypes, enumTypes.get(paramType), checkConstraint)}${arrayType}`
95
108
  };
96
109
  }
97
110
  function describeQuery(postgres, sql, namedParameters) {
98
- return (0, postgres_1.loadDbSchema)(postgres)
99
- .andThen(dbSchema => {
111
+ return neverthrow_1.ResultAsync.combine([(0, postgres_1.loadDbSchema)(postgres), (0, postgres_1.loadEnums)(postgres), (0, postgres_1.loadCheckConstraints)(postgres)])
112
+ .andThen(([dbSchema, enumsTypes, checkConstraints]) => {
100
113
  return (0, postgres_1.postgresDescribe)(postgres, sql)
101
- .andThen(analyzeResult => describeQueryRefine(sql, analyzeResult, dbSchema, namedParameters));
114
+ .andThen(analyzeResult => {
115
+ const describeParameters = {
116
+ sql,
117
+ postgresDescribeResult: analyzeResult,
118
+ dbSchema,
119
+ enumsTypes,
120
+ checkConstraints,
121
+ namedParameters
122
+ };
123
+ return describeQueryRefine(describeParameters);
124
+ });
102
125
  });
103
126
  }
104
- function getColumnsForQuery(traverseResult, postgresDescribeResult) {
105
- return postgresDescribeResult.columns.map((col, index) => mapToColumnInfo(col, postgres_2.postgresTypes, traverseResult.columns[index]));
127
+ function getColumnsForQuery(traverseResult, postgresDescribeResult, enumTypes, checkConstraints) {
128
+ return postgresDescribeResult.columns.map((col, index) => mapToColumnInfo(col, postgres_2.postgresTypes, enumTypes, checkConstraints, traverseResult.columns[index]));
106
129
  }
107
- function getParamtersForQuery(traverseResult, postgresDescribeResult, paramNames) {
130
+ function getParamtersForQuery(traverseResult, postgresDescribeResult, enumTypes, paramNames) {
108
131
  const namedParametersIndexes = createIndexToNameMap(paramNames);
109
132
  if (traverseResult.queryType === 'Copy') {
110
133
  return getColumnsForCopyStmt(traverseResult);
111
134
  }
112
135
  return postgresDescribeResult.parameters
113
- .map((param, index) => {
136
+ .map((paramType, index) => {
114
137
  const paramName = namedParametersIndexes.get(index);
115
138
  const indexes = paramNames.flatMap((name, index) => name === paramName ? [index] : []);
116
- const notNull = indexes.every(index => traverseResult.parametersNullability[index]);
139
+ const notNull = indexes.every(index => traverseResult.parametersNullability[index].isNotNull);
117
140
  const paramList = indexes.every(index => traverseResult.parameterList[index]);
118
- const paramResult = mapToParamDef(paramName, param, notNull, paramList);
141
+ const paramCheckConstraint = indexes.map(i => { var _a; return (_a = traverseResult.parametersNullability[i]) === null || _a === void 0 ? void 0 : _a.checkConstraint; }).find(Boolean) || null;
142
+ const paramResult = mapToParamDef(postgres_2.postgresTypes, enumTypes, paramName, paramType, paramCheckConstraint, notNull, paramList);
119
143
  return paramResult;
120
144
  });
121
145
  }
@@ -130,13 +154,13 @@ function getColumnsForCopyStmt(traverseResult) {
130
154
  return result;
131
155
  });
132
156
  }
133
- function getParamtersForWhere(traverseResult, postgresDescribeResult, paramNames) {
157
+ function getParamtersForWhere(traverseResult, postgresDescribeResult, enumTypes, checkConstraints, paramNames) {
134
158
  const indexOffset = traverseResult.parametersNullability.length;
135
159
  return postgresDescribeResult.parameters.slice(indexOffset)
136
- .map((param, index) => { var _a, _b; return mapToParamDef(paramNames[index + indexOffset], param, (_b = (_a = traverseResult.whereParamtersNullability) === null || _a === void 0 ? void 0 : _a[index]) !== null && _b !== void 0 ? _b : true, traverseResult.parameterList[index + indexOffset]); });
160
+ .map((paramType, index) => { var _a, _b; return mapToParamDef(postgres_2.postgresTypes, enumTypes, paramNames[index + indexOffset], paramType, checkConstraints[index + indexOffset], (_b = (_a = traverseResult.whereParamtersNullability) === null || _a === void 0 ? void 0 : _a[index]) !== null && _b !== void 0 ? _b : true, traverseResult.parameterList[index + indexOffset]); });
137
161
  }
138
- function getDataForQuery(traverseResult, postgresDescribeResult, paramNames) {
162
+ function getDataForQuery(traverseResult, postgresDescribeResult, enumTypes, checkConstraints, paramNames) {
139
163
  return postgresDescribeResult.parameters.slice(0, traverseResult.parametersNullability.length)
140
- .map((param, index) => { var _a; return mapToParamDef(paramNames[index], param, (_a = traverseResult.parametersNullability[index]) !== null && _a !== void 0 ? _a : true, traverseResult.parameterList[index]); });
164
+ .map((paramType, index) => { var _a; return mapToParamDef(postgres_2.postgresTypes, enumTypes, paramNames[index], paramType, checkConstraints[index], (_a = traverseResult.parametersNullability[index].isNotNull) !== null && _a !== void 0 ? _a : true, traverseResult.parameterList[index]); });
141
165
  }
142
166
  //# sourceMappingURL=describe.js.map
@@ -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":";;AAgIA,sCAgBC;AA9ID,kDAAkJ;AAGlJ,qCAAwC;AACxC,sFAAqF;AACrF,2CAA0D;AAC1D,mDAAqD;AAErD,wGAA4F;AAC5F,6CAA0C;AAC1C,sDAAkD;AAClD,sEAAkE;AAElE,SAAS,mBAAmB,CAAC,kBAAsC;IAClE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,sBAAsB,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,GAAG,kBAAkB,CAAC;IACpH,MAAM,kBAAkB,GAAG,IAAA,8BAAa,EAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACzD,MAAM,wBAAwB,GAAG,IAAA,8BAAa,EAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IAErE,MAAM,WAAW,GAAG,IAAA,qBAAY,EAAC,GAAG,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,CAAC,CAAC;IAChK,IAAI,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC;QACzB,OAAO,IAAA,gBAAG,EAAC;YACV,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,WAAW,CAAC,KAAK;SAC9B,CAAC,CAAA;IACH,CAAC;IACD,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC;IACzC,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;IACrK,yBAAyB;IACzB,MAAM,MAAM,GAAG,IAAA,2CAAqB,EAAC,GAAG,EAAE,cAAc,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IAEpF,MAAM,UAAU,GAAc;QAC7B,GAAG,EAAE,MAAM;QACX,SAAS,EAAE,cAAc,CAAC,SAAS;QACnC,kBAAkB,EAAE,cAAc,CAAC,kBAAkB;QACrD,OAAO,EAAE,kBAAkB,CAAC,cAAc,EAAE,sBAAsB,EAAE,UAAU,EAAE,gBAAgB,CAAC;QACjG,UAAU,EAAE,cAAc,CAAC,SAAS,KAAK,QAAQ;YAChD,CAAC,CAAC,oBAAoB,CAAC,cAAc,EAAE,sBAAsB,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,CAAC;YACxG,CAAC,CAAC,oBAAoB,CAAC,cAAc,EAAE,sBAAsB,EAAE,UAAU,EAAE,UAAU,CAAC;KACvF,CAAA;IACD,IAAI,cAAc,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC3C,UAAU,CAAC,IAAI,GAAG,eAAe,CAAC,cAAc,EAAE,sBAAsB,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAC;IACrH,CAAC;IACD,IAAI,cAAc,CAAC,SAAS,EAAE,CAAC;QAC9B,UAAU,CAAC,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC;IACjD,CAAC;IACD,IAAI,cAAc,CAAC,SAAS,EAAE,CAAC;QAC9B,MAAM,YAAY,GAAG,IAAA,kDAAmB,EAAC,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QAC7F,IAAI,IAAA,eAAM,EAAC,YAAY,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAA,gBAAG,EAAC;gBACV,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,oCAAoC,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW;aACjF,CAAC,CAAA;QACH,CAAC;QACD,UAAU,CAAC,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC;IAC5C,CAAC;IACD,IAAI,cAAc,CAAC,gBAAgB,EAAE,CAAC;QACrC,MAAM,mBAAmB,GAAG,IAAA,8CAAqB,EAAC,cAAc,CAAC,gBAAgB,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC;QACxG,UAAU,CAAC,gBAAgB,GAAG,mBAAmB,CAAC;IACnD,CAAC;IACD,OAAO,IAAA,eAAE,EAAC,UAAU,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAe;IAC5C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC9C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE9C,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YACpC,WAAW,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YACpC,YAAY,EAAE,CAAC;QAChB,CAAC;IACF,CAAC;IAED,OAAO,WAAW,CAAC;AACpB,CAAC;AAGD,SAAS,cAAc,CAAC,QAAgC;IACvD,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE;QACzD,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;QACtB,OAAO,GAAG,CAAC;IACZ,CAAC,EAAE,EAAmB,CAAC,CAAC;IACxB,OAAO,IAAI,CAAC;AACb,CAAC;AAMD,SAAS,eAAe,CAAC,GAAwB,EAAE,YAA0B,EAAE,SAAkB,EAAE,gBAAuC,EAAE,OAAoB;;IAC/J,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,YAAY,KAAK,OAAO,CAAC,UAAU,KAAK,OAAO,CAAC,WAAW,GAAG,CAAC;IACjG,OAAO;QACN,UAAU,EAAE,GAAG,CAAC,IAAI;QACpB,OAAO,EAAE,CAAC,OAAO,CAAC,WAAW;QAC7B,IAAI,EAAE,MAAA,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAQ,mCAAI,GAAG;QACpH,KAAK,EAAE,OAAO,CAAC,UAAU;KACzB,CAAA;AACF,CAAC;AAED,SAAS,UAAU,CAAC,MAAc,EAAE,aAA2B,EAAE,QAAkC,EAAE,eAA8B;IAClI,IAAI,QAAQ,EAAE,CAAC;QACd,OAAO,cAAc,CAAC,QAAS,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,eAAe,EAAE,CAAC;QACrB,OAAO,eAAe,CAAC;IACxB,CAAC;IACD,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,cAAc,CAAC,QAAsB;IAC7C,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxE,OAAO,QAAQ,WAAW,GAAG,CAAC;AAC/B,CAAC;AAED,SAAS,aAAa,CAAC,aAA2B,EAAE,SAAkB,EAAE,SAAiB,EAAE,SAAiB,EAAE,eAA8B,EAAE,OAAgB,EAAE,MAAe;IAC9K,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;IACpC,OAAO;QACN,IAAI,EAAE,SAAS;QACf,OAAO;QACP,UAAU,EAAE,GAAG,UAAU,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC,GAAG,SAAS,EAAS;KACnH,CAAA;AACF,CAAC;AAED,SAAgB,aAAa,CAAC,QAAa,EAAE,GAAW,EAAE,eAAyB;IAClF,OAAO,wBAAW,CAAC,OAAO,CAAC,CAAC,IAAA,uBAAY,EAAC,QAAQ,CAAC,EAAE,IAAA,oBAAS,EAAC,QAAQ,CAAC,EAAE,IAAA,+BAAoB,EAAC,QAAQ,CAAC,CAAC,CAAC;SACvG,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,gBAAgB,CAAC,EAAE,EAAE;QACrD,OAAO,IAAA,2BAAgB,EAAC,QAAQ,EAAE,GAAG,CAAC;aACpC,OAAO,CAAC,aAAa,CAAC,EAAE;YACxB,MAAM,kBAAkB,GAAuB;gBAC9C,GAAG;gBACH,sBAAsB,EAAE,aAAa;gBACrC,QAAQ;gBACR,UAAU;gBACV,gBAAgB;gBAChB,eAAe;aACf,CAAA;YACD,OAAO,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,cAAsC,EAAE,sBAAwC,EAAE,SAAkB,EAAE,gBAAuC;IACxK,OAAO,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,wBAAa,EAAE,SAAS,EAAE,gBAAgB,EAAE,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAC3J,CAAC;AAED,SAAS,oBAAoB,CAAC,cAAsC,EAAE,sBAAwC,EAAE,SAAkB,EAAE,UAAoB;IACvJ,MAAM,sBAAsB,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAChE,IAAI,cAAc,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;QACzC,OAAO,qBAAqB,CAAC,cAAc,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,sBAAsB,CAAC,UAAU;SACtC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;QACzB,MAAM,SAAS,GAAG,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;QACrD,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACvF,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC;QAC9F,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9E,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,WAAC,OAAA,MAAA,cAAc,CAAC,qBAAqB,CAAC,CAAC,CAAC,0CAAE,eAAe,CAAA,EAAA,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;QAC9H,MAAM,WAAW,GAAG,aAAa,CAAC,wBAAa,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,oBAAoB,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAC5H,OAAO,WAAW,CAAC;IACpB,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,cAAsC;IACpE,OAAO,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;;QACvC,MAAM,MAAM,GAAiB;YAC5B,IAAI,EAAE,GAAG,CAAC,WAAW;YACrB,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAA,wBAAa,CAAC,GAAG,CAAC,OAAO,CAAQ,mCAAI,GAAG,CAAC,CAAC,CAAC,GAAG;YACxE,OAAO,EAAE,CAAC,GAAG,CAAC,WAAW;SACzB,CAAA;QACD,OAAO,MAAM,CAAC;IACf,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,cAAsC,EAAE,sBAAwC,EAAE,SAAkB,EAAE,gBAAuC,EAAE,UAAoB;IAChM,MAAM,WAAW,GAAG,cAAc,CAAC,qBAAqB,CAAC,MAAM,CAAC;IAChE,OAAO,sBAAsB,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC;SACzD,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,eAAC,OAAA,aAAa,CAAC,wBAAa,EAAE,SAAS,EAAE,UAAU,CAAC,KAAK,GAAG,WAAW,CAAC,EAAE,SAAS,EAAE,gBAAgB,CAAC,KAAK,GAAG,WAAW,CAAC,EAAE,MAAA,MAAA,cAAc,CAAC,yBAAyB,0CAAG,KAAK,CAAC,mCAAI,IAAI,EAAE,cAAc,CAAC,aAAa,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC,CAAA,EAAA,CAAC,CAAA;AACtQ,CAAC;AAED,SAAS,eAAe,CAAC,cAAsC,EAAE,sBAAwC,EAAE,SAAkB,EAAE,gBAAuC,EAAE,UAAoB;IAC3L,OAAO,sBAAsB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,qBAAqB,CAAC,MAAM,CAAC;SAC5F,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,WAAC,OAAA,aAAa,CAAC,wBAAa,EAAE,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAA,cAAc,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,SAAS,mCAAI,IAAI,EAAE,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA,EAAA,CAAC,CAAA;AAChO,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function transformCheckToEnum(checkStr: string): string | null;
2
+ //# sourceMappingURL=enum-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum-parser.d.ts","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/enum-parser.ts"],"names":[],"mappings":"AAAA,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkBpE"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.transformCheckToEnum = transformCheckToEnum;
4
+ function transformCheckToEnum(checkStr) {
5
+ const regex = /ARRAY\[(.*?)\]/;
6
+ const match = checkStr.match(regex);
7
+ if (!match || match.length < 2) {
8
+ return null; // Not a match or bad format
9
+ }
10
+ // Extract the array contents
11
+ const arrayContent = match[1];
12
+ // Split by commas that are not inside quotes (basic case)
13
+ const values = arrayContent
14
+ .split(',')
15
+ .map(s => s.trim().replace(/::text$/, '').replace(/^'(.*)'$/, '$1')) // Remove ::text and surrounding single quotes
16
+ .map(s => `'${s}'`); // Re-wrap clean value in single quotes
17
+ return `enum(${values.join(',')})`;
18
+ }
19
+ //# sourceMappingURL=enum-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum-parser.js","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/enum-parser.ts"],"names":[],"mappings":";;AAAA,oDAkBC;AAlBD,SAAgB,oBAAoB,CAAC,QAAgB;IACpD,MAAM,KAAK,GAAG,gBAAgB,CAAC;IAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEpC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,CAAC,4BAA4B;IAC1C,CAAC;IAED,6BAA6B;IAC7B,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAE9B,0DAA0D;IAC1D,MAAM,MAAM,GAAG,YAAY;SACzB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAE,8CAA8C;SACnH,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,uCAAuC;IAE7D,OAAO,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AACpC,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare function transformCheckToEnum(checkStr: string): string | null;
2
+ //# sourceMappingURL=enum_parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum_parser.d.ts","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/enum_parser.ts"],"names":[],"mappings":"AAAA,iBAAS,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkB7D"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ function transformCheckToEnum(checkStr) {
3
+ const regex = /ARRAY\[(.*?)\]/;
4
+ const match = checkStr.match(regex);
5
+ if (!match || match.length < 2) {
6
+ return null; // Not a match or bad format
7
+ }
8
+ // Extract the array contents
9
+ const arrayContent = match[1];
10
+ // Split by commas that are not inside quotes (basic case)
11
+ const values = arrayContent
12
+ .split(',')
13
+ .map(s => s.trim().replace(/::text$/, '').replace(/^'(.*)'$/, '$1')) // Remove ::text and surrounding single quotes
14
+ .map(s => `'${s}'`); // Re-wrap clean value in single quotes
15
+ return `enum(${values.join(', ')})`;
16
+ }
17
+ //# sourceMappingURL=enum_parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum_parser.js","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/enum_parser.ts"],"names":[],"mappings":";AAAA,SAAS,oBAAoB,CAAC,QAAgB;IAC7C,MAAM,KAAK,GAAG,gBAAgB,CAAC;IAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEpC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,CAAC,4BAA4B;IAC1C,CAAC;IAED,6BAA6B;IAC7B,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAE9B,0DAA0D;IAC1D,MAAM,MAAM,GAAG,YAAY;SACzB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAE,8CAA8C;SACnH,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,uCAAuC;IAE7D,OAAO,QAAQ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACrC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { PostgresTraverseResult } from './traverse';
2
2
  import { PostgresColumnSchema } from '../drivers/types';
3
3
  import { Result } from 'neverthrow';
4
- export declare function parseSql(sql: string, dbSchema: PostgresColumnSchema[], options?: import("./traverse").TraverseOptions): PostgresTraverseResult;
5
- export declare function safeParseSql(sql: string, dbSchema: PostgresColumnSchema[], options?: import("./traverse").TraverseOptions): Result<PostgresTraverseResult, string>;
4
+ import { CheckConstraintResult } from '../drivers/postgres';
5
+ export declare function parseSql(sql: string, dbSchema: PostgresColumnSchema[], checkConstraints: CheckConstraintResult, options?: import("./traverse").TraverseOptions): PostgresTraverseResult;
6
+ export declare function safeParseSql(sql: string, dbSchema: PostgresColumnSchema[], checkConstraints: CheckConstraintResult, options?: import("./traverse").TraverseOptions): Result<PostgresTraverseResult, string>;
6
7
  //# sourceMappingURL=parser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,sBAAsB,EAAe,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAW,MAAM,YAAY,CAAC;AAE7C,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,OAAO,uCAAmB,GAAG,sBAAsB,CAM1H;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,OAAO,uCAAmB,GAAG,MAAM,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAS9I"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,sBAAsB,EAAe,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAW,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,OAAO,uCAAmB,GAAG,sBAAsB,CAMnK;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,OAAO,uCAAmB,GAAG,MAAM,CAAC,sBAAsB,EAAE,MAAM,CAAC,CASvL"}
@@ -5,14 +5,14 @@ exports.safeParseSql = safeParseSql;
5
5
  const postgres_1 = require("@wsporto/typesql-parser/postgres");
6
6
  const traverse_1 = require("./traverse");
7
7
  const neverthrow_1 = require("neverthrow");
8
- function parseSql(sql, dbSchema, options = (0, traverse_1.defaultOptions)()) {
8
+ function parseSql(sql, dbSchema, checkConstraints, options = (0, traverse_1.defaultOptions)()) {
9
9
  const parser = (0, postgres_1.parseSql)(sql);
10
- const traverseResult = (0, traverse_1.traverseSmt)(parser.stmt(), dbSchema, options);
10
+ const traverseResult = (0, traverse_1.traverseSmt)(parser.stmt(), dbSchema, checkConstraints, options);
11
11
  return traverseResult;
12
12
  }
13
- function safeParseSql(sql, dbSchema, options = (0, traverse_1.defaultOptions)()) {
13
+ function safeParseSql(sql, dbSchema, checkConstraints, options = (0, traverse_1.defaultOptions)()) {
14
14
  try {
15
- const result = parseSql(sql, dbSchema, options);
15
+ const result = parseSql(sql, dbSchema, checkConstraints, options);
16
16
  return (0, neverthrow_1.ok)(result);
17
17
  }
18
18
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/parser.ts"],"names":[],"mappings":";;AAKA,4BAMC;AAED,oCASC;AAtBD,+DAAyE;AACzE,yCAAiF;AAEjF,2CAA6C;AAE7C,SAAgB,QAAQ,CAAC,GAAW,EAAE,QAAgC,EAAE,OAAO,GAAG,IAAA,yBAAc,GAAE;IACjG,MAAM,MAAM,GAAG,IAAA,mBAAS,EAAC,GAAG,CAAC,CAAC;IAE9B,MAAM,cAAc,GAAG,IAAA,sBAAW,EAAC,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAErE,OAAO,cAAc,CAAC;AACvB,CAAC;AAED,SAAgB,YAAY,CAAC,GAAW,EAAE,QAAgC,EAAE,OAAO,GAAG,IAAA,yBAAc,GAAE;IACrG,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChD,OAAO,IAAA,eAAE,EAAC,MAAM,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,CAAC,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,CAAU,CAAC;QACzB,OAAO,IAAA,gBAAG,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/parser.ts"],"names":[],"mappings":";;AAMA,4BAMC;AAED,oCASC;AAvBD,+DAAyE;AACzE,yCAAiF;AAEjF,2CAA6C;AAG7C,SAAgB,QAAQ,CAAC,GAAW,EAAE,QAAgC,EAAE,gBAAuC,EAAE,OAAO,GAAG,IAAA,yBAAc,GAAE;IAC1I,MAAM,MAAM,GAAG,IAAA,mBAAS,EAAC,GAAG,CAAC,CAAC;IAE9B,MAAM,cAAc,GAAG,IAAA,sBAAW,EAAC,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;IAEvF,OAAO,cAAc,CAAC;AACvB,CAAC;AAED,SAAgB,YAAY,CAAC,GAAW,EAAE,QAAgC,EAAE,gBAAuC,EAAE,OAAO,GAAG,IAAA,yBAAc,GAAE;IAC9I,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAClE,OAAO,IAAA,eAAE,EAAC,MAAM,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,CAAC,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,CAAU,CAAC;QACzB,OAAO,IAAA,gBAAG,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;AACF,CAAC"}
@@ -3,6 +3,7 @@ import { PostgresColumnSchema } from '../drivers/types';
3
3
  import { DynamicSqlInfo2 } from '../mysql-query-analyzer/types';
4
4
  import { QueryType } from '../types';
5
5
  import { Relation2 } from '../sqlite-query-analyzer/sqlite-describe-nested-query';
6
+ import { CheckConstraintResult } from '../drivers/postgres';
6
7
  export type NotNullInfo = {
7
8
  table_schema: string;
8
9
  table_name: string;
@@ -14,7 +15,7 @@ export type PostgresTraverseResult = {
14
15
  queryType: QueryType;
15
16
  multipleRowsResult: boolean;
16
17
  columns: NotNullInfo[];
17
- parametersNullability: boolean[];
18
+ parametersNullability: ParamInfo[];
18
19
  whereParamtersNullability?: boolean[];
19
20
  parameterList: boolean[];
20
21
  limit?: number;
@@ -22,6 +23,10 @@ export type PostgresTraverseResult = {
22
23
  relations?: Relation2[];
23
24
  dynamicQueryInfo?: DynamicSqlInfo2;
24
25
  };
26
+ type ParamInfo = {
27
+ isNotNull: boolean;
28
+ checkConstraint?: string;
29
+ };
25
30
  export type Relation3 = {
26
31
  name: string;
27
32
  alias: string;
@@ -33,5 +38,6 @@ export type TraverseOptions = {
33
38
  collectDynamicQueryInfo?: boolean;
34
39
  };
35
40
  export declare function defaultOptions(): TraverseOptions;
36
- export declare function traverseSmt(stmt: StmtContext, dbSchema: PostgresColumnSchema[], options: TraverseOptions): PostgresTraverseResult;
41
+ export declare function traverseSmt(stmt: StmtContext, dbSchema: PostgresColumnSchema[], checkConstraints: CheckConstraintResult, options: TraverseOptions): PostgresTraverseResult;
42
+ export {};
37
43
  //# 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,EAAkqC,WAAW,EAA4L,MAAM,mDAAmD,CAAC;AAE16C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,eAAe,EAAa,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,uDAAuD,CAAC;AAElF,MAAM,MAAM,WAAW,GAAG;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACpC,SAAS,EAAE,SAAS,CAAC;IACrB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,qBAAqB,EAAE,OAAO,EAAE,CAAC;IACjC,yBAAyB,CAAC,EAAE,OAAO,EAAE,CAAC;IACtC,aAAa,EAAE,OAAO,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC;IACxB,gBAAgB,CAAC,EAAE,eAAe,CAAC;CACnC,CAAA;AAuBD,MAAM,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,uBAAuB,CAAC,EAAE,OAAO,CAAC;CAClC,CAAA;AAED,wBAAgB,cAAc,IAAI,eAAe,CAKhD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,OAAO,EAAE,eAAe,GAAG,sBAAsB,CAgDjI"}
1
+ {"version":3,"file":"traverse.d.ts","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/traverse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkqC,WAAW,EAA4L,MAAM,mDAAmD,CAAC;AAE16C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,eAAe,EAAa,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,uDAAuD,CAAC;AAClF,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,MAAM,WAAW,GAAG;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACpC,SAAS,EAAE,SAAS,CAAC;IACrB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,qBAAqB,EAAE,SAAS,EAAE,CAAC;IACnC,yBAAyB,CAAC,EAAE,OAAO,EAAE,CAAC;IACtC,aAAa,EAAE,OAAO,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC;IACxB,gBAAgB,CAAC,EAAE,eAAe,CAAC;CACnC,CAAA;AAED,KAAK,SAAS,GAAG;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB,CAAA;AAuBD,MAAM,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,uBAAuB,CAAC,EAAE,OAAO,CAAC;CAClC,CAAA;AAED,wBAAgB,cAAc,IAAI,eAAe,CAKhD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,OAAO,EAAE,eAAe,GAAG,sBAAsB,CAiD1K"}
@@ -11,7 +11,7 @@ function defaultOptions() {
11
11
  collectDynamicQueryInfo: false
12
12
  };
13
13
  }
14
- function traverseSmt(stmt, dbSchema, options) {
14
+ function traverseSmt(stmt, dbSchema, checkConstraints, options) {
15
15
  const { collectNestedInfo = false, collectDynamicQueryInfo = false } = options;
16
16
  const traverseResult = {
17
17
  columnsNullability: [],
@@ -34,7 +34,8 @@ function traverseSmt(stmt, dbSchema, options) {
34
34
  dbSchema,
35
35
  collectNestedInfo,
36
36
  collectDynamicQueryInfo,
37
- fromColumns: []
37
+ fromColumns: [],
38
+ checkConstraints
38
39
  };
39
40
  const selectstmt = stmt.selectstmt();
40
41
  if (selectstmt) {
@@ -88,7 +89,7 @@ function traverseSelectstmt(selectstmt, context, traverseResult) {
88
89
  queryType: 'Select',
89
90
  multipleRowsResult,
90
91
  columns,
91
- parametersNullability: traverseResult.parameters.map(param => param.isNotNull),
92
+ parametersNullability: traverseResult.parameters.map(param => (Object.assign({ isNotNull: param.isNotNull }, addConstraintIfNotNull(param.checkConstraint)))),
92
93
  parameterList: paramIsListResult,
93
94
  limit
94
95
  };
@@ -475,6 +476,10 @@ function checkParamterNullability(column, traverseResult) {
475
476
  }
476
477
  }
477
478
  }
479
+ function getCheckConstraint(col, checkConstraints) {
480
+ const key = `[${col.table_schema}][${col.table_name}][${col.column_name}]`;
481
+ return checkConstraints[key];
482
+ }
478
483
  function traverse_expr_compare(a_expr_compare, context, traverseResult) {
479
484
  const a_expr_like_list = a_expr_compare.a_expr_like_list();
480
485
  const result = a_expr_like_list.map(a_expr_like => traverse_expr_like(a_expr_like, context, traverseResult));
@@ -482,6 +487,16 @@ function traverse_expr_compare(a_expr_compare, context, traverseResult) {
482
487
  if (a_expr_like_list.length === 1) {
483
488
  return result[0];
484
489
  }
490
+ if (a_expr_like_list.length === 2) {
491
+ const constraintLeft = getCheckConstraint(result[0], context.checkConstraints);
492
+ const constraintRight = getCheckConstraint(result[1], context.checkConstraints);
493
+ if (isParameter(result[0].column_name) && constraintRight) {
494
+ traverseResult.parameters.at(-1).checkConstraint = constraintRight;
495
+ }
496
+ if (isParameter(result[1].column_name) && constraintLeft) {
497
+ traverseResult.parameters.at(-1).checkConstraint = constraintLeft;
498
+ }
499
+ }
485
500
  return {
486
501
  column_name: '?column?',
487
502
  is_nullable: result.some(col => col.is_nullable),
@@ -797,6 +812,19 @@ function traversefunc_application(func_application, context, traverseResult) {
797
812
  if (functionName === 'generate_series') {
798
813
  return true;
799
814
  }
815
+ if (functionName === 'row_number'
816
+ || functionName === 'rank'
817
+ || functionName === 'dense_rank'
818
+ || functionName === 'percent_rank'
819
+ || functionName === 'cume_dist') {
820
+ return true;
821
+ }
822
+ if (functionName === 'first_value'
823
+ || functionName === 'last_value'
824
+ || functionName === 'ntile') {
825
+ const firstArg = argsResult[0];
826
+ return firstArg;
827
+ }
800
828
  return false;
801
829
  }
802
830
  function traversefunc_expr_common_subexpr(func_expr_common_subexpr, context, traverseResult) {
@@ -1064,6 +1092,7 @@ function traverseInsertstmt(insertstmt, dbSchema) {
1064
1092
  const context = {
1065
1093
  dbSchema,
1066
1094
  fromColumns: insertColumns,
1095
+ checkConstraints: {},
1067
1096
  collectNestedInfo: false,
1068
1097
  collectDynamicQueryInfo: false
1069
1098
  };
@@ -1076,12 +1105,13 @@ function traverseInsertstmt(insertstmt, dbSchema) {
1076
1105
  }
1077
1106
  const returning_clause = insertstmt.returning_clause();
1078
1107
  const returninColumns = returning_clause ? traverse_target_list(returning_clause.target_list(), context, traverseResult) : [];
1108
+ const paramIsListResult = getInParameterList(insertstmt);
1079
1109
  const result = {
1080
1110
  queryType: 'Insert',
1081
1111
  multipleRowsResult: false,
1082
- parametersNullability: traverseResult.parameters.map(param => param.isNotNull),
1112
+ parametersNullability: traverseResult.parameters.map(param => (Object.assign({ isNotNull: param.isNotNull }, addConstraintIfNotNull(param.checkConstraint)))),
1083
1113
  columns: returninColumns,
1084
- parameterList: []
1114
+ parameterList: paramIsListResult
1085
1115
  };
1086
1116
  if (returning_clause) {
1087
1117
  result.returning = true;
@@ -1098,6 +1128,7 @@ function traverseDeletestmt(deleteStmt, dbSchema, traverseResult) {
1098
1128
  const context = {
1099
1129
  dbSchema,
1100
1130
  fromColumns: deleteColumns,
1131
+ checkConstraints: {},
1101
1132
  collectNestedInfo: false,
1102
1133
  collectDynamicQueryInfo: false
1103
1134
  };
@@ -1109,7 +1140,7 @@ function traverseDeletestmt(deleteStmt, dbSchema, traverseResult) {
1109
1140
  const result = {
1110
1141
  queryType: 'Delete',
1111
1142
  multipleRowsResult: false,
1112
- parametersNullability: traverseResult.parameters.map(param => param.isNotNull),
1143
+ parametersNullability: traverseResult.parameters.map(param => (Object.assign({ isNotNull: param.isNotNull }, addConstraintIfNotNull(param.checkConstraint)))),
1113
1144
  columns: returninColumns,
1114
1145
  parameterList: paramIsListResult
1115
1146
  };
@@ -1118,33 +1149,43 @@ function traverseDeletestmt(deleteStmt, dbSchema, traverseResult) {
1118
1149
  }
1119
1150
  return result;
1120
1151
  }
1152
+ function addConstraintIfNotNull(checkConstraint) {
1153
+ return checkConstraint !== undefined ? { checkConstraint } : {};
1154
+ }
1121
1155
  function traverseUpdatestmt(updatestmt, dbSchema, traverseResult) {
1156
+ var _a;
1122
1157
  const relation_expr_opt_alias = updatestmt.relation_expr_opt_alias();
1123
- const tableName = relation_expr_opt_alias.getText();
1124
- const updateColumns = dbSchema.filter(col => col.table_name.toLowerCase() === tableName.toLowerCase());
1158
+ const tableName = relation_expr_opt_alias.relation_expr().getText();
1159
+ const tableAlias = ((_a = relation_expr_opt_alias.colid()) === null || _a === void 0 ? void 0 : _a.getText()) || '';
1160
+ const updateColumns = dbSchema.filter(col => col.table_name.toLowerCase() === tableName.toLowerCase())
1161
+ .map(col => (Object.assign(Object.assign({}, col), { table_name: tableAlias || col.table_name })));
1125
1162
  const context = {
1126
1163
  dbSchema,
1127
1164
  fromColumns: updateColumns,
1165
+ checkConstraints: {},
1128
1166
  collectNestedInfo: false,
1129
1167
  collectDynamicQueryInfo: false
1130
1168
  };
1131
1169
  updatestmt.set_clause_list().set_clause_list()
1132
1170
  .forEach(set_clause => traverse_set_clause(set_clause, context, traverseResult));
1171
+ const from_clause = updatestmt.from_clause();
1172
+ const fromColumns = from_clause ? traverse_from_clause(from_clause, context, traverseResult) : [];
1133
1173
  const parametersBefore = traverseResult.parameters.length;
1134
1174
  const where_clause = updatestmt.where_or_current_clause();
1135
1175
  if (where_clause) {
1136
1176
  const a_expr = where_clause.a_expr();
1137
- traverse_a_expr(a_expr, context, traverseResult);
1177
+ traverse_a_expr(a_expr, Object.assign(Object.assign({}, context), { fromColumns: updateColumns.concat(fromColumns) }), traverseResult);
1138
1178
  }
1139
1179
  const whereParameters = traverseResult.parameters.slice(parametersBefore);
1140
1180
  const returning_clause = updatestmt.returning_clause();
1141
1181
  const returninColumns = returning_clause ? traverse_target_list(returning_clause.target_list(), context, traverseResult) : [];
1182
+ const paramIsListResult = getInParameterList(updatestmt);
1142
1183
  const result = {
1143
1184
  queryType: 'Update',
1144
1185
  multipleRowsResult: false,
1145
- parametersNullability: traverseResult.parameters.slice(0, parametersBefore).map(param => param.isNotNull),
1186
+ parametersNullability: traverseResult.parameters.slice(0, parametersBefore).map(param => (Object.assign({ isNotNull: param.isNotNull }, addConstraintIfNotNull(param.checkConstraint)))),
1146
1187
  columns: returninColumns,
1147
- parameterList: [],
1188
+ parameterList: paramIsListResult,
1148
1189
  whereParamtersNullability: whereParameters.map(param => param.isNotNull)
1149
1190
  };
1150
1191
  if (returning_clause) {
@@ -1488,7 +1529,9 @@ const aggregateFunctions = new Set([
1488
1529
  function isAggregateFunction_c_expr(func_expr) {
1489
1530
  var _a, _b, _c;
1490
1531
  const funcName = (_c = (_b = (_a = func_expr === null || func_expr === void 0 ? void 0 : func_expr.func_application()) === null || _a === void 0 ? void 0 : _a.func_name()) === null || _b === void 0 ? void 0 : _b.getText()) === null || _c === void 0 ? void 0 : _c.toLowerCase();
1491
- return aggregateFunctions.has(funcName);
1532
+ // RANK(), DENSE_RANK(), PERCENT_RANK() - they are window functions, not aggregate functions,
1533
+ // even though your query is returning them from a join involving pg_aggregate.
1534
+ return !func_expr.over_clause() && aggregateFunctions.has(funcName);
1492
1535
  }
1493
1536
  function isSetReturningFunction_target_el(target_el) {
1494
1537
  if (target_el instanceof PostgreSQLParser_1.Target_labelContext) {
@@ -1505,6 +1548,9 @@ function isSetReturningFunction_c_expr(func_expr) {
1505
1548
  }
1506
1549
  function isSingleRowResult_where(a_expr, uniqueKeys) {
1507
1550
  var _a, _b;
1551
+ if (uniqueKeys.length === 0) {
1552
+ return false;
1553
+ }
1508
1554
  const a_expr_or_list = ((_b = (_a = a_expr.a_expr_qual()) === null || _a === void 0 ? void 0 : _a.a_expr_lessless()) === null || _b === void 0 ? void 0 : _b.a_expr_or_list()) || [];
1509
1555
  if (a_expr_or_list.length > 1 || a_expr_or_list[0].OR_list().length > 0) {
1510
1556
  return false;
@@ -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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"}
package/util.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export declare const indexGroupBy: <T, Q>(array: T[], predicate: (value: T, index: number, array: T[]) => Q) => Map<Q, number[]>;
2
+ export declare const groupBy: <T, Q>(array: T[], predicate: (value: T, index: number, array: T[]) => Q) => Map<Q, T[]>;
2
3
  //# sourceMappingURL=util.d.ts.map
package/util.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,GAAI,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,qBAMnG,CAAC"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,GAAI,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,qBAMnG,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,gBAM9F,CAAA"}
package/util.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.indexGroupBy = void 0;
3
+ exports.groupBy = exports.indexGroupBy = void 0;
4
4
  const indexGroupBy = (array, predicate) => {
5
5
  return array.reduce((map, value, index, array) => {
6
6
  var _a, _b;
@@ -10,4 +10,13 @@ const indexGroupBy = (array, predicate) => {
10
10
  }, new Map());
11
11
  };
12
12
  exports.indexGroupBy = indexGroupBy;
13
+ const groupBy = (array, predicate) => {
14
+ return array.reduce((map, value, index, array) => {
15
+ var _a, _b;
16
+ const key = predicate(value, index, array);
17
+ (_b = (_a = map.get(key)) === null || _a === void 0 ? void 0 : _a.push(value)) !== null && _b !== void 0 ? _b : map.set(key, [value]);
18
+ return map;
19
+ }, new Map());
20
+ };
21
+ exports.groupBy = groupBy;
13
22
  //# sourceMappingURL=util.js.map
package/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":";;;AAAO,MAAM,YAAY,GAAG,CAAO,KAAU,EAAE,SAAqD,EAAE,EAAE;IACvG,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;;QAChD,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3C,MAAA,MAAA,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,0CAAE,IAAI,CAAC,KAAK,CAAC,mCAAI,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACnD,OAAO,GAAG,CAAC;IACZ,CAAC,EAAE,IAAI,GAAG,EAAe,CAAC,CAAC;AAC5B,CAAC,CAAC;AANW,QAAA,YAAY,gBAMvB"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":";;;AAAO,MAAM,YAAY,GAAG,CAAO,KAAU,EAAE,SAAqD,EAAE,EAAE;IACvG,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;;QAChD,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3C,MAAA,MAAA,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,0CAAE,IAAI,CAAC,KAAK,CAAC,mCAAI,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACnD,OAAO,GAAG,CAAC;IACZ,CAAC,EAAE,IAAI,GAAG,EAAe,CAAC,CAAC;AAC5B,CAAC,CAAC;AANW,QAAA,YAAY,gBAMvB;AAEK,MAAM,OAAO,GAAG,CAAO,KAAU,EAAE,SAAqD,EAAE,EAAE;IAClG,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;;QAChD,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3C,MAAA,MAAA,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,0CAAE,IAAI,CAAC,KAAK,CAAC,mCAAI,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACnD,OAAO,GAAG,CAAC;IACZ,CAAC,EAAE,IAAI,GAAG,EAAU,CAAC,CAAC;AACvB,CAAC,CAAA;AANY,QAAA,OAAO,WAMnB"}