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.
- package/dist/index.browser.mjs +5 -3
- package/dist/index.mjs +59 -28
- package/docs/changelog.md +5 -0
- package/package.json +4 -4
- package/src/sqlite3/pool/newGenericPool.js +7 -7
- package/src/sqlite3/wrapCommand.js +22 -8
- package/src/sqlite3/wrapQuery.js +27 -12
- package/src/table/query/singleQuery/joinSql/newShallowJoinSqlCore.js +6 -4
package/dist/index.browser.mjs
CHANGED
|
@@ -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
|
-
|
|
4136
|
-
|
|
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,
|
|
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
|
-
|
|
4137
|
-
|
|
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,
|
|
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
|
-
|
|
18107
|
+
const log = requireLog();
|
|
18108
|
+
const connectionCache = new WeakMap();
|
|
18106
18109
|
|
|
18107
18110
|
function wrapQuery(_context, connection) {
|
|
18108
|
-
|
|
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
|
-
|
|
18113
|
-
|
|
18114
|
-
|
|
18120
|
+
try {
|
|
18121
|
+
var params = query.parameters;
|
|
18122
|
+
var sql = query.sql();
|
|
18123
|
+
log.emitQuery({ sql, parameters: params });
|
|
18115
18124
|
|
|
18116
|
-
|
|
18125
|
+
let statement = statementCache.get(sql);
|
|
18126
|
+
if (!statement) {
|
|
18127
|
+
statement = connection.prepare(sql);
|
|
18128
|
+
statementCache.set(sql, statement);
|
|
18129
|
+
}
|
|
18117
18130
|
|
|
18118
|
-
|
|
18119
|
-
|
|
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
|
|
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
|
-
|
|
18150
|
-
|
|
18151
|
-
|
|
18152
|
-
|
|
18153
|
-
|
|
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
|
-
|
|
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.
|
|
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": "^
|
|
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": "^
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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
|
|
package/src/sqlite3/wrapQuery.js
CHANGED
|
@@ -1,24 +1,39 @@
|
|
|
1
|
-
|
|
1
|
+
const log = require('../table/log');
|
|
2
|
+
const connectionCache = new WeakMap();
|
|
2
3
|
|
|
3
4
|
function wrapQuery(_context, connection) {
|
|
4
|
-
|
|
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
|
-
|
|
9
|
-
|
|
10
|
-
|
|
14
|
+
try {
|
|
15
|
+
var params = query.parameters;
|
|
16
|
+
var sql = query.sql();
|
|
17
|
+
log.emitQuery({ sql, parameters: params });
|
|
11
18
|
|
|
12
|
-
|
|
19
|
+
let statement = statementCache.get(sql);
|
|
20
|
+
if (!statement) {
|
|
21
|
+
statement = connection.prepare(sql);
|
|
22
|
+
statementCache.set(sql, statement);
|
|
23
|
+
}
|
|
13
24
|
|
|
14
|
-
|
|
15
|
-
|
|
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
|
-
|
|
8
|
-
|
|
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,
|
|
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;
|