typesql-cli 0.6.1 → 0.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/code-generator.d.ts +3 -0
- package/code-generator.d.ts.map +1 -1
- package/code-generator.js +86 -10
- package/code-generator.js.map +1 -1
- package/describe-nested-query.d.ts +29 -0
- package/describe-nested-query.d.ts.map +1 -0
- package/describe-nested-query.js +154 -0
- package/describe-nested-query.js.map +1 -0
- package/describe-query.d.ts +1 -0
- package/describe-query.d.ts.map +1 -1
- package/describe-query.js +18 -18
- package/describe-query.js.map +1 -1
- package/mysql-mapping.d.ts +1 -1
- package/mysql-mapping.d.ts.map +1 -1
- package/mysql-mapping.js +1 -1
- package/mysql-mapping.js.map +1 -1
- package/mysql-query-analyzer/collect-constraints.d.ts +2 -1
- package/mysql-query-analyzer/collect-constraints.d.ts.map +1 -1
- package/mysql-query-analyzer/collect-constraints.js +18 -5
- package/mysql-query-analyzer/collect-constraints.js.map +1 -1
- package/mysql-query-analyzer/infer-column-nullability.d.ts.map +1 -1
- package/mysql-query-analyzer/infer-column-nullability.js +6 -1
- package/mysql-query-analyzer/infer-column-nullability.js.map +1 -1
- package/mysql-query-analyzer/parse.d.ts.map +1 -1
- package/mysql-query-analyzer/parse.js +13 -3
- package/mysql-query-analyzer/parse.js.map +1 -1
- package/mysql-query-analyzer/select-columns.d.ts +1 -0
- package/mysql-query-analyzer/select-columns.d.ts.map +1 -1
- package/mysql-query-analyzer/select-columns.js +9 -3
- package/mysql-query-analyzer/select-columns.js.map +1 -1
- package/mysql-query-analyzer/traverse.d.ts +0 -1
- package/mysql-query-analyzer/traverse.d.ts.map +1 -1
- package/mysql-query-analyzer/traverse.js +31 -23
- package/mysql-query-analyzer/traverse.js.map +1 -1
- package/mysql-query-analyzer/types.d.ts +6 -1
- package/mysql-query-analyzer/types.d.ts.map +1 -1
- package/mysql-query-analyzer/unify.d.ts.map +1 -1
- package/mysql-query-analyzer/unify.js +2 -3
- package/mysql-query-analyzer/unify.js.map +1 -1
- package/package.json +2 -2
- package/ts-nested-descriptor.d.ts +26 -0
- package/ts-nested-descriptor.d.ts.map +1 -0
- package/ts-nested-descriptor.js +73 -0
- package/ts-nested-descriptor.js.map +1 -0
- package/types.d.ts +11 -7
- package/types.d.ts.map +1 -1
@@ -2,8 +2,9 @@ import { SimpleExprFunctionContext, ExprContext, InsertStatementContext, DeleteS
|
|
2
2
|
import { ColumnSchema, ColumnDef, TypeVar, Type, Constraint, SubstitutionHash } from "./types";
|
3
3
|
import { InferType } from "../mysql-mapping";
|
4
4
|
import { TerminalNode } from "antlr4ts/tree";
|
5
|
-
export declare function freshVar(name: string, typeVar: InferType, selectItem?: true, list?: true): TypeVar;
|
5
|
+
export declare function freshVar(name: string, typeVar: InferType, table?: string, selectItem?: true, list?: true): TypeVar;
|
6
6
|
export declare function createColumnType(col: ColumnDef): TypeVar;
|
7
|
+
export declare function createColumnTypeFomColumnSchema(col: ColumnSchema): TypeVar;
|
7
8
|
export type ExprOrDefault = ExprContext | TerminalNode;
|
8
9
|
export declare function getInsertIntoTable(insertStatement: InsertStatementContext): string;
|
9
10
|
export declare function getInsertColumns(insertStatement: InsertStatementContext, fromColumns: ColumnDef[]): ColumnDef[];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"collect-constraints.d.ts","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/collect-constraints.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,yBAAyB,EACzB,WAAW,EACX,sBAAsB,EAAE,sBAAsB,EACjD,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE/F,OAAO,EAAa,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,
|
1
|
+
{"version":3,"file":"collect-constraints.d.ts","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/collect-constraints.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,yBAAyB,EACzB,WAAW,EACX,sBAAsB,EAAE,sBAAsB,EACjD,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE/F,OAAO,EAAa,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,CAelH;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,SAAS,WAS9C;AAED,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,YAAY,WAShE;AAED,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,YAAY,CAAC;AAGvD,wBAAgB,kBAAkB,CAAC,eAAe,EAAE,sBAAsB,UAGzE;AAED,wBAAgB,gBAAgB,CAAC,eAAe,EAAE,sBAAsB,EAAE,WAAW,EAAE,SAAS,EAAE,eAuBjG;AAED,wBAAgB,gBAAgB,CAAC,eAAe,EAAE,sBAAsB,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE,CAmB/G;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,SAAS,EAAE,CAO9F;AAED,wBAAgB,UAAU,CAAC,aAAa,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,GAAG,SAAS,CAqBpF;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,QAajD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,WAE5C;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,WAEhD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,WAE5C;AAED,wBAAgB,eAAe,CAAC,kBAAkB,EAAE,yBAAyB,sBAG5E;AAED,MAAM,MAAM,oBAAoB,GAAG;IAC/B,IAAI,EAAE,sBAAsB,CAAC;IAC7B,SAAS,EAAE,SAAS,CAAC;CACxB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC5B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,UAAU,EAAE,OAAO,EAAE,CAAC;CACzB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG,iBAAiB,CAAC"}
|
@@ -3,17 +3,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
4
|
};
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
exports.getFunctionName = exports.isDateLiteral = exports.isDateTimeLiteral = exports.isTimeLiteral = exports.verifyDateTypesCoercion = exports.getVarType = exports.generateTypeInfo = exports.getDeleteColumns = exports.getInsertColumns = exports.getInsertIntoTable = exports.createColumnType = exports.freshVar = void 0;
|
6
|
+
exports.getFunctionName = exports.isDateLiteral = exports.isDateTimeLiteral = exports.isTimeLiteral = exports.verifyDateTypesCoercion = exports.getVarType = exports.generateTypeInfo = exports.getDeleteColumns = exports.getInsertColumns = exports.getInsertIntoTable = exports.createColumnTypeFomColumnSchema = exports.createColumnType = exports.freshVar = void 0;
|
7
7
|
const moment_1 = __importDefault(require("moment"));
|
8
8
|
const select_columns_1 = require("./select-columns");
|
9
9
|
const unify_1 = require("./unify");
|
10
10
|
let counter = 0;
|
11
|
-
function freshVar(name, typeVar, selectItem, list) {
|
11
|
+
function freshVar(name, typeVar, table, selectItem, list) {
|
12
12
|
const param = {
|
13
13
|
kind: 'TypeVar',
|
14
14
|
id: (++counter).toString(),
|
15
15
|
name,
|
16
|
-
type: typeVar
|
16
|
+
type: typeVar,
|
17
|
+
table
|
17
18
|
};
|
18
19
|
if (list) {
|
19
20
|
param.list = true;
|
@@ -29,11 +30,23 @@ function createColumnType(col) {
|
|
29
30
|
kind: 'TypeVar',
|
30
31
|
id: col.columnType.id,
|
31
32
|
name: col.columnName,
|
32
|
-
type: col.columnType.type
|
33
|
+
type: col.columnType.type,
|
34
|
+
table: col.tableAlias || col.table
|
33
35
|
};
|
34
36
|
return columnType;
|
35
37
|
}
|
36
38
|
exports.createColumnType = createColumnType;
|
39
|
+
function createColumnTypeFomColumnSchema(col) {
|
40
|
+
const columnType = {
|
41
|
+
kind: 'TypeVar',
|
42
|
+
id: col.column,
|
43
|
+
name: col.column,
|
44
|
+
type: col.column_type,
|
45
|
+
table: col.table
|
46
|
+
};
|
47
|
+
return columnType;
|
48
|
+
}
|
49
|
+
exports.createColumnTypeFomColumnSchema = createColumnTypeFomColumnSchema;
|
37
50
|
function getInsertIntoTable(insertStatement) {
|
38
51
|
const insertIntoTable = (0, select_columns_1.splitName)(insertStatement.tableRef().text).name;
|
39
52
|
return insertIntoTable;
|
@@ -73,7 +86,7 @@ function getDeleteColumns(deleteStatement, dbSchema) {
|
|
73
86
|
table: tableNameStr,
|
74
87
|
tableAlias: tableAlias,
|
75
88
|
columnName: col.column,
|
76
|
-
columnType:
|
89
|
+
columnType: createColumnTypeFomColumnSchema(col),
|
77
90
|
columnKey: col.columnKey,
|
78
91
|
notNull: col.notNull
|
79
92
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"collect-constraints.js","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/collect-constraints.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAS5B,qDAAyD;AAEzD,mCAAgC;AAGhC,IAAI,OAAO,GAAG,CAAC,CAAC;AAChB,SAAgB,QAAQ,CAAC,IAAY,EAAE,OAAkB,EAAE,UAAiB,EAAE,IAAW;
|
1
|
+
{"version":3,"file":"collect-constraints.js","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/collect-constraints.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAS5B,qDAAyD;AAEzD,mCAAgC;AAGhC,IAAI,OAAO,GAAG,CAAC,CAAC;AAChB,SAAgB,QAAQ,CAAC,IAAY,EAAE,OAAkB,EAAE,KAAc,EAAE,UAAiB,EAAE,IAAW;IACrG,MAAM,KAAK,GAAY;QACnB,IAAI,EAAE,SAAS;QACf,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE;QAC1B,IAAI;QACJ,IAAI,EAAE,OAAO;QACb,KAAK;KACR,CAAA;IACD,IAAI,IAAI,EAAE;QACN,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;KACrB;IACD,IAAI,UAAU,EAAE;QACZ,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;KAC3B;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAfD,4BAeC;AAED,SAAgB,gBAAgB,CAAC,GAAc;IAC3C,MAAM,UAAU,GAAY;QACxB,IAAI,EAAE,SAAS;QACf,EAAE,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE;QACrB,IAAI,EAAE,GAAG,CAAC,UAAU;QACpB,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,IAAI;QACzB,KAAK,EAAE,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,KAAK;KACrC,CAAA;IACD,OAAO,UAAU,CAAC;AACtB,CAAC;AATD,4CASC;AAED,SAAgB,+BAA+B,CAAC,GAAiB;IAC7D,MAAM,UAAU,GAAY;QACxB,IAAI,EAAE,SAAS;QACf,EAAE,EAAE,GAAG,CAAC,MAAM;QACd,IAAI,EAAE,GAAG,CAAC,MAAM;QAChB,IAAI,EAAE,GAAG,CAAC,WAAW;QACrB,KAAK,EAAE,GAAG,CAAC,KAAK;KACnB,CAAA;IACD,OAAO,UAAU,CAAC;AACtB,CAAC;AATD,0EASC;AAKD,SAAgB,kBAAkB,CAAC,eAAuC;IACtE,MAAM,eAAe,GAAG,IAAA,0BAAS,EAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;IACxE,OAAO,eAAe,CAAC;AAC3B,CAAC;AAHD,gDAGC;AAED,SAAgB,gBAAgB,CAAC,eAAuC,EAAE,WAAwB;;IAC9F,MAAM,eAAe,GAAG,kBAAkB,CAAC,eAAe,CAAC,CAAC;IAE5D,MAAM,YAAY,GAAG,eAAe,CAAC,qBAAqB,EAAE;QACxD,eAAe,CAAC,qBAAqB,EAAE,CAAC;IAE5C,MAAM,MAAM,GAAG,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,EAAE,0CAAE,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAC,EAAE;QAC7E,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,EAAE,CAAC;QAC5C,IAAI,MAAM,EAAE;YACR,MAAM,SAAS,GAAG,IAAA,0BAAS,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,IAAA,2BAAU,EAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YAClD,OAAO,MAAM,CAAC;SAEjB;QACD,MAAM,KAAK,CAAC,aAAa,CAAC,CAAC;IAE/B,CAAC,CAAC,CAAC;IAEH,mFAAmF;IACnF,IAAI,CAAC,MAAM,EAAE;QACT,OAAO,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,eAAe,CAAC,CAAC;KACxE;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAvBD,4CAuBC;AAED,SAAgB,gBAAgB,CAAC,eAAuC,EAAE,QAAwB;;IAC9F,8CAA8C;IAC9C,MAAM,YAAY,GAAG,MAAA,eAAe,CAAC,QAAQ,EAAE,0CAAE,IAAK,CAAA;IACtD,MAAM,UAAU,GAAG,MAAA,eAAe,CAAC,UAAU,EAAE,0CAAE,IAAI,CAAC;IACtD,MAAM,SAAS,GAAG,IAAA,0BAAS,EAAC,YAAY,CAAC,CAAC,IAAI,CAAC;IAC/C,MAAM,OAAO,GAAG,QAAQ;SACnB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,SAAS,CAAC;SACrC,GAAG,CAAC,GAAG,CAAC,EAAE;QACP,MAAM,MAAM,GAAc;YACtB,KAAK,EAAE,YAAY;YACnB,UAAU,EAAE,UAAU;YACtB,UAAU,EAAE,GAAG,CAAC,MAAM;YACtB,UAAU,EAAE,+BAA+B,CAAC,GAAG,CAAC;YAChD,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,OAAO,EAAE,GAAG,CAAC,OAAO;SACvB,CAAA;QACD,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC,CAAA;IACN,OAAO,OAAO,CAAC;AACnB,CAAC;AAnBD,4CAmBC;AAED,SAAgB,gBAAgB,CAAC,UAAqB,EAAE,WAAyB;IAE7E,MAAM,aAAa,GAAqB,EAAE,CAAA;IAC1C,IAAA,aAAK,EAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAElC,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;IAC7E,OAAO,UAAU,CAAC;AACtB,CAAC;AAPD,4CAOC;AAED,SAAgB,UAAU,CAAC,aAA+B,EAAE,OAAa;IACrE,IAAI,OAAO,CAAC,IAAI,IAAI,SAAS,EAAE;QAC3B,6BAA6B;QAC7B,2BAA2B;QAC3B,IAAI;QACJ,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,IAAI,EAAE;YACN,IAAI,IAAI,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,EAAE;gBACvB,OAAO,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;aACzC;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAC5E,OAAO,UAAuB,CAAC;SAClC;QACD,eAAe;QACf,wCAAwC;QACxC,IAAI;QACJ,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QACrE,OAAO,UAAuB,CAAC;KAClC;IACD,OAAO,GAAG,CAAA;AAEd,CAAC;AArBD,gCAqBC;AAED,SAAgB,uBAAuB,CAAC,IAAU;IAE9C,IAAI,IAAI,CAAC,IAAI,IAAI,SAAS,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACxD,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;KAC1B;IACD,IAAI,IAAI,CAAC,IAAI,IAAI,SAAS,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACpD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;KACtB;IACD,IAAI,IAAI,CAAC,IAAI,IAAI,SAAS,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACpD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;KACtB;IACD,OAAO,IAAI,CAAC;AAEhB,CAAC;AAbD,0DAaC;AAED,SAAgB,aAAa,CAAC,OAAe;IACzC,OAAO,IAAA,gBAAM,EAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,IAAA,gBAAM,EAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;AACnG,CAAC;AAFD,sCAEC;AAED,SAAgB,iBAAiB,CAAC,OAAe;IAC7C,OAAO,IAAA,gBAAM,EAAC,OAAO,EAAE,qBAAqB,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,CAAA;AACjE,CAAC;AAFD,8CAEC;AAED,SAAgB,aAAa,CAAC,OAAe;IACzC,OAAO,IAAA,gBAAM,EAAC,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;AACzD,CAAC;AAFD,sCAEC;AAED,SAAgB,eAAe,CAAC,kBAA6C;;IACzE,OAAO,CAAA,MAAA,kBAAkB,CAAC,YAAY,EAAE,CAAC,cAAc,EAAE,0CAAE,IAAI,CAAC,WAAW,EAAE;YACtE,MAAA,kBAAkB,CAAC,YAAY,EAAE,CAAC,mBAAmB,EAAE,0CAAE,IAAI,CAAC,WAAW,EAAE,CAAA,CAAC;AACvF,CAAC;AAHD,0CAGC"}
|
@@ -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,EACH,yBAAyB,EAAqB,WAAW,EAK5D,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;
|
1
|
+
{"version":3,"file":"infer-column-nullability.d.ts","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/infer-column-nullability.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,yBAAyB,EAAqB,WAAW,EAK5D,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAS7D,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,aASzE;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,yBAAyB,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,aAiBpH;AA4QD,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAuDhF"}
|
@@ -5,9 +5,14 @@ const ts_mysql_parser_1 = require("ts-mysql-parser");
|
|
5
5
|
const select_columns_1 = require("./select-columns");
|
6
6
|
const infer_param_nullability_1 = require("./infer-param-nullability");
|
7
7
|
const traverse_1 = require("./traverse");
|
8
|
+
const parse_1 = require("./parse");
|
9
|
+
const describe_query_1 = require("../describe-query");
|
8
10
|
//TODO - COLUMN SCHEMA DEFAULT = []
|
11
|
+
//utility for tests
|
9
12
|
function parseAndInferNotNull(sql, dbSchema) {
|
10
|
-
const
|
13
|
+
const { sql: processedSql, namedParameters } = (0, describe_query_1.preprocessSql)(sql);
|
14
|
+
const tree = (0, parse_1.parse)(processedSql);
|
15
|
+
const result = (0, traverse_1.traverseQueryContext)(tree, dbSchema, namedParameters);
|
11
16
|
if (result.type == 'Select') {
|
12
17
|
return result.columns.map(col => col.notNull);
|
13
18
|
}
|
@@ -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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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/parse.ts"],"names":[],"mappings":"AAAA,OAAoB,EAAW,YAAY,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,eAAe,EAAE,4BAA4B,EAAE,0BAA0B,EAAE,4BAA4B,EAAsH,MAAM,iBAAiB,CAAC;AACrV,OAAO,EAAE,SAAS,EAAgB,MAAM,eAAe,CAAC;AAExD,OAAO,EACH,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EACxG,aAAa,EAAc,SAAS,EACvC,MAAM,SAAS,CAAC;
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/parse.ts"],"names":[],"mappings":"AAAA,OAAoB,EAAW,YAAY,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,eAAe,EAAE,4BAA4B,EAAE,0BAA0B,EAAE,4BAA4B,EAAsH,MAAM,iBAAiB,CAAC;AACrV,OAAO,EAAE,SAAS,EAAgB,MAAM,eAAe,CAAC;AAExD,OAAO,EACH,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EACxG,aAAa,EAAc,SAAS,EACvC,MAAM,SAAS,CAAC;AAcjB,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAO/C;AAGD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,mBAAmB,CAsBxF;AAED,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,EAAE,CAIpE;AAED,wBAAgB,wBAAwB,CAAC,eAAe,EAAE,sBAAsB,YAO/E;AAED,wBAAgB,sBAAsB,CAAC,eAAe,EAAE,sBAAsB,GAAG,aAAa,EAAE,CAU/F;AAED,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,sBAAsB,EAAE,WAAW,EAAE,SAAS,EAAE,WAwCpG;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,SAAS,WA2BxD;AAED,wBAAgB,eAAe,CAAC,eAAe,EAAE,sBAAsB,kDAKtE;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,eAAe,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,CA6DhJ;AA4CD,wBAAgB,4CAA4C,CACxD,eAAe,EAAE,sBAAsB,GACjC,0BAA0B,GAC1B,4BAA4B,GAC5B,eAAe,+BAKxB;AAED,wBAAgB,yCAAyC,CACrD,eAAe,EAAE,sBAAsB,GACjC,yBAAyB,GACzB,4BAA4B,GAC5B,0BAA0B,GAC1B,4BAA4B,GAC5B,eAAe,GAAG,yBAAyB,EAAE,CAKtD"}
|
@@ -32,6 +32,7 @@ const describe_query_1 = require("../describe-query");
|
|
32
32
|
const verify_multiple_result_1 = require("./verify-multiple-result");
|
33
33
|
const unify_1 = require("./unify");
|
34
34
|
const traverse_1 = require("./traverse");
|
35
|
+
const describe_nested_query_1 = require("../describe-nested-query");
|
35
36
|
const parser = new ts_mysql_parser_1.default({
|
36
37
|
version: '8.0.17',
|
37
38
|
mode: ts_mysql_parser_1.SqlMode.NoMode
|
@@ -167,9 +168,17 @@ function getLimitOptions(selectStatement) {
|
|
167
168
|
}
|
168
169
|
exports.getLimitOptions = getLimitOptions;
|
169
170
|
function extractQueryInfo(sql, dbSchema) {
|
170
|
-
const
|
171
|
+
const { sql: processedSql, namedParameters } = (0, describe_query_1.preprocessSql)(sql);
|
172
|
+
const gererateNested = (0, describe_query_1.generateNestedQueryResult)(sql);
|
173
|
+
const tree = parse(processedSql);
|
174
|
+
const traverseResult = (0, traverse_1.traverseQueryContext)(tree, dbSchema, namedParameters);
|
171
175
|
if (traverseResult.type == 'Select') {
|
172
|
-
|
176
|
+
const queryInfoResult = extractSelectQueryInfo(traverseResult);
|
177
|
+
if (gererateNested) {
|
178
|
+
const nestedInfo = (0, describe_nested_query_1.generateNestedInfo)(tree, dbSchema, queryInfoResult.columns);
|
179
|
+
queryInfoResult.nestedResultInfo = nestedInfo;
|
180
|
+
}
|
181
|
+
return queryInfoResult;
|
173
182
|
}
|
174
183
|
if (traverseResult.type == 'Insert') {
|
175
184
|
const newResult = {
|
@@ -227,7 +236,8 @@ function extractSelectQueryInfo(traverseResult) {
|
|
227
236
|
const colInfo = {
|
228
237
|
columnName: col.name,
|
229
238
|
type: (0, describe_query_1.verifyNotInferred)(columnType),
|
230
|
-
notNull: columnNotNull
|
239
|
+
notNull: columnNotNull,
|
240
|
+
table: col.table
|
231
241
|
};
|
232
242
|
return colInfo;
|
233
243
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/parse.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mEAAqV;AACrV,wCAAwD;AACxD,+DAAmD;AAKnD,uEAAuE;AACvE,
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/parse.ts"],"names":[],"mappings":"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"}
|
@@ -8,6 +8,7 @@ export declare function getColumnName(selectItem: SelectItemContext): string;
|
|
8
8
|
export declare function extractFieldsFromUsingClause(joinedTableContext: JoinedTableContext): string[];
|
9
9
|
export declare function splitName(fieldName: string): FieldName;
|
10
10
|
export declare const functionAlias: ColumnSchema[];
|
11
|
+
export declare function findColumnSchema(tableName: string, columnName: string, dbSchema: ColumnSchema[]): ColumnSchema | undefined;
|
11
12
|
export declare function findColumn(fieldName: FieldName, columns: ColumnDef[]): ColumnDef;
|
12
13
|
export declare function extractOriginalSql(rule: ParserRuleContext): string | undefined;
|
13
14
|
export declare function getSimpleExpressions(ctx: RuleContext): ParseTree[];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"select-columns.d.ts","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/select-columns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,OAAO,EACH,kBAAkB,EAIqH,iBAAiB,EAC3J,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAG7D,wBAAgB,aAAa,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE,CAyB9I;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,eAQ7E;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,iBAAiB,UAW1D;AAED,wBAAgB,4BAA4B,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,MAAM,EAAE,CAM7F;AAGD,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAWtD;AAOD,eAAO,MAAM,aAAa,EAAE,YAAY,EA6CvC,CAAA;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,SAAS,CAoBhF;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,sBAOzD;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,WAAW,GAAG,SAAS,EAAE,CAKlE"}
|
1
|
+
{"version":3,"file":"select-columns.d.ts","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/select-columns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,OAAO,EACH,kBAAkB,EAIqH,iBAAiB,EAC3J,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAG7D,wBAAgB,aAAa,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE,CAyB9I;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,eAQ7E;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,iBAAiB,UAW1D;AAED,wBAAgB,4BAA4B,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,MAAM,EAAE,CAM7F;AAGD,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAWtD;AAOD,eAAO,MAAM,aAAa,EAAE,YAAY,EA6CvC,CAAA;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,4BAI/F;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,SAAS,CAoBhF;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,sBAOzD;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,WAAW,GAAG,SAAS,EAAE,CAKlE"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.getSimpleExpressions = exports.extractOriginalSql = exports.findColumn = exports.functionAlias = exports.splitName = exports.extractFieldsFromUsingClause = exports.getColumnName = exports.selectAllColumns = exports.filterColumns = void 0;
|
3
|
+
exports.getSimpleExpressions = exports.extractOriginalSql = exports.findColumn = exports.findColumnSchema = exports.functionAlias = exports.splitName = exports.extractFieldsFromUsingClause = exports.getColumnName = exports.selectAllColumns = exports.filterColumns = void 0;
|
4
4
|
const antlr4ts_1 = require("antlr4ts");
|
5
5
|
const Interval_1 = require("antlr4ts/misc/Interval");
|
6
6
|
const ts_mysql_parser_1 = require("ts-mysql-parser");
|
@@ -11,7 +11,7 @@ function filterColumns(dbSchema, withSchema, tableAlias, table) {
|
|
11
11
|
.map(tableColumn => {
|
12
12
|
//name and colum are the same on the leaf table
|
13
13
|
const r = {
|
14
|
-
columnName: tableColumn.column, columnType: (0, collect_constraints_1.
|
14
|
+
columnName: tableColumn.column, columnType: (0, collect_constraints_1.createColumnTypeFomColumnSchema)(tableColumn),
|
15
15
|
notNull: tableColumn.notNull, table: table.name, tableAlias: tableAlias || '', columnKey: tableColumn.columnKey
|
16
16
|
};
|
17
17
|
return r;
|
@@ -122,13 +122,19 @@ exports.functionAlias = [
|
|
122
122
|
table: ''
|
123
123
|
}
|
124
124
|
];
|
125
|
+
function findColumnSchema(tableName, columnName, dbSchema) {
|
126
|
+
const found = dbSchema.find(col => col.table.toLowerCase() == tableName.toLowerCase()
|
127
|
+
&& col.column.toLowerCase() == columnName.toLowerCase());
|
128
|
+
return found;
|
129
|
+
}
|
130
|
+
exports.findColumnSchema = findColumnSchema;
|
125
131
|
function findColumn(fieldName, columns) {
|
126
132
|
//TODO - Put tableAlias always ''
|
127
133
|
const functionType = exports.functionAlias.find(col => col.column.toLowerCase() == fieldName.name.toLowerCase());
|
128
134
|
if (functionType) {
|
129
135
|
const colDef = {
|
130
136
|
columnName: functionType.column,
|
131
|
-
columnType: (0, collect_constraints_1.
|
137
|
+
columnType: (0, collect_constraints_1.createColumnTypeFomColumnSchema)(functionType),
|
132
138
|
columnKey: functionType.columnKey,
|
133
139
|
notNull: functionType.notNull,
|
134
140
|
table: ''
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"select-columns.js","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/select-columns.ts"],"names":[],"mappings":";;;AAAA,uCAA0D;AAE1D,qDAAkD;AAElD,qDAMyB;AAGzB,+
|
1
|
+
{"version":3,"file":"select-columns.js","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/select-columns.ts"],"names":[],"mappings":"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"}
|
@@ -28,7 +28,6 @@ export type DeleteStatementResult = {
|
|
28
28
|
parameters: ParameterDef[];
|
29
29
|
};
|
30
30
|
export declare function traverseQueryContext(queryContext: QueryContext, dbSchema: ColumnSchema[], namedParameters: string[]): SelectStatementResult | InsertStatementResult | UpdateStatementResult | DeleteStatementResult;
|
31
|
-
export declare function traverseSql(sql: string, dbSchema: ColumnSchema[]): SelectStatementResult | InsertStatementResult | UpdateStatementResult | DeleteStatementResult;
|
32
31
|
export declare function traverseInsertStatement(insertStatement: InsertStatementContext, constraints: Constraint[], parameters: TypeVar[], dbSchema: ColumnSchema[]): InsertStatementResult;
|
33
32
|
export declare function traverseDeleteStatement(deleteStatement: DeleteStatementContext, constraints: Constraint[], parameters: TypeVar[], dbSchema: ColumnSchema[]): DeleteStatementResult;
|
34
33
|
export declare function getUpdateColumns(updateStatement: UpdateStatementContext, constraints: Constraint[], parameters: TypeVar[], dbSchema: ColumnSchema[], withSchema: ColumnDef[], fromColumns: ColumnDef[]): ColumnDef[];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"traverse.d.ts","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/traverse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,sBAAsB,EAAkB,WAAW,EAAuJ,sBAAsB,EAA8M,YAAY,EAAoH,yBAAyB,EAA4C,sBAAsB,EAA4c,sBAAsB,EAA6B,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAG5tC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAQ,gBAAgB,EAAgB,OAAO,EAAE,MAAM,SAAS,CAAC;AAKvI,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC,MAAM,MAAM,cAAc,GAAG,qBAAqB,GAAG,qBAAqB,GAAG,qBAAqB,GAAG,qBAAqB,CAAC;AAE3H,MAAM,MAAM,qBAAqB,GAAG;IAChC,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,eAAe,EAAE,aAAa,EAAE,CAAC;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAChC,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,UAAU,EAAE,YAAY,EAAE,CAAC;CAC9B,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAChC,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,IAAI,EAAE,gBAAgB,EAAE,CAAC;IACzB,UAAU,EAAE,gBAAgB,EAAE,CAAC;CAClC,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAChC,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,UAAU,EAAE,YAAY,EAAE,CAAC;CAC9B,CAAA;AAED,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,iGAuBnH;
|
1
|
+
{"version":3,"file":"traverse.d.ts","sourceRoot":"","sources":["../../../src/mysql-query-analyzer/traverse.ts"],"names":[],"mappings":"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"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.verifyMultipleResult2 = exports.isMultipleRowResult = exports.selectAllColumns = exports.filterColumns = exports.traverseWithClause = exports.traverseQuerySpecification = exports.getUpdateColumns = exports.traverseDeleteStatement = exports.traverseInsertStatement = exports.
|
3
|
+
exports.verifyMultipleResult2 = exports.isMultipleRowResult = exports.selectAllColumns = exports.filterColumns = exports.traverseWithClause = exports.traverseQuerySpecification = exports.getUpdateColumns = exports.traverseDeleteStatement = exports.traverseInsertStatement = exports.traverseQueryContext = void 0;
|
4
4
|
const ts_mysql_parser_1 = require("ts-mysql-parser");
|
5
5
|
const describe_query_1 = require("../describe-query");
|
6
6
|
const parse_1 = require("./parse");
|
@@ -35,12 +35,6 @@ function traverseQueryContext(queryContext, dbSchema, namedParameters) {
|
|
35
35
|
throw Error('traverseSql - not supported: ' + queryContext.constructor.name);
|
36
36
|
}
|
37
37
|
exports.traverseQueryContext = traverseQueryContext;
|
38
|
-
function traverseSql(sql, dbSchema) {
|
39
|
-
const { sql: processedSql, namedParameters } = (0, describe_query_1.preprocessSql)(sql);
|
40
|
-
const tree = (0, parse_1.parse)(processedSql);
|
41
|
-
return traverseQueryContext(tree, dbSchema, namedParameters);
|
42
|
-
}
|
43
|
-
exports.traverseSql = traverseSql;
|
44
38
|
function traverseSelectStatement(selectStatement, constraints, parameters, dbSchema, namedParameters) {
|
45
39
|
const queryExpression = selectStatement.queryExpression();
|
46
40
|
if (queryExpression) {
|
@@ -60,7 +54,8 @@ function traverseSelectStatement(selectStatement, constraints, parameters, dbSch
|
|
60
54
|
const param2 = {
|
61
55
|
name: param.name,
|
62
56
|
type: param,
|
63
|
-
notNull: paramInference[index]
|
57
|
+
notNull: paramInference[index],
|
58
|
+
table: ''
|
64
59
|
};
|
65
60
|
return param2;
|
66
61
|
});
|
@@ -225,7 +220,8 @@ function traverseUpdateStatement(updateStatement, constraints, parameters, dbSch
|
|
225
220
|
dataTypes.push({
|
226
221
|
name: namedParamters[paramsBefore + index] || field.name,
|
227
222
|
type: param,
|
228
|
-
notNull: column.notNull && !(0, infer_column_nullability_1.possibleNull)(field, expr)
|
223
|
+
notNull: column.notNull && !(0, infer_column_nullability_1.possibleNull)(field, expr),
|
224
|
+
table: ''
|
229
225
|
});
|
230
226
|
});
|
231
227
|
}
|
@@ -238,14 +234,16 @@ function traverseUpdateStatement(updateStatement, constraints, parameters, dbSch
|
|
238
234
|
whereParameters.push({
|
239
235
|
name: namedParamters[index] || 'param' + (whereParameters.length + 1),
|
240
236
|
type: param,
|
241
|
-
notNull: paramNullability[index]
|
237
|
+
notNull: paramNullability[index],
|
238
|
+
table: ''
|
242
239
|
});
|
243
240
|
});
|
244
241
|
parameters.slice(paramsAfter).forEach((param, index) => {
|
245
242
|
whereParameters.push({
|
246
243
|
name: namedParamters[paramsAfter + index] || 'param' + (whereParameters.length + 1),
|
247
244
|
type: param,
|
248
|
-
notNull: paramNullability[paramsAfter + index]
|
245
|
+
notNull: paramNullability[paramsAfter + index],
|
246
|
+
table: ''
|
249
247
|
});
|
250
248
|
});
|
251
249
|
const typeInferenceResult = {
|
@@ -351,6 +349,7 @@ function traverseQueryExpressionBody(queryExpressionBody, constraints, parameter
|
|
351
349
|
name: resultTypes[index].name,
|
352
350
|
type: resultTypes[index],
|
353
351
|
notNull: mainQueryResult.columns[index].notNull,
|
352
|
+
table: c.table || ''
|
354
353
|
};
|
355
354
|
return col;
|
356
355
|
});
|
@@ -386,11 +385,11 @@ function traverseQuerySpecification(querySpec, constraints, parameters, dbSchema
|
|
386
385
|
}
|
387
386
|
const columnNullability = (0, infer_column_nullability_1.inferNotNull)(querySpec, dbSchema, allColumns);
|
388
387
|
const columns = selectItemListResult.types.map((t, index) => {
|
389
|
-
const t2 = t;
|
390
388
|
const resultType = {
|
391
|
-
name:
|
392
|
-
type:
|
393
|
-
notNull: columnNullability[index]
|
389
|
+
name: t.name,
|
390
|
+
type: t,
|
391
|
+
notNull: columnNullability[index],
|
392
|
+
table: t.table || ''
|
394
393
|
};
|
395
394
|
return resultType;
|
396
395
|
});
|
@@ -515,7 +514,7 @@ function traverseTableFactor(tableFactor, constraints, parameters, dbSchema, wit
|
|
515
514
|
const subQueryResult = traverseSubquery(subQuery, constraints, parameters, dbSchema, withSchema, fromColumns);
|
516
515
|
const result = subQueryResult.columns.map(t => {
|
517
516
|
const colDef = {
|
518
|
-
table:
|
517
|
+
table: tableAlias || '',
|
519
518
|
columnName: t.name,
|
520
519
|
columnType: t.type,
|
521
520
|
columnKey: "",
|
@@ -573,7 +572,8 @@ function traverseSelectItemList(selectItemList, constraints, parameters, dbSchem
|
|
573
572
|
const itemName = (0, select_columns_1.splitName)(selectItem.text);
|
574
573
|
const allColumns = selectAllColumns(itemName.prefix, fromColumns);
|
575
574
|
allColumns.forEach(col => {
|
576
|
-
|
575
|
+
const columnType = (0, collect_constraints_1.createColumnType)(col);
|
576
|
+
listType.push(columnType);
|
577
577
|
});
|
578
578
|
}
|
579
579
|
}
|
@@ -708,7 +708,6 @@ function traverseBitExpr(bitExpr, constraints, parameters, dbSchema, withSchema,
|
|
708
708
|
return traverseSimpleExpr(simpleExpr, constraints, parameters, dbSchema, withSchema, fromColumns);
|
709
709
|
}
|
710
710
|
if (bitExpr.bitExpr().length == 2) {
|
711
|
-
const bitExprType = (0, collect_constraints_1.freshVar)(bitExpr.text, '?');
|
712
711
|
const bitExprLeft = bitExpr.bitExpr()[0];
|
713
712
|
const typeLeftTemp = traverseBitExpr(bitExprLeft, constraints, parameters, dbSchema, withSchema, fromColumns);
|
714
713
|
const typeLeft = typeLeftTemp.kind == 'TypeOperator' ? typeLeftTemp.types[0] : typeLeftTemp;
|
@@ -718,6 +717,10 @@ function traverseBitExpr(bitExpr, constraints, parameters, dbSchema, withSchema,
|
|
718
717
|
//In the expression 'id + (value + 2) + ?' the '(value+2)' is treated as a SimpleExprListContext and return a TypeOperator
|
719
718
|
const typeRight = typeRightTemp.kind == 'TypeOperator' ? typeRightTemp.types[0] : typeRightTemp;
|
720
719
|
//const newTypeRight = typeRight.name == '?'? freshVar('?', 'bigint') : typeRight;
|
720
|
+
const bitExprType = (0, collect_constraints_1.freshVar)(bitExpr.text, '?');
|
721
|
+
if (typeLeftTemp.kind == 'TypeVar' && typeRightTemp.kind == 'TypeVar' && typeLeftTemp.table == typeRightTemp.table) {
|
722
|
+
bitExprType.table = typeLeftTemp.table;
|
723
|
+
}
|
721
724
|
//PRECISA?
|
722
725
|
// constraints.push({
|
723
726
|
// expression: bitExpr.text,
|
@@ -808,7 +811,7 @@ function traverseSimpleExpr(simpleExpr, constraints, parameters, dbSchema, withS
|
|
808
811
|
if (simpleExpr instanceof ts_mysql_parser_1.SimpleExprColumnRefContext) {
|
809
812
|
const fieldName = (0, select_columns_1.splitName)(simpleExpr.text);
|
810
813
|
const column = (0, select_columns_1.findColumn)(fieldName, fromColumns.concat(withSchema));
|
811
|
-
const typeVar = (0, collect_constraints_1.freshVar)(column.columnName, column.columnType.type);
|
814
|
+
const typeVar = (0, collect_constraints_1.freshVar)(column.columnName, column.columnType.type, column.tableAlias || column.table);
|
812
815
|
constraints.push({
|
813
816
|
expression: simpleExpr.text,
|
814
817
|
type1: typeVar,
|
@@ -874,7 +877,7 @@ function traverseSimpleExpr(simpleExpr, constraints, parameters, dbSchema, withS
|
|
874
877
|
const subqueryResult = traverseSubquery(subquery, constraints, parameters, dbSchema, withSchema, fromColumns);
|
875
878
|
return {
|
876
879
|
kind: 'TypeOperator',
|
877
|
-
types: subqueryResult.columns.map(t => t.type)
|
880
|
+
types: subqueryResult.columns.map(t => (Object.assign(Object.assign({}, t.type), { table: '' })))
|
878
881
|
};
|
879
882
|
}
|
880
883
|
if (simpleExpr instanceof ts_mysql_parser_1.SimpleExprCaseContext) {
|
@@ -978,6 +981,9 @@ function traverseSimpleExpr(simpleExpr, constraints, parameters, dbSchema, withS
|
|
978
981
|
mostGeneralType: true,
|
979
982
|
coercionType: 'SumFunction'
|
980
983
|
});
|
984
|
+
if (inSumExprType.kind == 'TypeVar') {
|
985
|
+
functionType.table = inSumExprType.table;
|
986
|
+
}
|
981
987
|
}
|
982
988
|
return functionType;
|
983
989
|
}
|
@@ -1489,7 +1495,7 @@ function filterColumns(dbSchema, withSchema, tableAlias, table) {
|
|
1489
1495
|
.map(tableColumn => {
|
1490
1496
|
//name and colum are the same on the leaf table
|
1491
1497
|
const r = {
|
1492
|
-
columnName: tableColumn.column, columnType:
|
1498
|
+
columnName: tableColumn.column, columnType: (0, collect_constraints_1.createColumnTypeFomColumnSchema)(tableColumn),
|
1493
1499
|
notNull: tableColumn.notNull, table: table.name, tableAlias: tableAlias || '', columnKey: tableColumn.columnKey
|
1494
1500
|
};
|
1495
1501
|
return r;
|
@@ -1501,8 +1507,9 @@ exports.filterColumns = filterColumns;
|
|
1501
1507
|
function selectAllColumns(tablePrefix, fromColumns) {
|
1502
1508
|
return fromColumns.filter(column => {
|
1503
1509
|
if (tablePrefix == '' || tablePrefix == column.tableAlias || tablePrefix == column.table) {
|
1504
|
-
return
|
1510
|
+
return true;
|
1505
1511
|
}
|
1512
|
+
return false;
|
1506
1513
|
});
|
1507
1514
|
}
|
1508
1515
|
exports.selectAllColumns = selectAllColumns;
|
@@ -1510,8 +1517,9 @@ function filterUsingFields(joinedFields, usingFields) {
|
|
1510
1517
|
return joinedFields.filter(joinedField => {
|
1511
1518
|
const isUsing = usingFields.includes(joinedField.columnName);
|
1512
1519
|
if (!isUsing) {
|
1513
|
-
return
|
1520
|
+
return true;
|
1514
1521
|
}
|
1522
|
+
return false;
|
1515
1523
|
});
|
1516
1524
|
}
|
1517
1525
|
function isMultipleRowResult(selectStatement, fromColumns) {
|