typesql-cli 0.9.5 → 0.10.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.
- package/README.md +2 -3
- package/cli.js +91 -82
- package/cli.js.map +1 -1
- package/code-generator.d.ts +7 -7
- package/code-generator.d.ts.map +1 -1
- package/code-generator.js +257 -193
- package/code-generator.js.map +1 -1
- package/describe-dynamic-query.d.ts +1 -1
- package/describe-dynamic-query.d.ts.map +1 -1
- package/describe-dynamic-query.js +51 -39
- package/describe-dynamic-query.js.map +1 -1
- package/describe-nested-query.d.ts +2 -2
- package/describe-nested-query.d.ts.map +1 -1
- package/describe-nested-query.js +43 -24
- package/describe-nested-query.js.map +1 -1
- package/describe-query.d.ts +4 -4
- package/describe-query.d.ts.map +1 -1
- package/describe-query.js +29 -21
- package/describe-query.js.map +1 -1
- package/drivers/libsql.d.ts +3 -3
- package/drivers/libsql.d.ts.map +1 -1
- package/drivers/libsql.js +5 -2
- package/drivers/libsql.js.map +1 -1
- package/mysql-mapping.d.ts +1 -1
- package/mysql-mapping.d.ts.map +1 -1
- package/mysql-mapping.js +9 -9
- package/mysql-mapping.js.map +1 -1
- package/mysql-query-analyzer/collect-constraints.d.ts +4 -4
- package/mysql-query-analyzer/collect-constraints.d.ts.map +1 -1
- package/mysql-query-analyzer/collect-constraints.js +21 -16
- package/mysql-query-analyzer/collect-constraints.js.map +1 -1
- package/mysql-query-analyzer/infer-column-nullability.d.ts +2 -2
- package/mysql-query-analyzer/infer-column-nullability.d.ts.map +1 -1
- package/mysql-query-analyzer/infer-column-nullability.js +81 -67
- package/mysql-query-analyzer/infer-column-nullability.js.map +1 -1
- package/mysql-query-analyzer/infer-param-nullability.d.ts +2 -2
- package/mysql-query-analyzer/infer-param-nullability.d.ts.map +1 -1
- package/mysql-query-analyzer/infer-param-nullability.js +11 -10
- package/mysql-query-analyzer/infer-param-nullability.js.map +1 -1
- package/mysql-query-analyzer/parse.d.ts +2 -2
- package/mysql-query-analyzer/parse.d.ts.map +1 -1
- package/mysql-query-analyzer/parse.js +39 -32
- package/mysql-query-analyzer/parse.js.map +1 -1
- package/mysql-query-analyzer/select-columns.d.ts +4 -4
- package/mysql-query-analyzer/select-columns.d.ts.map +1 -1
- package/mysql-query-analyzer/select-columns.js +77 -52
- package/mysql-query-analyzer/select-columns.js.map +1 -1
- package/mysql-query-analyzer/traverse.d.ts +4 -4
- package/mysql-query-analyzer/traverse.d.ts.map +1 -1
- package/mysql-query-analyzer/traverse.js +312 -206
- package/mysql-query-analyzer/traverse.js.map +1 -1
- package/mysql-query-analyzer/types.d.ts +5 -5
- package/mysql-query-analyzer/types.d.ts.map +1 -1
- package/mysql-query-analyzer/unify.d.ts +2 -2
- package/mysql-query-analyzer/unify.d.ts.map +1 -1
- package/mysql-query-analyzer/unify.js +533 -491
- package/mysql-query-analyzer/unify.js.map +1 -1
- package/mysql-query-analyzer/util.d.ts.map +1 -1
- package/mysql-query-analyzer/util.js +2 -3
- package/mysql-query-analyzer/util.js.map +1 -1
- package/mysql-query-analyzer/verify-multiple-result.d.ts +2 -2
- package/mysql-query-analyzer/verify-multiple-result.d.ts.map +1 -1
- package/mysql-query-analyzer/verify-multiple-result.js +12 -8
- package/mysql-query-analyzer/verify-multiple-result.js.map +1 -1
- package/package.json +46 -45
- package/queryExectutor.d.ts +4 -4
- package/queryExectutor.d.ts.map +1 -1
- package/queryExectutor.js +11 -13
- package/queryExectutor.js.map +1 -1
- package/sql-generator.d.ts +2 -2
- package/sql-generator.d.ts.map +1 -1
- package/sql-generator.js +29 -25
- package/sql-generator.js.map +1 -1
- package/sqlite-query-analyzer/code-generator.d.ts +5 -5
- package/sqlite-query-analyzer/code-generator.d.ts.map +1 -1
- package/sqlite-query-analyzer/code-generator.js +372 -221
- package/sqlite-query-analyzer/code-generator.js.map +1 -1
- package/sqlite-query-analyzer/parser.d.ts +4 -4
- package/sqlite-query-analyzer/parser.d.ts.map +1 -1
- package/sqlite-query-analyzer/parser.js +30 -17
- package/sqlite-query-analyzer/parser.js.map +1 -1
- package/sqlite-query-analyzer/query-executor.d.ts +17 -6
- package/sqlite-query-analyzer/query-executor.d.ts.map +1 -1
- package/sqlite-query-analyzer/query-executor.js +97 -60
- package/sqlite-query-analyzer/query-executor.js.map +1 -1
- package/sqlite-query-analyzer/replace-list-params.d.ts +1 -1
- package/sqlite-query-analyzer/replace-list-params.d.ts.map +1 -1
- package/sqlite-query-analyzer/replace-list-params.js +4 -3
- package/sqlite-query-analyzer/replace-list-params.js.map +1 -1
- package/sqlite-query-analyzer/sqlite-describe-nested-query.d.ts +4 -4
- package/sqlite-query-analyzer/sqlite-describe-nested-query.d.ts.map +1 -1
- package/sqlite-query-analyzer/sqlite-describe-nested-query.js +33 -18
- package/sqlite-query-analyzer/sqlite-describe-nested-query.js.map +1 -1
- package/sqlite-query-analyzer/traverse.d.ts +5 -5
- package/sqlite-query-analyzer/traverse.d.ts.map +1 -1
- package/sqlite-query-analyzer/traverse.js +255 -162
- package/sqlite-query-analyzer/traverse.js.map +1 -1
- package/ts-dynamic-query-descriptor.d.ts +1 -1
- package/ts-dynamic-query-descriptor.d.ts.map +1 -1
- package/ts-dynamic-query-descriptor.js +4 -4
- package/ts-dynamic-query-descriptor.js.map +1 -1
- package/ts-nested-descriptor.d.ts +4 -4
- package/ts-nested-descriptor.d.ts.map +1 -1
- package/ts-nested-descriptor.js +11 -11
- package/ts-nested-descriptor.js.map +1 -1
- package/types.d.ts +14 -14
- package/types.d.ts.map +1 -1
- package/util.d.ts.map +1 -1
- package/util.js.map +1 -1
- package/utility-types.d.ts.map +1 -1
package/code-generator.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"code-generator.js","sourceRoot":"","sources":["../../src/code-generator.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"code-generator.js","sourceRoot":"","sources":["../../src/code-generator.ts"],"names":[],"mappings":"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"}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { DynamicSqlInfo, DynamicSqlInfo2, DynamicSqlInfoResult, DynamicSqlInfoResult2 } from
|
1
|
+
import type { DynamicSqlInfo, DynamicSqlInfo2, DynamicSqlInfoResult, DynamicSqlInfoResult2 } from './mysql-query-analyzer/types';
|
2
2
|
export declare function describeDynamicQuery(dynamicQueryInfo: DynamicSqlInfo, namedParameters: string[], orderBy: string[]): DynamicSqlInfoResult;
|
3
3
|
export declare function describeDynamicQuery2(dynamicQueryInfo: DynamicSqlInfo2, namedParameters: string[], orderByColumns: string[]): DynamicSqlInfoResult2;
|
4
4
|
//# sourceMappingURL=describe-dynamic-query.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"describe-dynamic-query.d.ts","sourceRoot":"","sources":["../../src/describe-dynamic-query.ts"],"names":[],"mappings":"AACA,OAAO,
|
1
|
+
{"version":3,"file":"describe-dynamic-query.d.ts","sourceRoot":"","sources":["../../src/describe-dynamic-query.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EAWrB,MAAM,8BAA8B,CAAC;AAEtC,wBAAgB,oBAAoB,CACnC,gBAAgB,EAAE,cAAc,EAChC,eAAe,EAAE,MAAM,EAAE,EACzB,OAAO,EAAE,MAAM,EAAE,GACf,oBAAoB,CA0DtB;AAmGD,wBAAgB,qBAAqB,CACpC,gBAAgB,EAAE,eAAe,EACjC,eAAe,EAAE,MAAM,EAAE,EACzB,cAAc,EAAE,MAAM,EAAE,GACtB,qBAAqB,CA+BvB"}
|
@@ -14,10 +14,10 @@ function describeDynamicQuery(dynamicQueryInfo, namedParameters, orderBy) {
|
|
14
14
|
};
|
15
15
|
return fragmentResult;
|
16
16
|
});
|
17
|
-
const withFragements = withFragments === null || withFragments === void 0 ? void 0 : withFragments.map(fragment => transformFrom(fragment, withFragments, select, from, where, namedParameters, orderBy));
|
18
|
-
const fromFragements = from.map(fragment => transformFrom(fragment, undefined, select, from, where, namedParameters, orderBy));
|
19
|
-
const whereFragements = where.map(fragment => {
|
20
|
-
const params = fragment.dependOnParams.map(paramIndex => namedParameters[paramIndex]);
|
17
|
+
const withFragements = withFragments === null || withFragments === void 0 ? void 0 : withFragments.map((fragment) => transformFrom(fragment, withFragments, select, from, where, namedParameters, orderBy));
|
18
|
+
const fromFragements = from.map((fragment) => transformFrom(fragment, undefined, select, from, where, namedParameters, orderBy));
|
19
|
+
const whereFragements = where.map((fragment) => {
|
20
|
+
const params = fragment.dependOnParams.map((paramIndex) => namedParameters[paramIndex]);
|
21
21
|
const fragmentResult = {
|
22
22
|
fragment: fragment.fragment,
|
23
23
|
dependOnFields: [],
|
@@ -41,38 +41,40 @@ function transformFrom(fragment, withFragments, select, from, where, namedParame
|
|
41
41
|
if (fragment.relation) {
|
42
42
|
addAllChildFields(fragment, from, withFragments);
|
43
43
|
}
|
44
|
-
const filteredWhere = where.filter(whereFragment => includeAny(whereFragment.fields, fragment.fields));
|
45
|
-
const hasUnconditional = filteredWhere
|
46
|
-
.some(fragment => fragment.dependOnParams.length == 0);
|
44
|
+
const filteredWhere = where.filter((whereFragment) => includeAny(whereFragment.fields, fragment.fields));
|
45
|
+
const hasUnconditional = filteredWhere.some((fragment) => fragment.dependOnParams.length === 0);
|
47
46
|
if (hasUnconditional) {
|
48
47
|
return {
|
49
48
|
fragment: fragment.fragment,
|
50
49
|
dependOnFields: [],
|
51
50
|
dependOnParams: [],
|
52
|
-
parameters: fragment.parameters.map(paramIndex => namedParameters[paramIndex])
|
51
|
+
parameters: fragment.parameters.map((paramIndex) => namedParameters[paramIndex])
|
53
52
|
};
|
54
53
|
}
|
55
54
|
const fieldIndex = select.flatMap((selectField, index) => {
|
56
|
-
const found = selectField.dependOn.find(dependsOn => fragment.dependOn.includes(dependsOn));
|
55
|
+
const found = selectField.dependOn.find((dependsOn) => fragment.dependOn.includes(dependsOn));
|
57
56
|
if (found) {
|
58
57
|
return index;
|
59
58
|
}
|
60
59
|
return [];
|
61
60
|
});
|
62
|
-
const orderBy = orderByColumns.flatMap(orderBy => {
|
61
|
+
const orderBy = orderByColumns.flatMap((orderBy) => {
|
63
62
|
const orderByField = (0, select_columns_1.splitName)(orderBy);
|
64
|
-
const found = fragment.fields.find(field => field.name
|
63
|
+
const found = fragment.fields.find((field) => field.name === orderByField.name &&
|
64
|
+
(field.table === orderByField.prefix || orderByField.prefix === ''));
|
65
65
|
if (found) {
|
66
66
|
return orderBy;
|
67
67
|
}
|
68
68
|
return [];
|
69
69
|
});
|
70
|
-
const params = filteredWhere
|
70
|
+
const params = filteredWhere
|
71
|
+
.flatMap((fragment) => fragment.dependOnParams)
|
72
|
+
.map((paramIndex) => namedParameters[paramIndex]);
|
71
73
|
const fragmentResult = {
|
72
74
|
fragment: fragment.fragment,
|
73
75
|
dependOnFields: fieldIndex,
|
74
76
|
dependOnParams: [...new Set(params)],
|
75
|
-
parameters: fragment.parameters.map(paramIndex => namedParameters[paramIndex])
|
77
|
+
parameters: fragment.parameters.map((paramIndex) => namedParameters[paramIndex])
|
76
78
|
};
|
77
79
|
if (orderBy.length > 0) {
|
78
80
|
fragmentResult.dependOnOrderBy = orderBy;
|
@@ -80,19 +82,19 @@ function transformFrom(fragment, withFragments, select, from, where, namedParame
|
|
80
82
|
return fragmentResult;
|
81
83
|
}
|
82
84
|
function includeAny(fields, fields2) {
|
83
|
-
return fields.some(f => fields2.find(f2 => f2.field
|
85
|
+
return fields.some((f) => fields2.find((f2) => f2.field === f.field && f2.table === f.table));
|
84
86
|
}
|
85
87
|
function addAllChildFields(currentRelation, select, withFragments) {
|
86
|
-
currentRelation.dependOn.push(currentRelation.relation
|
87
|
-
select.forEach(fragment => {
|
88
|
-
if (fragment.parentRelation
|
88
|
+
currentRelation.dependOn.push(`${currentRelation.relation}`);
|
89
|
+
select.forEach((fragment) => {
|
90
|
+
if (fragment.parentRelation === currentRelation.relation) {
|
89
91
|
currentRelation.fields.push(...fragment.fields);
|
90
|
-
currentRelation.dependOn.push(fragment.relation
|
92
|
+
currentRelation.dependOn.push(`${fragment.relation}`);
|
91
93
|
}
|
92
|
-
withFragments === null || withFragments === void 0 ? void 0 : withFragments.forEach(withFragment => {
|
93
|
-
if (withFragment.parentRelation
|
94
|
+
withFragments === null || withFragments === void 0 ? void 0 : withFragments.forEach((withFragment) => {
|
95
|
+
if (withFragment.parentRelation === fragment.relation) {
|
94
96
|
withFragment.fields.push(...fragment.fields);
|
95
|
-
withFragment.dependOn.push(fragment.relation
|
97
|
+
withFragment.dependOn.push(`${fragment.relation}`);
|
96
98
|
}
|
97
99
|
});
|
98
100
|
});
|
@@ -109,35 +111,42 @@ function describeDynamicQuery2(dynamicQueryInfo, namedParameters, orderByColumns
|
|
109
111
|
if (limitOffset) {
|
110
112
|
result.limitOffset = {
|
111
113
|
fragment: limitOffset.fragment,
|
112
|
-
parameters: limitOffset.parameters.map(paramIndex => namedParameters[paramIndex])
|
114
|
+
parameters: limitOffset.parameters.map((paramIndex) => namedParameters[paramIndex])
|
113
115
|
};
|
114
116
|
}
|
115
117
|
return result;
|
116
118
|
}
|
117
119
|
exports.describeDynamicQuery2 = describeDynamicQuery2;
|
118
120
|
function transformSelectFragments(selectFragments, namedParameters) {
|
119
|
-
return selectFragments.map(select => ({
|
121
|
+
return selectFragments.map((select) => ({
|
122
|
+
fragment: select.fragment,
|
123
|
+
fragmentWitoutAlias: select.fragmentWitoutAlias,
|
124
|
+
parameters: select.parameters.map((paramIndex) => namedParameters[paramIndex])
|
125
|
+
}));
|
120
126
|
}
|
121
127
|
function transformWithFragmnts(withFragments, fromFragments, namedParameters) {
|
122
|
-
return withFragments.map(withFragment => {
|
123
|
-
const fromDependOn = fromFragments.filter(from => from.relationName
|
124
|
-
const dependOnFields = fromDependOn.flatMap(from => from.dependOnFields);
|
125
|
-
const dependOnOrderBy = fromDependOn.flatMap(from => from.dependOnOrderBy);
|
128
|
+
return withFragments.map((withFragment) => {
|
129
|
+
const fromDependOn = fromFragments.filter((from) => from.relationName === withFragment.relationName);
|
130
|
+
const dependOnFields = fromDependOn.flatMap((from) => from.dependOnFields);
|
131
|
+
const dependOnOrderBy = fromDependOn.flatMap((from) => from.dependOnOrderBy);
|
126
132
|
const fromFragmentResult = {
|
127
133
|
fragment: withFragment.fragment,
|
128
134
|
relationName: withFragment.relationName,
|
129
135
|
dependOnFields,
|
130
136
|
dependOnOrderBy,
|
131
|
-
parameters: withFragment.parameters.map(paramIndex => namedParameters[paramIndex])
|
137
|
+
parameters: withFragment.parameters.map((paramIndex) => namedParameters[paramIndex])
|
132
138
|
};
|
133
139
|
return fromFragmentResult;
|
134
140
|
});
|
135
141
|
}
|
136
142
|
function transformFromFragments(fromFragments, selectFragments, namedParameters, orderByColumns) {
|
137
|
-
const fromResult = fromFragments.map(from => {
|
138
|
-
const orderBy = orderByColumns.flatMap(orderBy => {
|
143
|
+
const fromResult = fromFragments.map((from) => {
|
144
|
+
const orderBy = orderByColumns.flatMap((orderBy) => {
|
139
145
|
const orderByField = (0, select_columns_1.splitName)(orderBy);
|
140
|
-
const found = from.fields.find(field => field
|
146
|
+
const found = from.fields.find((field) => field === orderByField.name &&
|
147
|
+
(from.relationAlias === orderByField.prefix ||
|
148
|
+
from.relationName === orderByField.prefix ||
|
149
|
+
orderByField.prefix === ''));
|
141
150
|
if (found) {
|
142
151
|
return orderBy;
|
143
152
|
}
|
@@ -151,14 +160,16 @@ function transformFromFragments(fromFragments, selectFragments, namedParameters,
|
|
151
160
|
parentRelation: from.parentRelation,
|
152
161
|
dependOnFields: getDependOnFields({ relationName, relationAlias, parentRelation }, selectFragments),
|
153
162
|
dependOnOrderBy: orderBy,
|
154
|
-
parameters: from.parameters.map(paramIndex => namedParameters[paramIndex])
|
163
|
+
parameters: from.parameters.map((paramIndex) => namedParameters[paramIndex])
|
155
164
|
};
|
156
165
|
return fromFragmentResult;
|
157
166
|
});
|
158
|
-
const withChildren = fromResult.map(parentFrom => {
|
159
|
-
const actualAndChildRelations = fromResult.filter(childFrom => (childFrom.parentRelation
|
160
|
-
|
161
|
-
|
167
|
+
const withChildren = fromResult.map((parentFrom) => {
|
168
|
+
const actualAndChildRelations = fromResult.filter((childFrom) => (childFrom.parentRelation === parentFrom.relationAlias &&
|
169
|
+
parentFrom.parentRelation !== '') ||
|
170
|
+
childFrom.relationName === parentFrom.relationName);
|
171
|
+
const dependOnFields = actualAndChildRelations.flatMap((from) => from.dependOnFields);
|
172
|
+
const dependOnOrderBy = actualAndChildRelations.flatMap((from) => from.dependOnOrderBy);
|
162
173
|
const result = {
|
163
174
|
fragment: parentFrom.fragment,
|
164
175
|
relationName: parentFrom.relationName,
|
@@ -171,8 +182,8 @@ function transformFromFragments(fromFragments, selectFragments, namedParameters,
|
|
171
182
|
return withChildren;
|
172
183
|
}
|
173
184
|
function transformWhereFragments(whereFragements, namedParameters) {
|
174
|
-
return whereFragements.map(where => {
|
175
|
-
const parameters = where.parameters.map(param => namedParameters[param]);
|
185
|
+
return whereFragements.map((where) => {
|
186
|
+
const parameters = where.parameters.map((param) => namedParameters[param]);
|
176
187
|
const whereFragmentResult = {
|
177
188
|
fragment: where.fragment,
|
178
189
|
parameters
|
@@ -181,7 +192,8 @@ function transformWhereFragments(whereFragements, namedParameters) {
|
|
181
192
|
});
|
182
193
|
}
|
183
194
|
function getDependOnFields(relationInfo, selectFragments) {
|
184
|
-
if (relationInfo.parentRelation
|
195
|
+
if (relationInfo.parentRelation === '') {
|
196
|
+
//from
|
185
197
|
return [];
|
186
198
|
}
|
187
199
|
const dependOnFields = selectFragments.flatMap((select, index) => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"describe-dynamic-query.js","sourceRoot":"","sources":["../../src/describe-dynamic-query.ts"],"names":[],"mappings":";;;AAAA,0EAAkE;
|
1
|
+
{"version":3,"file":"describe-dynamic-query.js","sourceRoot":"","sources":["../../src/describe-dynamic-query.ts"],"names":[],"mappings":"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"}
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import { QueryContext } from '@wsporto/ts-mysql-parser';
|
2
|
-
import { ColumnInfo, ColumnSchema } from
|
1
|
+
import { type QueryContext } from '@wsporto/ts-mysql-parser';
|
2
|
+
import type { ColumnInfo, ColumnSchema } from './mysql-query-analyzer/types';
|
3
3
|
export type NestedResultInfo = {
|
4
4
|
relations: RelationInfo[];
|
5
5
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"describe-nested-query.d.ts","sourceRoot":"","sources":["../../src/describe-nested-query.ts"],"names":[],"mappings":"AAAA,OAAO,
|
1
|
+
{"version":3,"file":"describe-nested-query.d.ts","sourceRoot":"","sources":["../../src/describe-nested-query.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,YAAY,EAIjB,MAAM,0BAA0B,CAAC;AAOlC,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAG7E,MAAM,MAAM,gBAAgB,GAAG;IAC9B,SAAS,EAAE,YAAY,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,WAAW,EAAE,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,MAAM,GAAG,EAAE,CAAC;AAE9C,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,aAAa,CAAC;AAEhD,MAAM,MAAM,KAAK,GAAG;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,EAAE,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;CACzB,CAAC;AAGF,wBAAgB,mBAAmB,CAClC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,YAAY,EAAE,GACtB,gBAAgB,CAMlB;AAED,wBAAgB,kBAAkB,CACjC,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,YAAY,EAAE,EACxB,OAAO,EAAE,UAAU,EAAE,GACnB,gBAAgB,CA0BlB"}
|
package/describe-nested-query.js
CHANGED
@@ -10,7 +10,7 @@ function describeNestedQuery(sql, dbSchema) {
|
|
10
10
|
const { sql: processedSql } = (0, describe_query_1.preprocessSql)(sql);
|
11
11
|
const queryContext = (0, parse_1.parse)(processedSql);
|
12
12
|
const queryInfo = (0, parse_1.extractQueryInfo)(sql, dbSchema);
|
13
|
-
const columns = queryInfo.kind
|
13
|
+
const columns = queryInfo.kind === 'Select' ? queryInfo.columns : [];
|
14
14
|
return generateNestedInfo(queryContext, dbSchema, columns);
|
15
15
|
}
|
16
16
|
exports.describeNestedQuery = describeNestedQuery;
|
@@ -27,7 +27,7 @@ function generateNestedInfo(queryContext, dbSchema, columns) {
|
|
27
27
|
const fromClause = querySpec.fromClause();
|
28
28
|
if (fromClause) {
|
29
29
|
const tableReferences = ((_b = fromClause.tableReferenceList()) === null || _b === void 0 ? void 0 : _b.tableReference_list()) || [];
|
30
|
-
const modelColumns = tableReferences.map(tableRef => {
|
30
|
+
const modelColumns = tableReferences.map((tableRef) => {
|
31
31
|
const nestedResultInfo = {
|
32
32
|
relations: getResult(tableRef, dbSchema, columns)
|
33
33
|
};
|
@@ -50,46 +50,55 @@ function getRelations(tableRef, dbSchema, columns) {
|
|
50
50
|
const relations = [];
|
51
51
|
const tableFactor = tableRef.tableFactor();
|
52
52
|
const parentList = [];
|
53
|
-
if (tableFactor != null) {
|
53
|
+
if (tableFactor != null) {
|
54
|
+
//root
|
54
55
|
const tableName = getTableInfoFromTableFactor(tableFactor);
|
55
56
|
parentList.push(tableName);
|
56
57
|
}
|
57
58
|
const joinedTableList = tableRef.joinedTable_list();
|
58
|
-
|
59
|
+
for (const joined of joinedTableList) {
|
59
60
|
const onClause = joined.expr();
|
60
61
|
const tableName = getTableInfoFromTableJoinedTable(joined);
|
61
|
-
const parentRelations = onClause
|
62
|
-
|
62
|
+
const parentRelations = onClause
|
63
|
+
? getParentRelations(onClause, tableName, parentList)
|
64
|
+
: [];
|
65
|
+
const cardinality = onClause
|
66
|
+
? verifyCardinality(onClause, dbSchema, tableName.name)
|
67
|
+
: '';
|
63
68
|
parentList.push(tableName);
|
64
|
-
|
69
|
+
for (const parent of parentRelations) {
|
65
70
|
relations.push({
|
66
71
|
parent: parent,
|
67
72
|
child: tableName,
|
68
73
|
cardinality,
|
69
74
|
isJunctionTable: false, //will be set later
|
70
|
-
junctionChildTable: ''
|
75
|
+
junctionChildTable: ''
|
71
76
|
});
|
72
|
-
}
|
73
|
-
}
|
77
|
+
}
|
78
|
+
}
|
74
79
|
for (let index = 0; index < relations.length; index++) {
|
75
80
|
const relation = relations[index];
|
76
81
|
const [isJunction, childRelationName] = isJunctionTable(relation, relations);
|
77
82
|
if (isJunction) {
|
78
83
|
relation.isJunctionTable = true;
|
79
84
|
relation.junctionChildTable = childRelationName;
|
80
|
-
const relationItem = parentList.find(r => r.name
|
85
|
+
const relationItem = parentList.find((r) => r.name === relation.child.name);
|
81
86
|
relationItem.isJunctionTable = true;
|
82
87
|
}
|
83
88
|
}
|
84
89
|
const result = parentList
|
85
90
|
.map((r, index) => ({ r, index })) //keep index
|
86
|
-
.filter(({ r }) => r.isJunctionTable
|
91
|
+
.filter(({ r }) => r.isJunctionTable === false)
|
87
92
|
.map(({ r, index }) => {
|
88
|
-
const relationFields = relations
|
93
|
+
const relationFields = relations
|
94
|
+
.filter((r2) => r2.parent.name === r.name ||
|
95
|
+
(r.alias !== '' && r2.parent.alias === r.alias))
|
89
96
|
.map((relation) => {
|
90
97
|
//relation many always have not null array (possible empty)
|
91
|
-
const nullable = relation.cardinality
|
92
|
-
columns.some(c => (c.table
|
98
|
+
const nullable = relation.cardinality === 'one' &&
|
99
|
+
columns.some((c) => (c.table === relation.child.name ||
|
100
|
+
c.table === relation.child.alias) &&
|
101
|
+
c.notNull === false);
|
93
102
|
const field = {
|
94
103
|
type: 'relation',
|
95
104
|
name: getRelationName(relation),
|
@@ -99,10 +108,16 @@ function getRelations(tableRef, dbSchema, columns) {
|
|
99
108
|
return field;
|
100
109
|
});
|
101
110
|
const previousRelation = parentList[index - 1];
|
102
|
-
const junctionRelation = previousRelation
|
111
|
+
const junctionRelation = (previousRelation === null || previousRelation === void 0 ? void 0 : previousRelation.isJunctionTable)
|
112
|
+
? previousRelation
|
113
|
+
: undefined;
|
103
114
|
const fields = columns
|
104
115
|
.map((col, index) => ({ col, index })) //keep index
|
105
|
-
.filter(({ col }) => col.table
|
116
|
+
.filter(({ col }) => col.table === r.name ||
|
117
|
+
col.table === r.alias ||
|
118
|
+
(junctionRelation != null &&
|
119
|
+
(col.table === (junctionRelation === null || junctionRelation === void 0 ? void 0 : junctionRelation.name) ||
|
120
|
+
col.table === (junctionRelation === null || junctionRelation === void 0 ? void 0 : junctionRelation.alias))))
|
106
121
|
.map(({ col, index }) => {
|
107
122
|
const f = {
|
108
123
|
type: 'field',
|
@@ -115,7 +130,7 @@ function getRelations(tableRef, dbSchema, columns) {
|
|
115
130
|
name: r.asSymbol ? r.alias : r.name,
|
116
131
|
// tableName: r.name,
|
117
132
|
// tableAlias: r.alias,
|
118
|
-
groupKeyIndex: columns.findIndex(col => col.table
|
133
|
+
groupKeyIndex: columns.findIndex((col) => col.table === r.name || col.table === r.alias),
|
119
134
|
columns: fields.concat(relationFields)
|
120
135
|
};
|
121
136
|
return relationInfo;
|
@@ -137,8 +152,9 @@ function getParentRelations(onExpr, currentRelation, parentList) {
|
|
137
152
|
for (const token of tokens) {
|
138
153
|
if (token instanceof ts_mysql_parser_1.SimpleExprColumnRefContext) {
|
139
154
|
const fieldName = (0, select_columns_1.splitName)(token.getText());
|
140
|
-
if (fieldName.prefix
|
141
|
-
|
155
|
+
if (fieldName.prefix !== currentRelation.alias &&
|
156
|
+
fieldName.prefix !== currentRelation.name) {
|
157
|
+
const ref = parentList.find((p) => p.name === fieldName.prefix || p.alias === fieldName.prefix);
|
142
158
|
result.push(ref);
|
143
159
|
}
|
144
160
|
}
|
@@ -176,10 +192,11 @@ function getTableInfoFromTableFactor(tableFactor) {
|
|
176
192
|
throw Error('createModelFromTableFactor');
|
177
193
|
}
|
178
194
|
function isJunctionTable(relation, relations) {
|
179
|
-
const parentRelation = relations.find(r => r.child
|
180
|
-
const childRelation = relations.find(r => r.parent
|
195
|
+
const parentRelation = relations.find((r) => r.child === relation.parent);
|
196
|
+
const childRelation = relations.find((r) => r.parent === relation.child);
|
181
197
|
const childRelationCardinality = childRelation === null || childRelation === void 0 ? void 0 : childRelation.cardinality;
|
182
|
-
const isJunctionTable = (parentRelation == null || parentRelation.cardinality
|
198
|
+
const isJunctionTable = (parentRelation == null || parentRelation.cardinality === 'one') &&
|
199
|
+
childRelationCardinality === 'one';
|
183
200
|
return [isJunctionTable, childRelation === null || childRelation === void 0 ? void 0 : childRelation.child.name];
|
184
201
|
}
|
185
202
|
function verifyCardinality(expr, dbSchema, tableName) {
|
@@ -188,7 +205,9 @@ function verifyCardinality(expr, dbSchema, tableName) {
|
|
188
205
|
if (token instanceof ts_mysql_parser_1.SimpleExprColumnRefContext) {
|
189
206
|
const fieldName = (0, select_columns_1.splitName)(token.getText());
|
190
207
|
const column = (0, select_columns_1.findColumnSchema)(tableName, fieldName.name, dbSchema);
|
191
|
-
if (column != null &&
|
208
|
+
if (column != null &&
|
209
|
+
column.columnKey !== 'PRI' &&
|
210
|
+
column.columnKey !== 'UNI') {
|
192
211
|
return 'many';
|
193
212
|
}
|
194
213
|
}
|