orange-orm 4.8.2 → 4.9.1

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.
@@ -4132,8 +4132,10 @@ function requireNewShallowJoinSqlCore () {
4132
4132
 
4133
4133
  function _new(context, rightTable, leftColumns, rightColumns, leftAlias, rightAlias, filter) {
4134
4134
  const quote = getSessionSingleton(context, 'quote');
4135
- leftAlias = quote(leftAlias);
4136
- rightAlias = quote(rightAlias);
4135
+ const leftAliasRaw = leftAlias;
4136
+ const rightAliasRaw = rightAlias;
4137
+ leftAlias = quote(leftAliasRaw);
4138
+ rightAlias = quote(rightAliasRaw);
4137
4139
  var sql = '';
4138
4140
  var delimiter = '';
4139
4141
  for (var i = 0; i < leftColumns.length; i++) {
@@ -4147,7 +4149,7 @@ function requireNewShallowJoinSqlCore () {
4147
4149
  sql += delimiter + leftAlias + '.' + quote(leftColumn._dbName) + '=' + rightAlias + '.' + quote(rightColumn._dbName);
4148
4150
  }
4149
4151
 
4150
- sql += newDiscriminatorSql(context, rightTable, rightAlias);
4152
+ sql += newDiscriminatorSql(context, rightTable, rightAliasRaw);
4151
4153
  var result = newParameterized(sql);
4152
4154
  if (filter)
4153
4155
  result = result.append(delimiter).append(filter);
package/dist/index.mjs CHANGED
@@ -4133,8 +4133,10 @@ function requireNewShallowJoinSqlCore () {
4133
4133
 
4134
4134
  function _new(context, rightTable, leftColumns, rightColumns, leftAlias, rightAlias, filter) {
4135
4135
  const quote = getSessionSingleton(context, 'quote');
4136
- leftAlias = quote(leftAlias);
4137
- rightAlias = quote(rightAlias);
4136
+ const leftAliasRaw = leftAlias;
4137
+ const rightAliasRaw = rightAlias;
4138
+ leftAlias = quote(leftAliasRaw);
4139
+ rightAlias = quote(rightAliasRaw);
4138
4140
  var sql = '';
4139
4141
  var delimiter = '';
4140
4142
  for (var i = 0; i < leftColumns.length; i++) {
@@ -4148,7 +4150,7 @@ function requireNewShallowJoinSqlCore () {
4148
4150
  sql += delimiter + leftAlias + '.' + quote(leftColumn._dbName) + '=' + rightAlias + '.' + quote(rightColumn._dbName);
4149
4151
  }
4150
4152
 
4151
- sql += newDiscriminatorSql(context, rightTable, rightAlias);
4153
+ sql += newDiscriminatorSql(context, rightTable, rightAliasRaw);
4152
4154
  var result = newParameterized(sql);
4153
4155
  if (filter)
4154
4156
  result = result.append(delimiter).append(filter);
@@ -18102,27 +18104,42 @@ var hasRequiredWrapQuery$4;
18102
18104
  function requireWrapQuery$4 () {
18103
18105
  if (hasRequiredWrapQuery$4) return wrapQuery_1$4;
18104
18106
  hasRequiredWrapQuery$4 = 1;
18105
- var log = requireLog();
18107
+ const log = requireLog();
18108
+ const connectionCache = new WeakMap();
18106
18109
 
18107
18110
  function wrapQuery(_context, connection) {
18108
- var runOriginalQuery = connection.all;
18111
+ let statementCache = connectionCache.get(connection);
18112
+ if (!statementCache) {
18113
+ statementCache = new Map();
18114
+ connectionCache.set(connection, statementCache);
18115
+ }
18116
+
18109
18117
  return runQuery;
18110
18118
 
18111
18119
  function runQuery(query, onCompleted) {
18112
- var params = query.parameters;
18113
- var sql = query.sql();
18114
- log.emitQuery({sql, parameters: params});
18120
+ try {
18121
+ var params = query.parameters;
18122
+ var sql = query.sql();
18123
+ log.emitQuery({ sql, parameters: params });
18115
18124
 
18116
- runOriginalQuery.call(connection, sql, params, onInnerCompleted);
18125
+ let statement = statementCache.get(sql);
18126
+ if (!statement) {
18127
+ statement = connection.prepare(sql);
18128
+ statementCache.set(sql, statement);
18129
+ }
18117
18130
 
18118
- function onInnerCompleted(err, rows) {
18119
- if (err)
18120
- onCompleted(err);
18121
- else
18131
+ if (statement.reader) {
18132
+ const rows = statement.all.apply(statement, params);
18122
18133
  onCompleted(null, rows);
18134
+ } else {
18135
+ statement.run.apply(statement, params);
18136
+ onCompleted(null, []);
18137
+ }
18138
+ }
18139
+ catch (e) {
18140
+ onCompleted(e);
18123
18141
  }
18124
18142
  }
18125
-
18126
18143
  }
18127
18144
 
18128
18145
  wrapQuery_1$4 = wrapQuery;
@@ -18136,9 +18153,14 @@ function requireWrapCommand$4 () {
18136
18153
  if (hasRequiredWrapCommand$4) return wrapCommand_1$4;
18137
18154
  hasRequiredWrapCommand$4 = 1;
18138
18155
  var log = requireLog();
18156
+ var connectionCache = new WeakMap();
18139
18157
 
18140
18158
  function wrapCommand(_context, connection) {
18141
- var runOriginalQuery = connection.run;
18159
+ var statementCache = connectionCache.get(connection);
18160
+ if (!statementCache) {
18161
+ statementCache = new Map();
18162
+ connectionCache.set(connection, statementCache);
18163
+ }
18142
18164
  return runQuery;
18143
18165
 
18144
18166
  function runQuery(query, onCompleted) {
@@ -18146,14 +18168,23 @@ function requireWrapCommand$4 () {
18146
18168
  var sql = query.sql();
18147
18169
  log.emitQuery({ sql, parameters: params });
18148
18170
 
18149
- runOriginalQuery.call(connection, sql, params, function onInnerCompleted(err) {
18150
- if (err) {
18151
- onCompleted(err);
18152
- } else {
18153
- var affectedRows = typeof this.changes === 'number' ? this.changes : 0;
18154
- onCompleted(null, { rowsAffected: affectedRows });
18171
+ try {
18172
+ var statement = statementCache.get(sql);
18173
+ if (!statement) {
18174
+ statement = connection.prepare(sql);
18175
+ statementCache.set(sql, statement);
18155
18176
  }
18156
- });
18177
+ var info = statement.run.apply(statement, params);
18178
+ var affected = info && typeof info.changes === 'number' ? info.changes : 0;
18179
+ var insertId = info && typeof info.lastInsertRowid !== 'undefined' ? info.lastInsertRowid : undefined;
18180
+ if (typeof insertId !== 'undefined')
18181
+ onCompleted(null, { rowsAffected: affected, lastInsertRowid: insertId });
18182
+ else
18183
+ onCompleted(null, { rowsAffected: affected });
18184
+ }
18185
+ catch (e) {
18186
+ onCompleted(e);
18187
+ }
18157
18188
  }
18158
18189
  }
18159
18190
 
@@ -18320,20 +18351,20 @@ function requireNewGenericPool$4 () {
18320
18351
  create: async function(cb) {
18321
18352
  try {
18322
18353
  if (!sqlite)
18323
- sqlite = await import('sqlite3');
18354
+ sqlite = await import('better-sqlite3');
18324
18355
  sqlite = sqlite.default || sqlite;
18325
18356
  }
18326
18357
  catch (err) {
18327
18358
  return cb(err, null);
18328
18359
  }
18329
- var client = new sqlite.Database(connectionString, onConnected);
18330
-
18331
- function onConnected(err) {
18332
- if(err)
18333
- return cb(err, null);
18360
+ try {
18361
+ var client = new sqlite(connectionString);
18334
18362
  client.poolCount = 0;
18335
18363
  return cb(null, client);
18336
18364
  }
18365
+ catch (err) {
18366
+ return cb(err, null);
18367
+ }
18337
18368
  },
18338
18369
 
18339
18370
  destroy: function(client) {
package/docs/changelog.md CHANGED
@@ -1,4 +1,9 @@
1
1
  ## Changelog
2
+ __4.9.1__
3
+ Fix: Avoid double-quoting aliases in discriminator join SQL [#144](https://github.com/alfateam/orange-orm/issues/144)
4
+ __4.9.0__
5
+ Node.js 22.5+: Continues using built-in `node:sqlite` (no action needed)
6
+ Node.js 18-22.4: Now requires `better-sqlite3` instead of `sqlite3`
2
7
  __4.8.2__
3
8
  Slight performance gain on updates and removed accidental console.dir
4
9
  __4.8.1__
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orange-orm",
3
- "version": "4.8.2",
3
+ "version": "4.9.1",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -93,7 +93,7 @@
93
93
  "oracledb": "^6.3.0",
94
94
  "pg": "^8.5.1",
95
95
  "pg-query-stream": "^3.3.2",
96
- "sqlite3": "^5.0.2",
96
+ "better-sqlite3": "^11.8.1",
97
97
  "tedious": "^15.1.2 || ^16.0.0 || ^18.1.0 || || ^19.0.0"
98
98
  },
99
99
  "peerDependenciesMeta": {
@@ -106,7 +106,7 @@
106
106
  "mysql2": {
107
107
  "optional": true
108
108
  },
109
- "sqlite3": {
109
+ "better-sqlite3": {
110
110
  "optional": true
111
111
  },
112
112
  "pg-native": {
@@ -144,7 +144,7 @@
144
144
  "pg": "^8.5.1",
145
145
  "pg-query-stream": "^3.3.2",
146
146
  "rollup": "^2.52.7",
147
- "sqlite3": "^5.0.2",
147
+ "better-sqlite3": "^11.8.1",
148
148
  "tedious": "^19.0.0",
149
149
  "typescript": "^5.4.5",
150
150
  "vitest": "^3.2.4"
@@ -15,20 +15,20 @@ function newGenericPool(connectionString, poolOptions) {
15
15
  create: async function(cb) {
16
16
  try {
17
17
  if (!sqlite)
18
- sqlite = await import('sqlite3');
18
+ sqlite = await import('better-sqlite3');
19
19
  sqlite = sqlite.default || sqlite;
20
20
  }
21
21
  catch (err) {
22
22
  return cb(err, null);
23
23
  }
24
- var client = new sqlite.Database(connectionString, onConnected);
25
-
26
- function onConnected(err) {
27
- if(err)
28
- return cb(err, null);
24
+ try {
25
+ var client = new sqlite(connectionString);
29
26
  client.poolCount = 0;
30
27
  return cb(null, client);
31
28
  }
29
+ catch (err) {
30
+ return cb(err, null);
31
+ }
32
32
  },
33
33
 
34
34
  destroy: function(client) {
@@ -53,4 +53,4 @@ function newGenericPool(connectionString, poolOptions) {
53
53
  return pool;
54
54
  }
55
55
 
56
- module.exports = newGenericPool;
56
+ module.exports = newGenericPool;
@@ -1,7 +1,12 @@
1
1
  var log = require('../table/log');
2
+ var connectionCache = new WeakMap();
2
3
 
3
4
  function wrapCommand(_context, connection) {
4
- var runOriginalQuery = connection.run;
5
+ var statementCache = connectionCache.get(connection);
6
+ if (!statementCache) {
7
+ statementCache = new Map();
8
+ connectionCache.set(connection, statementCache);
9
+ }
5
10
  return runQuery;
6
11
 
7
12
  function runQuery(query, onCompleted) {
@@ -9,14 +14,23 @@ function wrapCommand(_context, connection) {
9
14
  var sql = query.sql();
10
15
  log.emitQuery({ sql, parameters: params });
11
16
 
12
- runOriginalQuery.call(connection, sql, params, function onInnerCompleted(err) {
13
- if (err) {
14
- onCompleted(err);
15
- } else {
16
- var affectedRows = typeof this.changes === 'number' ? this.changes : 0;
17
- onCompleted(null, { rowsAffected: affectedRows });
17
+ try {
18
+ var statement = statementCache.get(sql);
19
+ if (!statement) {
20
+ statement = connection.prepare(sql);
21
+ statementCache.set(sql, statement);
18
22
  }
19
- });
23
+ var info = statement.run.apply(statement, params);
24
+ var affected = info && typeof info.changes === 'number' ? info.changes : 0;
25
+ var insertId = info && typeof info.lastInsertRowid !== 'undefined' ? info.lastInsertRowid : undefined;
26
+ if (typeof insertId !== 'undefined')
27
+ onCompleted(null, { rowsAffected: affected, lastInsertRowid: insertId });
28
+ else
29
+ onCompleted(null, { rowsAffected: affected });
30
+ }
31
+ catch (e) {
32
+ onCompleted(e);
33
+ }
20
34
  }
21
35
  }
22
36
 
@@ -1,24 +1,39 @@
1
- var log = require('../table/log');
1
+ const log = require('../table/log');
2
+ const connectionCache = new WeakMap();
2
3
 
3
4
  function wrapQuery(_context, connection) {
4
- var runOriginalQuery = connection.all;
5
+ let statementCache = connectionCache.get(connection);
6
+ if (!statementCache) {
7
+ statementCache = new Map();
8
+ connectionCache.set(connection, statementCache);
9
+ }
10
+
5
11
  return runQuery;
6
12
 
7
13
  function runQuery(query, onCompleted) {
8
- var params = query.parameters;
9
- var sql = query.sql();
10
- log.emitQuery({sql, parameters: params});
14
+ try {
15
+ var params = query.parameters;
16
+ var sql = query.sql();
17
+ log.emitQuery({ sql, parameters: params });
11
18
 
12
- runOriginalQuery.call(connection, sql, params, onInnerCompleted);
19
+ let statement = statementCache.get(sql);
20
+ if (!statement) {
21
+ statement = connection.prepare(sql);
22
+ statementCache.set(sql, statement);
23
+ }
13
24
 
14
- function onInnerCompleted(err, rows) {
15
- if (err)
16
- onCompleted(err);
17
- else
25
+ if (statement.reader) {
26
+ const rows = statement.all.apply(statement, params);
18
27
  onCompleted(null, rows);
28
+ } else {
29
+ statement.run.apply(statement, params);
30
+ onCompleted(null, []);
31
+ }
32
+ }
33
+ catch (e) {
34
+ onCompleted(e);
19
35
  }
20
36
  }
21
-
22
37
  }
23
38
 
24
- module.exports = wrapQuery;
39
+ module.exports = wrapQuery;
@@ -4,8 +4,10 @@ const getSessionSingleton = require('../../../getSessionSingleton');
4
4
 
5
5
  function _new(context, rightTable, leftColumns, rightColumns, leftAlias, rightAlias, filter) {
6
6
  const quote = getSessionSingleton(context, 'quote');
7
- leftAlias = quote(leftAlias);
8
- rightAlias = quote(rightAlias);
7
+ const leftAliasRaw = leftAlias;
8
+ const rightAliasRaw = rightAlias;
9
+ leftAlias = quote(leftAliasRaw);
10
+ rightAlias = quote(rightAliasRaw);
9
11
  var sql = '';
10
12
  var delimiter = '';
11
13
  for (var i = 0; i < leftColumns.length; i++) {
@@ -19,11 +21,11 @@ function _new(context, rightTable, leftColumns, rightColumns, leftAlias, rightAl
19
21
  sql += delimiter + leftAlias + '.' + quote(leftColumn._dbName) + '=' + rightAlias + '.' + quote(rightColumn._dbName);
20
22
  }
21
23
 
22
- sql += newDiscriminatorSql(context, rightTable, rightAlias);
24
+ sql += newDiscriminatorSql(context, rightTable, rightAliasRaw);
23
25
  var result = newParameterized(sql);
24
26
  if (filter)
25
27
  result = result.append(delimiter).append(filter);
26
28
  return result;
27
29
  }
28
30
 
29
- module.exports = _new;
31
+ module.exports = _new;