orange-orm 4.5.0-beta.0 → 4.5.0-beta.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/README.md +6 -1
- package/docs/changelog.md +4 -0
- package/package.json +10 -6
- package/src/applyPatch.js +5 -2
- package/src/client/index.js +3 -2
- package/src/client/index.mjs +13552 -6381
- package/src/client/rollup.config.js +24 -4
- package/src/client/stringify.js +2 -9
- package/src/createDomain.js +7 -28
- package/src/d1/newDatabase.js +23 -37
- package/src/d1/newPool.js +6 -6
- package/src/d1/newTransaction.js +1 -0
- package/src/d1/pool/newGenericPool.js +2 -14
- package/src/emitEvent.js +6 -4
- package/src/emptyFilter.js +12 -12
- package/src/format.js +9 -0
- package/src/generic-pool.js +274 -313
- package/src/getManyDto/newQuery.js +5 -5
- package/src/getManyDto/query/newSingleQuery.js +5 -5
- package/src/getManyDto.js +73 -41
- package/src/hostExpress/cycle.ts +211 -0
- package/src/hostExpress/executePath.js +361 -357
- package/src/hostExpress.js +2 -7
- package/src/hostLocal.js +9 -9
- package/src/index.js +13 -17
- package/src/indexBrowser.js +39 -0
- package/src/mssql/newDatabase.js +19 -31
- package/src/mssql/newPool.js +2 -2
- package/src/mssql/newTransaction.js +4 -3
- package/src/mssql/pool/newGenericPool.js +1 -13
- package/src/mySql/deleteFromSql.js +5 -5
- package/src/mySql/insert.js +5 -5
- package/src/mySql/insertSql.js +2 -3
- package/src/mySql/lastInsertedSql.js +3 -4
- package/src/mySql/newDatabase.js +20 -34
- package/src/mySql/newPool.js +10 -10
- package/src/mySql/newTransaction.js +2 -2
- package/src/mySql/pool/newGenericPool.js +2 -15
- package/src/mySql/quote.js +1 -0
- package/src/newId.js +2 -1
- package/src/newImmutable.js +1 -2
- package/src/oracle/deleteFromSql.js +5 -5
- package/src/oracle/formatDateOut.js +1 -1
- package/src/oracle/insert.js +6 -6
- package/src/oracle/insertSql.js +6 -14
- package/src/oracle/lastInsertedSql.js +3 -3
- package/src/oracle/mergeSql.js +3 -6
- package/src/oracle/newDatabase.js +18 -33
- package/src/oracle/newInsertCommandCore.js +5 -5
- package/src/oracle/newPool.js +10 -10
- package/src/oracle/newTransaction.js +2 -1
- package/src/oracle/pool/newGenericPool.js +2 -14
- package/src/oracle/quote.js +1 -0
- package/src/oracle/wrapQuery.js +0 -3
- package/src/package.json +5 -0
- package/src/patchRow.js +2 -2
- package/src/patchTable.js +6 -5
- package/src/pg/deleteFromSql.js +5 -5
- package/src/pg/formatDateOut.js +1 -2
- package/src/pg/insert.js +3 -3
- package/src/pg/insertSql.js +2 -7
- package/src/pg/lastInsertedSql.js +1 -2
- package/src/pg/newDatabase.js +20 -37
- package/src/pg/newPool.js +10 -10
- package/src/pg/newTransaction.js +2 -1
- package/src/pg/pool/newPgPool.js +23 -16
- package/src/pg/pool/parseSearchPathParam.js +10 -0
- package/src/pg/quote.js +2 -0
- package/src/pg/schema.js +2 -2
- package/src/{mySql/pool/defaults.js → poolDefaults.js} +0 -2
- package/src/promisify.js +24 -0
- package/src/query.js +2 -2
- package/src/sap/deleteFromSql.js +3 -3
- package/src/sap/formatDateOut.js +1 -1
- package/src/sap/insert.js +5 -5
- package/src/sap/insertSql.js +4 -5
- package/src/sap/lastInsertedSql.js +3 -3
- package/src/sap/mergeSql.js +1 -2
- package/src/sap/newDatabase.js +23 -34
- package/src/sap/newPool.js +2 -2
- package/src/sap/newTransaction.js +2 -1
- package/src/sap/quote.js +1 -0
- package/src/sqlite/deleteFromSql.js +5 -5
- package/src/sqlite/insert.js +5 -5
- package/src/sqlite/insertSql.js +2 -2
- package/src/sqlite/lastInsertedSql.js +2 -2
- package/src/sqlite/newDatabase.js +16 -32
- package/src/sqlite/newPool.js +10 -10
- package/src/sqlite/newTransaction.js +2 -1
- package/src/sqlite/pool/newGenericPool.js +1 -13
- package/src/sqlite/quote.js +1 -0
- package/src/table/aggregate.js +1 -1
- package/src/table/begin.js +5 -5
- package/src/table/cascadeDelete.js +2 -2
- package/src/table/column/binary/newDecode.js +2 -2
- package/src/table/column/binary/newEncode.js +3 -4
- package/src/table/column/boolean/newDecode.js +1 -1
- package/src/table/column/boolean/newEncode.js +6 -6
- package/src/table/column/date/formatOut.js +3 -5
- package/src/table/column/date/newDecode.js +2 -2
- package/src/table/column/date/newEncode.js +8 -8
- package/src/table/column/date/tryParseISO.js +6 -8
- package/src/table/column/date.js +1 -1
- package/src/table/column/dateWithTimeZone/newEncode.js +3 -4
- package/src/table/column/dateWithTimeZone.js +1 -1
- package/src/table/column/encodeFilterArg.js +3 -3
- package/src/table/column/equal.js +3 -3
- package/src/table/column/extractAlias.js +0 -2
- package/src/table/column/greaterThan.js +3 -3
- package/src/table/column/greaterThanOrEqual.js +3 -3
- package/src/table/column/guid/newDecode.js +1 -1
- package/src/table/column/guid/newEncode.js +3 -3
- package/src/table/column/in.js +3 -3
- package/src/table/column/json/formatOut.js +3 -3
- package/src/table/column/json/newDecode.js +3 -3
- package/src/table/column/json/newEncode.js +6 -6
- package/src/table/column/json.js +2 -1
- package/src/table/column/lessThan.js +3 -3
- package/src/table/column/lessThanOrEqual.js +4 -4
- package/src/table/column/negotiateRawSqlFilter.js +1 -72
- package/src/table/column/newBoolean.js +2 -53
- package/src/table/column/newColumn.js +21 -21
- package/src/table/column/newDecodeCore.js +1 -1
- package/src/table/column/notEqual.js +3 -3
- package/src/table/column/numeric/newDecode.js +2 -2
- package/src/table/column/numeric/newEncode.js +3 -3
- package/src/table/column/string/contains.js +2 -1
- package/src/table/column/string/containsCore.js +5 -5
- package/src/table/column/string/endsWith.js +1 -1
- package/src/table/column/string/endsWithCore.js +4 -4
- package/src/table/column/string/iContains.js +2 -1
- package/src/table/column/string/iEndsWith.js +1 -1
- package/src/table/column/string/iEqual.js +3 -3
- package/src/table/column/string/iStartsWith.js +1 -1
- package/src/table/column/string/newEncode.js +3 -3
- package/src/table/column/string/startsWith.js +1 -1
- package/src/table/column/string/startsWithCore.js +4 -4
- package/src/table/column/string.js +14 -14
- package/src/table/column/utils.js +113 -0
- package/src/table/column.js +6 -2
- package/src/table/commands/beginCommand.js +2 -2
- package/src/table/commands/compressChanges.js +2 -2
- package/src/table/commands/delete/newSingleCommand.js +5 -5
- package/src/table/commands/delete/singleCommand/joinSql.js +12 -12
- package/src/table/commands/delete/singleCommand/newSingleCommandCore.js +2 -2
- package/src/table/commands/delete/singleCommand/selectSql.js +6 -6
- package/src/table/commands/delete/singleCommand/subFilter.js +11 -11
- package/src/table/commands/delete/singleCommand/whereSql.js +2 -2
- package/src/table/commands/getChangeSet.js +2 -2
- package/src/table/commands/insert/getSqlTemplate.js +16 -16
- package/src/table/commands/lastCommandMatches.js +2 -2
- package/src/table/commands/newDeleteCommand.js +5 -10
- package/src/table/commands/newGetLastInsertedCommand.js +4 -4
- package/src/table/commands/newGetLastInsertedCommandCore.js +5 -5
- package/src/table/commands/newInsertCommand.js +5 -3
- package/src/table/commands/newInsertCommandCore.js +12 -12
- package/src/table/commands/newRow.js +4 -4
- package/src/table/commands/newUpdateCommand.js +4 -4
- package/src/table/commands/newUpdateCommandCore.js +4 -4
- package/src/table/commands/pushCommand.js +2 -2
- package/src/table/commit.js +13 -11
- package/src/table/count.js +8 -8
- package/src/table/delete.js +4 -4
- package/src/table/deleteSessionContext.js +2 -14
- package/src/table/executeQueries/executeChanges.js +3 -3
- package/src/table/executeQueries/executeQueriesCore.js +2 -2
- package/src/table/executeQueries/executeQuery.js +2 -2
- package/src/table/executeQueries/resolveExecuteQuery.js +3 -10
- package/src/table/executeQueries.js +4 -4
- package/src/table/getFromDbById.js +1 -1
- package/src/table/getMany.js +7 -7
- package/src/table/getManyDto.js +3 -4
- package/src/table/getSessionContext.js +4 -4
- package/src/table/getSessionSingleton.js +3 -2
- package/src/table/groupBy/newQuery.js +4 -4
- package/src/table/groupBy.js +9 -9
- package/src/table/insert.js +10 -13
- package/src/table/joinRelation/getRelatives.js +6 -6
- package/src/table/newCascadeDeleteStrategy.js +1 -7
- package/src/table/newGetRelated.js +3 -3
- package/src/table/newManyRelation.js +9 -9
- package/src/table/newOneRelation.js +9 -9
- package/src/table/newPrimaryKeyFilter.js +6 -6
- package/src/table/newQuery.js +5 -5
- package/src/table/newRelatedTable.js +6 -12
- package/src/table/newRowCache.js +17 -17
- package/src/table/newThrow.js +2 -2
- package/src/table/oneRelation/getRelatives.js +5 -5
- package/src/table/popChanges.js +3 -3
- package/src/table/promise.js +2 -8
- package/src/table/query/extractLimit.js +2 -2
- package/src/table/query/extractOffset.js +2 -2
- package/src/table/query/extractOrderBy.js +2 -2
- package/src/table/query/newParameterized.js +8 -11
- package/src/table/query/newSingleQuery.js +7 -7
- 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/newShallowColumnSql.js +4 -4
- package/src/table/query/singleQuery/columnSql/sharedJoinUtils.js +37 -0
- package/src/table/query/singleQuery/joinSql/joinLegToJoinSql.js +2 -7
- package/src/table/query/singleQuery/joinSql/joinLegToShallowJoinSql.js +2 -2
- package/src/table/query/singleQuery/joinSql/newDiscriminatorSql.js +2 -2
- package/src/table/query/singleQuery/joinSql/newShallowJoinSql.js +5 -5
- package/src/table/query/singleQuery/joinSql/newShallowJoinSqlCore.js +6 -5
- package/src/table/query/singleQuery/joinSql/oneLegToJoinSql.js +2 -8
- package/src/table/query/singleQuery/joinSql/oneLegToShallowJoinSql.js +2 -2
- package/src/table/query/singleQuery/negotiateExclusive.js +2 -2
- package/src/table/query/singleQuery/newColumnSql.js +3 -3
- package/src/table/query/singleQuery/newDiscriminatorSql.js +2 -2
- package/src/table/query/singleQuery/newJoinSql.js +7 -7
- package/src/table/query/singleQuery/newWhereSql.js +3 -3
- package/src/table/quote.js +4 -4
- package/src/table/relatedTable/aggregate.js +2 -8
- package/src/table/relatedTable/all.js +6 -12
- package/src/table/relatedTable/any.js +4 -11
- package/src/table/relatedTable/childColumn.js +12 -12
- package/src/table/relatedTable/columnAggregate.js +3 -3
- package/src/table/relatedTable/columnAggregateGroup.js +11 -11
- package/src/table/relatedTable/joinSql.js +5 -5
- package/src/table/relatedTable/joinSqlArray.js +3 -3
- package/src/table/relatedTable/none.js +4 -10
- package/src/table/relatedTable/relatedColumn.js +13 -13
- package/src/table/relatedTable/selectSql.js +2 -2
- package/src/table/relatedTable/subFilter.js +4 -4
- package/src/table/relatedTable/where.js +3 -9
- package/src/table/relatedTable/whereSql.js +2 -2
- package/src/table/relation/manyCache/synchronizeAdded.js +2 -2
- package/src/table/relation/manyCache/synchronizeChanged.js +3 -3
- package/src/table/relation/manyCache/synchronizeRemoved.js +2 -2
- package/src/table/relation/newForeignKeyFilter.js +2 -2
- package/src/table/relation/newManyCache.js +25 -17
- package/src/table/relation/newOneCache.js +6 -6
- package/src/table/releaseDbClient.js +4 -4
- package/src/table/resultToPromise.js +1 -3
- package/src/table/resultToRows/dbRowToRow.js +6 -13
- package/src/table/resultToRows/dbRowsToRows.js +2 -2
- package/src/table/resultToRows/decodeDbRow.js +2 -2
- package/src/table/resultToRows/delete/removeFromCache.js +4 -11
- package/src/table/resultToRows/delete.js +6 -6
- package/src/table/resultToRows/newDecodeDbRow.js +19 -25
- package/src/table/resultToRows/toDto/extractStrategy.js +1 -7
- package/src/table/resultToRows/toDto.js +3 -3
- package/src/table/resultToRows.js +3 -3
- package/src/table/rollback.js +21 -11
- package/src/table/rowArray/negotiateNextTick.js +1 -2
- package/src/table/setSessionSingleton.js +6 -3
- package/src/table/tryGetFirstFromDb.js +4 -4
- package/src/table/tryGetFromCacheById.js +3 -3
- package/src/table/tryGetFromDbById/extractStrategy.js +2 -2
- package/src/table/tryGetFromDbById.js +8 -6
- package/src/table/tryGetSessionContext.js +3 -13
- package/src/table/tryReleaseDbClient.js +2 -2
- package/src/table/updateField.js +4 -4
- package/src/table/where.js +2 -2
- package/src/table.js +56 -53
- package/src/tedious/deleteFromSql.js +5 -5
- package/src/tedious/formatDateOut.js +1 -1
- package/src/tedious/getManyDto/newQueryCore.js +5 -5
- package/src/tedious/getManyDto/query/newSingleQuery.js +5 -5
- package/src/tedious/getManyDto/query/newSubQueries/joinLegToQuery.js +4 -5
- package/src/tedious/getManyDto/query/newSubQueries/manyLegToQuery.js +4 -5
- package/src/tedious/getManyDto/query/newSubQueries/oneLegToQuery.js +13 -14
- package/src/tedious/getManyDto/query/newSubQueries.js +9 -26
- package/src/tedious/getManyDto/query/singleQuery/newShallowColumnSql.js +5 -6
- package/src/tedious/getManyDto.js +6 -6
- package/src/tedious/insert.js +3 -3
- package/src/tedious/insertSql.js +3 -3
- package/src/tedious/newDatabase.js +17 -30
- package/src/tedious/newPool.js +10 -10
- package/src/tedious/newTransaction.js +3 -4
- package/src/tedious/pool/newGenericPool.js +1 -13
- package/src/tedious/quote.js +1 -0
- package/src/validateDeleteConflict.js +4 -2
- package/src/createDomain/negotiateForwardProperty.js +0 -23
- package/src/d1/pool/defaults.js +0 -45
- package/src/mssql/pool/defaults.js +0 -45
- package/src/oracle/pool/defaults.js +0 -45
- package/src/pg/pool/defaults.js +0 -45
- package/src/sqlite/pool/defaults.js +0 -45
- 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/tedious/pool/defaults.js +0 -45
- package/src/useHook.js +0 -9
package/src/table/rollback.js
CHANGED
|
@@ -5,27 +5,37 @@ const popChanges = require('./popChanges');
|
|
|
5
5
|
const newThrow = require('./newThrow');
|
|
6
6
|
const resultToPromise = require('./resultToPromise');
|
|
7
7
|
const conflictId = '12345678-1234-1234-1234-123456789012';
|
|
8
|
+
const getSessionSingleton = require('./getSessionSingleton');
|
|
8
9
|
|
|
9
|
-
function
|
|
10
|
-
var executeRollback = executeQuery.bind(null, rollbackCommand);
|
|
10
|
+
function _rollback(context, e) {
|
|
11
11
|
var chain = resultToPromise()
|
|
12
|
-
.then(popChanges)
|
|
12
|
+
.then(() => popChanges(context))
|
|
13
13
|
.then(executeRollback)
|
|
14
|
-
.then(releaseDbClient);
|
|
14
|
+
.then(() => releaseDbClient(context));
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
function executeRollback() {
|
|
18
|
+
const transactionLess = getSessionSingleton(context, 'transactionLess');
|
|
19
|
+
if (transactionLess)
|
|
20
|
+
return Promise.resolve();
|
|
21
|
+
return executeQuery(context, rollbackCommand);
|
|
22
|
+
}
|
|
15
23
|
|
|
16
24
|
if (e) {
|
|
17
|
-
if (e.message
|
|
18
|
-
return newThrow(new Error('Conflict when updating a column'), chain);
|
|
25
|
+
if (e.message?.indexOf('ORA-01476: divisor is equal to zero') > -1)
|
|
26
|
+
return newThrow(context, new Error('Conflict when updating a column'), chain);
|
|
19
27
|
let errors = e.message && e.message.split(conflictId) || [];
|
|
20
28
|
if (errors.length > 1) {
|
|
21
|
-
return newThrow(new Error(errors[1]), chain);
|
|
29
|
+
return newThrow(context, new Error(errors[1]), chain);
|
|
22
30
|
}
|
|
23
31
|
else
|
|
24
|
-
return newThrow(e, chain);
|
|
32
|
+
return newThrow(context, e, chain);
|
|
25
33
|
}
|
|
26
34
|
return chain;
|
|
27
35
|
}
|
|
28
36
|
|
|
29
|
-
|
|
30
|
-
return Promise.resolve().then(() =>
|
|
31
|
-
}
|
|
37
|
+
function rollback(context, e) {
|
|
38
|
+
return Promise.resolve().then(() => _rollback(context, e));
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
module.exports = rollback;
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
var getSessionContext = require('./getSessionContext');
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
getSessionContext()
|
|
5
|
-
|
|
3
|
+
function setSessionSingleton(context, name, value) {
|
|
4
|
+
const rdb = getSessionContext(context);
|
|
5
|
+
rdb[name] = value;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
module.exports = setSessionSingleton;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
var getMany = require('./getMany');
|
|
2
2
|
|
|
3
|
-
function tryGet(table, filter, strategy) {
|
|
3
|
+
function tryGet(context, table, filter, strategy) {
|
|
4
4
|
strategy = setLimit(strategy);
|
|
5
|
-
return getMany(table, filter, strategy).then(filterRows);
|
|
5
|
+
return getMany(context, table, filter, strategy).then(filterRows);
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
function filterRows(rows) {
|
|
@@ -11,9 +11,9 @@ function filterRows(rows) {
|
|
|
11
11
|
return null;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
tryGet.exclusive = function(table, filter, strategy) {
|
|
14
|
+
tryGet.exclusive = function(context, table, filter, strategy) {
|
|
15
15
|
strategy = setLimit(strategy);
|
|
16
|
-
return getMany.exclusive(table, filter, strategy).then(filterRows);
|
|
16
|
+
return getMany.exclusive(context, table, filter, strategy).then(filterRows);
|
|
17
17
|
};
|
|
18
18
|
|
|
19
19
|
function setLimit(strategy) {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
function tryGet(table) {
|
|
1
|
+
function tryGet(context, table) {
|
|
2
2
|
var fakeRow = {};
|
|
3
3
|
var args = arguments;
|
|
4
4
|
table._primaryColumns.forEach(addPkValue);
|
|
5
5
|
|
|
6
6
|
function addPkValue(pkColumn, index){
|
|
7
|
-
fakeRow[pkColumn.alias] = args[index +
|
|
7
|
+
fakeRow[pkColumn.alias] = args[index + 2];
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
return table._cache.tryGet(fakeRow);
|
|
10
|
+
return table._cache.tryGet(context, fakeRow);
|
|
11
11
|
}
|
|
12
12
|
module.exports = tryGet;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
|
-
function extract(table) {
|
|
3
|
-
var lengthWithStrategy = table._primaryColumns.length +
|
|
2
|
+
function extract(_context, table) {
|
|
3
|
+
var lengthWithStrategy = table._primaryColumns.length + 3;
|
|
4
4
|
if (arguments.length === lengthWithStrategy)
|
|
5
5
|
return arguments[lengthWithStrategy-1];
|
|
6
6
|
return;
|
|
@@ -2,18 +2,20 @@ var newPrimaryKeyFilter = require('./newPrimaryKeyFilter');
|
|
|
2
2
|
var tryGetFirstFromDb = require('./tryGetFirstFromDb');
|
|
3
3
|
var extractStrategy = require('./tryGetFromDbById/extractStrategy');
|
|
4
4
|
|
|
5
|
-
function tryGet() {
|
|
5
|
+
function tryGet(context) {
|
|
6
6
|
var filter = newPrimaryKeyFilter.apply(null, arguments);
|
|
7
|
-
var table = arguments[
|
|
7
|
+
var table = arguments[1];
|
|
8
8
|
var strategy = extractStrategy.apply(null, arguments);
|
|
9
|
-
return tryGetFirstFromDb(table, filter, strategy);
|
|
9
|
+
return tryGetFirstFromDb(context, table, filter, strategy);
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
tryGet.exclusive = function tryGet() {
|
|
12
|
+
tryGet.exclusive = function tryGet(context) {
|
|
13
13
|
var filter = newPrimaryKeyFilter.apply(null, arguments);
|
|
14
|
-
var table = arguments[
|
|
14
|
+
var table = arguments[1];
|
|
15
15
|
var strategy = extractStrategy.apply(null, arguments);
|
|
16
|
-
return tryGetFirstFromDb.exclusive(table, filter, strategy);
|
|
16
|
+
return tryGetFirstFromDb.exclusive(context, table, filter, strategy);
|
|
17
|
+
|
|
18
|
+
|
|
17
19
|
};
|
|
18
20
|
|
|
19
21
|
module.exports = tryGet;
|
|
@@ -1,16 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
function tryGetSessionContext() {
|
|
6
|
-
if (useHook()) {
|
|
7
|
-
if (!cls)
|
|
8
|
-
cls = require('node-cls');
|
|
9
|
-
let context = cls.getContext('rdb');
|
|
10
|
-
return context && context.rdb;
|
|
11
|
-
}
|
|
12
|
-
else
|
|
13
|
-
return process.domain && process.domain.rdb;
|
|
1
|
+
function tryGetSessionContext(context) {
|
|
2
|
+
if (context)
|
|
3
|
+
return context.rdb;
|
|
14
4
|
}
|
|
15
5
|
|
|
16
6
|
module.exports = tryGetSessionContext;
|
package/src/table/updateField.js
CHANGED
|
@@ -2,11 +2,11 @@ var newUpdateCommand = require('./commands/newUpdateCommand');
|
|
|
2
2
|
var pushCommand = require('./commands/pushCommand');
|
|
3
3
|
var lastCommandMatches = require('./commands/lastCommandMatches');
|
|
4
4
|
|
|
5
|
-
function updateField(table, column, row
|
|
6
|
-
if (lastCommandMatches(row))
|
|
5
|
+
function updateField(context, table, column, row) {
|
|
6
|
+
if (lastCommandMatches(context, row))
|
|
7
7
|
return;
|
|
8
|
-
var command = newUpdateCommand(table, column, row
|
|
9
|
-
pushCommand(command);
|
|
8
|
+
var command = newUpdateCommand(context, table, column, row);
|
|
9
|
+
pushCommand(context, command);
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
module.exports = updateField;
|
package/src/table/where.js
CHANGED
|
@@ -2,9 +2,9 @@ const negotiateRawSqlFilter = require('./column/negotiateRawSqlFilter');
|
|
|
2
2
|
|
|
3
3
|
function newWhere(table) {
|
|
4
4
|
|
|
5
|
-
function where(fn) {
|
|
5
|
+
function where(context, fn) {
|
|
6
6
|
let arg = typeof fn === 'function' ? fn(table) : fn;
|
|
7
|
-
return negotiateRawSqlFilter(arg);
|
|
7
|
+
return negotiateRawSqlFilter(context, arg);
|
|
8
8
|
}
|
|
9
9
|
return where;
|
|
10
10
|
}
|
package/src/table.js
CHANGED
|
@@ -14,13 +14,10 @@ const newContext = require('./newObject');
|
|
|
14
14
|
const insert = require('./table/insert');
|
|
15
15
|
const _delete = require('./table/delete');
|
|
16
16
|
const cascadeDelete = require('./table/cascadeDelete');
|
|
17
|
-
const createReadStream = require('./table/createReadStream');
|
|
18
|
-
const createJSONReadStream = require('./table/createJSONReadStream');
|
|
19
|
-
const getIdArgs = require('./table/getIdArgs');
|
|
20
17
|
const patchTable = require('./patchTable');
|
|
21
18
|
const newEmitEvent = require('./emitEvent');
|
|
22
19
|
const hostLocal = require('./hostLocal');
|
|
23
|
-
const getTSDefinition = require('./getTSDefinition');
|
|
20
|
+
// const getTSDefinition = require('./getTSDefinition'); //todo: unused ?
|
|
24
21
|
const where = require('./table/where');
|
|
25
22
|
const aggregate = require('./table/aggregate');
|
|
26
23
|
const groupBy = require('./table/groupBy');
|
|
@@ -62,63 +59,63 @@ function _new(tableName) {
|
|
|
62
59
|
return hasOne(joinRelation);
|
|
63
60
|
};
|
|
64
61
|
|
|
65
|
-
table.count = function(
|
|
66
|
-
|
|
62
|
+
table.count = function(context, ...rest) {
|
|
63
|
+
const args = [context, table, ...rest];
|
|
64
|
+
return Promise.resolve().then(() => count.apply(null, args));
|
|
67
65
|
};
|
|
68
66
|
|
|
69
|
-
table.getMany = function(
|
|
70
|
-
|
|
67
|
+
table.getMany = function(context, ...rest) {
|
|
68
|
+
const args = [context, table, ...rest];
|
|
69
|
+
return Promise.resolve().then(() => getMany.apply(null, args));
|
|
71
70
|
};
|
|
72
|
-
table.getManyDto = function(
|
|
73
|
-
|
|
71
|
+
table.getManyDto = function(context, ...rest) {
|
|
72
|
+
const args = [context, table, ...rest];
|
|
73
|
+
return Promise.resolve().then(() => getManyDto.apply(null, args));
|
|
74
74
|
};
|
|
75
75
|
|
|
76
|
-
table.aggregate = function(
|
|
77
|
-
|
|
76
|
+
table.aggregate = function(context, ...rest) {
|
|
77
|
+
const args = [context, table, ...rest];
|
|
78
|
+
return groupBy.apply(null, args);
|
|
78
79
|
};
|
|
79
80
|
|
|
80
|
-
table.getMany.exclusive = function(
|
|
81
|
-
|
|
81
|
+
table.getMany.exclusive = function(context, ...rest) {
|
|
82
|
+
const args = [context, table, ...rest];
|
|
83
|
+
return Promise.resolve().then(() => getMany.exclusive.apply(null, args));
|
|
82
84
|
};
|
|
83
85
|
|
|
84
|
-
table.tryGetFirst = function(
|
|
85
|
-
|
|
86
|
+
table.tryGetFirst = function(context, ...rest) {
|
|
87
|
+
const args = [context, table, ...rest];
|
|
88
|
+
return Promise.resolve().then(() => tryGetFirst.apply(null, args));
|
|
86
89
|
};
|
|
87
|
-
table.tryGetFirst.exclusive = function(
|
|
88
|
-
|
|
90
|
+
table.tryGetFirst.exclusive = function(context, ...rest) {
|
|
91
|
+
const args = [context, table, ...rest];
|
|
92
|
+
return Promise.resolve().then(() => tryGetFirst.exclusive.apply(null, args));
|
|
89
93
|
};
|
|
94
|
+
|
|
90
95
|
table.getOne = table.tryGetFirst;
|
|
91
96
|
table.getOne.exclusive = table.tryGetFirst.exclusive;
|
|
92
97
|
|
|
93
|
-
function
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
function call(func, args) {
|
|
98
|
-
var mergedArgs = [table];
|
|
99
|
-
for (var i = 0; i < args.length; i++) {
|
|
100
|
-
mergedArgs.push(args[i]);
|
|
101
|
-
}
|
|
102
|
-
return func.apply(null, mergedArgs);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
table.getById = function() {
|
|
106
|
-
return callAsync(getById, getIdArgs(table, arguments));
|
|
98
|
+
table.getById = function(context, ...rest) {
|
|
99
|
+
const args = [context, table, ...rest];
|
|
100
|
+
return Promise.resolve().then(() => getById.apply(null, args));
|
|
107
101
|
};
|
|
108
102
|
|
|
109
|
-
table.getById.exclusive = function() {
|
|
110
|
-
|
|
111
|
-
return
|
|
103
|
+
table.getById.exclusive = function(context, ...rest) {
|
|
104
|
+
const args = [context, table, ...rest];
|
|
105
|
+
return Promise.resolve().then(() => getById.exclusive.apply(null, args));
|
|
112
106
|
};
|
|
113
107
|
|
|
114
|
-
table.tryGetById = function() {
|
|
115
|
-
|
|
108
|
+
table.tryGetById = function(context, ...rest) {
|
|
109
|
+
const args = [context, table, ...rest];
|
|
110
|
+
return Promise.resolve().then(() => tryGetById.apply(null, args));
|
|
116
111
|
};
|
|
117
112
|
|
|
118
|
-
table.tryGetById.exclusive = function() {
|
|
119
|
-
|
|
113
|
+
table.tryGetById.exclusive = function(context, ...rest) {
|
|
114
|
+
const args = [context, table, ...rest];
|
|
115
|
+
return Promise.resolve().then(() => tryGetById.exclusive.apply(null, args));
|
|
120
116
|
};
|
|
121
117
|
|
|
118
|
+
|
|
122
119
|
table.columnDiscriminators = function() {
|
|
123
120
|
for (var i = 0; i < arguments.length; i++) {
|
|
124
121
|
table._columnDiscriminators.push(arguments[i]);
|
|
@@ -133,37 +130,43 @@ function _new(tableName) {
|
|
|
133
130
|
return table;
|
|
134
131
|
};
|
|
135
132
|
|
|
136
|
-
table.insert = function() {
|
|
133
|
+
table.insert = function(context, ...rest) {
|
|
137
134
|
const concurrency = undefined;
|
|
138
|
-
let args = [{table, concurrency}]
|
|
135
|
+
let args = [context, {table, concurrency}, ...rest];
|
|
139
136
|
return insert.apply(null, args);
|
|
140
137
|
};
|
|
141
138
|
|
|
142
|
-
table.insertWithConcurrency = function(options, ...rows) {
|
|
143
|
-
let args = [{table, options}].concat([].slice.call(rows));
|
|
139
|
+
table.insertWithConcurrency = function(context, options, ...rows) {
|
|
140
|
+
let args = [context, {table, options}].concat([].slice.call(rows));
|
|
144
141
|
return insert.apply(null, args);
|
|
145
142
|
};
|
|
146
143
|
|
|
147
144
|
table.delete = _delete.bind(null, table);
|
|
148
|
-
table.cascadeDelete =
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
145
|
+
table.cascadeDelete = function(context, ...rest) {
|
|
146
|
+
const args = [context, table, ...rest];
|
|
147
|
+
return cascadeDelete.apply(null, args);
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
table.deleteCascade = table.cascadeDelete;
|
|
152
151
|
table.exclusive = function() {
|
|
153
152
|
table._exclusive = true;
|
|
154
153
|
return table;
|
|
155
154
|
};
|
|
156
|
-
table.patch =
|
|
157
|
-
|
|
158
|
-
|
|
155
|
+
table.patch = function(context, ...rest) {
|
|
156
|
+
const args = [context, table, ...rest];
|
|
157
|
+
return patchTable.apply(null, args);
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
// table.subscribeChanged = table._emitChanged.add; //legacy
|
|
161
|
+
// table.unsubscribeChanged = table._emitChanged.remove; //legacy
|
|
159
162
|
|
|
160
163
|
table.hostLocal = function(options) {
|
|
161
164
|
return hostLocal({table, ...options});
|
|
162
165
|
};
|
|
163
166
|
|
|
164
|
-
table.ts = function(name) {
|
|
165
|
-
|
|
166
|
-
};
|
|
167
|
+
// table.ts = function(name) { //unused ?
|
|
168
|
+
// return getTSDefinition(table, {name});
|
|
169
|
+
// };
|
|
167
170
|
|
|
168
171
|
table.where = where(table);
|
|
169
172
|
table._aggregate = aggregate(table);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const quote = require('
|
|
1
|
+
const format = 'delete %s from %s as %s%s';
|
|
2
|
+
const formatString = require('../format');
|
|
3
|
+
const quote = require('./quote');
|
|
4
4
|
|
|
5
5
|
function deleteFromSql(table, alias, whereSql) {
|
|
6
|
-
|
|
6
|
+
const name = quote(table._dbName);
|
|
7
7
|
alias = quote(alias);
|
|
8
|
-
return
|
|
8
|
+
return formatString(format, alias, name, alias, whereSql);
|
|
9
9
|
}
|
|
10
10
|
module.exports = deleteFromSql;
|
|
@@ -5,14 +5,14 @@ var extractOrderBy = require('../../table/query/extractOrderBy');
|
|
|
5
5
|
var extractLimit = require('../../table/query/extractLimit');
|
|
6
6
|
var limitAndOffset = require('../limitAndOffset');
|
|
7
7
|
|
|
8
|
-
function newQuery(table,filter,span,alias) {
|
|
8
|
+
function newQuery(context, table, filter, span, alias) {
|
|
9
9
|
filter = extractFilter(filter);
|
|
10
|
-
var orderBy = extractOrderBy(table,alias,span.orderBy);
|
|
11
|
-
var limit = extractLimit(span);
|
|
10
|
+
var orderBy = extractOrderBy(context, table, alias, span.orderBy);
|
|
11
|
+
var limit = extractLimit(context, span);
|
|
12
12
|
var offset = limitAndOffset(span);
|
|
13
13
|
|
|
14
|
-
var subQueries = newSubQueries(table,span,alias);
|
|
15
|
-
return newSingleQuery(table,filter,span,alias,subQueries,orderBy,limit,offset);
|
|
14
|
+
var subQueries = newSubQueries(newQuery, context, table, span, alias);
|
|
15
|
+
return newSingleQuery(context, table, filter, span, alias, subQueries, orderBy, limit, offset);
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
module.exports = newQuery;
|
|
@@ -2,17 +2,17 @@ var newColumnSql = require('./singleQuery/newShallowColumnSql');
|
|
|
2
2
|
var newWhereSql = require('../../../table/query/singleQuery/newWhereSql');
|
|
3
3
|
var newParameterized = require('../../../table/query/newParameterized');
|
|
4
4
|
|
|
5
|
-
function _new(table, filter, span, alias, subQueries, orderBy, limit, offset) {
|
|
6
|
-
var columnSql = newColumnSql(table, alias, span);
|
|
7
|
-
var whereSql = newWhereSql(table, filter, alias);
|
|
5
|
+
function _new(context, table, filter, span, alias, subQueries, orderBy, limit, offset) {
|
|
6
|
+
var columnSql = newColumnSql(context, table, alias, span);
|
|
7
|
+
var whereSql = newWhereSql(context, table, filter, alias);
|
|
8
8
|
if (limit)
|
|
9
9
|
limit = limit + ' ';
|
|
10
10
|
|
|
11
11
|
let join = '';
|
|
12
12
|
const set = new Set();
|
|
13
|
-
for(let key in span.aggregates) {
|
|
13
|
+
for (let key in span.aggregates) {
|
|
14
14
|
const agg = span.aggregates[key];
|
|
15
|
-
for(let sql of agg.joins) {
|
|
15
|
+
for (let sql of agg.joins) {
|
|
16
16
|
if (!set.has(sql)) {
|
|
17
17
|
join = join + sql;
|
|
18
18
|
set.add(sql);
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
var newQuery = require('../../newQueryCore');
|
|
1
|
+
const newShallowJoinSql = require('../../../../table/query/singleQuery/joinSql/newShallowJoinSqlCore');
|
|
3
2
|
|
|
4
|
-
function joinLegToQuery(parentAlias,leg,_legNo) {
|
|
3
|
+
function joinLegToQuery(newQuery, context, parentAlias, leg, _legNo) {
|
|
5
4
|
var childAlias = parentAlias + leg.name;
|
|
6
5
|
var span = leg.span;
|
|
7
6
|
var parentTable = leg.table;
|
|
8
7
|
var childColumns = span.table._primaryColumns;
|
|
9
8
|
var parentColumns = leg.columns;
|
|
10
9
|
|
|
11
|
-
var filter
|
|
12
|
-
var query = newQuery(span.table,filter,span,childAlias);
|
|
10
|
+
var filter = newShallowJoinSql(context, parentTable, childColumns, parentColumns, childAlias, parentAlias, leg.span.where);
|
|
11
|
+
var query = newQuery(context, span.table, filter, span, childAlias);
|
|
13
12
|
return query.prepend('JSON_QUERY((').append(` FOR JSON PATH, INCLUDE_NULL_VALUES, WITHOUT_ARRAY_WRAPPER)) "${leg.name}"`);
|
|
14
13
|
}
|
|
15
14
|
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
var newQuery = require('../../newQueryCore');
|
|
1
|
+
const newShallowJoinSql = require('../../../../table/query/singleQuery/joinSql/newShallowJoinSqlCore');
|
|
3
2
|
|
|
4
|
-
function manyLegToQuery(rightAlias, leg, _legNo) {
|
|
3
|
+
function manyLegToQuery(newQuery, context, rightAlias, leg, _legNo) {
|
|
5
4
|
var leftAlias = rightAlias + leg.name;
|
|
6
5
|
var span = leg.span;
|
|
7
6
|
var rightTable = leg.table;
|
|
8
7
|
var rightColumns = rightTable._primaryColumns;
|
|
9
8
|
var leftColumns = leg.columns;
|
|
10
9
|
|
|
11
|
-
var filter = newShallowJoinSql(rightTable, leftColumns, rightColumns, leftAlias, rightAlias, leg.span.where);
|
|
12
|
-
var query = newQuery(span.table, filter, span, leftAlias);
|
|
10
|
+
var filter = newShallowJoinSql(context, rightTable, leftColumns, rightColumns, leftAlias, rightAlias, leg.span.where);
|
|
11
|
+
var query = newQuery(context, span.table, filter, span, leftAlias);
|
|
13
12
|
return query.prepend('JSON_QUERY( coalesce((').append(` FOR JSON PATH, INCLUDE_NULL_VALUES),'[]')) "${leg.name}"`);
|
|
14
13
|
}
|
|
15
14
|
|
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var util = require('util');
|
|
1
|
+
const newShallowJoinSql = require('../../../../table/query/singleQuery/joinSql/newShallowJoinSqlCore');
|
|
2
|
+
const newParameterized = require('../../../../table/query/newParameterized');
|
|
3
|
+
const formatString = require('../../../../format');
|
|
5
4
|
|
|
6
|
-
function oneLegToQuery(rightAlias,leg,_legNo) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
function oneLegToQuery(newQuery, context, rightAlias, leg, _legNo) {
|
|
6
|
+
let leftAlias = rightAlias + leg.name;
|
|
7
|
+
let span = leg.span;
|
|
8
|
+
let rightTable = leg.table;
|
|
9
|
+
let rightColumns = rightTable._primaryColumns;
|
|
10
|
+
let leftColumns = leg.columns;
|
|
12
11
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
return newParameterized(
|
|
12
|
+
let filter = newShallowJoinSql(context, rightTable, leftColumns, rightColumns, leftAlias, rightAlias, leg.span.where);
|
|
13
|
+
let query = newQuery(context, span.table, filter, span, leftAlias);
|
|
14
|
+
let sql = 'SELECT TOP 1' + query.sql().substring(6);
|
|
15
|
+
return newParameterized(formatString('JSON_QUERY((%s FOR JSON PATH, INCLUDE_NULL_VALUES, WITHOUT_ARRAY_WRAPPER)) "%s"', sql, leg.name), query.parameters);
|
|
17
16
|
}
|
|
18
17
|
|
|
19
18
|
module.exports = oneLegToQuery;
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
const newParameterized = require('../../../table/query/newParameterized');
|
|
2
|
+
const joinLegToQuery = require('./newSubQueries/joinLegToQuery');
|
|
3
|
+
const oneLegToQuery = require('./newSubQueries/oneLegToQuery');
|
|
4
|
+
const manyLegToQuery = require('./newSubQueries/manyLegToQuery');
|
|
5
5
|
|
|
6
|
-
function newSubQueries(_table,span,alias) {
|
|
6
|
+
function newSubQueries(newQuery, context, _table, span, alias) {
|
|
7
7
|
var result = newParameterized('', []);
|
|
8
8
|
var c = {};
|
|
9
9
|
var _legNo;
|
|
10
10
|
|
|
11
11
|
c.visitJoin = function(leg) {
|
|
12
|
-
result = result.append(',').append(joinLegToQuery( alias,leg,_legNo));
|
|
12
|
+
result = result.append(',').append(joinLegToQuery(newQuery, context, alias, leg, _legNo));
|
|
13
13
|
};
|
|
14
14
|
c.visitOne = function(leg) {
|
|
15
|
-
result = result.append(',').append(oneLegToQuery( alias,leg,_legNo));
|
|
15
|
+
result = result.append(',').append(oneLegToQuery(newQuery, context, alias, leg, _legNo));
|
|
16
16
|
};
|
|
17
17
|
c.visitMany = function(leg) {
|
|
18
|
-
result = result.append(',').append(manyLegToQuery( alias,leg,_legNo));
|
|
18
|
+
result = result.append(',').append(manyLegToQuery(newQuery, context, alias, leg, _legNo));
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
span.legs.forEach(onEachLeg);
|
|
22
22
|
|
|
23
|
-
function onEachLeg(leg,legNo) {
|
|
23
|
+
function onEachLeg(leg, legNo) {
|
|
24
24
|
_legNo = legNo;
|
|
25
25
|
leg.accept(c);
|
|
26
26
|
}
|
|
@@ -28,21 +28,4 @@ function newSubQueries(_table,span,alias) {
|
|
|
28
28
|
return result;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
function _joinLegToQuery() {
|
|
32
|
-
joinLegToQuery = require('./newSubQueries/joinLegToQuery');
|
|
33
|
-
return joinLegToQuery.apply(null,arguments);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
function _oneLegToQuery() {
|
|
37
|
-
oneLegToQuery = require('./newSubQueries/oneLegToQuery');
|
|
38
|
-
return oneLegToQuery.apply(null,arguments);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
function _manyLegToQuery() {
|
|
42
|
-
manyLegToQuery = require('./newSubQueries/manyLegToQuery');
|
|
43
|
-
return manyLegToQuery.apply(null,arguments);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
31
|
module.exports = newSubQueries;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
const
|
|
1
|
+
const quote = require('../../../quote');
|
|
2
2
|
|
|
3
|
-
function _new(table,alias, span) {
|
|
4
|
-
const quote = getSessionSingleton('quote');
|
|
3
|
+
function _new(context, table, alias, span) {
|
|
5
4
|
alias = quote(alias);
|
|
6
5
|
let columnsMap = span.columns;
|
|
7
6
|
var columns = table._columns;
|
|
@@ -11,7 +10,7 @@ function _new(table,alias, span) {
|
|
|
11
10
|
for (var i = 0; i < columns.length; i++) {
|
|
12
11
|
var column = columns[i];
|
|
13
12
|
if (!columnsMap || (columnsMap.get(column))) {
|
|
14
|
-
sql = sql + separator
|
|
13
|
+
sql = sql + separator + formatColumn(column) + ' as ' + quote(column.alias);
|
|
15
14
|
separator = ',';
|
|
16
15
|
}
|
|
17
16
|
}
|
|
@@ -24,11 +23,11 @@ function _new(table,alias, span) {
|
|
|
24
23
|
|
|
25
24
|
function formatColumn(column) {
|
|
26
25
|
|
|
27
|
-
const formatted = column.formatOut && column.tsType !== 'DateColumn' ? column.formatOut(alias) : alias + '.' + quote(column._dbName);
|
|
26
|
+
const formatted = column.formatOut && column.tsType !== 'DateColumn' ? column.formatOut(context, alias) : alias + '.' + quote(column._dbName);
|
|
28
27
|
if (column.dbNull === null)
|
|
29
28
|
return formatted;
|
|
30
29
|
else {
|
|
31
|
-
const encoded = column.encode.unsafe(column.dbNull);
|
|
30
|
+
const encoded = column.encode.unsafe(context, column.dbNull);
|
|
32
31
|
return `CASE WHEN ${formatted}=${encoded} THEN null ELSE ${formatted} END`;
|
|
33
32
|
}
|
|
34
33
|
|
|
@@ -3,17 +3,17 @@ const negotiateRawSqlFilter = require('../table/column/negotiateRawSqlFilter');
|
|
|
3
3
|
const strategyToSpan = require('../table/strategyToSpan');
|
|
4
4
|
const executeQueries = require('../table/executeQueries');
|
|
5
5
|
|
|
6
|
-
async function getManyDto(table, filter, strategy) {
|
|
7
|
-
filter = negotiateRawSqlFilter(filter, table);
|
|
6
|
+
async function getManyDto(context, table, filter, strategy) {
|
|
7
|
+
filter = negotiateRawSqlFilter(context, filter, table);
|
|
8
8
|
if (strategy && strategy.where) {
|
|
9
9
|
let arg = typeof strategy.where === 'function' ? strategy.where(table) : strategy.where;
|
|
10
|
-
filter = filter.and(arg);
|
|
10
|
+
filter = filter.and(context, arg);
|
|
11
11
|
}
|
|
12
|
-
let span = strategyToSpan(table,strategy);
|
|
12
|
+
let span = strategyToSpan(table, strategy);
|
|
13
13
|
let alias = table._dbName;
|
|
14
14
|
|
|
15
|
-
const query = newQuery(table, filter, span, alias);
|
|
16
|
-
const res =
|
|
15
|
+
const query = newQuery(context, table, filter, span, alias);
|
|
16
|
+
const res = await executeQueries(context, [query]);
|
|
17
17
|
const rows = await res[0];
|
|
18
18
|
if (rows.length === 0)
|
|
19
19
|
return [];
|