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