orange-orm 4.5.0-beta.1 → 4.5.0-beta.3
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 +21 -1
- package/package.json +3 -3
- package/src/applyPatch.js +12 -5
- package/src/client/index.mjs +13529 -6469
- package/src/client/rollup.config.js +24 -4
- package/src/client/stringify.js +2 -9
- package/src/createDomain.js +2 -18
- package/src/d1/newPool.js +1 -1
- package/src/d1/newTransaction.js +1 -0
- package/src/d1/pool/newGenericPool.js +1 -14
- package/src/format.js +9 -0
- package/src/generic-pool.js +274 -313
- package/src/getManyDto.js +52 -21
- package/src/hostExpress/executePath.js +2 -1
- package/src/hostExpress.js +2 -7
- package/src/hostLocal.js +1 -1
- package/src/index.js +2 -1
- package/src/indexBrowser.js +39 -0
- package/src/mssql/newPool.js +1 -1
- package/src/mssql/pool/newGenericPool.js +0 -12
- package/src/mySql/deleteFromSql.js +4 -4
- package/src/mySql/newPool.js +1 -1
- package/src/mySql/pool/newGenericPool.js +0 -12
- package/src/newId.js +2 -1
- package/src/oracle/deleteFromSql.js +4 -4
- package/src/oracle/newInsertCommandCore.js +2 -2
- package/src/oracle/newPool.js +1 -1
- package/src/oracle/pool/newGenericPool.js +0 -12
- package/src/package.json +5 -0
- package/src/pg/deleteFromSql.js +4 -4
- package/src/pg/newPool.js +1 -1
- package/src/pg/pool/newPgPool.js +0 -12
- package/src/promisify.js +24 -0
- package/src/sap/deleteFromSql.js +2 -2
- package/src/sap/newPool.js +1 -1
- package/src/sqlite/deleteFromSql.js +4 -4
- package/src/sqlite/newPool.js +1 -1
- package/src/sqlite/pool/newGenericPool.js +0 -13
- package/src/table/column/negotiateRawSqlFilter.js +1 -72
- package/src/table/column/newBoolean.js +2 -53
- package/src/table/column/utils.js +113 -0
- package/src/table/column.js +6 -2
- package/src/table/commands/newDeleteCommand.js +1 -6
- package/src/table/commands/newInsertCommand.js +5 -2
- package/src/table/commands/newInsertCommandCore.js +11 -11
- package/src/table/deleteSessionContext.js +0 -3
- package/src/table/executeQueries/resolveExecuteQuery.js +0 -7
- package/src/table/newCascadeDeleteStrategy.js +1 -7
- package/src/table/newRelatedTable.js +4 -10
- package/src/table/query/newParameterized.js +8 -11
- package/src/table/query/singleQuery/columnSql/joinLegToColumnSql.js +2 -15
- package/src/table/query/singleQuery/columnSql/newJoinedColumnSql.js +2 -25
- package/src/table/query/singleQuery/columnSql/sharedJoinUtils.js +37 -0
- package/src/table/query/singleQuery/joinSql/joinLegToJoinSql.js +1 -6
- package/src/table/query/singleQuery/joinSql/oneLegToJoinSql.js +1 -7
- package/src/table/query/singleQuery/newJoinSql.js +4 -4
- package/src/table/relatedTable/aggregate.js +0 -6
- package/src/table/relatedTable/all.js +1 -7
- package/src/table/relatedTable/any.js +1 -8
- package/src/table/relatedTable/none.js +1 -7
- package/src/table/relatedTable/where.js +0 -6
- package/src/table/relation/newManyCache.js +11 -3
- package/src/table/resultToRows/dbRowToRow.js +2 -9
- package/src/table/resultToRows/delete/removeFromCache.js +2 -9
- package/src/table/resultToRows/newDecodeDbRow.js +0 -7
- package/src/table/resultToRows/toDto/extractStrategy.js +1 -7
- package/src/table/tryGetSessionContext.js +0 -5
- package/src/table.js +0 -4
- package/src/tedious/deleteFromSql.js +4 -4
- package/src/tedious/getManyDto/newQueryCore.js +1 -1
- package/src/tedious/getManyDto/query/newSubQueries/joinLegToQuery.js +2 -3
- package/src/tedious/getManyDto/query/newSubQueries/manyLegToQuery.js +2 -3
- package/src/tedious/getManyDto/query/newSubQueries/oneLegToQuery.js +13 -14
- package/src/tedious/getManyDto/query/newSubQueries.js +8 -25
- package/src/tedious/newPool.js +1 -1
- package/src/tedious/pool/newGenericPool.js +0 -12
- package/src/validateDeleteConflict.js +11 -5
- package/src/createDomain/negotiateForwardProperty.js +0 -23
- package/src/table/createJSONReadStream.js +0 -7
- package/src/table/createJSONReadStreamDefault.js +0 -33
- package/src/table/createJSONReadStreamNative.js +0 -31
- package/src/table/createReadStream.js +0 -24
- package/src/table/createReadStreamCoreNative.js +0 -40
- package/src/table/createReadStreamDefault.js +0 -102
- package/src/table/createReadStreamNative.js +0 -17
- package/src/table/readStream/extractLimit.js +0 -7
- package/src/table/readStream/extractOrderBy.js +0 -59
- package/src/table/readStream/mySql/newQuery.js +0 -16
- package/src/table/readStream/mySql/query/newSingleQuery.js +0 -21
- package/src/table/readStream/mySql/query/newSubQueries/joinLegToQuery.js +0 -20
- package/src/table/readStream/mySql/query/newSubQueries/manyLegToQuery.js +0 -22
- package/src/table/readStream/mySql/query/newSubQueries/newQueryCore.js +0 -9
- package/src/table/readStream/mySql/query/newSubQueries/newSingleQueryCore.js +0 -18
- package/src/table/readStream/mySql/query/newSubQueries/oneLegToQuery.js +0 -22
- package/src/table/readStream/mySql/query/newSubQueries.js +0 -47
- package/src/table/readStream/mySql/query/singleQuery/newShallowColumnSql.js +0 -18
- package/src/table/readStream/newQuery.js +0 -32
- package/src/table/readStream/newQueryStream.js +0 -8
- package/src/table/readStream/pg/newQuery.js +0 -8
- package/src/table/readStream/pg/newQueryCore.js +0 -17
- package/src/table/readStream/pg/query/newSingleQuery.js +0 -19
- package/src/table/readStream/pg/query/newSubQueries/joinLegToQuery.js +0 -19
- package/src/table/readStream/pg/query/newSubQueries/manyLegToQuery.js +0 -22
- package/src/table/readStream/pg/query/newSubQueries/oneLegToQuery.js +0 -19
- package/src/table/readStream/pg/query/newSubQueries.js +0 -47
- package/src/table/readStream/pg/query/singleQuery/newShallowColumnSql.js +0 -20
- package/src/table/readStreamDefault/createBatchFilter.js +0 -39
- package/src/useHook.js +0 -9
|
@@ -1,54 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
var negotiateRawSqlFilter = require('./negotiateRawSqlFilter');
|
|
3
|
-
var negotiateNextAndFilter = require('./negotiateNextAndFilter');
|
|
4
|
-
var negotiateNextOrFilter = require('./negotiateNextOrFilter');
|
|
1
|
+
const { newBoolean } = require('./utils');
|
|
5
2
|
|
|
6
|
-
|
|
7
|
-
var c = {};
|
|
8
|
-
c.sql = filter.sql.bind(filter);
|
|
9
|
-
c.parameters = filter.parameters;
|
|
10
|
-
|
|
11
|
-
c.append = function(other) {
|
|
12
|
-
var nextFilter = filter.append(other);
|
|
13
|
-
return nextNewBoolean(nextFilter);
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
c.prepend = function(other) {
|
|
17
|
-
var nextFilter = filter.prepend(other);
|
|
18
|
-
return nextNewBoolean(nextFilter);
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
c.and = function(context, other) {
|
|
22
|
-
other = negotiateRawSqlFilter(context, other);
|
|
23
|
-
var nextFilter = negotiateNextAndFilter(filter, other);
|
|
24
|
-
var next = nextNewBoolean(nextFilter);
|
|
25
|
-
for (var i = 2; i < arguments.length; i++) {
|
|
26
|
-
next = next.and(context, arguments[i]);
|
|
27
|
-
}
|
|
28
|
-
return next;
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
c.or = function(context, other) {
|
|
32
|
-
other = negotiateRawSqlFilter(context, other);
|
|
33
|
-
var nextFilter = negotiateNextOrFilter(filter, other);
|
|
34
|
-
var next = nextNewBoolean(nextFilter);
|
|
35
|
-
for (var i = 2; i < arguments.length; i++) {
|
|
36
|
-
next = next.or(context, arguments[i]);
|
|
37
|
-
}
|
|
38
|
-
return next;
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
c.not = function(_context) {
|
|
42
|
-
var nextFilter = filter.prepend('NOT (').append(')');
|
|
43
|
-
return nextNewBoolean(nextFilter);
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
return c;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
function _nextNewBoolean(filter) {
|
|
50
|
-
nextNewBoolean = require('./newBoolean');
|
|
51
|
-
return nextNewBoolean(filter);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
module.exports = newBoolean;
|
|
3
|
+
module.exports = newBoolean;
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
const newParameterized = require('../query/newParameterized');
|
|
2
|
+
const negotiateNextAndFilter = require('./negotiateNextAndFilter');
|
|
3
|
+
const negotiateNextOrFilter = require('./negotiateNextOrFilter');
|
|
4
|
+
|
|
5
|
+
function newBoolean(filter) {
|
|
6
|
+
var c = {};
|
|
7
|
+
c.sql = filter.sql.bind(filter);
|
|
8
|
+
c.parameters = filter.parameters;
|
|
9
|
+
|
|
10
|
+
c.append = function(other) {
|
|
11
|
+
var nextFilter = filter.append(other);
|
|
12
|
+
return newBoolean(nextFilter);
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
c.prepend = function(other) {
|
|
16
|
+
var nextFilter = filter.prepend(other);
|
|
17
|
+
return newBoolean(nextFilter);
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
c.and = function(context, other) {
|
|
21
|
+
other = negotiateRawSqlFilter(context, other);
|
|
22
|
+
var nextFilter = negotiateNextAndFilter(filter, other);
|
|
23
|
+
var next = newBoolean(nextFilter);
|
|
24
|
+
for (var i = 2; i < arguments.length; i++) {
|
|
25
|
+
next = next.and(context, arguments[i]);
|
|
26
|
+
}
|
|
27
|
+
return next;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
c.or = function(context, other) {
|
|
31
|
+
other = negotiateRawSqlFilter(context, other);
|
|
32
|
+
var nextFilter = negotiateNextOrFilter(filter, other);
|
|
33
|
+
var next = newBoolean(nextFilter);
|
|
34
|
+
for (var i = 2; i < arguments.length; i++) {
|
|
35
|
+
next = next.or(context, arguments[i]);
|
|
36
|
+
}
|
|
37
|
+
return next;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
c.not = function(_context) {
|
|
41
|
+
var nextFilter = filter.prepend('NOT (').append(')');
|
|
42
|
+
return newBoolean(nextFilter);
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
return c;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
function negotiateRawSqlFilter(context, filter, optionalTable, emptyArrayMeansFalse) {
|
|
50
|
+
if (Array.isArray(filter) && filter.length === 0) {
|
|
51
|
+
const sql = emptyArrayMeansFalse ? '1 = 2' : '1 = 1';
|
|
52
|
+
return newBoolean(newParameterized(sql));
|
|
53
|
+
}
|
|
54
|
+
else if (Array.isArray(filter)) {
|
|
55
|
+
let curFilter;
|
|
56
|
+
let curObjectFilter;
|
|
57
|
+
for (let i = 0; i < filter.length; i++) {
|
|
58
|
+
let nextFilter = negotiateRawSqlFilter(context,filter[i], optionalTable);
|
|
59
|
+
if (nextFilter.isObjectFilter)
|
|
60
|
+
curObjectFilter = curObjectFilter ? curObjectFilter.or(context, nextFilter) : nextFilter;
|
|
61
|
+
else
|
|
62
|
+
curFilter = curFilter ? curFilter.and(context, nextFilter) : nextFilter;
|
|
63
|
+
}
|
|
64
|
+
if (curFilter && curObjectFilter)
|
|
65
|
+
return curFilter.and(context, curObjectFilter);
|
|
66
|
+
else if (curFilter)
|
|
67
|
+
return curFilter;
|
|
68
|
+
else
|
|
69
|
+
return curObjectFilter;
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
let params = [];
|
|
73
|
+
if (filter) {
|
|
74
|
+
if (filter.and)
|
|
75
|
+
return filter;
|
|
76
|
+
if (filter.sql) {
|
|
77
|
+
let sql = filter.sql;
|
|
78
|
+
if (typeof filter.sql === 'function') {
|
|
79
|
+
sql = filter.sql();
|
|
80
|
+
}
|
|
81
|
+
params.push(sql, filter.parameters);
|
|
82
|
+
}
|
|
83
|
+
else if (isObjectFilter(filter, optionalTable))
|
|
84
|
+
return newObjectFilter(context, filter, optionalTable);
|
|
85
|
+
else
|
|
86
|
+
params = [filter];
|
|
87
|
+
} else {
|
|
88
|
+
params = [filter];
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
let parameterized = newParameterized.apply(null, params);
|
|
92
|
+
return newBoolean(parameterized);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
function isObjectFilter(object, optionalTable) {
|
|
97
|
+
return optionalTable && object;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
function newObjectFilter(context, object, table) {
|
|
101
|
+
let primaryColumns = table._primaryColumns;
|
|
102
|
+
let filter;
|
|
103
|
+
for (let i = 0; i < primaryColumns.length; i++) {
|
|
104
|
+
let column = primaryColumns[i];
|
|
105
|
+
let colFilter = column.equal(context, object[column.alias]);
|
|
106
|
+
filter = filter ? filter.and(context, colFilter) : colFilter ;
|
|
107
|
+
}
|
|
108
|
+
filter.isObjectFilter = true;
|
|
109
|
+
return filter;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
module.exports = { negotiateRawSqlFilter, newBoolean};
|
package/src/table/column.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
const Ajv = require('ajv');
|
|
2
|
-
const inspect = require('util').inspect;
|
|
3
2
|
|
|
4
3
|
function defineColumn(column, table) {
|
|
5
4
|
var c = {};
|
|
@@ -139,7 +138,7 @@ function defineColumn(column, table) {
|
|
|
139
138
|
previousValidate.apply(null, arguments);
|
|
140
139
|
let valid = validate.apply(null, arguments);
|
|
141
140
|
if (!valid) {
|
|
142
|
-
let e = new Error(`Column ${table._dbName}.${column._dbName} violates JSON Schema: ${inspect(validate.errors
|
|
141
|
+
let e = new Error(`Column ${table._dbName}.${column._dbName} violates JSON Schema: ${inspect(validate.errors)}`);
|
|
143
142
|
e.errors = validate.errors;
|
|
144
143
|
e.status = 400;
|
|
145
144
|
throw e;
|
|
@@ -151,4 +150,9 @@ function defineColumn(column, table) {
|
|
|
151
150
|
return c;
|
|
152
151
|
}
|
|
153
152
|
|
|
153
|
+
function inspect(obj) {
|
|
154
|
+
return JSON.stringify(obj, null, 2);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
|
|
154
158
|
module.exports = defineColumn;
|
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
var newSingleCommand = require('./delete/newSingleCommand');
|
|
2
2
|
|
|
3
|
-
var nextCommand = function() {
|
|
4
|
-
nextCommand = require('./newDeleteCommand');
|
|
5
|
-
nextCommand.apply(null, arguments);
|
|
6
|
-
};
|
|
7
|
-
|
|
8
3
|
function newCommand(context, queries, table, filter, strategy, relations) {
|
|
9
4
|
var singleCommand = newSingleCommand(context, table, filter, relations);
|
|
10
5
|
for (var name in strategy) {
|
|
@@ -14,7 +9,7 @@ function newCommand(context, queries, table, filter, strategy, relations) {
|
|
|
14
9
|
var childRelation = table._relations[name];
|
|
15
10
|
var joinRelation = childRelation.joinRelation;
|
|
16
11
|
var childRelations = [joinRelation].concat(relations);
|
|
17
|
-
|
|
12
|
+
newCommand(context, queries, childRelation.childTable, filter, childStrategy, childRelations);
|
|
18
13
|
}
|
|
19
14
|
queries.push(singleCommand);
|
|
20
15
|
return queries;
|
|
@@ -29,7 +29,7 @@ InsertCommand.prototype.matches = function(otherRow) {
|
|
|
29
29
|
InsertCommand.prototype.endEdit = function() {
|
|
30
30
|
this.sql();
|
|
31
31
|
var dto = createDto(this._table, this._row);
|
|
32
|
-
if (this._table._emitChanged.callbacks.length > 0)
|
|
32
|
+
if (this._disallowCompress || this._table._emitChanged.callbacks.length > 0)
|
|
33
33
|
this._patch = createPatch([], [dto]);
|
|
34
34
|
};
|
|
35
35
|
|
|
@@ -46,8 +46,11 @@ Object.defineProperty(InsertCommand.prototype, 'parameters', {
|
|
|
46
46
|
|
|
47
47
|
Object.defineProperty(InsertCommand.prototype, 'disallowCompress', {
|
|
48
48
|
get: function() {
|
|
49
|
-
return this._table._emitChanged.callbacks.length > 0;
|
|
49
|
+
return this._disallowCompress || this._table._emitChanged.callbacks.length > 0;
|
|
50
50
|
|
|
51
|
+
},
|
|
52
|
+
set: function(value) {
|
|
53
|
+
this._disallowCompress = value;
|
|
51
54
|
}
|
|
52
55
|
});
|
|
53
56
|
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
const newParameterized = require('../query/newParameterized');
|
|
2
|
+
const getSqlTemplate = require('./insert/getSqlTemplate');
|
|
3
|
+
const formatString = require('../../format');
|
|
4
4
|
|
|
5
5
|
function newInsertCommandCore(context, table, row, options = {}) {
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
let parameters = [];
|
|
7
|
+
let values = [getSqlTemplate(context, table, row, options)];
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
for (
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
let columns = table._columns;
|
|
10
|
+
for (let i = 0; i < columns.length; i++) {
|
|
11
|
+
let column = columns[i];
|
|
12
|
+
let alias = column.alias;
|
|
13
13
|
if (row['__' + column.alias] !== undefined) {
|
|
14
|
-
|
|
14
|
+
let encoded = column.encode(context, row[alias]);
|
|
15
15
|
if (encoded.parameters.length > 0) {
|
|
16
16
|
values.push('?');
|
|
17
17
|
parameters.push(encoded.parameters[0]);
|
|
@@ -20,7 +20,7 @@ function newInsertCommandCore(context, table, row, options = {}) {
|
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
let sql = formatString.apply(null, values);
|
|
24
24
|
return newParameterized(sql, parameters);
|
|
25
25
|
}
|
|
26
26
|
|
|
@@ -1,17 +1,10 @@
|
|
|
1
1
|
const getSessionSingleton = require('../getSessionSingleton');
|
|
2
|
-
const process = require('node:process');
|
|
3
2
|
|
|
4
3
|
function resolveExecuteQuery(context, query) {
|
|
5
4
|
return resolve;
|
|
6
5
|
|
|
7
6
|
function resolve(success, failed) {
|
|
8
7
|
try {
|
|
9
|
-
|
|
10
|
-
var domain = process.domain;
|
|
11
|
-
if (domain) {
|
|
12
|
-
success = process.domain.bind(success);
|
|
13
|
-
failed = process.domain.bind(failed);
|
|
14
|
-
}
|
|
15
8
|
var client = getSessionSingleton(context, 'dbClient');
|
|
16
9
|
query = negotiateNullParams(query);
|
|
17
10
|
client.executeQuery(query, onCompleted);
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
var addSubStrategies = _addSubStrategies;
|
|
2
1
|
var newObject = require('../newObject');
|
|
3
2
|
|
|
4
3
|
function newCascadeDeleteStrategy(strategy, table) {
|
|
@@ -10,7 +9,7 @@ function newCascadeDeleteStrategy(strategy, table) {
|
|
|
10
9
|
c.visitOne = function(relation) {
|
|
11
10
|
var subStrategy = newObject();
|
|
12
11
|
strategy[relationName] = subStrategy;
|
|
13
|
-
|
|
12
|
+
newCascadeDeleteStrategy(subStrategy, relation.childTable);
|
|
14
13
|
};
|
|
15
14
|
|
|
16
15
|
c.visitMany = c.visitOne;
|
|
@@ -22,9 +21,4 @@ function newCascadeDeleteStrategy(strategy, table) {
|
|
|
22
21
|
return strategy;
|
|
23
22
|
}
|
|
24
23
|
|
|
25
|
-
function _addSubStrategies(strategy, table) {
|
|
26
|
-
addSubStrategies = require('./newCascadeDeleteStrategy');
|
|
27
|
-
addSubStrategies(strategy, table);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
24
|
module.exports = newCascadeDeleteStrategy;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
var newRelatedColumn = require('./relatedTable/relatedColumn');
|
|
2
|
-
var nextRelatedTable = _nextRelatedTable;
|
|
3
2
|
var subFilter = require('./relatedTable/subFilter');
|
|
4
3
|
var any = require('./relatedTable/any');
|
|
5
4
|
var all = require('./relatedTable/all');
|
|
@@ -15,14 +14,14 @@ function newRelatedTable(relations, isShallow, depth = 0) {
|
|
|
15
14
|
// if (isShallow)
|
|
16
15
|
// c = any(relations.slice(-1), depth);
|
|
17
16
|
// else
|
|
18
|
-
c = any(relations, depth);
|
|
17
|
+
c = any(newRelatedTable, relations, depth);
|
|
19
18
|
// @ts-ignore
|
|
20
|
-
c.all = all(relations, depth);
|
|
19
|
+
c.all = all(newRelatedTable, relations, depth);
|
|
21
20
|
// @ts-ignore
|
|
22
21
|
c.any = c;
|
|
23
22
|
|
|
24
23
|
// @ts-ignore
|
|
25
|
-
c.none = none(relations, depth);
|
|
24
|
+
c.none = none(newRelatedTable, relations, depth);
|
|
26
25
|
|
|
27
26
|
// @ts-ignore
|
|
28
27
|
c.where = where(relations, depth);
|
|
@@ -58,7 +57,7 @@ function newRelatedTable(relations, isShallow, depth = 0) {
|
|
|
58
57
|
|
|
59
58
|
Object.defineProperty(c, alias, {
|
|
60
59
|
get: function() {
|
|
61
|
-
return
|
|
60
|
+
return newRelatedTable(children, false, depth);
|
|
62
61
|
}
|
|
63
62
|
});
|
|
64
63
|
}
|
|
@@ -91,9 +90,4 @@ function newRelatedTable(relations, isShallow, depth = 0) {
|
|
|
91
90
|
return cProxy;
|
|
92
91
|
}
|
|
93
92
|
|
|
94
|
-
function _nextRelatedTable(relations, isShallow, depth) {
|
|
95
|
-
nextRelatedTable = require('./newRelatedTable');
|
|
96
|
-
return nextRelatedTable(relations, isShallow, depth);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
93
|
module.exports = newRelatedTable;
|
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
var extractSql = require('./extractSql');
|
|
2
2
|
var extractParameters = require('./parameterized/extractParameters');
|
|
3
3
|
|
|
4
|
-
var nextParameterized = function(text, params) {
|
|
5
|
-
nextParameterized = require('../query/newParameterized');
|
|
6
|
-
return nextParameterized(text, params);
|
|
7
|
-
};
|
|
8
|
-
|
|
9
4
|
function Parameterized(text, parameters) {
|
|
10
5
|
this._text = text;
|
|
11
6
|
this.parameters = parameters;
|
|
@@ -18,21 +13,23 @@ Parameterized.prototype.sql = function() {
|
|
|
18
13
|
Parameterized.prototype.prepend = function(other) {
|
|
19
14
|
if (other.sql) {
|
|
20
15
|
var params = other.parameters.concat(this.parameters);
|
|
21
|
-
return
|
|
16
|
+
return newParameterized(other.sql() + this._text, params);
|
|
22
17
|
} else
|
|
23
|
-
return
|
|
18
|
+
return newParameterized(other + this._text, this.parameters);
|
|
24
19
|
};
|
|
25
20
|
|
|
26
21
|
Parameterized.prototype.append = function(other) {
|
|
27
22
|
if (other.sql) {
|
|
28
23
|
var params = this.parameters.concat(other.parameters);
|
|
29
|
-
return
|
|
24
|
+
return newParameterized(this._text + other.sql(), params);
|
|
30
25
|
} else
|
|
31
|
-
return
|
|
26
|
+
return newParameterized(this._text + other, this.parameters);
|
|
32
27
|
};
|
|
33
28
|
|
|
34
|
-
|
|
29
|
+
function newParameterized(text, parameters) {
|
|
35
30
|
text = extractSql(text);
|
|
36
31
|
parameters = extractParameters(parameters);
|
|
37
32
|
return new Parameterized(text, parameters);
|
|
38
|
-
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
module.exports = newParameterized;
|
|
@@ -1,16 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
var newJoinedColumnSql = _initJoinedColumnSql;
|
|
1
|
+
const { joinLegToColumnSql} = require('./sharedJoinUtils');
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
var span = leg.span;
|
|
6
|
-
var shallowColumnSql = newShallowColumnSql(context, span.table,alias, span, ignoreNull);
|
|
7
|
-
var joinedColumnSql = newJoinedColumnSql(context, span,alias,ignoreNull);
|
|
8
|
-
return ',' + shallowColumnSql + joinedColumnSql;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
function _initJoinedColumnSql(context,span,alias,ignoreNull) {
|
|
12
|
-
newJoinedColumnSql = require('./newJoinedColumnSql');
|
|
13
|
-
return newJoinedColumnSql(context,span,alias,ignoreNull);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
module.exports = sql;
|
|
3
|
+
module.exports = joinLegToColumnSql;
|
|
@@ -1,27 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
const { newJoinedColumnSql } = require('./sharedJoinUtils');
|
|
2
2
|
|
|
3
|
-
module.exports = function(context, span, alias, ignoreNull) {
|
|
4
|
-
var c = {};
|
|
5
|
-
var sql = '';
|
|
6
3
|
|
|
7
|
-
|
|
8
|
-
var joinSql = joinLegToColumnSql(context, leg, alias + leg.name, ignoreNull);
|
|
9
|
-
sql = sql + joinSql;
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
c.visitOne = function(leg) {
|
|
13
|
-
c.visitJoin(leg);
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
c.visitMany = function() {
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
span.legs.forEach(onEach);
|
|
21
|
-
|
|
22
|
-
function onEach(leg) {
|
|
23
|
-
leg.accept(c);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
return sql;
|
|
27
|
-
};
|
|
4
|
+
module.exports = newJoinedColumnSql;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
var newShallowColumnSql = require('./newShallowColumnSql');
|
|
2
|
+
|
|
3
|
+
function joinLegToColumnSql(context, leg, alias, ignoreNull) {
|
|
4
|
+
var span = leg.span;
|
|
5
|
+
var shallowColumnSql = newShallowColumnSql(context, span.table, alias, span, ignoreNull);
|
|
6
|
+
var joinedColumnSql = newJoinedColumnSql(context, span, alias, ignoreNull);
|
|
7
|
+
return ',' + shallowColumnSql + joinedColumnSql;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
function newJoinedColumnSql(context, span, alias, ignoreNull) {
|
|
11
|
+
var c = {};
|
|
12
|
+
var sql = '';
|
|
13
|
+
|
|
14
|
+
c.visitJoin = function(leg) {
|
|
15
|
+
var joinSql = joinLegToColumnSql(context, leg, alias + leg.name, ignoreNull);
|
|
16
|
+
sql = sql + joinSql;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
c.visitOne = function(leg) {
|
|
20
|
+
c.visitJoin(leg);
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
c.visitMany = function() {
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
span.legs.forEach(onEach);
|
|
28
|
+
|
|
29
|
+
function onEach(leg) {
|
|
30
|
+
leg.accept(c);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return sql;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
module.exports = { joinLegToColumnSql, newJoinedColumnSql };
|
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
var joinLegToShallowJoinSql = require('./joinLegToShallowJoinSql');
|
|
2
|
-
var newJoinSql = _newJoinSql;
|
|
3
2
|
|
|
4
|
-
function toJoinSql(context,leg,alias,childAlias) {
|
|
3
|
+
function toJoinSql(newJoinSql, context,leg,alias,childAlias) {
|
|
5
4
|
return joinLegToShallowJoinSql(context,leg,alias,childAlias).append(newJoinSql(context,leg.span,childAlias));
|
|
6
5
|
}
|
|
7
6
|
|
|
8
|
-
function _newJoinSql() {
|
|
9
|
-
newJoinSql = require('../newJoinSql');
|
|
10
|
-
return newJoinSql.apply(null,arguments);
|
|
11
|
-
}
|
|
12
7
|
|
|
13
8
|
module.exports = toJoinSql;
|
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
var oneLegToShallowJoinSql = require('./oneLegToShallowJoinSql');
|
|
2
|
-
var newJoinSql = _newJoinSql;
|
|
3
2
|
|
|
4
|
-
function toJoinSql(context,leg,alias,childAlias) {
|
|
3
|
+
function toJoinSql(newJoinSql, context,leg,alias,childAlias) {
|
|
5
4
|
return oneLegToShallowJoinSql(context,leg,alias,childAlias).append(newJoinSql(context,leg.span,childAlias));
|
|
6
5
|
}
|
|
7
6
|
|
|
8
|
-
function _newJoinSql() {
|
|
9
|
-
newJoinSql = require('../newJoinSql');
|
|
10
|
-
return newJoinSql.apply(null,arguments);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
7
|
module.exports = toJoinSql;
|
|
@@ -2,17 +2,17 @@ const joinLegToJoinSql = require('./joinSql/joinLegToJoinSql');
|
|
|
2
2
|
const oneLegToJoinSql = require('./joinSql/oneLegToJoinSql');
|
|
3
3
|
const newParameterized = require('../newParameterized');
|
|
4
4
|
|
|
5
|
-
function
|
|
5
|
+
function newJoinSql(context,span,alias = '') {
|
|
6
6
|
var sql = newParameterized('');
|
|
7
7
|
var childAlias;
|
|
8
8
|
|
|
9
9
|
var c = {};
|
|
10
10
|
c.visitJoin = function(leg) {
|
|
11
|
-
sql = joinLegToJoinSql(context,leg,alias,childAlias).prepend(sql);
|
|
11
|
+
sql = joinLegToJoinSql(newJoinSql, context,leg,alias,childAlias).prepend(sql);
|
|
12
12
|
};
|
|
13
13
|
|
|
14
14
|
c.visitOne = function(leg) {
|
|
15
|
-
sql = oneLegToJoinSql(context,leg,alias,childAlias).prepend(sql);
|
|
15
|
+
sql = oneLegToJoinSql(newJoinSql, context,leg,alias,childAlias).prepend(sql);
|
|
16
16
|
};
|
|
17
17
|
|
|
18
18
|
c.visitMany = function() {};
|
|
@@ -38,4 +38,4 @@ function _new(context,span,alias = '') {
|
|
|
38
38
|
return sql;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
module.exports =
|
|
41
|
+
module.exports = newJoinSql;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
let newRelatedTable = _newRelatedTable;
|
|
2
1
|
let tryGetSessionContext = require('../tryGetSessionContext');
|
|
3
2
|
|
|
4
3
|
function newAggregate(_relations) {
|
|
@@ -40,9 +39,4 @@ function newAggregate(_relations) {
|
|
|
40
39
|
|
|
41
40
|
}
|
|
42
41
|
|
|
43
|
-
function _newRelatedTable() {
|
|
44
|
-
newRelatedTable = require('../newRelatedTable');
|
|
45
|
-
return newRelatedTable.apply(null, arguments);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
42
|
module.exports = newAggregate;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
let newRelatedTable = _newRelatedTable;
|
|
2
1
|
const negotiateRawSqlFilter = require('../column/negotiateRawSqlFilter');
|
|
3
2
|
let subFilter = require('./subFilter');
|
|
4
3
|
let isShallow = true;
|
|
5
4
|
|
|
6
|
-
function newAll(relations, depth) {
|
|
5
|
+
function newAll(newRelatedTable, relations, depth) {
|
|
7
6
|
|
|
8
7
|
function all(context, fn) {
|
|
9
8
|
let relatedTable = newRelatedTable(relations, isShallow, depth + 1);
|
|
@@ -16,9 +15,4 @@ function newAll(relations, depth) {
|
|
|
16
15
|
return all;
|
|
17
16
|
}
|
|
18
17
|
|
|
19
|
-
function _newRelatedTable() {
|
|
20
|
-
newRelatedTable = require('../newRelatedTable');
|
|
21
|
-
return newRelatedTable.apply(null, arguments);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
18
|
module.exports = newAll;
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
let newRelatedTable = _newRelatedTable;
|
|
2
1
|
const negotiateRawSqlFilter = require('../column/negotiateRawSqlFilter');
|
|
3
|
-
// let subFilter = require('./subFilterAny');
|
|
4
2
|
let subFilter = require('./subFilter');
|
|
5
3
|
let isShallow = true;
|
|
6
4
|
|
|
7
|
-
function newAny(relations, depth) {
|
|
5
|
+
function newAny(newRelatedTable, relations, depth) {
|
|
8
6
|
|
|
9
7
|
function any(context, fn) {
|
|
10
8
|
let relatedTable = newRelatedTable(relations, isShallow, depth + 1);
|
|
@@ -16,11 +14,6 @@ function newAny(relations, depth) {
|
|
|
16
14
|
return any;
|
|
17
15
|
}
|
|
18
16
|
|
|
19
|
-
function _newRelatedTable() {
|
|
20
|
-
newRelatedTable = require('../newRelatedTable');
|
|
21
|
-
return newRelatedTable.apply(null, arguments);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
17
|
module.exports = newAny;
|
|
25
18
|
|
|
26
19
|
//
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
let newRelatedTable = _newRelatedTable;
|
|
2
1
|
const negotiateRawSqlFilter = require('../column/negotiateRawSqlFilter');
|
|
3
2
|
let subFilter = require('./subFilter');
|
|
4
3
|
let isShallow = true;
|
|
5
4
|
|
|
6
|
-
function newNone(relations, depth) {
|
|
5
|
+
function newNone(newRelatedTable, relations, depth) {
|
|
7
6
|
|
|
8
7
|
function none(context, fn) {
|
|
9
8
|
let relatedTable = newRelatedTable(relations, isShallow, depth + 1);
|
|
@@ -14,9 +13,4 @@ function newNone(relations, depth) {
|
|
|
14
13
|
return none;
|
|
15
14
|
}
|
|
16
15
|
|
|
17
|
-
function _newRelatedTable() {
|
|
18
|
-
newRelatedTable = require('../newRelatedTable');
|
|
19
|
-
return newRelatedTable.apply(null, arguments);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
16
|
module.exports = newNone;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
let newRelatedTable = _newRelatedTable;
|
|
2
1
|
const negotiateRawSqlFilter = require('../column/negotiateRawSqlFilter');
|
|
3
2
|
let tryGetSessionContext = require('../tryGetSessionContext');
|
|
4
3
|
|
|
@@ -42,9 +41,4 @@ function newWhere(_relations, _depth) {
|
|
|
42
41
|
|
|
43
42
|
}
|
|
44
43
|
|
|
45
|
-
function _newRelatedTable() {
|
|
46
|
-
newRelatedTable = require('../newRelatedTable');
|
|
47
|
-
return newRelatedTable.apply(null, arguments);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
44
|
module.exports = newWhere;
|