You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by mb...@apache.org on 2020/05/12 12:52:42 UTC

[asterixdb] 01/02: [NO ISSUE][COMP] Minor refactoring in QueryTranslator

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 <dm...@couchbase.com>
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 <je...@fulliautomatix.ics.uci.edu>
    Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
    Reviewed-by: Dmitry Lychagin <dm...@couchbase.com>
    Reviewed-by: Hussain Towaileb <hu...@gmail.com>
---
 .../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 {
-    }
 }