Skip to content

Commit f1f6a6f

Browse files
authored
Merge pull request #10 from txase/fixMultipleTransactions
Fix multiple transactions
2 parents bd2fe3d + 1d6d3cb commit f1f6a6f

File tree

8 files changed

+255
-101
lines changed

8 files changed

+255
-101
lines changed

.eslintrc.yml

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ env:
22
browser: true
33
commonjs: true
44
es2020: true
5+
jest: true
56
extends:
67
- semistandard
78
parserOptions:

__mocks__/aws-sdk/clients/rdsdataservice.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,4 @@ module.exports.mockBeginTransactionPromise = mockBeginTransactionPromise;
4141
module.exports.mockCommitTransaction = mockCommitTransaction;
4242
module.exports.mockCommitTransactionPromise = mockCommitTransactionPromise;
4343
module.exports.mockRollbackTransaction = mockRollbackTransaction;
44-
module.exports.mockRollbackTransactionPromise = mockRollbackTransactionPromise;
44+
module.exports.mockRollbackTransactionPromise = mockRollbackTransactionPromise;

index.js

+14-7
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ class Client_AuroraDataMySQL extends Client_MySQL { // eslint-disable-line camel
8282
return new RDSDataService(config);
8383
}
8484

85-
initializePool() {
85+
initializePool () {
8686
/* istanbul ignore if */
8787
if (this.pool) {
8888
this.logger.warn('The pool has already been initialized');
@@ -103,6 +103,7 @@ class Client_AuroraDataMySQL extends Client_MySQL { // eslint-disable-line camel
103103
promise: Promise.resolve({
104104
client: this.driver,
105105
parameters,
106+
transactions: {},
106107
__knexUid: this.knexUid++
107108
})
108109
}),
@@ -207,13 +208,19 @@ class Client_AuroraDataMySQL extends Client_MySQL { // eslint-disable-line camel
207208
}
208209

209210
async _query (connection, obj) {
211+
const params = {
212+
...connection.parameters,
213+
includeResultMetadata: true,
214+
sql: obj.sql,
215+
parameters: obj.bindings
216+
};
217+
218+
if ('__knexTxId' in connection) {
219+
params.transactionId = connection.transactions[connection.__knexTxId];
220+
}
221+
210222
obj.data = await connection.client
211-
.executeStatement({
212-
...connection.parameters,
213-
includeResultMetadata: true,
214-
sql: obj.sql,
215-
parameters: obj.bindings
216-
})
223+
.executeStatement(params)
217224
.promise();
218225

219226
return obj;

0 commit comments

Comments
 (0)