4141import org .polypheny .simpleclient .query .QueryBuilder ;
4242import org .polypheny .simpleclient .query .QueryListEntry ;
4343import org .polypheny .simpleclient .scenario .PolyphenyScenario ;
44- import org .polypheny .simpleclient .scenario .vectorbench .queryBuilder .CreateIntFeature ;
45- import org .polypheny .simpleclient .scenario .vectorbench .queryBuilder .CreateMetadata ;
46- import org .polypheny .simpleclient .scenario .vectorbench .queryBuilder .CreateRealFeature ;
44+ import org .polypheny .simpleclient .scenario .vectorbench .queryBuilder .SimpleKnnBooleanFeature ;
45+ import org .polypheny .simpleclient .scenario .vectorbench .queryBuilder .SimpleKnnBooleanFeatureFiltered ;
46+ import org .polypheny .simpleclient .scenario .vectorbench .queryBuilder .SimpleKnnRealFeatureFiltered ;
47+ import org .polypheny .simpleclient .scenario .vectorbench .queryBuilder .creation .CreateBooleanFeature ;
48+ import org .polypheny .simpleclient .scenario .vectorbench .queryBuilder .creation .CreateIntFeature ;
49+ import org .polypheny .simpleclient .scenario .vectorbench .queryBuilder .creation .CreateMetadata ;
50+ import org .polypheny .simpleclient .scenario .vectorbench .queryBuilder .creation .CreateRealFeature ;
4751import org .polypheny .simpleclient .scenario .vectorbench .queryBuilder .MetadataKnnIntFeature ;
4852import org .polypheny .simpleclient .scenario .vectorbench .queryBuilder .MetadataKnnRealCrossJoin ;
4953import org .polypheny .simpleclient .scenario .vectorbench .queryBuilder .MetadataKnnRealFeature ;
@@ -87,7 +91,9 @@ public void createSchema( DatabaseInstance databaseInstance, boolean includingKe
8791 executor = executorFactory .createExecutorInstance ();
8892 executor .executeQuery ( (new CreateMetadata ( config .dataStoreMetadata )).getNewQuery () );
8993 executor .executeQuery ( (new CreateIntFeature ( config .dataStoreFeature , config .dimensionFeatureVectors )).getNewQuery () );
90- executor .executeQuery ( (new CreateRealFeature ( config .dataStoreFeature , config .dimensionFeatureVectors )).getNewQuery () );} catch (ExecutorException e ) {
94+ executor .executeQuery ( (new CreateRealFeature ( config .dataStoreFeature , config .dimensionFeatureVectors )).getNewQuery () );
95+ executor .executeQuery ( (new CreateBooleanFeature ( config .dataStoreFeature , config .dimensionFeatureVectors )).getNewQuery () );
96+ } catch (ExecutorException e ) {
9197 throw new RuntimeException ( "Exception while creating schema" , e );
9298 } finally {
9399 commitAndCloseExecutor ( executor );
@@ -105,6 +111,7 @@ public void generateData( DatabaseInstance databaseInstance, ProgressReporter pr
105111 dataGenerator .generateMetadata ();
106112 dataGenerator .generateIntFeatures ();
107113 dataGenerator .generateRealFeatures ();
114+ dataGenerator .generateBooleanFeatures ();
108115 } catch ( ExecutorException e ) {
109116 throw new RuntimeException ( "Exception while generating data" , e );
110117 } finally {
@@ -125,7 +132,10 @@ public long execute( ProgressReporter progressReporter, CsvWriter csvWriter, Fil
125132 addNumberOfTimes ( queryList , new MetadataKnnIntFeature ( config .randomSeedQuery , config .dimensionFeatureVectors , config .limitKnnQueries , config .distanceNorm ), config .numberOfMetadataKnnIntFeatureQueries );
126133 addNumberOfTimes ( queryList , new MetadataKnnRealFeature ( config .randomSeedQuery , config .dimensionFeatureVectors , config .limitKnnQueries , config .distanceNorm ), config .numberOfMetadataKnnRealFeatureQueries );
127134 addNumberOfTimes ( queryList , new SimpleKnnRealCrossJoin ( config .randomSeedQuery , config .dimensionFeatureVectors , config .limitKnnQueries , config .distanceNorm ), config .numberOfSimpleKnnRealCrossJoinQueries );
128- addNumberOfTimes ( queryList , new MetadataKnnRealCrossJoin ( config .randomSeedQuery , config .dimensionFeatureVectors , config .limitKnnQueries , config .distanceNorm ), config .numberOfMetadataKnnRealCrossJoinQueries );
135+ addNumberOfTimes ( queryList , new SimpleKnnRealFeatureFiltered ( config .randomSeedQuery , config .dimensionFeatureVectors , config .limitKnnQueries , config .distanceNorm , "cat_A" ), config .numberOfSimpleKnnRealFeatureFilteredQueries );
136+ addNumberOfTimes ( queryList , new SimpleKnnBooleanFeature ( config .randomSeedQuery , config .dimensionFeatureVectors , config .limitKnnQueries , config .booleanDistanceNorm ), config .numberOfSimpleKnnBooleanFeatureQueries );
137+ addNumberOfTimes ( queryList , new SimpleKnnBooleanFeatureFiltered ( config .randomSeedQuery , config .dimensionFeatureVectors , config .limitKnnQueries , config .booleanDistanceNorm , "cat_A" ), config .numberOfSimpleKnnBooleanFeatureFilteredQueries );
138+
129139
130140 return commonExecute ( queryList , progressReporter , outputDirectory , numberOfThreads , Query ::getSql , () -> executorFactory .createExecutorInstance ( csvWriter ), new Random () );
131141 }
@@ -145,6 +155,9 @@ public void warmUp( ProgressReporter progressReporter ) {
145155 MetadataKnnRealFeature metadataKnnRealFeature = new MetadataKnnRealFeature ( config .randomSeedQuery , config .dimensionFeatureVectors , config .limitKnnQueries , config .distanceNorm );
146156 MetadataKnnRealCrossJoin metadataKnnCrossJoin = new MetadataKnnRealCrossJoin ( config .randomSeedQuery , config .dimensionFeatureVectors , config .limitKnnQueries , config .distanceNorm );
147157 SimpleKnnRealCrossJoin simpleKnnCrossJoin = new SimpleKnnRealCrossJoin ( config .randomSeedQuery , config .dimensionFeatureVectors , config .limitKnnQueries , config .distanceNorm );
158+ SimpleKnnRealFeatureFiltered simpleKnnRealFeatureFiltered = new SimpleKnnRealFeatureFiltered ( config .randomSeedQuery , config .dimensionFeatureVectors , config .limitKnnQueries , config .distanceNorm , "cat_A" );
159+ SimpleKnnBooleanFeature simpleKnnBooleanFeature = new SimpleKnnBooleanFeature ( config .randomSeedQuery , config .dimensionFeatureVectors , config .limitKnnQueries , config .booleanDistanceNorm );
160+ SimpleKnnBooleanFeatureFiltered simpleKnnBooleanFeatureFiltered = new SimpleKnnBooleanFeatureFiltered ( config .randomSeedQuery , config .dimensionFeatureVectors , config .limitKnnQueries , config .booleanDistanceNorm , "cat_A" );
148161
149162
150163 for ( int i = 0 ; i < config .numberOfWarmUpIterations ; i ++ ) {
@@ -179,6 +192,15 @@ public void warmUp( ProgressReporter progressReporter ) {
179192 if ( config .numberOfSimpleKnnRealCrossJoinQueries > 0 ) {
180193 executor .executeQuery ( simpleKnnCrossJoin .getNewQuery () );
181194 }
195+ if ( config .numberOfSimpleKnnRealFeatureFilteredQueries > 0 ) {
196+ executor .executeQuery ( simpleKnnRealFeatureFiltered .getNewQuery () );
197+ }
198+ if ( config .numberOfSimpleKnnBooleanFeatureQueries > 0 ) {
199+ executor .executeQuery ( simpleKnnBooleanFeature .getNewQuery () );
200+ }
201+ if ( config .numberOfSimpleKnnRealFeatureFilteredQueries > 0 ) {
202+ executor .executeQuery ( simpleKnnBooleanFeatureFiltered .getNewQuery () );
203+ }
182204 } catch ( ExecutorException e ) {
183205 throw new RuntimeException ( "Error while executing warm-up queries" , e );
184206 } finally {
0 commit comments