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
|
@@ -4,13 +4,13 @@ var extractLimit = require('../query/extractLimit');
|
|
|
4
4
|
var newParameterized = require('../query/newParameterized');
|
|
5
5
|
var extractOffset = require('../query/extractOffset');
|
|
6
6
|
|
|
7
|
-
function newQuery(table,filter,span,alias) {
|
|
7
|
+
function newQuery(context, table,filter,span,alias) {
|
|
8
8
|
filter = extractFilter(filter);
|
|
9
9
|
var orderBy = '';
|
|
10
|
-
var limit = extractLimit(span);
|
|
11
|
-
var offset = extractOffset(span);
|
|
10
|
+
var limit = extractLimit(context, span);
|
|
11
|
+
var offset = extractOffset(context, span);
|
|
12
12
|
|
|
13
|
-
var query = newSingleQuery(table,filter,span,alias,orderBy,limit,offset);
|
|
13
|
+
var query = newSingleQuery(context, table,filter,span,alias,orderBy,limit,offset);
|
|
14
14
|
const groupClause = groupBy(span);
|
|
15
15
|
return newParameterized(query.sql(), query.parameters).append(groupClause);
|
|
16
16
|
}
|
package/src/table/groupBy.js
CHANGED
|
@@ -3,11 +3,11 @@ const negotiateRawSqlFilter = require('./column/negotiateRawSqlFilter');
|
|
|
3
3
|
const strategyToSpan = require('./strategyToSpan');
|
|
4
4
|
const executeQueries = require('./executeQueries');
|
|
5
5
|
|
|
6
|
-
async function groupBy(table, filter, strategy) {
|
|
7
|
-
filter = negotiateRawSqlFilter(filter, table);
|
|
6
|
+
async function groupBy(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
12
|
|
|
13
13
|
let span = strategyToSpan(table, strategy);
|
|
@@ -15,9 +15,9 @@ async function groupBy(table, filter, strategy) {
|
|
|
15
15
|
|
|
16
16
|
let alias = table._dbName;
|
|
17
17
|
|
|
18
|
-
const query = newQuery(table, filter, span, alias);
|
|
19
|
-
const res = await executeQueries([query]);
|
|
20
|
-
return decode(span, await res[0]);
|
|
18
|
+
const query = newQuery(context, table, filter, span, alias);
|
|
19
|
+
const res = await executeQueries(context, [query]);
|
|
20
|
+
return decode(context, span, await res[0]);
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
function newCreateRow(span) {
|
|
@@ -40,7 +40,7 @@ function createProto(span) {
|
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
|
|
43
|
-
async function decode(span, rows, keys = rows.length > 0 ? Object.keys(rows[0]) : []) {
|
|
43
|
+
async function decode(context, span, rows, keys = rows.length > 0 ? Object.keys(rows[0]) : []) {
|
|
44
44
|
const rowsLength = rows.length;
|
|
45
45
|
const aggregateKeys = Object.keys(span.aggregates);
|
|
46
46
|
|
|
@@ -52,8 +52,8 @@ async function decode(span, rows, keys = rows.length > 0 ? Object.keys(rows[0])
|
|
|
52
52
|
|
|
53
53
|
for (let j = 0; j < aggregateKeys.length; j++) {
|
|
54
54
|
const key = aggregateKeys[j];
|
|
55
|
-
const parse = span.aggregates[key].column?.decode || Number.parseFloat;
|
|
56
|
-
outRow[key] = parse(row[keys[j]]);
|
|
55
|
+
const parse = span.aggregates[key].column?.decode || ((_context, arg) => Number.parseFloat(arg));
|
|
56
|
+
outRow[key] = parse(context, row[keys[j]]);
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
outRows[i] = outRow;
|
package/src/table/insert.js
CHANGED
|
@@ -1,21 +1,18 @@
|
|
|
1
1
|
let getSessionContext = require('./getSessionContext');
|
|
2
2
|
let newRow = require('./commands/newRow');
|
|
3
|
-
let insertDefault = require('./insertDefault');
|
|
4
3
|
|
|
5
|
-
function insert({ table, options }, arg) {
|
|
6
|
-
// return insertDefault.apply(null, arguments);
|
|
4
|
+
function insert(context, { table, options }, arg) {
|
|
7
5
|
if (Array.isArray(arg)) {
|
|
8
6
|
let all = [];
|
|
9
7
|
for (let i = 0; i < arg.length; i++) {
|
|
10
|
-
all.push(insert(table, arg[i]));
|
|
8
|
+
all.push(insert(context, table, arg[i]));
|
|
11
9
|
}
|
|
12
10
|
return Promise.all(all);
|
|
13
11
|
}
|
|
14
|
-
let
|
|
15
|
-
let row = newRow.apply(null, args);
|
|
12
|
+
let row = newRow.apply(null, [...arguments]);
|
|
16
13
|
let hasPrimary = getHasPrimary(table, row);
|
|
17
14
|
if (hasPrimary) {
|
|
18
|
-
row = table._cache.tryAdd(row);
|
|
15
|
+
row = table._cache.tryAdd(context, row);
|
|
19
16
|
}
|
|
20
17
|
expand(table, row);
|
|
21
18
|
Object.defineProperty(row, 'then', {
|
|
@@ -24,8 +21,8 @@ function insert({ table, options }, arg) {
|
|
|
24
21
|
enumerable: false,
|
|
25
22
|
configurable: true
|
|
26
23
|
});
|
|
27
|
-
const
|
|
28
|
-
const insertP = (context
|
|
24
|
+
const rdb = getSessionContext(context);
|
|
25
|
+
const insertP = rdb.insert(context, table, row, options).then(onResult);
|
|
29
26
|
|
|
30
27
|
|
|
31
28
|
// }
|
|
@@ -51,10 +48,10 @@ function insert({ table, options }, arg) {
|
|
|
51
48
|
return row;
|
|
52
49
|
|
|
53
50
|
function onResult([result]) {
|
|
54
|
-
row.hydrate(result);
|
|
55
|
-
if (!hasPrimary)
|
|
56
|
-
|
|
57
|
-
table._cache.tryAdd(row);
|
|
51
|
+
row.hydrate(context, result);
|
|
52
|
+
// if (!hasPrimary)
|
|
53
|
+
// row = table._cache.tryAdd(context, row);
|
|
54
|
+
row = table._cache.tryAdd(context, row);
|
|
58
55
|
return row;
|
|
59
56
|
}
|
|
60
57
|
}
|
|
@@ -2,7 +2,7 @@ var newPrimaryKeyFilter = require('../newPrimaryKeyFilter');
|
|
|
2
2
|
var emptyFilter = require('../../emptyFilter');
|
|
3
3
|
var negotiateExpandInverse = require('../negotiateExpandInverse');
|
|
4
4
|
|
|
5
|
-
function getRelatives(parent, relation) {
|
|
5
|
+
function getRelatives(context, parent, relation) {
|
|
6
6
|
var queryContext = parent.queryContext;
|
|
7
7
|
let strategy = queryContext && queryContext.strategy[relation.leftAlias];
|
|
8
8
|
var filter = emptyFilter;
|
|
@@ -24,15 +24,15 @@ function getRelatives(parent, relation) {
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
if (ids.length > 0)
|
|
27
|
-
filter = relation.childTable._primaryColumns[0].in(ids);
|
|
27
|
+
filter = relation.childTable._primaryColumns[0].in(context, ids);
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
function createCompositeFilter() {
|
|
31
31
|
var keyFilter;
|
|
32
32
|
for (var i = 0; i < queryContext.rows.length; i++) {
|
|
33
|
-
keyFilter = rowToPrimaryKeyFilter(queryContext.rows[i], relation);
|
|
33
|
+
keyFilter = rowToPrimaryKeyFilter(context, queryContext.rows[i], relation);
|
|
34
34
|
if (keyFilter)
|
|
35
|
-
filter = filter.or(keyFilter);
|
|
35
|
+
filter = filter.or(context, keyFilter);
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
|
|
@@ -46,14 +46,14 @@ function getRelatives(parent, relation) {
|
|
|
46
46
|
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
function rowToPrimaryKeyFilter(row, relation) {
|
|
49
|
+
function rowToPrimaryKeyFilter(context, row, relation) {
|
|
50
50
|
var key = relation.columns.map( function(column) {
|
|
51
51
|
return row[column.alias];
|
|
52
52
|
});
|
|
53
53
|
if (key.some(isNullOrUndefined)) {
|
|
54
54
|
return;
|
|
55
55
|
}
|
|
56
|
-
var args = [relation.childTable].concat(key);
|
|
56
|
+
var args = [context, relation.childTable].concat(key);
|
|
57
57
|
return newPrimaryKeyFilter.apply(null, args);
|
|
58
58
|
}
|
|
59
59
|
|
|
@@ -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,10 +1,10 @@
|
|
|
1
|
-
function newGetRelated(parent, relation) {
|
|
1
|
+
function newGetRelated(context, parent, relation) {
|
|
2
2
|
function getRelated() {
|
|
3
3
|
if (getRelated.expanded)
|
|
4
4
|
return relation.getFromCache(parent);
|
|
5
5
|
if (parent.queryContext)
|
|
6
|
-
return relation.getRelatives(parent).then(onRelatives);
|
|
7
|
-
return relation.getFromDb(parent).then(onFromDb);
|
|
6
|
+
return relation.getRelatives(context, parent).then(onRelatives);
|
|
7
|
+
return relation.getFromDb(context, parent).then(onFromDb);
|
|
8
8
|
|
|
9
9
|
function onFromDb(rows) {
|
|
10
10
|
getRelated.expanded = true;
|
|
@@ -23,17 +23,17 @@ function newManyRelation(joinRelation) {
|
|
|
23
23
|
return fuzzyPromise(result);
|
|
24
24
|
};
|
|
25
25
|
|
|
26
|
-
c.getFromDb = function(parent) {
|
|
27
|
-
var filter = newForeignKeyFilter(joinRelation, parent);
|
|
28
|
-
return c.childTable.getMany(filter, null);
|
|
26
|
+
c.getFromDb = function(context, parent) {
|
|
27
|
+
var filter = newForeignKeyFilter(context, joinRelation, parent);
|
|
28
|
+
return c.childTable.getMany(context, filter, null);
|
|
29
29
|
};
|
|
30
30
|
|
|
31
|
-
c.getRelatives = function(parent) {
|
|
32
|
-
return getRelatives(parent, c);
|
|
31
|
+
c.getRelatives = function(context, parent) {
|
|
32
|
+
return getRelatives(context, parent, c);
|
|
33
33
|
};
|
|
34
34
|
|
|
35
|
-
c.toGetRelated = function(parent) {
|
|
36
|
-
return newGetRelated(parent, c);
|
|
35
|
+
c.toGetRelated = function(context, parent) {
|
|
36
|
+
return newGetRelated(context, parent, c);
|
|
37
37
|
};
|
|
38
38
|
|
|
39
39
|
c.expand = function(parent) {
|
|
@@ -51,8 +51,8 @@ function newManyRelation(joinRelation) {
|
|
|
51
51
|
return newLeg(c);
|
|
52
52
|
};
|
|
53
53
|
|
|
54
|
-
c.getInnerCache = function() {
|
|
55
|
-
return manyCache.getInnerCache();
|
|
54
|
+
c.getInnerCache = function(context) {
|
|
55
|
+
return manyCache.getInnerCache(context);
|
|
56
56
|
};
|
|
57
57
|
|
|
58
58
|
return c;
|
|
@@ -23,17 +23,17 @@ function newOneRelation(joinRelation) {
|
|
|
23
23
|
return fuzzyPromise(row);
|
|
24
24
|
};
|
|
25
25
|
|
|
26
|
-
c.getFromDb = function(parent) {
|
|
27
|
-
var filter = newForeignKeyFilter(joinRelation, parent);
|
|
28
|
-
return c.childTable.tryGetFirst(filter, null);
|
|
26
|
+
c.getFromDb = function(context, parent) {
|
|
27
|
+
var filter = newForeignKeyFilter(context, joinRelation, parent);
|
|
28
|
+
return c.childTable.tryGetFirst(context, filter, null);
|
|
29
29
|
};
|
|
30
30
|
|
|
31
|
-
c.getRelatives = function(parent) {
|
|
32
|
-
return getRelatives(parent, c);
|
|
31
|
+
c.getRelatives = function(context, parent) {
|
|
32
|
+
return getRelatives(context, parent, c);
|
|
33
33
|
};
|
|
34
34
|
|
|
35
|
-
c.toGetRelated = function(parent) {
|
|
36
|
-
return newGetRelated(parent, c);
|
|
35
|
+
c.toGetRelated = function(context, parent) {
|
|
36
|
+
return newGetRelated(context, parent, c);
|
|
37
37
|
};
|
|
38
38
|
|
|
39
39
|
c.expand = function(parent) {
|
|
@@ -51,8 +51,8 @@ function newOneRelation(joinRelation) {
|
|
|
51
51
|
return newLeg(c);
|
|
52
52
|
};
|
|
53
53
|
|
|
54
|
-
c.getInnerCache = function() {
|
|
55
|
-
return oneCache.getInnerCache();
|
|
54
|
+
c.getInnerCache = function(context) {
|
|
55
|
+
return oneCache.getInnerCache(context);
|
|
56
56
|
};
|
|
57
57
|
|
|
58
58
|
return c;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
function primaryKeyFilter(table) {
|
|
1
|
+
function primaryKeyFilter(context, table) {
|
|
2
2
|
var primaryColumns = table._primaryColumns;
|
|
3
|
-
var key = arguments[
|
|
4
|
-
var filter = primaryColumns[0].equal(key);
|
|
5
|
-
for (var i =
|
|
3
|
+
var key = arguments[2];
|
|
4
|
+
var filter = primaryColumns[0].equal(context, key);
|
|
5
|
+
for (var i = 2; i < primaryColumns.length; i++) {
|
|
6
6
|
key = arguments[i+1];
|
|
7
|
-
var colFilter = primaryColumns[i].equal(key);
|
|
8
|
-
filter = filter.and(colFilter);
|
|
7
|
+
var colFilter = primaryColumns[i].equal(context, key);
|
|
8
|
+
filter = filter.and(context, colFilter);
|
|
9
9
|
}
|
|
10
10
|
return filter;
|
|
11
11
|
}
|
package/src/table/newQuery.js
CHANGED
|
@@ -4,12 +4,12 @@ var extractOrderBy = require('./query/extractOrderBy');
|
|
|
4
4
|
var extractLimit = require('./query/extractLimit');
|
|
5
5
|
var extractOffset = require('./query/extractOffset');
|
|
6
6
|
|
|
7
|
-
function newQuery(queries,table,filter,span,alias,innerJoin,orderBy,exclusive) {
|
|
7
|
+
function newQuery(context, queries,table,filter,span,alias,innerJoin,orderBy,exclusive) {
|
|
8
8
|
filter = extractFilter(filter);
|
|
9
|
-
orderBy = extractOrderBy(table,alias,span.orderBy,orderBy);
|
|
10
|
-
var limit = extractLimit(span);
|
|
11
|
-
var offset = extractOffset(span);
|
|
12
|
-
var singleQuery = newSingleQuery(table,filter,span,alias,innerJoin,orderBy,limit,offset,exclusive);
|
|
9
|
+
orderBy = extractOrderBy(context, table,alias,span.orderBy,orderBy);
|
|
10
|
+
var limit = extractLimit(context, span);
|
|
11
|
+
var offset = extractOffset(context, span);
|
|
12
|
+
var singleQuery = newSingleQuery(context, table,filter,span,alias,innerJoin,orderBy,limit,offset,exclusive);
|
|
13
13
|
queries.push(singleQuery);
|
|
14
14
|
|
|
15
15
|
return queries;
|
|
@@ -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,17 +57,17 @@ 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
|
}
|
|
65
64
|
|
|
66
65
|
|
|
67
66
|
// @ts-ignore
|
|
68
|
-
c.exists = function() {
|
|
67
|
+
c.exists = function(context) {
|
|
69
68
|
if (isShallow)
|
|
70
69
|
return '';
|
|
71
|
-
return subFilter(relations, false, depth);
|
|
70
|
+
return subFilter(context, relations, false, depth);
|
|
72
71
|
};
|
|
73
72
|
|
|
74
73
|
let cProxy = new Proxy(c, {
|
|
@@ -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;
|
package/src/table/newRowCache.js
CHANGED
|
@@ -6,43 +6,43 @@ function newRowCache(table) {
|
|
|
6
6
|
let id = Symbol();
|
|
7
7
|
let c = {};
|
|
8
8
|
|
|
9
|
-
c.tryGet = function(row) {
|
|
10
|
-
return getCache(table, id).tryGet(row);
|
|
9
|
+
c.tryGet = function(context, row) {
|
|
10
|
+
return getCache(context, table, id).tryGet(row);
|
|
11
11
|
};
|
|
12
12
|
|
|
13
|
-
c.tryAdd = function(row) {
|
|
14
|
-
return getCache(table, id).tryAdd(row);
|
|
13
|
+
c.tryAdd = function(context, row) {
|
|
14
|
+
return getCache(context, table, id).tryAdd(row);
|
|
15
15
|
};
|
|
16
16
|
|
|
17
|
-
c.tryRemove = function(row) {
|
|
18
|
-
return getCache(table, id).tryRemove(row);
|
|
17
|
+
c.tryRemove = function(context, row) {
|
|
18
|
+
return getCache(context, table, id).tryRemove(row);
|
|
19
19
|
};
|
|
20
20
|
|
|
21
|
-
c.subscribeAdded = function() {
|
|
22
|
-
return getCache(table, id).subscribeAdded.apply(null,
|
|
21
|
+
c.subscribeAdded = function(context, ...rest) {
|
|
22
|
+
return getCache(context, table, id).subscribeAdded.apply(null, rest);
|
|
23
23
|
};
|
|
24
24
|
|
|
25
|
-
c.subscribeRemoved = function() {
|
|
26
|
-
return getCache(table, id).subscribeRemoved.apply(null,
|
|
25
|
+
c.subscribeRemoved = function(context, ...rest) {
|
|
26
|
+
return getCache(context, table, id).subscribeRemoved.apply(null, rest);
|
|
27
27
|
};
|
|
28
28
|
|
|
29
|
-
c.getAll = function() {
|
|
30
|
-
return getCache(table, id).getAll.apply(null, arguments);
|
|
29
|
+
c.getAll = function(context) {
|
|
30
|
+
return getCache(context, table, id).getAll.apply(null, arguments);
|
|
31
31
|
};
|
|
32
32
|
|
|
33
|
-
c.getInnerCache = function() {
|
|
34
|
-
return getCache(table, id);
|
|
33
|
+
c.getInnerCache = function(context) {
|
|
34
|
+
return getCache(context, table, id);
|
|
35
35
|
};
|
|
36
36
|
return c;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
|
|
40
|
-
function getCache(table, id) {
|
|
41
|
-
let cache = getSessionSingleton(id);
|
|
40
|
+
function getCache(context, table, id) {
|
|
41
|
+
let cache = getSessionSingleton(context, id);
|
|
42
42
|
if (cache)
|
|
43
43
|
return cache;
|
|
44
44
|
cache = _newRowCache(table);
|
|
45
|
-
setSessionSingleton(id, cache);
|
|
45
|
+
setSessionSingleton(context, id, cache);
|
|
46
46
|
return cache;
|
|
47
47
|
}
|
|
48
48
|
|
package/src/table/newThrow.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
var tryReleaseDbClient = require('./tryReleaseDbClient');
|
|
2
2
|
|
|
3
|
-
function newThrow(e, previousPromise) {
|
|
3
|
+
function newThrow(context, e, previousPromise) {
|
|
4
4
|
return previousPromise.then(throwError, throwError);
|
|
5
5
|
function throwError() {
|
|
6
|
-
tryReleaseDbClient();
|
|
6
|
+
tryReleaseDbClient(context);
|
|
7
7
|
throw e;
|
|
8
8
|
}
|
|
9
9
|
}
|
|
@@ -2,7 +2,7 @@ let emptyFilter = require('../../emptyFilter');
|
|
|
2
2
|
let newForeignKeyFilter = require('../relation/newForeignKeyFilter');
|
|
3
3
|
let negotiateExpandInverse = require('../negotiateExpandInverse');
|
|
4
4
|
|
|
5
|
-
function getRelatives(parent, relation) {
|
|
5
|
+
function getRelatives(context, parent, relation) {
|
|
6
6
|
let queryContext = parent.queryContext;
|
|
7
7
|
let strategy = queryContext && queryContext.strategy[relation.joinRelation.rightAlias];
|
|
8
8
|
|
|
@@ -22,17 +22,17 @@ function getRelatives(parent, relation) {
|
|
|
22
22
|
return row[parentAlias];
|
|
23
23
|
});
|
|
24
24
|
let column = relation.joinRelation.columns[0];
|
|
25
|
-
return column.in(ids);
|
|
25
|
+
return column.in(context, ids);
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
function createCompositeFilter() {
|
|
29
29
|
let filters = queryContext.rows.map(function(row) {
|
|
30
|
-
return newForeignKeyFilter(relation.joinRelation, row);
|
|
30
|
+
return newForeignKeyFilter(context, relation.joinRelation, row);
|
|
31
31
|
});
|
|
32
|
-
return emptyFilter.or.apply(emptyFilter, filters);
|
|
32
|
+
return emptyFilter.or.apply(emptyFilter, [context, ...filters]);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
return relation.childTable.getMany(filter, strategy).then(onRows);
|
|
35
|
+
return relation.childTable.getMany(context, filter, strategy).then(onRows);
|
|
36
36
|
|
|
37
37
|
function onRows(rows) {
|
|
38
38
|
queryContext.expand(relation);
|
package/src/table/popChanges.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
var getChangeSet = require('./commands/getChangeSet');
|
|
2
2
|
var compressChanges = require('./commands/compressChanges');
|
|
3
3
|
|
|
4
|
-
function popChanges() {
|
|
5
|
-
var changeSet = getChangeSet();
|
|
4
|
+
function popChanges(context) {
|
|
5
|
+
var changeSet = getChangeSet(context);
|
|
6
6
|
var length = changeSet.length;
|
|
7
7
|
if (length > 0) {
|
|
8
8
|
var lastCmd = changeSet[length-1];
|
|
9
9
|
if (lastCmd.endEdit)
|
|
10
10
|
lastCmd.endEdit();
|
|
11
|
-
var compressed = compressChanges(changeSet);
|
|
11
|
+
var compressed = compressChanges(context, changeSet);
|
|
12
12
|
changeSet.length = 0;
|
|
13
13
|
return compressed;
|
|
14
14
|
}
|
package/src/table/promise.js
CHANGED
|
@@ -1,14 +1,8 @@
|
|
|
1
|
-
var promise = require('promise/domains');
|
|
2
|
-
var deferred = require('deferred');
|
|
3
|
-
let promisify = require('util').promisify;
|
|
4
|
-
|
|
5
|
-
|
|
6
1
|
function newPromise(func) {
|
|
7
2
|
if (!func)
|
|
8
|
-
return
|
|
9
|
-
return new
|
|
3
|
+
return Promise.resolve.apply(Promise, arguments);
|
|
4
|
+
return new Promise(func);
|
|
10
5
|
}
|
|
11
6
|
|
|
12
7
|
newPromise.all = Promise.all;
|
|
13
|
-
newPromise.denodeify = promisify || promise.denodeify;
|
|
14
8
|
module.exports = newPromise;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var getSessionContext = require('../getSessionContext');
|
|
2
2
|
|
|
3
|
-
function extractOffset(span) {
|
|
4
|
-
let {limitAndOffset} = getSessionContext();
|
|
3
|
+
function extractOffset(context, span) {
|
|
4
|
+
let {limitAndOffset} = getSessionContext(context);
|
|
5
5
|
if (limitAndOffset)
|
|
6
6
|
return limitAndOffset(span);
|
|
7
7
|
else
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const getSessionSingleton = require('../getSessionSingleton');
|
|
2
2
|
|
|
3
|
-
function extractOrderBy(table, alias, orderBy, originalOrderBy) {
|
|
4
|
-
const quote = getSessionSingleton('quote');
|
|
3
|
+
function extractOrderBy(context, table, alias, orderBy, originalOrderBy) {
|
|
4
|
+
const quote = getSessionSingleton(context, 'quote');
|
|
5
5
|
alias = quote(alias);
|
|
6
6
|
var dbNames = [];
|
|
7
7
|
var i;
|
|
@@ -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;
|
|
@@ -6,15 +6,15 @@ var negotiateExclusive = require('./singleQuery/negotiateExclusive');
|
|
|
6
6
|
var newParameterized = require('../../table/query/newParameterized');
|
|
7
7
|
var quote = require('../quote');
|
|
8
8
|
|
|
9
|
-
function _new(table,filter,span,alias,innerJoin,orderBy,limit,offset,exclusive) {
|
|
9
|
+
function _new(context, table, filter, span, alias, innerJoin, orderBy, limit, offset, exclusive) {
|
|
10
10
|
|
|
11
|
-
var name = quote(table._dbName);
|
|
12
|
-
var columnSql = newColumnSql(table,span,alias);
|
|
13
|
-
var joinSql = newJoinSql(span,alias);
|
|
14
|
-
var whereSql = newWhereSql(table,filter,alias);
|
|
11
|
+
var name = quote(context, table._dbName);
|
|
12
|
+
var columnSql = newColumnSql(context, table, span, alias);
|
|
13
|
+
var joinSql = newJoinSql(context, span, alias);
|
|
14
|
+
var whereSql = newWhereSql(context, table, filter, alias);
|
|
15
15
|
var safeLimit = negotiateLimit(limit);
|
|
16
|
-
var exclusiveClause = negotiateExclusive(table,alias,exclusive);
|
|
17
|
-
return newParameterized('select' + safeLimit + ' ' + columnSql + ' from ' + name + ' ' + quote(alias))
|
|
16
|
+
var exclusiveClause = negotiateExclusive(table, alias, exclusive);
|
|
17
|
+
return newParameterized('select' + safeLimit + ' ' + columnSql + ' from ' + name + ' ' + quote(context, alias))
|
|
18
18
|
.append(innerJoin)
|
|
19
19
|
.append(joinSql)
|
|
20
20
|
.append(whereSql)
|
|
@@ -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(span.table,alias, span, ignoreNull);
|
|
7
|
-
var joinedColumnSql = newJoinedColumnSql(span,alias,ignoreNull);
|
|
8
|
-
return ',' + shallowColumnSql + joinedColumnSql;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
function _initJoinedColumnSql(span,alias,ignoreNull) {
|
|
12
|
-
newJoinedColumnSql = require('./newJoinedColumnSql');
|
|
13
|
-
return newJoinedColumnSql(span,alias,ignoreNull);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
module.exports = sql;
|
|
3
|
+
module.exports = joinLegToColumnSql;
|