@@ -26,25 +26,33 @@ const bench = common.createBenchmark(main, {
2626function main ( conf ) {
2727 const db = new sqlite . DatabaseSync ( ':memory:' ) ;
2828
29- db . exec ( 'CREATE TABLE foo (text_column TEXT, integer_column INTEGER, real_column REAL, blob_column BLOB)' ) ;
30- const fooInsertStatement = db . prepare (
31- 'INSERT INTO foo (text_column, integer_column, real_column, blob_column) VALUES (?, ?, ?, ?)' ,
32- ) ;
33-
34- for ( let i = 0 ; i < conf . tableSeedSize ; i ++ ) {
35- fooInsertStatement . run (
36- crypto . randomUUID ( ) ,
37- Math . floor ( Math . random ( ) * 100 ) ,
38- Math . random ( ) ,
39- Buffer . from ( 'example blob data' ) ,
29+ // Create only the necessary table for the benchmark type.
30+ // If the statement includes 'foo_large', create the foo_large table; otherwise, create the foo table.
31+ if ( conf . statement . includes ( 'foo_large' ) ) {
32+ db . exec ( 'CREATE TABLE foo_large (text_8kb_column TEXT)' ) ;
33+ const fooLargeInsertStatement = db . prepare (
34+ 'INSERT INTO foo_large (text_8kb_column) VALUES (?)' ,
35+ ) ;
36+ const largeText = 'a' . repeat ( 8 * 1024 ) ;
37+ for ( let i = 0 ; i < conf . tableSeedSize ; i ++ ) {
38+ fooLargeInsertStatement . run ( largeText ) ;
39+ }
40+ } else {
41+ db . exec (
42+ 'CREATE TABLE foo (text_column TEXT, integer_column INTEGER, real_column REAL, blob_column BLOB)' ,
43+ ) ;
44+ const fooInsertStatement = db . prepare (
45+ 'INSERT INTO foo (text_column, integer_column, real_column, blob_column) VALUES (?, ?, ?, ?)' ,
4046 ) ;
41- }
4247
43- db . exec ( 'CREATE TABLE foo_large (text_8kb_column TEXT)' ) ;
44- const fooLargeInsertStatement = db . prepare ( 'INSERT INTO foo_large (text_8kb_column) VALUES (?)' ) ;
45- const largeText = 'a' . repeat ( 8 * 1024 ) ;
46- for ( let i = 0 ; i < conf . tableSeedSize ; i ++ ) {
47- fooLargeInsertStatement . run ( largeText ) ;
48+ for ( let i = 0 ; i < conf . tableSeedSize ; i ++ ) {
49+ fooInsertStatement . run (
50+ crypto . randomUUID ( ) ,
51+ Math . floor ( Math . random ( ) * 100 ) ,
52+ Math . random ( ) ,
53+ Buffer . from ( 'example blob data' ) ,
54+ ) ;
55+ }
4856 }
4957
5058 let i ;
@@ -53,8 +61,7 @@ function main(conf) {
5361 const stmt = db . prepare ( conf . statement ) ;
5462
5563 bench . start ( ) ;
56- for ( i = 0 ; i < conf . n ; i += 1 )
57- deadCodeElimination = stmt . all ( ) ;
64+ for ( i = 0 ; i < conf . n ; i += 1 ) deadCodeElimination = stmt . all ( ) ;
5865 bench . end ( conf . n ) ;
5966
6067 assert . ok ( deadCodeElimination !== undefined ) ;
0 commit comments