Merge commit '0c91bd7c564e1bd5cb5d54b137f41a4d9b9db076' into HEAD
Change-Id: Iebc71d2b9797e5f645580ea8ae2b7e149e749a03
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 cf14555..1125c1e 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
@@ -171,8 +171,6 @@
import org.apache.asterix.metadata.utils.KeyFieldTypeUtil;
import org.apache.asterix.metadata.utils.MetadataConstants;
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;
@@ -756,18 +754,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,
@@ -854,6 +844,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 =
@@ -3417,17 +3413,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 {
- }
}