@@ -1905,8 +1905,8 @@ static DatasetRun CreateDatasetRun(const Config &config, const DatasetConfig &da
19051905 }
19061906 result.points = BuildRunPoints (dataset);
19071907 result.db_path = DefaultDbPath (dataset);
1908- if (!(dataset.name == " tpch" || dataset.name == " sqlstorm_tpch" ) &&
1909- !dataset. allow_create && ! FileExists (result.db_path )) {
1908+ if (!(dataset.name == " tpch" || dataset.name == " sqlstorm_tpch" ) && !dataset. allow_create &&
1909+ !FileExists (result.db_path )) {
19101910 throw std::runtime_error (" database does not exist for dataset " + dataset.name + " : " + result.db_path );
19111911 }
19121912
@@ -1975,6 +1975,14 @@ static void PrepareDatasetRun(const Config &config, DatasetRun &dataset_run,
19751975 PrepareDataset (*dataset_run.connection , dataset_run.config , false );
19761976}
19771977
1978+ static void ExecuteBenchmarkQuery (Connection &con, const BenchmarkRow &row, const QuerySpec &query) {
1979+ if (row.point .mode == " dp_sass_bounded_ratio" ) {
1980+ ReadScalarDouble (con, BuildQ14BoundedSampledRatioSql (row.point .epsilon , row.point .sample_lanes ));
1981+ } else {
1982+ MaterializeQuery (con, query.sql );
1983+ }
1984+ }
1985+
19781986static void RunTimingPass (const Config &config, DatasetRun &dataset_run) {
19791987 auto &con = *dataset_run.connection ;
19801988 vector<double > pu_counts (dataset_run.queries .size (), -1.0 );
@@ -1997,12 +2005,11 @@ static void RunTimingPass(const Config &config, DatasetRun &dataset_run) {
19972005 RunStatement (con, " SET privacy_noise=true" );
19982006 RunStatement (con, " SET privacy_seed=" + std::to_string (row.seed ));
19992007
2008+ ExecuteBenchmarkQuery (con, row, query);
2009+ Log (" warmup " + dataset_run.config .name + " " + row.point .mode + " " + query.name + " run " +
2010+ std::to_string (row.run ) + " complete" );
20002011 auto start = std::chrono::steady_clock::now ();
2001- if (row.point .mode == " dp_sass_bounded_ratio" ) {
2002- ReadScalarDouble (con, BuildQ14BoundedSampledRatioSql (row.point .epsilon , row.point .sample_lanes ));
2003- } else {
2004- MaterializeQuery (con, query.sql );
2005- }
2012+ ExecuteBenchmarkQuery (con, row, query);
20062013 auto end = std::chrono::steady_clock::now ();
20072014 row.time_ms = std::chrono::duration<double , std::milli>(end - start).count ();
20082015 row.runtime_success = true ;
0 commit comments