[ASTERIXDB-3227][COMP] Refactor QueryTranslator doCreateDatasetStatement()

    - user model changes: no
    - storage format changes: no
    - interface changes: no

    This small patch extracts dataset object creation in function getDataset(..) out of
    doCreateDatasetStatement(..)

Change-Id: I7da017d4bf1c56381033e5c07cb6f094bbd22aca
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17648
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Hussain Towaileb <hussainht@gmail.com>
Tested-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 dc165a0..f390237 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
@@ -90,6 +90,7 @@
 import org.apache.asterix.common.functions.FunctionSignature;
 import org.apache.asterix.common.metadata.DatasetFullyQualifiedName;
 import org.apache.asterix.common.metadata.DataverseName;
+import org.apache.asterix.common.metadata.IDataset;
 import org.apache.asterix.common.metadata.IMetadataLockUtil;
 import org.apache.asterix.common.utils.JobUtils;
 import org.apache.asterix.common.utils.JobUtils.ProgressState;
@@ -886,10 +887,9 @@
             }
 
             // #. add a new dataset with PendingAddOp
-            dataset = new Dataset(dataverseName, datasetName, itemTypeDataverseName, itemTypeName,
-                    metaItemTypeDataverseName, metaItemTypeName, ngName, compactionPolicy, compactionPolicyProperties,
-                    datasetDetails, dd.getHints(), dsType, DatasetIdFactory.generateDatasetId(),
-                    MetadataUtil.PENDING_ADD_OP, compressionScheme, datasetFormatInfo);
+            dataset = (Dataset) createDataset(dd, dataverseName, datasetName, itemTypeDataverseName, itemTypeName,
+                    metaItemTypeDataverseName, metaItemTypeName, dsType, compactionPolicy, compactionPolicyProperties,
+                    compressionScheme, datasetFormatInfo, datasetDetails, ngName);
             MetadataManager.INSTANCE.addDataset(metadataProvider.getMetadataTxnContext(), dataset);
 
             if (itemTypeIsInline) {
@@ -981,6 +981,18 @@
         return Optional.of(dataset);
     }
 
+    protected IDataset createDataset(DatasetDecl dd, DataverseName dataverseName, String datasetName,
+            DataverseName itemTypeDataverseName, String itemTypeName, DataverseName metaItemTypeDataverseName,
+            String metaItemTypeName, DatasetType dsType, String compactionPolicy,
+            Map<String, String> compactionPolicyProperties, String compressionScheme,
+            DatasetFormatInfo datasetFormatInfo, IDatasetDetails datasetDetails, String ngName)
+            throws AlgebricksException {
+        return new Dataset(dataverseName, datasetName, itemTypeDataverseName, itemTypeName, metaItemTypeDataverseName,
+                metaItemTypeName, ngName, compactionPolicy, compactionPolicyProperties, datasetDetails, dd.getHints(),
+                dsType, DatasetIdFactory.generateDatasetId(), MetadataUtil.PENDING_ADD_OP, compressionScheme,
+                datasetFormatInfo);
+    }
+
     protected Triple<DataverseName, String, Boolean> extractDatasetItemTypeName(DataverseName datasetDataverseName,
             String datasetName, TypeExpression itemTypeExpr, boolean isMetaItemType, SourceLocation sourceLoc)
             throws CompilationException {