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
|
@@ -1,27 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
const { newJoinedColumnSql } = require('./sharedJoinUtils');
|
|
2
2
|
|
|
3
|
-
module.exports = function(span, alias, ignoreNull) {
|
|
4
|
-
var c = {};
|
|
5
|
-
var sql = '';
|
|
6
3
|
|
|
7
|
-
|
|
8
|
-
var joinSql = joinLegToColumnSql(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;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const getSessionSingleton = require('../../../getSessionSingleton');
|
|
2
2
|
|
|
3
|
-
function _new(table, alias, span, ignoreNulls) {
|
|
4
|
-
const quote = getSessionSingleton('quote');
|
|
3
|
+
function _new(context, table, alias, span, ignoreNulls) {
|
|
4
|
+
const quote = getSessionSingleton(context, 'quote');
|
|
5
5
|
const quotedAlias = quote(alias);
|
|
6
6
|
let columnsMap = span.columns;
|
|
7
7
|
var columns = table._columns;
|
|
@@ -28,11 +28,11 @@ function _new(table, alias, span, ignoreNulls) {
|
|
|
28
28
|
return sql;
|
|
29
29
|
|
|
30
30
|
function formatColumn(column) {
|
|
31
|
-
const formatted = column.formatOut ? column.formatOut(quotedAlias) : quotedAlias + '.' + quote(column._dbName);
|
|
31
|
+
const formatted = column.formatOut ? column.formatOut(context, quotedAlias) : quotedAlias + '.' + quote(column._dbName);
|
|
32
32
|
if (column.dbNull === null)
|
|
33
33
|
return formatted;
|
|
34
34
|
else {
|
|
35
|
-
const encoded = column.encode.unsafe(column.dbNull);
|
|
35
|
+
const encoded = column.encode.unsafe(context, column.dbNull);
|
|
36
36
|
return `CASE WHEN ${formatted}=${encoded} THEN null ELSE ${formatted} END`;
|
|
37
37
|
}
|
|
38
38
|
}
|
|
@@ -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(leg,alias,childAlias) {
|
|
5
|
-
return joinLegToShallowJoinSql(leg,alias,childAlias).append(newJoinSql(leg.span,childAlias));
|
|
3
|
+
function toJoinSql(newJoinSql, context,leg,alias,childAlias) {
|
|
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,9 +1,9 @@
|
|
|
1
1
|
var newShallowJoinSql = require('./newShallowJoinSql');
|
|
2
2
|
|
|
3
|
-
function toJoinSql(leg,alias,childAlias) {
|
|
3
|
+
function toJoinSql(context,leg,alias,childAlias) {
|
|
4
4
|
var columns = leg.columns;
|
|
5
5
|
var childTable = leg.span.table;
|
|
6
|
-
return newShallowJoinSql(childTable,columns,childTable._primaryColumns,alias,childAlias,leg.span.where).prepend(' LEFT');
|
|
6
|
+
return newShallowJoinSql(context,childTable,columns,childTable._primaryColumns,alias,childAlias,leg.span.where).prepend(' LEFT');
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
module.exports = toJoinSql;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var newDiscriminatorSqlCore = require('../newDiscriminatorSql');
|
|
2
2
|
|
|
3
|
-
function newDiscriminatorSql(table, alias) {
|
|
4
|
-
var result = newDiscriminatorSqlCore(table,alias);
|
|
3
|
+
function newDiscriminatorSql(context, table, alias) {
|
|
4
|
+
var result = newDiscriminatorSqlCore(context,table,alias);
|
|
5
5
|
if (result)
|
|
6
6
|
return ' AND' + result;
|
|
7
7
|
return result;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
const newJoinCore = require('./newShallowJoinSqlCore');
|
|
2
2
|
const getSessionSingleton = require('../../../getSessionSingleton');
|
|
3
3
|
|
|
4
|
-
function _new(rightTable,leftColumns,rightColumns,leftAlias,rightAlias, filter) {
|
|
5
|
-
const quote = getSessionSingleton('quote');
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
function _new(context, rightTable, leftColumns, rightColumns, leftAlias, rightAlias, filter) {
|
|
5
|
+
const quote = getSessionSingleton(context, 'quote');
|
|
6
|
+
const sql = ' JOIN ' + quote(rightTable._dbName) + ' ' + quote(rightAlias) + ' ON (';
|
|
7
|
+
const joinCore = newJoinCore(context, rightTable, leftColumns, rightColumns, leftAlias, rightAlias, filter);
|
|
8
8
|
return joinCore.prepend(sql).append(')');
|
|
9
9
|
}
|
|
10
10
|
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
const newDiscriminatorSql = require('./newDiscriminatorSql');
|
|
2
|
+
const newParameterized = require('../../newParameterized');
|
|
3
|
+
const getSessionSingleton = require('../../../getSessionSingleton');
|
|
4
4
|
|
|
5
|
-
function _new(rightTable,leftColumns,rightColumns,leftAlias,rightAlias,filter) {
|
|
5
|
+
function _new(context, rightTable, leftColumns, rightColumns, leftAlias, rightAlias, filter) {
|
|
6
|
+
const quote = getSessionSingleton(context, 'quote');
|
|
6
7
|
leftAlias = quote(leftAlias);
|
|
7
8
|
rightAlias = quote(rightAlias);
|
|
8
9
|
var sql = '';
|
|
@@ -18,7 +19,7 @@ function _new(rightTable,leftColumns,rightColumns,leftAlias,rightAlias,filter) {
|
|
|
18
19
|
sql += delimiter + leftAlias + '.' + quote(leftColumn._dbName) + '=' + rightAlias + '.' + quote(rightColumn._dbName);
|
|
19
20
|
}
|
|
20
21
|
|
|
21
|
-
sql += newDiscriminatorSql(rightTable,rightAlias);
|
|
22
|
+
sql += newDiscriminatorSql(context, rightTable, rightAlias);
|
|
22
23
|
var result = newParameterized(sql);
|
|
23
24
|
if (filter)
|
|
24
25
|
result = result.append(delimiter).append(filter);
|
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
var oneLegToShallowJoinSql = require('./oneLegToShallowJoinSql');
|
|
2
|
-
var newJoinSql = _newJoinSql;
|
|
3
2
|
|
|
4
|
-
function toJoinSql(leg,alias,childAlias) {
|
|
5
|
-
return oneLegToShallowJoinSql(leg,alias,childAlias).append(newJoinSql(leg.span,childAlias));
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
function _newJoinSql() {
|
|
9
|
-
newJoinSql = require('../newJoinSql');
|
|
10
|
-
return newJoinSql.apply(null,arguments);
|
|
3
|
+
function toJoinSql(newJoinSql, context,leg,alias,childAlias) {
|
|
4
|
+
return oneLegToShallowJoinSql(context,leg,alias,childAlias).append(newJoinSql(context,leg.span,childAlias));
|
|
11
5
|
}
|
|
12
6
|
|
|
13
7
|
module.exports = toJoinSql;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
var newShallowJoinSql = require('./newShallowJoinSql');
|
|
2
2
|
|
|
3
|
-
function toJoinSql(leg,alias,childAlias) {
|
|
3
|
+
function toJoinSql(context,leg,alias,childAlias) {
|
|
4
4
|
var parentTable = leg.table;
|
|
5
5
|
var columns = leg.columns;
|
|
6
6
|
var childTable = leg.span.table;
|
|
7
|
-
return newShallowJoinSql(childTable,parentTable._primaryColumns,columns,alias,childAlias, leg.span.where).prepend(' LEFT');
|
|
7
|
+
return newShallowJoinSql(context,childTable,parentTable._primaryColumns,columns,alias,childAlias, leg.span.where).prepend(' LEFT');
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
module.exports = toJoinSql;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
var getSessionSingleton = require('../../getSessionSingleton');
|
|
2
2
|
|
|
3
|
-
function negotiateExclusive(table, alias, _exclusive) {
|
|
3
|
+
function negotiateExclusive(context, table, alias, _exclusive) {
|
|
4
4
|
if (table._exclusive || _exclusive) {
|
|
5
|
-
var encode = getSessionSingleton('selectForUpdateSql');
|
|
5
|
+
var encode = getSessionSingleton(context, 'selectForUpdateSql');
|
|
6
6
|
return encode(alias);
|
|
7
7
|
}
|
|
8
8
|
return '';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
var newShallowColumnSql = require('./columnSql/newShallowColumnSql');
|
|
2
2
|
var newJoinedColumnSql = require('./columnSql/newJoinedColumnSql');
|
|
3
3
|
|
|
4
|
-
module.exports = function(table,span,alias,ignoreNull) {
|
|
5
|
-
var shallowColumnSql = newShallowColumnSql(table,alias, span, ignoreNull);
|
|
6
|
-
var joinedColumnSql = newJoinedColumnSql(span,alias, ignoreNull);
|
|
4
|
+
module.exports = function(context,table,span,alias,ignoreNull) {
|
|
5
|
+
var shallowColumnSql = newShallowColumnSql(context,table,alias, span, ignoreNull);
|
|
6
|
+
var joinedColumnSql = newJoinedColumnSql(context, span,alias, ignoreNull);
|
|
7
7
|
return shallowColumnSql + joinedColumnSql;
|
|
8
8
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const getSessionSingleton = require('../../getSessionSingleton');
|
|
2
2
|
|
|
3
|
-
function newDiscriminatorSql(table, alias) {
|
|
4
|
-
const quote = getSessionSingleton('quote');
|
|
3
|
+
function newDiscriminatorSql(context, table, alias) {
|
|
4
|
+
const quote = getSessionSingleton(context, 'quote');
|
|
5
5
|
alias = quote(alias);
|
|
6
6
|
var result = '';
|
|
7
7
|
var formulaDiscriminators = table._formulaDiscriminators;
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
const joinLegToJoinSql = require('./joinSql/joinLegToJoinSql');
|
|
2
|
+
const oneLegToJoinSql = require('./joinSql/oneLegToJoinSql');
|
|
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(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(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(span,alias = '') {
|
|
|
38
38
|
return sql;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
module.exports =
|
|
41
|
+
module.exports = newJoinSql;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
var newDiscriminatorSql = require('./newDiscriminatorSql');
|
|
2
2
|
var newParameterized = require('../../../table/query/newParameterized');
|
|
3
3
|
|
|
4
|
-
function newWhereSql(table,filter,alias) {
|
|
4
|
+
function newWhereSql(context, table, filter, alias) {
|
|
5
5
|
var separator = ' where';
|
|
6
6
|
var result = newParameterized('');
|
|
7
7
|
var sql = filter.sql();
|
|
8
|
-
var discriminator = newDiscriminatorSql(table, alias);
|
|
8
|
+
var discriminator = newDiscriminatorSql(context, table, alias);
|
|
9
9
|
if (sql) {
|
|
10
10
|
result = filter.prepend(separator + ' ');
|
|
11
11
|
separator = ' AND';
|
|
12
12
|
}
|
|
13
|
-
if(discriminator)
|
|
13
|
+
if (discriminator)
|
|
14
14
|
result = result.append(separator + discriminator);
|
|
15
15
|
|
|
16
16
|
return result;
|
package/src/table/quote.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
let tryGetSessionContext = require('./tryGetSessionContext');
|
|
2
2
|
|
|
3
|
-
function quote(name) {
|
|
4
|
-
let
|
|
5
|
-
if (!
|
|
3
|
+
function quote(context, name) {
|
|
4
|
+
let rdb = tryGetSessionContext(context);
|
|
5
|
+
if (!rdb)
|
|
6
6
|
throw new Error('Rdb transaction is no longer available. Is promise chain broken ?');
|
|
7
|
-
let fn =
|
|
7
|
+
let fn = rdb.quote || (() => `"${name}"`);
|
|
8
8
|
return fn(name);
|
|
9
9
|
}
|
|
10
10
|
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
let newRelatedTable = _newRelatedTable;
|
|
2
1
|
let tryGetSessionContext = require('../tryGetSessionContext');
|
|
3
2
|
|
|
4
3
|
function newAggregate(_relations) {
|
|
5
4
|
|
|
6
|
-
function aggregate(fn) {
|
|
7
|
-
const includeMany = tryGetSessionContext()?.engine === 'mssql';
|
|
5
|
+
function aggregate(context, fn) {
|
|
6
|
+
const includeMany = tryGetSessionContext(context)?.engine === 'mssql';
|
|
8
7
|
let { relations, alias } = extract(includeMany, _relations);
|
|
9
8
|
const table = relations[relations.length - 1].childTable;
|
|
10
9
|
if (!relations[0].isMany || includeMany)
|
|
@@ -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,24 +1,18 @@
|
|
|
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
|
-
function all(fn) {
|
|
7
|
+
function all(context, fn) {
|
|
9
8
|
let relatedTable = newRelatedTable(relations, isShallow, depth + 1);
|
|
10
9
|
let arg = typeof fn === 'function' ? fn(relatedTable) : fn;
|
|
11
|
-
let anyFilter = negotiateRawSqlFilter(arg);
|
|
12
|
-
let anySubFilter = subFilter(relations, anyFilter, depth);
|
|
13
|
-
let notFilter = subFilter(relations, anyFilter.not(), depth).not();
|
|
14
|
-
return anySubFilter.and(notFilter);
|
|
10
|
+
let anyFilter = negotiateRawSqlFilter(context, arg);
|
|
11
|
+
let anySubFilter = subFilter(context, relations, anyFilter, depth);
|
|
12
|
+
let notFilter = subFilter(context, relations, anyFilter.not(), depth).not();
|
|
13
|
+
return anySubFilter.and(context, notFilter);
|
|
15
14
|
}
|
|
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,26 +1,19 @@
|
|
|
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
|
-
function any(fn) {
|
|
7
|
+
function any(context, fn) {
|
|
10
8
|
let relatedTable = newRelatedTable(relations, isShallow, depth + 1);
|
|
11
9
|
let arg = typeof fn === 'function' ? fn(relatedTable) : fn;
|
|
12
|
-
let filter = negotiateRawSqlFilter(arg);
|
|
13
|
-
let sub = subFilter(relations, filter, depth);
|
|
10
|
+
let filter = negotiateRawSqlFilter(context, arg);
|
|
11
|
+
let sub = subFilter(context, relations, filter, depth);
|
|
14
12
|
return sub;
|
|
15
13
|
}
|
|
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
|
//
|
|
@@ -5,16 +5,16 @@ const getSessionSingleton = require('../getSessionSingleton');
|
|
|
5
5
|
const _quote = require('../quote');
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
function childColumn(column, relations) {
|
|
9
|
-
const quote = getSessionSingleton('quote');
|
|
10
|
-
const
|
|
11
|
-
const outerAlias = 'y' +
|
|
8
|
+
function childColumn(context, column, relations) {
|
|
9
|
+
const quote = getSessionSingleton(context, 'quote');
|
|
10
|
+
const rdb = getSessionContext(context);
|
|
11
|
+
const outerAlias = 'y' + rdb.aggregateCount++;
|
|
12
12
|
const outerAliasQuoted = quote(outerAlias);
|
|
13
13
|
const alias = 'x' + relations.length;
|
|
14
|
-
const foreignKeys = getForeignKeys(relations[0]);
|
|
14
|
+
const foreignKeys = getForeignKeys(context, relations[0]);
|
|
15
15
|
const select = ` LEFT JOIN (SELECT ${foreignKeys},${alias}.${quote(column._dbName)} as prop`;
|
|
16
|
-
const innerJoin = relations.length > 1 ? newJoin(relations).sql() : '';
|
|
17
|
-
const onClause = createOnClause(relations[0], outerAlias);
|
|
16
|
+
const innerJoin = relations.length > 1 ? newJoin(context, relations).sql() : '';
|
|
17
|
+
const onClause = createOnClause(context, relations[0], outerAlias);
|
|
18
18
|
const from = ` FROM ${quote(relations.at(-1).childTable._dbName)} ${alias} ${innerJoin}) ${outerAliasQuoted} ON (${onClause})`;
|
|
19
19
|
const join = select + from ;
|
|
20
20
|
|
|
@@ -26,13 +26,13 @@ function childColumn(column, relations) {
|
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
function createOnClause(relation, rightAlias) {
|
|
29
|
+
function createOnClause(context, relation, rightAlias) {
|
|
30
30
|
var c = {};
|
|
31
31
|
var sql = '';
|
|
32
32
|
let leftAlias = relation.parentTable._rootAlias || relation.parentTable._dbName;
|
|
33
33
|
|
|
34
34
|
c.visitJoin = function(relation) {
|
|
35
|
-
sql = newJoinCore(relation.childTable,relation.columns,relation.childTable._primaryColumns,leftAlias,rightAlias).sql();
|
|
35
|
+
sql = newJoinCore(context, relation.childTable,relation.columns,relation.childTable._primaryColumns,leftAlias,rightAlias).sql();
|
|
36
36
|
};
|
|
37
37
|
|
|
38
38
|
c.visitOne = function(relation) {
|
|
@@ -47,20 +47,20 @@ function createOnClause(relation, rightAlias) {
|
|
|
47
47
|
var parentTable = relation.parentTable;
|
|
48
48
|
var columns = joinRelation.columns;
|
|
49
49
|
|
|
50
|
-
sql = newJoinCore(childTable,parentTable._primaryColumns,columns,leftAlias, rightAlias).sql();
|
|
50
|
+
sql = newJoinCore(context, childTable,parentTable._primaryColumns,columns,leftAlias, rightAlias).sql();
|
|
51
51
|
}
|
|
52
52
|
relation.accept(c);
|
|
53
53
|
return sql;
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
function getForeignKeys(relation) {
|
|
56
|
+
function getForeignKeys(context, relation) {
|
|
57
57
|
let columns;
|
|
58
58
|
let alias = 'x1';
|
|
59
59
|
if (relation.joinRelation)
|
|
60
60
|
columns = relation.joinRelation.columns;
|
|
61
61
|
else
|
|
62
62
|
columns = relation.childTable._primaryColumns;
|
|
63
|
-
return columns.map(x => `${alias}.${_quote(x._dbName)}`).join(',');
|
|
63
|
+
return columns.map(x => `${alias}.${_quote(context, x._dbName)}`).join(',');
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
module.exports = childColumn;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
const getSessionSingleton = require('../getSessionSingleton');
|
|
2
2
|
var newJoinArray = require('./joinSqlArray');
|
|
3
3
|
|
|
4
|
-
function columnAggregate(operator, column, relations, coalesce = true) {
|
|
5
|
-
const quote = getSessionSingleton('quote');
|
|
4
|
+
function columnAggregate(context, operator, column, relations, coalesce = true) {
|
|
5
|
+
const quote = getSessionSingleton(context, 'quote');
|
|
6
6
|
|
|
7
7
|
let tableAlias = relations.reduce((prev,relation) => {
|
|
8
8
|
return prev + relation.toLeg().name;
|
|
@@ -13,7 +13,7 @@ function columnAggregate(operator, column, relations, coalesce = true) {
|
|
|
13
13
|
return {
|
|
14
14
|
expression: (alias) => coalesce ? `COALESCE(${operator}(${tableAlias}.${columnName}), 0) as ${quote(alias)}` : `${operator}(${tableAlias}.${columnName}) as ${alias}`,
|
|
15
15
|
|
|
16
|
-
joins: newJoinArray(relations)
|
|
16
|
+
joins: newJoinArray(context, relations)
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
19
|
|
|
@@ -3,21 +3,21 @@ var getSessionContext = require('../getSessionContext');
|
|
|
3
3
|
var newJoinCore = require('../query/singleQuery/joinSql/newShallowJoinSqlCore');
|
|
4
4
|
const getSessionSingleton = require('../getSessionSingleton');
|
|
5
5
|
|
|
6
|
-
function columnAggregate(operator, column, relations, coalesce = true) {
|
|
7
|
-
const quote = getSessionSingleton('quote');
|
|
8
|
-
const
|
|
9
|
-
const outerAlias = 'y' +
|
|
6
|
+
function columnAggregate(context, operator, column, relations, coalesce = true) {
|
|
7
|
+
const quote = getSessionSingleton(context, 'quote');
|
|
8
|
+
const rdb = getSessionContext(context);
|
|
9
|
+
const outerAlias = 'y' + rdb.aggregateCount++;
|
|
10
10
|
const outerAliasQuoted = quote(outerAlias);
|
|
11
11
|
const alias = quote('x' + relations.length);
|
|
12
12
|
const foreignKeys = getForeignKeys(relations[0]);
|
|
13
13
|
const select = ` LEFT JOIN (SELECT ${foreignKeys},${operator}(${alias}.${quote(column._dbName)}) as amount`;
|
|
14
|
-
const innerJoin = relations.length > 1 ? newJoin(relations).sql() : '';
|
|
15
|
-
const onClause = createOnClause(relations[0], outerAlias);
|
|
14
|
+
const innerJoin = relations.length > 1 ? newJoin(context, relations).sql() : '';
|
|
15
|
+
const onClause = createOnClause(context, relations[0], outerAlias);
|
|
16
16
|
const from = ` FROM ${quote(relations.at(-1).childTable._dbName)} ${alias} ${innerJoin} GROUP BY ${foreignKeys}) ${outerAliasQuoted} ON (${onClause})`;
|
|
17
|
-
const join = select
|
|
17
|
+
const join = select + from;
|
|
18
18
|
|
|
19
19
|
return {
|
|
20
|
-
expression: (alias) => coalesce? `COALESCE(${outerAliasQuoted}.amount, 0) as ${quote(alias)}` : `${outerAliasQuoted}.amount as ${alias}`,
|
|
20
|
+
expression: (alias) => coalesce ? `COALESCE(${outerAliasQuoted}.amount, 0) as ${quote(alias)}` : `${outerAliasQuoted}.amount as ${alias}`,
|
|
21
21
|
joins: [join]
|
|
22
22
|
};
|
|
23
23
|
|
|
@@ -32,13 +32,13 @@ function columnAggregate(operator, column, relations, coalesce = true) {
|
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
function createOnClause(relation, rightAlias) {
|
|
35
|
+
function createOnClause(context, relation, rightAlias) {
|
|
36
36
|
var c = {};
|
|
37
37
|
var sql = '';
|
|
38
38
|
let leftAlias = relation.parentTable._rootAlias || relation.parentTable._dbName;
|
|
39
39
|
|
|
40
40
|
c.visitJoin = function(relation) {
|
|
41
|
-
sql = newJoinCore(relation.childTable,relation.columns,relation.childTable._primaryColumns,leftAlias,rightAlias).sql();
|
|
41
|
+
sql = newJoinCore(context, relation.childTable, relation.columns, relation.childTable._primaryColumns, leftAlias, rightAlias).sql();
|
|
42
42
|
};
|
|
43
43
|
|
|
44
44
|
c.visitOne = function(relation) {
|
|
@@ -53,7 +53,7 @@ function createOnClause(relation, rightAlias) {
|
|
|
53
53
|
var parentTable = relation.parentTable;
|
|
54
54
|
var columns = joinRelation.columns;
|
|
55
55
|
|
|
56
|
-
sql = newJoinCore(childTable,parentTable._primaryColumns,columns,leftAlias, rightAlias).sql();
|
|
56
|
+
sql = newJoinCore(context, childTable, parentTable._primaryColumns, columns, leftAlias, rightAlias).sql();
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
relation.accept(c);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var newShallowJoinSql = require('../query/singleQuery/joinSql/newShallowJoinSql');
|
|
2
2
|
var newParameterized = require('../query/newParameterized');
|
|
3
3
|
|
|
4
|
-
function newJoinSql(relations, depth = 0) {
|
|
4
|
+
function newJoinSql(context, relations, depth = 0) {
|
|
5
5
|
var leftAlias,
|
|
6
6
|
rightAlias;
|
|
7
7
|
var relation;
|
|
@@ -10,7 +10,7 @@ function newJoinSql(relations, depth = 0) {
|
|
|
10
10
|
|
|
11
11
|
c.visitJoin = function(relation) {
|
|
12
12
|
//todo fix discriminators on childTable
|
|
13
|
-
sql = newShallowJoinSql(relation.parentTable,relation.childTable._primaryColumns,relation.columns,leftAlias,rightAlias).prepend(' INNER').prepend(sql);
|
|
13
|
+
sql = newShallowJoinSql(context, relation.parentTable, relation.childTable._primaryColumns, relation.columns, leftAlias, rightAlias).prepend(' INNER').prepend(sql);
|
|
14
14
|
};
|
|
15
15
|
|
|
16
16
|
c.visitOne = function(relation) {
|
|
@@ -25,11 +25,11 @@ function newJoinSql(relations, depth = 0) {
|
|
|
25
25
|
var rightColumns = table._primaryColumns;
|
|
26
26
|
var leftColumns = joinRelation.columns;
|
|
27
27
|
|
|
28
|
-
sql = newShallowJoinSql(table,leftColumns,rightColumns,leftAlias,rightAlias).prepend(' INNER').prepend(sql);
|
|
28
|
+
sql = newShallowJoinSql(context, table, leftColumns, rightColumns, leftAlias, rightAlias).prepend(' INNER').prepend(sql);
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
for (let i = relations.length-1; i > depth; i--) {
|
|
32
|
-
leftAlias = 'x' + (i+1);
|
|
31
|
+
for (let i = relations.length - 1; i > depth; i--) {
|
|
32
|
+
leftAlias = 'x' + (i + 1);
|
|
33
33
|
rightAlias = 'x' + i;
|
|
34
34
|
relation = relations[i];
|
|
35
35
|
relation.accept(c);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const newShallowJoinSql = require('../query/singleQuery/joinSql/newShallowJoinSql');
|
|
2
2
|
|
|
3
|
-
function _new(relations) {
|
|
3
|
+
function _new(context, relations) {
|
|
4
4
|
|
|
5
5
|
let result = [];
|
|
6
6
|
let leftAlias = relations[0].parentTable._dbName;
|
|
@@ -10,11 +10,11 @@ function _new(relations) {
|
|
|
10
10
|
|
|
11
11
|
let c = {};
|
|
12
12
|
c.visitJoin = function(relation) {
|
|
13
|
-
sql = newShallowJoinSql(relation.childTable,relation.columns,relation.childTable._primaryColumns,leftAlias,rightAlias).prepend(' LEFT').sql();
|
|
13
|
+
sql = newShallowJoinSql(context, relation.childTable,relation.columns,relation.childTable._primaryColumns,leftAlias,rightAlias).prepend(' LEFT').sql();
|
|
14
14
|
};
|
|
15
15
|
|
|
16
16
|
c.visitOne = function(relation) {
|
|
17
|
-
sql = newShallowJoinSql(relation.childTable,relation.parentTable._primaryColumns,relation.joinRelation.columns,leftAlias,rightAlias).prepend(' LEFT').sql();
|
|
17
|
+
sql = newShallowJoinSql(context, relation.childTable,relation.parentTable._primaryColumns,relation.joinRelation.columns,leftAlias,rightAlias).prepend(' LEFT').sql();
|
|
18
18
|
};
|
|
19
19
|
|
|
20
20
|
c.visitMany = c.visitOne;
|
|
@@ -1,22 +1,16 @@
|
|
|
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
|
-
function none(fn) {
|
|
7
|
+
function none(context, fn) {
|
|
9
8
|
let relatedTable = newRelatedTable(relations, isShallow, depth + 1);
|
|
10
9
|
let arg = typeof fn === 'function' ? fn(relatedTable) : fn;
|
|
11
|
-
let filter = negotiateRawSqlFilter(arg);
|
|
12
|
-
return subFilter(relations, filter, depth).not();
|
|
10
|
+
let filter = negotiateRawSqlFilter(context, arg);
|
|
11
|
+
return subFilter(context, relations, filter, depth).not();
|
|
13
12
|
}
|
|
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;
|