This is an automated email from the ASF dual-hosted git repository.

mblow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git

commit 0c91bd7c564e1bd5cb5d54b137f41a4d9b9db076
Author: Dmitry Lychagin <[email protected]>
AuthorDate: Fri Apr 3 11:17:39 2020 -0700

    [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 <[email protected]>
    Tested-by: Jenkins <[email protected]>
    Reviewed-by: Dmitry Lychagin <[email protected]>
    Reviewed-by: Hussain Towaileb <[email protected]>
---
 .../asterix/app/translator/QueryTranslator.java    | 37 ++++++----------------
 1 file changed, 10 insertions(+), 27 deletions(-)

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.KeyFieldTypeUtil;
 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 @@ public class QueryTranslator extends 
AbstractLangTranslator implements IStatemen
                             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 @@ public class QueryTranslator extends 
AbstractLangTranslator implements IStatemen
         }
     }
 
+    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 @@ public class QueryTranslator extends 
AbstractLangTranslator implements IStatemen
             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 {
-    }
 }

Reply via email to