@@ -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