diff --git a/plugins/proto-interface/src/main/java/org/polypheny/db/protointerface/statementProcessing/MongoImplementer.java b/plugins/proto-interface/src/main/java/org/polypheny/db/protointerface/statementProcessing/MongoImplementer.java index 1fb90f82b3..f4b7c2e8e4 100644 --- a/plugins/proto-interface/src/main/java/org/polypheny/db/protointerface/statementProcessing/MongoImplementer.java +++ b/plugins/proto-interface/src/main/java/org/polypheny/db/protointerface/statementProcessing/MongoImplementer.java @@ -53,8 +53,13 @@ public void implement( PIStatement piStatement ) throws PIServiceException { 9001 ); } - String query = piStatement.getQuery(); - List implementations = LanguageManager.getINSTANCE().anyPrepareQuery( QueryContext.builder().query( query ).language( QueryLanguage.from( "mql" ) ).namespaceId( piStatement.getNamespace().id ).build(), statement ); + QueryContext context = QueryContext.builder() + .query( piStatement.getQuery() ) + .language( QueryLanguage.from( "mql" ) ) + .namespaceId( piStatement.getNamespace().id ) + .origin( ORIGIN ) + .build(); + List implementations = LanguageManager.getINSTANCE().anyPrepareQuery( context, statement ); piStatement.setImplementation( implementations.get( 0 ).getImplementation() ); } diff --git a/plugins/proto-interface/src/main/java/org/polypheny/db/protointerface/statementProcessing/SqlImplementer.java b/plugins/proto-interface/src/main/java/org/polypheny/db/protointerface/statementProcessing/SqlImplementer.java index 91517135f0..86eaccf215 100644 --- a/plugins/proto-interface/src/main/java/org/polypheny/db/protointerface/statementProcessing/SqlImplementer.java +++ b/plugins/proto-interface/src/main/java/org/polypheny/db/protointerface/statementProcessing/SqlImplementer.java @@ -53,8 +53,13 @@ public void implement( PIStatement piStatement ) throws PIServiceException { 9003 ); } - String query = piStatement.getQuery(); - List implementations = LanguageManager.getINSTANCE().anyPrepareQuery( QueryContext.builder().query( query ).language( QueryLanguage.from( "sql" ) ).namespaceId( piStatement.getNamespace().id ).build(), statement ); + QueryContext context = QueryContext.builder() + .query( piStatement.getQuery() ) + .language( QueryLanguage.from( "sql" ) ) + .namespaceId( piStatement.getNamespace().id ) + .origin( ORIGIN ) + .build(); + List implementations = LanguageManager.getINSTANCE().anyPrepareQuery( context, statement ); piStatement.setImplementation( implementations.get( 0 ).getImplementation() ); } diff --git a/plugins/proto-interface/src/main/java/org/polypheny/db/protointerface/statementProcessing/StatementImplementer.java b/plugins/proto-interface/src/main/java/org/polypheny/db/protointerface/statementProcessing/StatementImplementer.java index 12f57378c2..991f0ed1a3 100644 --- a/plugins/proto-interface/src/main/java/org/polypheny/db/protointerface/statementProcessing/StatementImplementer.java +++ b/plugins/proto-interface/src/main/java/org/polypheny/db/protointerface/statementProcessing/StatementImplementer.java @@ -21,12 +21,16 @@ public abstract class StatementImplementer { - protected boolean hasInvalidLanguage(PIStatement piStatement) { + protected final String ORIGIN = "Proto-Interface"; + + + protected boolean hasInvalidLanguage( PIStatement piStatement ) { return piStatement.getLanguage() != getLanguage(); } + abstract QueryLanguage getLanguage(); - abstract void implement(PIStatement piStatement ); + abstract void implement( PIStatement piStatement ); }