[NO ISSUE][COMP] Minor refactoring in QueryTranslator
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
- Replace QueryTranslator method
validateExternalDatasetRequirements()
with createExternalDatasetProperties()
Change-Id: Ifbf54dbcd560a3c987f6c42a387d1fa0f0e41e0a
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/5566
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Dmitry Lychagin <dmitry.lychagin@couchbase.com>
Reviewed-by: Hussain Towaileb <hussainht@gmail.com>
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
index a440ae4..81dce6d 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
@@ -157,8 +157,6 @@
import org.apache.asterix.metadata.utils.MetadataConstants;
import org.apache.asterix.metadata.utils.MetadataLockUtil;
import org.apache.asterix.metadata.utils.MetadataUtil;
-import org.apache.asterix.object.base.AdmObjectNode;
-import org.apache.asterix.object.base.AdmStringNode;
import org.apache.asterix.om.base.IAObject;
import org.apache.asterix.om.types.ARecordType;
import org.apache.asterix.om.types.ATypeTag;
@@ -714,18 +712,10 @@
keySourceIndicators, partitioningTypes, autogenerated, filterField);
break;
case EXTERNAL:
- validateExternalDatasetRequirements(appCtx, metadataProvider, mdTxnCtx, dd);
- String adapter = ((ExternalDetailsDecl) dd.getDatasetDetailsDecl()).getAdapter();
- Map<String, String> properties = ((ExternalDetailsDecl) dd.getDatasetDetailsDecl()).getProperties();
-
- // Add the withObjectNode items to the external dataset properties
- if (!dd.getWithObjectNode().isEmpty()) {
- AdmObjectNode withObjectNode = dd.getWithObjectNode();
- dd.getWithObjectNode().getFieldNames().iterator().forEachRemaining(fieldName -> properties
- .put(fieldName, ((AdmStringNode) withObjectNode.get(fieldName)).get()));
- }
- datasetDetails =
- new ExternalDatasetDetails(adapter, properties, new Date(), TransactionState.COMMIT);
+ ExternalDetailsDecl externalDetails = (ExternalDetailsDecl) dd.getDatasetDetailsDecl();
+ Map<String, String> properties = createExternalDatasetProperties(dd, metadataProvider, mdTxnCtx);
+ datasetDetails = new ExternalDatasetDetails(externalDetails.getAdapter(), properties, new Date(),
+ TransactionState.COMMIT);
break;
default:
throw new CompilationException(ErrorCode.COMPILATION_ERROR, sourceLoc,
@@ -814,6 +804,12 @@
}
}
+ protected Map<String, String> createExternalDatasetProperties(DatasetDecl dd, MetadataProvider metadataProvider,
+ MetadataTransactionContext mdTxnCtx) throws AlgebricksException {
+ ExternalDetailsDecl externalDetails = (ExternalDetailsDecl) dd.getDatasetDetailsDecl();
+ return externalDetails.getProperties();
+ }
+
protected static void validateIfResourceIsActiveInFeed(ICcApplicationContext appCtx, Dataset dataset,
SourceLocation sourceLoc) throws CompilationException {
ActiveNotificationHandler activeEventHandler =
@@ -3163,17 +3159,4 @@
throw new RuntimeDataException(ErrorCode.REQUEST_CANCELLED, clientRequest.getId());
}
}
-
- /**
- * Performs any required validation before creating an external dataset
- *
- * @param appContext {@link ICcApplicationContext} context
- * @param metadataProvider {@link MetadataProvider} metadata provider
- * @param mdTxnCtx {@link MetadataTransactionContext} metadata transaction context
- * @param datasetDecl {@link DatasetDecl} dataset declaration statement
- */
- protected void validateExternalDatasetRequirements(ICcApplicationContext appContext,
- MetadataProvider metadataProvider, MetadataTransactionContext mdTxnCtx, DatasetDecl datasetDecl)
- throws Exception {
- }
}