mirror of
https://github.com/nodejs/node.git
synced 2026-10-28 10:15:07 +08:00
Rename the DatabaseSync and StatementSync classes to Database and Statement, and the internal DatabaseSyncLimits helper to DatabaseLimits. The old names are kept as aliases of the new classes and are Documentation-only deprecated (DEP0210, DEP0211). Assisted-by: Claude Code Signed-off-by: Guilherme Araújo <arauujogui@gmail.com> PR-URL: https://github.com/nodejs/node/pull/65988 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Gürgün Dayıoğlu <hey@gurgun.day> Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Robert Nagy <ronagy@icloud.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
101 lines
3.3 KiB
JavaScript
101 lines
3.3 KiB
JavaScript
'use strict';
|
|
const common = require('../common.js');
|
|
const sqlite = require('node:sqlite');
|
|
const assert = require('assert');
|
|
|
|
const bench = common.createBenchmark(main, {
|
|
n: [1e5],
|
|
statement: [
|
|
'INSERT INTO text_column_type (text_column) VALUES (?)',
|
|
'INSERT INTO integer_column_type (integer_column) VALUES (?)',
|
|
'INSERT INTO real_column_type (real_column) VALUES (?)',
|
|
'INSERT INTO blob_column_type (blob_column) VALUES (?)',
|
|
'INSERT INTO all_column_types (text_column, integer_column, real_column, blob_column) VALUES (?, ?, ?, ?)',
|
|
'INSERT INTO large_text (text_8kb_column) VALUES (?)',
|
|
'INSERT INTO missing_required_value (any_value, required_value) VALUES (?, ?)',
|
|
],
|
|
});
|
|
|
|
function main(conf) {
|
|
const db = new sqlite.Database(':memory:');
|
|
|
|
db.exec('CREATE TABLE text_column_type (text_column TEXT)');
|
|
db.exec('CREATE TABLE integer_column_type (integer_column INTEGER)');
|
|
db.exec('CREATE TABLE real_column_type (real_column REAL)');
|
|
db.exec('CREATE TABLE blob_column_type (blob_column BLOB)');
|
|
db.exec(
|
|
'CREATE TABLE all_column_types (text_column TEXT, integer_column INTEGER, real_column REAL, blob_column BLOB)',
|
|
);
|
|
db.exec('CREATE TABLE large_text (text_8kb_column TEXT)');
|
|
db.exec('CREATE TABLE missing_required_value (any_value TEXT, required_value TEXT NOT NULL)');
|
|
|
|
const insertStatement = db.prepare(conf.statement);
|
|
|
|
let i;
|
|
let deadCodeElimination;
|
|
|
|
const stringValue = crypto.randomUUID();
|
|
const integerValue = Math.floor(Math.random() * 100);
|
|
const realValue = Math.random();
|
|
const blobValue = Buffer.from('example blob data');
|
|
|
|
const largeText = 'a'.repeat(8 * 1024);
|
|
|
|
if (conf.statement.includes('text_column_type')) {
|
|
bench.start();
|
|
for (i = 0; i < conf.n; i += 1) {
|
|
deadCodeElimination = insertStatement.run(stringValue);
|
|
}
|
|
bench.end(conf.n);
|
|
} else if (conf.statement.includes('integer_column_type')) {
|
|
bench.start();
|
|
for (i = 0; i < conf.n; i += 1) {
|
|
deadCodeElimination = insertStatement.run(integerValue);
|
|
}
|
|
bench.end(conf.n);
|
|
} else if (conf.statement.includes('real_column_type')) {
|
|
bench.start();
|
|
for (i = 0; i < conf.n; i += 1) {
|
|
deadCodeElimination = insertStatement.run(realValue);
|
|
}
|
|
bench.end(conf.n);
|
|
} else if (conf.statement.includes('blob_column_type')) {
|
|
bench.start();
|
|
for (i = 0; i < conf.n; i += 1) {
|
|
deadCodeElimination = insertStatement.run(blobValue);
|
|
}
|
|
bench.end(conf.n);
|
|
} else if (conf.statement.includes('INTO all_column_types')) {
|
|
bench.start();
|
|
for (i = 0; i < conf.n; i += 1) {
|
|
deadCodeElimination = insertStatement.run(
|
|
stringValue,
|
|
integerValue,
|
|
realValue,
|
|
blobValue,
|
|
);
|
|
}
|
|
bench.end(conf.n);
|
|
} else if (conf.statement.includes('INTO large_text')) {
|
|
bench.start();
|
|
for (i = 0; i < conf.n; i += 1) {
|
|
deadCodeElimination = insertStatement.run(largeText);
|
|
}
|
|
bench.end(conf.n);
|
|
} else if (conf.statement.includes('missing_required_value')) {
|
|
bench.start();
|
|
for (i = 0; i < conf.n; i += 1) {
|
|
try {
|
|
deadCodeElimination = insertStatement.run(stringValue);
|
|
} catch (e) {
|
|
deadCodeElimination = e;
|
|
}
|
|
}
|
|
bench.end(conf.n);
|
|
} else {
|
|
throw new Error('Unknown statement');
|
|
}
|
|
|
|
assert.ok(deadCodeElimination !== undefined);
|
|
}
|