You've already forked joplin
mirror of
https://github.com/laurent22/joplin.git
synced 2025-11-29 22:48:10 +02:00
All: Allow disabling encryption and added more test cases
This commit is contained in:
@@ -104,29 +104,38 @@ class Database {
|
||||
return this.tryCall('exec', sql, params);
|
||||
}
|
||||
|
||||
transactionExecBatch(queries) {
|
||||
if (queries.length <= 0) return Promise.resolve();
|
||||
async transactionExecBatch(queries) {
|
||||
if (queries.length <= 0) return;
|
||||
|
||||
if (queries.length == 1) {
|
||||
let q = this.wrapQuery(queries[0]);
|
||||
return this.exec(q.sql, q.params);
|
||||
await this.exec(q.sql, q.params);
|
||||
return;
|
||||
}
|
||||
|
||||
// There can be only one transaction running at a time so queue
|
||||
// any new transaction here.
|
||||
if (this.inTransaction_) {
|
||||
return new Promise((resolve, reject) => {
|
||||
let iid = setInterval(() => {
|
||||
if (!this.inTransaction_) {
|
||||
clearInterval(iid);
|
||||
this.transactionExecBatch(queries).then(() => {
|
||||
resolve();
|
||||
}).catch((error) => {
|
||||
reject(error);
|
||||
});
|
||||
}
|
||||
}, 100);
|
||||
});
|
||||
while (true) {
|
||||
await time.msleep(100);
|
||||
if (!this.inTransaction_) {
|
||||
this.inTransaction_ = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// return new Promise((resolve, reject) => {
|
||||
// let iid = setInterval(() => {
|
||||
// if (!this.inTransaction_) {
|
||||
// clearInterval(iid);
|
||||
// this.transactionExecBatch(queries).then(() => {
|
||||
// resolve();
|
||||
// }).catch((error) => {
|
||||
// reject(error);
|
||||
// });
|
||||
// }
|
||||
// }, 100);
|
||||
// });
|
||||
}
|
||||
|
||||
this.inTransaction_ = true;
|
||||
@@ -134,17 +143,62 @@ class Database {
|
||||
queries.splice(0, 0, 'BEGIN TRANSACTION');
|
||||
queries.push('COMMIT'); // Note: ROLLBACK is currently not supported
|
||||
|
||||
let chain = [];
|
||||
for (let i = 0; i < queries.length; i++) {
|
||||
let query = this.wrapQuery(queries[i]);
|
||||
chain.push(() => {
|
||||
return this.exec(query.sql, query.params);
|
||||
});
|
||||
await this.exec(query.sql, query.params);
|
||||
}
|
||||
|
||||
return promiseChain(chain).then(() => {
|
||||
this.inTransaction_ = false;
|
||||
});
|
||||
this.inTransaction_ = false;
|
||||
|
||||
// return promiseChain(chain).then(() => {
|
||||
// this.inTransaction_ = false;
|
||||
// });
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// if (queries.length <= 0) return Promise.resolve();
|
||||
|
||||
// if (queries.length == 1) {
|
||||
// let q = this.wrapQuery(queries[0]);
|
||||
// return this.exec(q.sql, q.params);
|
||||
// }
|
||||
|
||||
// // There can be only one transaction running at a time so queue
|
||||
// // any new transaction here.
|
||||
// if (this.inTransaction_) {
|
||||
// return new Promise((resolve, reject) => {
|
||||
// let iid = setInterval(() => {
|
||||
// if (!this.inTransaction_) {
|
||||
// clearInterval(iid);
|
||||
// this.transactionExecBatch(queries).then(() => {
|
||||
// resolve();
|
||||
// }).catch((error) => {
|
||||
// reject(error);
|
||||
// });
|
||||
// }
|
||||
// }, 100);
|
||||
// });
|
||||
// }
|
||||
|
||||
// this.inTransaction_ = true;
|
||||
|
||||
// queries.splice(0, 0, 'BEGIN TRANSACTION');
|
||||
// queries.push('COMMIT'); // Note: ROLLBACK is currently not supported
|
||||
|
||||
// let chain = [];
|
||||
// for (let i = 0; i < queries.length; i++) {
|
||||
// let query = this.wrapQuery(queries[i]);
|
||||
// chain.push(() => {
|
||||
// return this.exec(query.sql, query.params);
|
||||
// });
|
||||
// }
|
||||
|
||||
// return promiseChain(chain).then(() => {
|
||||
// this.inTransaction_ = false;
|
||||
// });
|
||||
}
|
||||
|
||||
static enumId(type, s) {
|
||||
|
||||
Reference in New Issue
Block a user