Merged hyracks_stabilization r170:r191.

git-svn-id: https://asterixdb.googlecode.com/svn/branches/asterix-fix-issue-9@192 eaa15691-b419-025a-1212-ee371bd00084
diff --git a/asterix-app/src/main/java/edu/uci/ics/asterix/api/common/APIFramework.java b/asterix-app/src/main/java/edu/uci/ics/asterix/api/common/APIFramework.java
index b0b27ed..43f0e5a 100644
--- a/asterix-app/src/main/java/edu/uci/ics/asterix/api/common/APIFramework.java
+++ b/asterix-app/src/main/java/edu/uci/ics/asterix/api/common/APIFramework.java
@@ -4,7 +4,6 @@
 import java.rmi.RemoteException;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
 
 import org.json.JSONException;
 
@@ -31,7 +30,6 @@
 import edu.uci.ics.asterix.metadata.MetadataTransactionContext;
 import edu.uci.ics.asterix.metadata.declared.AqlCompiledMetadataDeclarations;
 import edu.uci.ics.asterix.metadata.declared.AqlMetadataProvider;
-import edu.uci.ics.asterix.metadata.entities.Index;
 import edu.uci.ics.asterix.optimizer.base.RuleCollections;
 import edu.uci.ics.asterix.runtime.job.listener.JobEventListenerFactory;
 import edu.uci.ics.asterix.transaction.management.exception.ACIDException;
@@ -69,7 +67,6 @@
 import edu.uci.ics.hyracks.algebricks.core.rewriter.base.PhysicalOptimizationConfig;
 import edu.uci.ics.hyracks.algebricks.core.utils.Pair;
 import edu.uci.ics.hyracks.api.client.IHyracksClientConnection;
-import edu.uci.ics.hyracks.api.client.NodeControllerInfo;
 import edu.uci.ics.hyracks.api.job.JobId;
 import edu.uci.ics.hyracks.api.job.JobSpecification;
 
@@ -194,20 +191,7 @@
                 switch (stmt.getKind()) {
                     case LOAD_FROM_FILE: {
                         CompiledLoadFromFileStatement stmtLoad = (CompiledLoadFromFileStatement) stmt;
-                        dmlJobs.addAll(DatasetOperations.createLoadDatasetJobSpec(stmtLoad, metadata));
-                        // Also load the dataset's secondary indexes.
-                        List<Index> datasetIndexes = MetadataManager.INSTANCE.getDatasetIndexes(mdTxnCtx,
-                                dataverseName, stmtLoad.getDatasetName());
-                        for (Index index : datasetIndexes) {
-                            if (!index.isSecondaryIndex()) {
-                                continue;
-                            }
-                            // Recreate CompiledCreateIndexStatement from metadata entity 'index'.
-                            CompiledCreateIndexStatement cis = new CompiledCreateIndexStatement(index.getIndexName(),
-                                    index.getDatasetName(), index.getKeyFieldNames(), index.getIndexType());
-                            JobSpecification jobSpec = IndexOperations.buildCreateIndexJobSpec(cis, metadata);
-                            dmlJobs.add(new Job(jobSpec));
-                        }
+                        dmlJobs.add(DatasetOperations.createLoadDatasetJobSpec(stmtLoad, metadata));
                         break;
                     }
                     case WRITE_FROM_QUERY_RESULT: {
diff --git a/asterix-app/src/main/java/edu/uci/ics/asterix/aql/translator/DdlTranslator.java b/asterix-app/src/main/java/edu/uci/ics/asterix/aql/translator/DdlTranslator.java
index 9565dde..f3dc2d4 100644
--- a/asterix-app/src/main/java/edu/uci/ics/asterix/aql/translator/DdlTranslator.java
+++ b/asterix-app/src/main/java/edu/uci/ics/asterix/aql/translator/DdlTranslator.java
@@ -21,8 +21,8 @@
 import java.util.List;
 import java.util.Map;
 
-import edu.uci.ics.asterix.api.common.SessionConfig;
 import edu.uci.ics.asterix.api.common.APIFramework.DisplayFormat;
+import edu.uci.ics.asterix.api.common.SessionConfig;
 import edu.uci.ics.asterix.aql.base.Statement;
 import edu.uci.ics.asterix.aql.base.Statement.Kind;
 import edu.uci.ics.asterix.aql.expression.CreateDataverseStatement;
@@ -43,15 +43,15 @@
 import edu.uci.ics.asterix.aql.expression.OrderedListTypeDefinition;
 import edu.uci.ics.asterix.aql.expression.Query;
 import edu.uci.ics.asterix.aql.expression.RecordTypeDefinition;
+import edu.uci.ics.asterix.aql.expression.RecordTypeDefinition.RecordKind;
 import edu.uci.ics.asterix.aql.expression.TypeDecl;
 import edu.uci.ics.asterix.aql.expression.TypeDropStatement;
 import edu.uci.ics.asterix.aql.expression.TypeExpression;
 import edu.uci.ics.asterix.aql.expression.TypeReferenceExpression;
 import edu.uci.ics.asterix.aql.expression.UnorderedListTypeDefinition;
-import edu.uci.ics.asterix.aql.expression.RecordTypeDefinition.RecordKind;
 import edu.uci.ics.asterix.aql.util.FunctionUtils;
-import edu.uci.ics.asterix.common.config.GlobalConfig;
 import edu.uci.ics.asterix.common.config.DatasetConfig.DatasetType;
+import edu.uci.ics.asterix.common.config.GlobalConfig;
 import edu.uci.ics.asterix.common.exceptions.AsterixException;
 import edu.uci.ics.asterix.common.functions.FunctionConstants;
 import edu.uci.ics.asterix.common.parse.IParseFileSplitsDecl;
@@ -63,6 +63,7 @@
 import edu.uci.ics.asterix.metadata.MetadataTransactionContext;
 import edu.uci.ics.asterix.metadata.declared.AqlCompiledMetadataDeclarations;
 import edu.uci.ics.asterix.metadata.entities.AsterixBuiltinArtifactMap;
+import edu.uci.ics.asterix.metadata.entities.AsterixBuiltinArtifactMap.ARTIFACT_KIND;
 import edu.uci.ics.asterix.metadata.entities.AsterixBuiltinTypeMap;
 import edu.uci.ics.asterix.metadata.entities.Dataset;
 import edu.uci.ics.asterix.metadata.entities.Datatype;
@@ -73,7 +74,6 @@
 import edu.uci.ics.asterix.metadata.entities.Index;
 import edu.uci.ics.asterix.metadata.entities.InternalDatasetDetails;
 import edu.uci.ics.asterix.metadata.entities.NodeGroup;
-import edu.uci.ics.asterix.metadata.entities.AsterixBuiltinArtifactMap.ARTIFACT_KIND;
 import edu.uci.ics.asterix.om.types.AOrderedListType;
 import edu.uci.ics.asterix.om.types.ARecordType;
 import edu.uci.ics.asterix.om.types.ATypeTag;
@@ -125,7 +125,6 @@
         for (Statement stmt : aqlStatements) {
             validateOperation(compiledDeclarations, stmt);
             switch (stmt.getKind()) {
-            // connect statement
                 case DATAVERSE_DECL: {
                     checkForDataverseConnection(false);
                     DataverseDecl dvd = (DataverseDecl) stmt;
@@ -133,21 +132,20 @@
                     compiledDeclarations.connectToDataverse(dataverseName);
                     break;
                 }
-                // create statements
+                
                 case CREATE_DATAVERSE: {
                     checkForDataverseConnection(false);
                     CreateDataverseStatement stmtCreateDataverse = (CreateDataverseStatement) stmt;
                     String dvName = stmtCreateDataverse.getDataverseName().getValue();
                     Dataverse dv = MetadataManager.INSTANCE.getDataverse(mdTxnCtx, dvName);
-                    if (dv != null) {
-                        if (!stmtCreateDataverse.getIfNotExists())
-                            throw new AlgebricksException("\nA dataverse with this name " + dvName + " already exists.");
-                    } else {
-                        MetadataManager.INSTANCE.addDataverse(mdTxnCtx,
-                                new Dataverse(dvName, stmtCreateDataverse.getFormat()));
+                    if (dv != null && !stmtCreateDataverse.getIfNotExists()) {
+                            throw new AlgebricksException("A dataverse with this name " + dvName + " already exists.");
                     }
+                    MetadataManager.INSTANCE.addDataverse(mdTxnCtx,
+                    		new Dataverse(dvName, stmtCreateDataverse.getFormat()));
                     break;
                 }
+                
                 case DATASET_DECL: {
                     checkForDataverseConnection(true);
                     DatasetDecl dd = (DatasetDecl) stmt;
@@ -155,78 +153,64 @@
                     DatasetType dsType = dd.getDatasetType();
                     String itemTypeName = null;
                     IDatasetDetails datasetDetails = null;
-
                     Dataset ds = MetadataManager.INSTANCE.getDataset(mdTxnCtx, compiledDeclarations.getDataverseName(),
                             datasetName);
-                    if (ds != null) {
-                        if (!dd.getIfNotExists())
-                            throw new AlgebricksException("\nA dataset with this name " + datasetName
-                                    + " already exists.");
-                    } else {
-                        itemTypeName = dd.getItemTypeName().getValue();
-                        Datatype dt = MetadataManager.INSTANCE.getDatatype(mdTxnCtx,
-                                compiledDeclarations.getDataverseName(), itemTypeName);
-                        if (dt == null)
-                            throw new AlgebricksException(": type " + itemTypeName + " could not be found.");
-
-                        switch (dd.getDatasetType()) {
-                            case INTERNAL: {
-                                IAType itemType = dt.getDatatype();
-                                if (itemType.getTypeTag() != ATypeTag.RECORD) {
-                                    throw new AlgebricksException("Can only partition ARecord's.");
-                                }
-                                List<String> partitioningExprs = ((InternalDetailsDecl) dd.getDatasetDetailsDecl())
-                                        .getPartitioningExprs();
-                                String ngName = ((InternalDetailsDecl) dd.getDatasetDetailsDecl()).getNodegroupName()
-                                        .getValue();
-                                datasetDetails = new InternalDatasetDetails(InternalDatasetDetails.FileStructure.BTREE,
-                                        InternalDatasetDetails.PartitioningStrategy.HASH, partitioningExprs,
-                                        partitioningExprs, ngName);
+                    if (ds != null && !dd.getIfNotExists()) {
+                        throw new AlgebricksException("A dataset with this name " + datasetName
+                                + " already exists.");
+                    } 
+                    itemTypeName = dd.getItemTypeName().getValue();
+                    Datatype dt = MetadataManager.INSTANCE.getDatatype(mdTxnCtx,
+                            compiledDeclarations.getDataverseName(), itemTypeName);
+                    if (dt == null) {
+                        throw new AlgebricksException(": type " + itemTypeName + " could not be found.");
+                    }
+                    switch (dd.getDatasetType()) {
+                        case INTERNAL: {
+                            IAType itemType = dt.getDatatype();
+                            if (itemType.getTypeTag() != ATypeTag.RECORD) {
+                                throw new AlgebricksException("Can only partition ARecord's.");
                             }
-                                break;
-                            case EXTERNAL: {
-                                String adapter = ((ExternalDetailsDecl) dd.getDatasetDetailsDecl()).getAdapter();
-                                Map<String, String> properties = ((ExternalDetailsDecl) dd.getDatasetDetailsDecl())
-                                        .getProperties();
-                                datasetDetails = new ExternalDatasetDetails(adapter, properties);
-                            }
-                                break;
-                            case FEED: {
-                                IAType itemType = dt.getDatatype();
-                                if (itemType.getTypeTag() != ATypeTag.RECORD) {
-                                    throw new AlgebricksException("Can only partition ARecord's.");
-                                }
-                                List<String> partitioningExprs = ((FeedDetailsDecl) dd.getDatasetDetailsDecl())
-                                        .getPartitioningExprs();
-                                String ngName = ((FeedDetailsDecl) dd.getDatasetDetailsDecl()).getNodegroupName()
-                                        .getValue();
-                                String adapter = ((FeedDetailsDecl) dd.getDatasetDetailsDecl()).getAdapterClassname();
-                                Map<String, String> properties = ((FeedDetailsDecl) dd.getDatasetDetailsDecl())
-                                        .getProperties();
-                                String functionIdentifier = ((FeedDetailsDecl) dd.getDatasetDetailsDecl())
-                                        .getFunctionIdentifier();
-                                datasetDetails = new FeedDatasetDetails(InternalDatasetDetails.FileStructure.BTREE,
-                                        InternalDatasetDetails.PartitioningStrategy.HASH, partitioningExprs,
-                                        partitioningExprs, ngName, adapter, properties, functionIdentifier,
-                                        FeedDatasetDetails.FeedState.INACTIVE.toString());
-
-                            }
-                                break;
+                            List<String> partitioningExprs = ((InternalDetailsDecl) dd.getDatasetDetailsDecl())
+                                    .getPartitioningExprs();
+                            String ngName = ((InternalDetailsDecl) dd.getDatasetDetailsDecl()).getNodegroupName()
+                                    .getValue();
+                            datasetDetails = new InternalDatasetDetails(InternalDatasetDetails.FileStructure.BTREE,
+                                    InternalDatasetDetails.PartitioningStrategy.HASH, partitioningExprs,
+                                    partitioningExprs, ngName);
+                            break;
                         }
-                        MetadataManager.INSTANCE.addDataset(mdTxnCtx,
-                                new Dataset(compiledDeclarations.getDataverseName(), datasetName, itemTypeName,
-                                        datasetDetails, dsType));
-
-                        // If the dataset is of type INTERNAL or FEED, Asterix
-                        // needs to create Tree indexes at all nodes
-                        // corresponding to the associated node group. This is
-                        // not required for external datasets as
-                        // the data for such a dataset is never persisted in
-                        // Asterix storage.
-                        if (dd.getDatasetType() == DatasetType.INTERNAL || dd.getDatasetType() == DatasetType.FEED) {
-                            compileDatasetInitializeStatement(hcc, mdTxnCtx.getTxnId(), datasetName);
+                        case EXTERNAL: {
+                            String adapter = ((ExternalDetailsDecl) dd.getDatasetDetailsDecl()).getAdapter();
+                            Map<String, String> properties = ((ExternalDetailsDecl) dd.getDatasetDetailsDecl())
+                                    .getProperties();
+                            datasetDetails = new ExternalDatasetDetails(adapter, properties);
+                            break;
+                        }
+                        case FEED: {
+                            IAType itemType = dt.getDatatype();
+                            if (itemType.getTypeTag() != ATypeTag.RECORD) {
+                                throw new AlgebricksException("Can only partition ARecord's.");
+                            }
+                            List<String> partitioningExprs = ((FeedDetailsDecl) dd.getDatasetDetailsDecl())
+                                    .getPartitioningExprs();
+                            String ngName = ((FeedDetailsDecl) dd.getDatasetDetailsDecl()).getNodegroupName()
+                                    .getValue();
+                            String adapter = ((FeedDetailsDecl) dd.getDatasetDetailsDecl()).getAdapterClassname();
+                            Map<String, String> properties = ((FeedDetailsDecl) dd.getDatasetDetailsDecl())
+                                    .getProperties();
+                            String functionIdentifier = ((FeedDetailsDecl) dd.getDatasetDetailsDecl())
+                                    .getFunctionIdentifier();
+                            datasetDetails = new FeedDatasetDetails(InternalDatasetDetails.FileStructure.BTREE,
+                                    InternalDatasetDetails.PartitioningStrategy.HASH, partitioningExprs,
+                                    partitioningExprs, ngName, adapter, properties, functionIdentifier,
+                                    FeedDatasetDetails.FeedState.INACTIVE.toString());
+                            break;
                         }
                     }
+                    MetadataManager.INSTANCE.addDataset(mdTxnCtx,
+                            new Dataset(compiledDeclarations.getDataverseName(), datasetName, itemTypeName,
+                                    datasetDetails, dsType));
                     break;
                 }
 
@@ -236,16 +220,18 @@
                     String datasetName = stmtCreateIndex.getDatasetName().getValue();
                     Dataset ds = MetadataManager.INSTANCE.getDataset(mdTxnCtx, compiledDeclarations.getDataverseName(),
                             datasetName);
-                    if (ds == null)
-                        throw new AlgebricksException("\nThere is no dataset with this name " + datasetName);
+                    if (ds == null) {
+                        throw new AlgebricksException("There is no dataset with this name " + datasetName);
+                    }
                     String indexName = stmtCreateIndex.getIndexName().getValue();
                     Index idx = MetadataManager.INSTANCE.getIndex(mdTxnCtx, compiledDeclarations.getDataverseName(),
                             datasetName, indexName);
                     if (idx != null) {
-                        if (!stmtCreateIndex.getIfNotExists())
-                            throw new AlgebricksException("\nAn index with this name " + indexName + " already exists.");
-                        else
+                        if (!stmtCreateIndex.getIfNotExists()) {
+                            throw new AlgebricksException("An index with this name " + indexName + " already exists.");
+                        } else {
                             stmtCreateIndex.setNeedToCreate(false);
+                        }
                     } else {
                         MetadataManager.INSTANCE.addIndex(mdTxnCtx, new Index(compiledDeclarations.getDataverseName(),
                                 datasetName, indexName, stmtCreateIndex.getIndexType(),
@@ -261,7 +247,7 @@
                             compiledDeclarations.getDataverseName(), typeName);
                     if (dt != null) {
                         if (!stmtCreateType.getIfNotExists())
-                            throw new AlgebricksException("\nA datatype with this name " + typeName
+                            throw new AlgebricksException("A datatype with this name " + typeName
                                     + " already exists.");
                     } else {
                         if (builtinTypeMap.get(typeName) != null) {
@@ -281,7 +267,7 @@
                     NodeGroup ng = MetadataManager.INSTANCE.getNodegroup(mdTxnCtx, ngName);
                     if (ng != null) {
                         if (!stmtCreateNodegroup.getIfNotExists())
-                            throw new AlgebricksException("\nA nodegroup with this name " + ngName + " already exists.");
+                            throw new AlgebricksException("A nodegroup with this name " + ngName + " already exists.");
                     } else {
                         List<Identifier> ncIdentifiers = stmtCreateNodegroup.getNodeControllerNames();
                         List<String> ncNames = new ArrayList<String>(ncIdentifiers.size());
@@ -297,7 +283,7 @@
                     DataverseDropStatement stmtDelete = (DataverseDropStatement) stmt;
                     String dvName = stmtDelete.getDataverseName().getValue();
                     if (AsterixBuiltinArtifactMap.isSystemProtectedArtifact(ARTIFACT_KIND.DATAVERSE, dvName)) {
-                        throw new AsterixException(" Invalid Operation cannot drop dataverse " + dvName
+                        throw new AsterixException("Invalid Operation cannot drop dataverse " + dvName
                                 + " (protected by system)");
                     }
 
@@ -307,8 +293,9 @@
 
                     Dataverse dv = MetadataManager.INSTANCE.getDataverse(mdTxnCtx, dvName);
                     if (dv == null) {
-                        if (!stmtDelete.getIfExists())
-                            throw new AlgebricksException("\nThere is no dataverse with this name " + dvName + ".");
+                        if (!stmtDelete.getIfExists()) {
+                            throw new AlgebricksException("There is no dataverse with this name " + dvName + ".");
+                        }
                     } else {
                         compiledDeclarations.connectToDataverse(dvName);
                         List<Dataset> datasets = MetadataManager.INSTANCE.getDataverseDatasets(mdTxnCtx, dvName);
@@ -338,14 +325,14 @@
                     DropStatement stmtDelete = (DropStatement) stmt;
                     String datasetName = stmtDelete.getDatasetName().getValue();
                     if (AsterixBuiltinArtifactMap.isSystemProtectedArtifact(ARTIFACT_KIND.DATASET, datasetName)) {
-                        throw new AsterixException(" Invalid Operation cannot drop dataset " + datasetName
+                        throw new AsterixException("Invalid Operation cannot drop dataset " + datasetName
                                 + " (protected by system)");
                     }
                     Dataset ds = MetadataManager.INSTANCE.getDataset(mdTxnCtx, compiledDeclarations.getDataverseName(),
                             datasetName);
                     if (ds == null) {
                         if (!stmtDelete.getIfExists())
-                            throw new AlgebricksException("\nThere is no dataset with this name " + datasetName + ".");
+                            throw new AlgebricksException("There is no dataset with this name " + datasetName + ".");
                     } else {
                         if (ds.getType() == DatasetType.INTERNAL || ds.getType() == DatasetType.FEED) {
                             List<Index> indexes = MetadataManager.INSTANCE.getDatasetIndexes(mdTxnCtx,
@@ -367,14 +354,14 @@
                     Dataset ds = MetadataManager.INSTANCE.getDataset(mdTxnCtx, compiledDeclarations.getDataverseName(),
                             datasetName);
                     if (ds == null)
-                        throw new AlgebricksException("\nThere is no dataset with this name " + datasetName + ".");
+                        throw new AlgebricksException("There is no dataset with this name " + datasetName + ".");
                     if (ds.getType() == DatasetType.INTERNAL || ds.getType() == DatasetType.FEED) {
                         String indexName = stmtDelete.getIndexName().getValue();
                         Index idx = MetadataManager.INSTANCE.getIndex(mdTxnCtx,
                                 compiledDeclarations.getDataverseName(), datasetName, indexName);
                         if (idx == null) {
                             if (!stmtDelete.getIfExists())
-                                throw new AlgebricksException("\nThere is no index with this name " + indexName + ".");
+                                throw new AlgebricksException("There is no index with this name " + indexName + ".");
                         } else
                             compileIndexDropStatement(hcc, mdTxnCtx, datasetName, indexName);
                     } else {
@@ -391,7 +378,7 @@
                             compiledDeclarations.getDataverseName(), typeName);
                     if (dt == null) {
                         if (!stmtDelete.getIfExists())
-                            throw new AlgebricksException("\nThere is no datatype with this name " + typeName + ".");
+                            throw new AlgebricksException("There is no datatype with this name " + typeName + ".");
                     } else
                         MetadataManager.INSTANCE.dropDatatype(mdTxnCtx, compiledDeclarations.getDataverseName(),
                                 typeName);
@@ -401,13 +388,13 @@
                     NodeGroupDropStatement stmtDelete = (NodeGroupDropStatement) stmt;
                     String nodegroupName = stmtDelete.getNodeGroupName().getValue();
                     if (AsterixBuiltinArtifactMap.isSystemProtectedArtifact(ARTIFACT_KIND.NODEGROUP, nodegroupName)) {
-                        throw new AsterixException(" Invalid Operation cannot drop nodegroup " + nodegroupName
+                        throw new AsterixException("Invalid Operation cannot drop nodegroup " + nodegroupName
                                 + " (protected by system)");
                     }
                     NodeGroup ng = MetadataManager.INSTANCE.getNodegroup(mdTxnCtx, nodegroupName);
                     if (ng == null) {
                         if (!stmtDelete.getIfExists())
-                            throw new AlgebricksException("\nThere is no nodegroup with this name " + nodegroupName
+                            throw new AlgebricksException("There is no nodegroup with this name " + nodegroupName
                                     + ".");
                     } else
                         MetadataManager.INSTANCE.dropNodegroup(mdTxnCtx, nodegroupName);
@@ -418,12 +405,10 @@
                     CreateFunctionStatement cfs = (CreateFunctionStatement) stmt;
                     Function function = new Function(compiledDeclarations.getDataverseName(), cfs.getFunctionIdentifier().getFunctionName(),
                             cfs.getFunctionIdentifier().getArity(), cfs.getParamList(), cfs.getFunctionBody());
-                    
-                    
                     try {
                         FunctionUtils.getFunctionDecl(function);
                     } catch (Exception e) {
-                        throw new AsterixException("unable to compile function definition", e);
+                        throw new AsterixException("Unable to compile function definition", e);
                     }
                     MetadataManager.INSTANCE.addFunction(mdTxnCtx, new Function(
                             compiledDeclarations.getDataverseName(), cfs.getFunctionIdentifier().getFunctionName(), cfs
@@ -438,14 +423,14 @@
                     FunctionIdentifier fId = new FunctionIdentifier(FunctionConstants.ASTERIX_NS, functionName,
                             stmtDropFunction.getArity(), false);
                     if (AsterixBuiltinArtifactMap.isSystemProtectedArtifact(ARTIFACT_KIND.FUNCTION, fId)) {
-                        throw new AsterixException(" Invalid Operation cannot drop function " + functionName
+                        throw new AsterixException("Invalid Operation cannot drop function " + functionName
                                 + " (protected by system)");
                     }
                     Function function = MetadataManager.INSTANCE.getFunction(mdTxnCtx,
                             compiledDeclarations.getDataverseName(), functionName, stmtDropFunction.getArity());
                     if (function == null) {
                         if (!stmtDropFunction.getIfExists())
-                            throw new AlgebricksException("\nThere is no function with this name " + functionName + ".");
+                            throw new AlgebricksException("There is no function with this name " + functionName + ".");
                     } else {
                         MetadataManager.INSTANCE.dropFunction(mdTxnCtx, compiledDeclarations.getDataverseName(),
                                 functionName, stmtDropFunction.getArity());
@@ -456,9 +441,9 @@
         }
 
         if (disconnectFromDataverse) {
-            // disconnect the dataverse
-            if (compiledDeclarations.isConnectedToDataverse())
+            if (compiledDeclarations.isConnectedToDataverse()) {
                 compiledDeclarations.disconnectFromDataverse();
+            }
         }
     }
 
@@ -499,15 +484,6 @@
         MetadataManager.INSTANCE.dropDataset(mdTxnCtx, compiledDeclarations.getDataverseName(), datasetName);
     }
 
-    private void compileDatasetInitializeStatement(IHyracksClientConnection hcc, long txnId, String datasetName)
-            throws Exception {
-        JobSpecification[] jobs = DatasetOperations.createInitializeDatasetJobSpec(txnId, datasetName,
-                compiledDeclarations);
-        for (JobSpecification job : jobs) {
-            runJob(hcc, job);
-        }
-    }
-
     public AqlCompiledMetadataDeclarations getCompiledDeclarations() {
         return compiledDeclarations;
     }
diff --git a/asterix-app/src/main/java/edu/uci/ics/asterix/file/DatasetOperations.java b/asterix-app/src/main/java/edu/uci/ics/asterix/file/DatasetOperations.java
index 9f41b65..6c6a501 100644
--- a/asterix-app/src/main/java/edu/uci/ics/asterix/file/DatasetOperations.java
+++ b/asterix-app/src/main/java/edu/uci/ics/asterix/file/DatasetOperations.java
@@ -15,20 +15,18 @@
 package edu.uci.ics.asterix.file;
 
 import java.rmi.RemoteException;
-import java.util.ArrayList;
 import java.util.List;
 import java.util.logging.Logger;
 
 import edu.uci.ics.asterix.api.common.Job;
 import edu.uci.ics.asterix.aql.translator.DdlTranslator.CompiledDatasetDropStatement;
+import edu.uci.ics.asterix.common.config.DatasetConfig.DatasetType;
 import edu.uci.ics.asterix.common.config.GlobalConfig;
 import edu.uci.ics.asterix.common.config.OptimizationConfUtil;
-import edu.uci.ics.asterix.common.config.DatasetConfig.DatasetType;
 import edu.uci.ics.asterix.common.context.AsterixStorageManagerInterface;
 import edu.uci.ics.asterix.common.context.AsterixTreeRegistryProvider;
 import edu.uci.ics.asterix.common.exceptions.AsterixException;
 import edu.uci.ics.asterix.formats.base.IDataFormat;
-import edu.uci.ics.asterix.metadata.MetadataException;
 import edu.uci.ics.asterix.metadata.declared.AqlCompiledDatasetDecl;
 import edu.uci.ics.asterix.metadata.declared.AqlCompiledExternalDatasetDetails;
 import edu.uci.ics.asterix.metadata.declared.AqlCompiledIndexDecl;
@@ -37,7 +35,6 @@
 import edu.uci.ics.asterix.metadata.utils.DatasetUtils;
 import edu.uci.ics.asterix.om.types.ARecordType;
 import edu.uci.ics.asterix.om.types.IAType;
-import edu.uci.ics.asterix.runtime.operators.std.NoTupleSourceRuntimeFactory;
 import edu.uci.ics.asterix.transaction.management.exception.ACIDException;
 import edu.uci.ics.asterix.translator.DmlTranslator.CompiledLoadFromFileStatement;
 import edu.uci.ics.hyracks.algebricks.core.algebra.expressions.ScalarFunctionCallExpression;
@@ -69,11 +66,11 @@
 import edu.uci.ics.hyracks.dataflow.std.file.IFileSplitProvider;
 import edu.uci.ics.hyracks.dataflow.std.sort.ExternalSortOperatorDescriptor;
 import edu.uci.ics.hyracks.storage.am.btree.dataflow.BTreeDataflowHelperFactory;
-import edu.uci.ics.hyracks.storage.am.common.api.ITreeIndexFrameFactory;
 import edu.uci.ics.hyracks.storage.am.common.dataflow.IIndex;
 import edu.uci.ics.hyracks.storage.am.common.dataflow.IIndexRegistryProvider;
 import edu.uci.ics.hyracks.storage.am.common.dataflow.TreeIndexBulkLoadOperatorDescriptor;
 import edu.uci.ics.hyracks.storage.am.common.dataflow.TreeIndexDropOperatorDescriptor;
+import edu.uci.ics.hyracks.storage.am.common.impls.NoOpOperationCallbackProvider;
 import edu.uci.ics.hyracks.storage.common.IStorageManagerInterface;
 
 public class DatasetOperations {
@@ -111,7 +108,7 @@
             int n = secondaryIndexes.size();
             specs = new JobSpecification[n + 1];
             int i = 0;
-            // first, drop indexes
+            // First, drop secondary indexes.
             for (AqlCompiledIndexDecl acid : secondaryIndexes) {
                 specs[i] = new JobSpecification();
                 Pair<IFileSplitProvider, AlgebricksPartitionConstraint> idxSplitsAndConstraint = metadata
@@ -140,92 +137,9 @@
         return specs;
     }
 
-    public static JobSpecification[] createInitializeDatasetJobSpec(long txnId, String datasetName,
-            AqlCompiledMetadataDeclarations metadata) throws AsterixException {
-
-        AqlCompiledDatasetDecl compiledDatasetDecl = metadata.findDataset(datasetName);
-        if (compiledDatasetDecl == null) {
-            throw new AsterixException("Could not find dataset " + datasetName);
-        }
-        if (compiledDatasetDecl.getDatasetType() != DatasetType.INTERNAL
-                && compiledDatasetDecl.getDatasetType() != DatasetType.FEED) {
-            throw new AsterixException("Cannot initialize  dataset  (" + datasetName + ")" + "of type "
-                    + compiledDatasetDecl.getDatasetType());
-        }
-
-        ARecordType itemType = (ARecordType) metadata.findType(compiledDatasetDecl.getItemTypeName());
-        IDataFormat format;
-        ISerializerDeserializer payloadSerde;
-        IBinaryComparatorFactory[] comparatorFactories;
-        ITypeTraits[] typeTraits;
-        Pair<IFileSplitProvider, AlgebricksPartitionConstraint> splitsAndConstraint;
-
-        try {
-            format = metadata.getFormat();
-            payloadSerde = format.getSerdeProvider().getSerializerDeserializer(itemType);
-            comparatorFactories = DatasetUtils.computeKeysBinaryComparatorFactories(compiledDatasetDecl, metadata
-                    .getFormat().getBinaryComparatorFactoryProvider());
-            typeTraits = DatasetUtils.computeTupleTypeTraits(compiledDatasetDecl, metadata);
-            splitsAndConstraint = metadata.splitProviderAndPartitionConstraintsForInternalOrFeedDataset(datasetName,
-                    datasetName);
-
-        } catch (AlgebricksException e1) {
-            throw new AsterixException(e1);
-        }
-
-        ITreeIndexFrameFactory interiorFrameFactory = AqlMetadataProvider.createBTreeNSMInteriorFrameFactory(typeTraits);
-        ITreeIndexFrameFactory leafFrameFactory = AqlMetadataProvider.createBTreeNSMLeafFrameFactory(typeTraits);
-
-        IIndexRegistryProvider<IIndex> btreeRegistryProvider = AsterixTreeRegistryProvider.INSTANCE;
-        IStorageManagerInterface storageManager = AsterixStorageManagerInterface.INSTANCE;
-
-        JobSpecification spec = new JobSpecification();
-        RecordDescriptor recDesc;
-        try {
-            recDesc = computePayloadKeyRecordDescriptor(compiledDatasetDecl, payloadSerde, metadata.getFormat());
-            NoTupleSourceRuntimeFactory factory = new NoTupleSourceRuntimeFactory();
-            AlgebricksMetaOperatorDescriptor asterixOp = new AlgebricksMetaOperatorDescriptor(spec, 0, 1,
-                    new IPushRuntimeFactory[] { factory }, new RecordDescriptor[] { recDesc });
-
-            // move key fieldsx to front
-            List<Triple<IEvaluatorFactory, ScalarFunctionCallExpression, IAType>> partitioningFunctions = DatasetUtils
-                    .getPartitioningFunctions(compiledDatasetDecl);
-            int numKeys = partitioningFunctions.size();
-            int[] keys = new int[numKeys];
-            for (int i = 0; i < numKeys; i++) {
-                keys[i] = i + 1;
-            }
-
-            int[] fieldPermutation = new int[numKeys + 1];
-            System.arraycopy(keys, 0, fieldPermutation, 0, numKeys);
-            fieldPermutation[numKeys] = 0;
-
-            TreeIndexBulkLoadOperatorDescriptor bulkLoad = new TreeIndexBulkLoadOperatorDescriptor(spec,
-                    storageManager, btreeRegistryProvider, splitsAndConstraint.first, interiorFrameFactory,
-                    leafFrameFactory, typeTraits, comparatorFactories, fieldPermutation,
-                    GlobalConfig.DEFAULT_BTREE_FILL_FACTOR, new BTreeDataflowHelperFactory());
-
-            AlgebricksPartitionConstraintHelper.setPartitionConstraintInJobSpec(spec, asterixOp,
-                    splitsAndConstraint.second);
-            AlgebricksPartitionConstraintHelper.setPartitionConstraintInJobSpec(spec, bulkLoad,
-                    splitsAndConstraint.second);
-
-            spec.connect(new OneToOneConnectorDescriptor(spec), asterixOp, 0, bulkLoad, 0);
-            spec.setConnectorPolicyAssignmentPolicy(new ConnectorPolicyAssignmentPolicy());
-            spec.addRoot(bulkLoad);
-        } catch (AlgebricksException e) {
-            throw new AsterixException(e);
-        }
-
-        return new JobSpecification[] { spec };
-    }
-
-    @SuppressWarnings("unchecked")
-    public static List<Job> createLoadDatasetJobSpec(CompiledLoadFromFileStatement loadStmt,
-            AqlCompiledMetadataDeclarations metadata) throws AsterixException {
-
+    public static Job createLoadDatasetJobSpec(CompiledLoadFromFileStatement loadStmt,
+            AqlCompiledMetadataDeclarations metadata) throws AsterixException, AlgebricksException {
         String datasetName = loadStmt.getDatasetName();
-
         AqlCompiledDatasetDecl compiledDatasetDecl = metadata.findDataset(datasetName);
         if (compiledDatasetDecl == null) {
             throw new AsterixException("Could not find dataset " + datasetName);
@@ -235,56 +149,26 @@
             throw new AsterixException("Cannot load data into dataset  (" + datasetName + ")" + "of type "
                     + compiledDatasetDecl.getDatasetType());
         }
-
-        List<Job> jobSpecs = new ArrayList<Job>();
-        try {
-            jobSpecs.addAll(dropDatasetIndexes(datasetName, metadata));
-        } catch (AlgebricksException ae) {
-            throw new AsterixException(ae);
-        }
+        JobSpecification spec = new JobSpecification();
 
         ARecordType itemType = (ARecordType) metadata.findType(compiledDatasetDecl.getItemTypeName());
-        IDataFormat format;
-        try {
-            format = metadata.getFormat();
-        } catch (AlgebricksException e1) {
-            throw new AsterixException(e1);
-        }
-        ISerializerDeserializer payloadSerde;
-        try {
-            payloadSerde = format.getSerdeProvider().getSerializerDeserializer(itemType);
-        } catch (AlgebricksException e) {
-            throw new AsterixException(e);
-        }
+        IDataFormat format = metadata.getFormat();
+        ISerializerDeserializer payloadSerde = format.getSerdeProvider().getSerializerDeserializer(itemType);
 
-        IBinaryHashFunctionFactory[] hashFactories;
-        IBinaryComparatorFactory[] comparatorFactories;
-        ITypeTraits[] typeTraits;
-        try {
-            hashFactories = DatasetUtils.computeKeysBinaryHashFunFactories(compiledDatasetDecl, metadata.getFormat()
-                    .getBinaryHashFunctionFactoryProvider());
-            comparatorFactories = DatasetUtils.computeKeysBinaryComparatorFactories(compiledDatasetDecl, metadata
-                    .getFormat().getBinaryComparatorFactoryProvider());
-            typeTraits = DatasetUtils.computeTupleTypeTraits(compiledDatasetDecl, metadata);
-        } catch (AlgebricksException e) {
-            throw new AsterixException(e);
-        }
+        IBinaryHashFunctionFactory[] hashFactories = DatasetUtils.computeKeysBinaryHashFunFactories(
+                compiledDatasetDecl, metadata.getFormat().getBinaryHashFunctionFactoryProvider());
+        IBinaryComparatorFactory[] comparatorFactories = DatasetUtils.computeKeysBinaryComparatorFactories(
+                compiledDatasetDecl, metadata.getFormat().getBinaryComparatorFactoryProvider());
+        ITypeTraits[] typeTraits = DatasetUtils.computeTupleTypeTraits(compiledDatasetDecl, metadata);
 
-        JobSpecification spec = new JobSpecification();
-        IOperatorDescriptor scanner;
-        AlgebricksPartitionConstraint scannerPc;
-        RecordDescriptor recDesc;
-        try {
-            AqlCompiledExternalDatasetDetails add = new AqlCompiledExternalDatasetDetails(loadStmt.getAdapter(),
-                    loadStmt.getProperties());
-            Pair<IOperatorDescriptor, AlgebricksPartitionConstraint> p = AqlMetadataProvider
-                    .buildExternalDataScannerRuntime(spec, itemType, add, format);
-            scanner = p.first;
-            scannerPc = p.second;
-            recDesc = computePayloadKeyRecordDescriptor(compiledDatasetDecl, payloadSerde, metadata.getFormat());
-        } catch (AlgebricksException e) {
-            throw new AsterixException(e);
-        }
+        AqlCompiledExternalDatasetDetails externalDatasetDetails = new AqlCompiledExternalDatasetDetails(loadStmt.getAdapter(),
+                loadStmt.getProperties());
+        Pair<IOperatorDescriptor, AlgebricksPartitionConstraint> p = AqlMetadataProvider
+                .buildExternalDataScannerRuntime(spec, itemType, externalDatasetDetails, format);
+        IOperatorDescriptor scanner = p.first;
+        AlgebricksPartitionConstraint scannerPc = p.second;
+        RecordDescriptor recDesc = computePayloadKeyRecordDescriptor(compiledDatasetDecl, payloadSerde,
+                metadata.getFormat());
         AlgebricksPartitionConstraintHelper.setPartitionConstraintInJobSpec(spec, scanner, scannerPc);
 
         AssignRuntimeFactory assign = makeAssignRuntimeFactory(compiledDatasetDecl);
@@ -300,26 +184,15 @@
         for (int i = 0; i < numKeys; i++) {
             keys[i] = i + 1;
         }
-        int framesLimit = physicalOptimizationConfig.getMaxFramesExternalSort();
-
-        ITreeIndexFrameFactory interiorFrameFactory = AqlMetadataProvider.createBTreeNSMInteriorFrameFactory(typeTraits);
-        ITreeIndexFrameFactory leafFrameFactory = AqlMetadataProvider.createBTreeNSMLeafFrameFactory(typeTraits);
-
-        IIndexRegistryProvider<IIndex> btreeRegistryProvider = AsterixTreeRegistryProvider.INSTANCE;
-        IStorageManagerInterface storageManager = AsterixStorageManagerInterface.INSTANCE;
-
-        // move key fields to front
+        // Move key fields to front.
         int[] fieldPermutation = new int[numKeys + 1];
-        System.arraycopy(keys, 0, fieldPermutation, 0, numKeys);
+        for (int i = 0; i < numKeys; i++) {
+            fieldPermutation[i] = i + 1;
+        }
         fieldPermutation[numKeys] = 0;
 
-        Pair<IFileSplitProvider, AlgebricksPartitionConstraint> splitsAndConstraint;
-        try {
-            splitsAndConstraint = metadata.splitProviderAndPartitionConstraintsForInternalOrFeedDataset(datasetName,
-                    datasetName);
-        } catch (AlgebricksException e) {
-            throw new AsterixException(e);
-        }
+        Pair<IFileSplitProvider, AlgebricksPartitionConstraint> splitsAndConstraint = metadata
+                .splitProviderAndPartitionConstraintsForInternalOrFeedDataset(datasetName, datasetName);
 
         FileSplit[] fs = splitsAndConstraint.first.getFileSplits();
         StringBuilder sb = new StringBuilder();
@@ -328,24 +201,25 @@
         }
         LOGGER.info("LOAD into File Splits: " + sb.toString());
 
+        IIndexRegistryProvider<IIndex> btreeRegistryProvider = AsterixTreeRegistryProvider.INSTANCE;
+        IStorageManagerInterface storageManager = AsterixStorageManagerInterface.INSTANCE;
         TreeIndexBulkLoadOperatorDescriptor btreeBulkLoad = new TreeIndexBulkLoadOperatorDescriptor(spec,
-                storageManager, btreeRegistryProvider, splitsAndConstraint.first, interiorFrameFactory,
-                leafFrameFactory, typeTraits, comparatorFactories, fieldPermutation,
-                GlobalConfig.DEFAULT_BTREE_FILL_FACTOR, new BTreeDataflowHelperFactory());
+                storageManager, btreeRegistryProvider, splitsAndConstraint.first, typeTraits, comparatorFactories,
+                fieldPermutation, GlobalConfig.DEFAULT_BTREE_FILL_FACTOR, new BTreeDataflowHelperFactory(),
+                NoOpOperationCallbackProvider.INSTANCE);
         AlgebricksPartitionConstraintHelper.setPartitionConstraintInJobSpec(spec, btreeBulkLoad,
                 splitsAndConstraint.second);
 
         spec.connect(new OneToOneConnectorDescriptor(spec), scanner, 0, asterixOp, 0);
 
         if (!loadStmt.alreadySorted()) {
+            int framesLimit = physicalOptimizationConfig.getMaxFramesExternalSort();
             ExternalSortOperatorDescriptor sorter = new ExternalSortOperatorDescriptor(spec, framesLimit, keys,
                     comparatorFactories, recDesc);
             AlgebricksPartitionConstraintHelper.setPartitionConstraintInJobSpec(spec, sorter,
                     splitsAndConstraint.second);
-
             IConnectorDescriptor hashConn = new MToNPartitioningConnectorDescriptor(spec,
                     new FieldHashPartitionComputerFactory(keys, hashFactories));
-
             spec.connect(hashConn, asterixOp, 0, sorter, 0);
             spec.connect(new OneToOneConnectorDescriptor(spec), sorter, 0, btreeBulkLoad, 0);
         } else {
@@ -353,45 +227,12 @@
                     new FieldHashPartitionComputerFactory(keys, hashFactories), keys, comparatorFactories);
             spec.connect(sortMergeConn, asterixOp, 0, btreeBulkLoad, 0);
         }
-
         spec.addRoot(btreeBulkLoad);
         spec.setConnectorPolicyAssignmentPolicy(new ConnectorPolicyAssignmentPolicy());
-        
-        jobSpecs.add(new Job(spec));
-        return jobSpecs;
+
+        return new Job(spec);
     }
-
-    private static List<Job> dropDatasetIndexes(String datasetName, AqlCompiledMetadataDeclarations metadata)
-            throws AlgebricksException, MetadataException {
-
-        AqlCompiledDatasetDecl adecl = metadata.findDataset(datasetName);
-        if (adecl == null) {
-            throw new AlgebricksException("DROP DATASET INDEXES: No metadata for dataset " + datasetName);
-        }
-
-        List<AqlCompiledIndexDecl> indexes = DatasetUtils.getSecondaryIndexes(adecl);
-        indexes.add(DatasetUtils.getPrimaryIndex(adecl));
-
-        List<Job> specs = new ArrayList<Job>();
-        IIndexRegistryProvider<IIndex> btreeRegistryProvider = AsterixTreeRegistryProvider.INSTANCE;
-        IStorageManagerInterface storageManager = AsterixStorageManagerInterface.INSTANCE;
-
-        if (indexes != null && !indexes.isEmpty()) {
-            // first, drop indexes
-            for (AqlCompiledIndexDecl acid : indexes) {
-                JobSpecification spec = new JobSpecification();
-                Pair<IFileSplitProvider, AlgebricksPartitionConstraint> idxSplitsAndConstraint = metadata
-                        .splitProviderAndPartitionConstraintsForInternalOrFeedDataset(datasetName, acid.getIndexName());
-                TreeIndexDropOperatorDescriptor secondaryBtreeDrop = new TreeIndexDropOperatorDescriptor(spec,
-                        storageManager, btreeRegistryProvider, idxSplitsAndConstraint.first);
-                AlgebricksPartitionConstraintHelper.setPartitionConstraintInJobSpec(spec, secondaryBtreeDrop,
-                        idxSplitsAndConstraint.second);
-                specs.add(new Job(spec));
-            }
-        }
-        return specs;
-    }
-
+    
     private static String stringOf(FileSplit fs) {
         return fs.getNodeName() + ":" + fs.getLocalFile().toString();
     }
@@ -417,7 +258,6 @@
         return new AssignRuntimeFactory(outColumns, evalFactories, projectionList);
     }
 
-    @SuppressWarnings("unchecked")
     private static RecordDescriptor computePayloadKeyRecordDescriptor(AqlCompiledDatasetDecl compiledDatasetDecl,
             ISerializerDeserializer payloadSerde, IDataFormat dataFormat) throws AlgebricksException {
         List<Triple<IEvaluatorFactory, ScalarFunctionCallExpression, IAType>> partitioningFunctions = DatasetUtils
diff --git a/asterix-app/src/main/java/edu/uci/ics/asterix/file/IndexOperations.java b/asterix-app/src/main/java/edu/uci/ics/asterix/file/IndexOperations.java
index 730fac6..c9cb798 100644
--- a/asterix-app/src/main/java/edu/uci/ics/asterix/file/IndexOperations.java
+++ b/asterix-app/src/main/java/edu/uci/ics/asterix/file/IndexOperations.java
@@ -31,7 +31,6 @@
 import edu.uci.ics.hyracks.algebricks.core.algebra.runtime.base.IEvaluatorFactory;
 import edu.uci.ics.hyracks.algebricks.core.algebra.runtime.base.IPushRuntimeFactory;
 import edu.uci.ics.hyracks.algebricks.core.algebra.runtime.jobgen.impl.ConnectorPolicyAssignmentPolicy;
-import edu.uci.ics.hyracks.algebricks.core.algebra.runtime.jobgen.impl.JobGenHelper;
 import edu.uci.ics.hyracks.algebricks.core.algebra.runtime.operators.meta.AlgebricksMetaOperatorDescriptor;
 import edu.uci.ics.hyracks.algebricks.core.algebra.runtime.operators.std.AssignRuntimeFactory;
 import edu.uci.ics.hyracks.algebricks.core.api.constraints.AlgebricksPartitionConstraint;
@@ -60,12 +59,10 @@
 import edu.uci.ics.hyracks.storage.am.common.dataflow.IIndexRegistryProvider;
 import edu.uci.ics.hyracks.storage.am.common.dataflow.TreeIndexBulkLoadOperatorDescriptor;
 import edu.uci.ics.hyracks.storage.am.common.dataflow.TreeIndexDropOperatorDescriptor;
+import edu.uci.ics.hyracks.storage.am.common.impls.NoOpOperationCallbackProvider;
 import edu.uci.ics.hyracks.storage.am.invertedindex.dataflow.BinaryTokenizerOperatorDescriptor;
 import edu.uci.ics.hyracks.storage.am.invertedindex.tokenizers.IBinaryTokenizerFactory;
 import edu.uci.ics.hyracks.storage.am.rtree.dataflow.RTreeDataflowHelperFactory;
-import edu.uci.ics.hyracks.storage.am.rtree.frames.RTreeNSMInteriorFrameFactory;
-import edu.uci.ics.hyracks.storage.am.rtree.frames.RTreeNSMLeafFrameFactory;
-import edu.uci.ics.hyracks.storage.am.rtree.tuples.RTreeTypeAwareTupleWriterFactory;
 import edu.uci.ics.hyracks.storage.common.IStorageManagerInterface;
 
 public class IndexOperations {
@@ -202,11 +199,6 @@
         primaryRecFields[numPrimaryKeys] = payloadSerde;
         primaryTypeTraits[numPrimaryKeys] = AqlTypeTraitProvider.INSTANCE.getTypeTrait(itemType);
 
-        ITreeIndexFrameFactory primaryInteriorFrameFactory = AqlMetadataProvider
-                .createBTreeNSMInteriorFrameFactory(primaryTypeTraits);
-        ITreeIndexFrameFactory primaryLeafFrameFactory = AqlMetadataProvider
-                .createBTreeNSMLeafFrameFactory(primaryTypeTraits);
-
         int[] lowKeyFields = null; // -infinity
         int[] highKeyFields = null; // +infinity
         RecordDescriptor primaryRecDesc = new RecordDescriptor(primaryRecFields);
@@ -214,10 +206,12 @@
         Pair<IFileSplitProvider, AlgebricksPartitionConstraint> primarySplitsAndConstraint = metadata
                 .splitProviderAndPartitionConstraintsForInternalOrFeedDataset(datasetName, datasetName);
 
-        BTreeSearchOperatorDescriptor primarySearchOp = new BTreeSearchOperatorDescriptor(spec, primaryRecDesc,
-                storageManager, treeRegistryProvider, primarySplitsAndConstraint.first, primaryInteriorFrameFactory,
-                primaryLeafFrameFactory, primaryTypeTraits, primaryComparatorFactories, true, lowKeyFields,
-                highKeyFields, true, true, new BTreeDataflowHelperFactory());
+		BTreeSearchOperatorDescriptor primarySearchOp = new BTreeSearchOperatorDescriptor(
+				spec, primaryRecDesc, storageManager, treeRegistryProvider,
+				primarySplitsAndConstraint.first, primaryTypeTraits,
+				primaryComparatorFactories, lowKeyFields, highKeyFields, true,
+				true, new BTreeDataflowHelperFactory(),
+				NoOpOperationCallbackProvider.INSTANCE);
 
         AlgebricksPartitionConstraintHelper.setPartitionConstraintInJobSpec(spec, primarySearchOp,
                 primarySplitsAndConstraint.second);
@@ -296,11 +290,6 @@
 
         // ---------- START SECONDARY INDEX BULK LOAD
 
-        ITreeIndexFrameFactory secondaryInteriorFrameFactory = AqlMetadataProvider
-                .createBTreeNSMInteriorFrameFactory(secondaryTypeTraits);
-        ITreeIndexFrameFactory secondaryLeafFrameFactory = AqlMetadataProvider
-                .createBTreeNSMLeafFrameFactory(secondaryTypeTraits);
-
         int[] fieldPermutation = new int[numSecondaryKeys + numPrimaryKeys];
         for (i = 0; i < numSecondaryKeys + numPrimaryKeys; i++)
             fieldPermutation[i] = i;
@@ -309,10 +298,12 @@
                 .splitProviderAndPartitionConstraintsForInternalOrFeedDataset(datasetName, secondaryIndexName);
 
         // GlobalConfig.DEFAULT_BTREE_FILL_FACTOR
-        TreeIndexBulkLoadOperatorDescriptor secondaryBulkLoadOp = new TreeIndexBulkLoadOperatorDescriptor(spec,
-                storageManager, treeRegistryProvider, secondarySplitsAndConstraint.first,
-                secondaryInteriorFrameFactory, secondaryLeafFrameFactory, secondaryTypeTraits,
-                secondaryComparatorFactories, fieldPermutation, 0.7f, new BTreeDataflowHelperFactory());
+		TreeIndexBulkLoadOperatorDescriptor secondaryBulkLoadOp = new TreeIndexBulkLoadOperatorDescriptor(
+				spec, storageManager, treeRegistryProvider,
+				secondarySplitsAndConstraint.first, secondaryTypeTraits,
+				secondaryComparatorFactories, fieldPermutation, 0.7f,
+				new BTreeDataflowHelperFactory(),
+				NoOpOperationCallbackProvider.INSTANCE);
         AlgebricksPartitionConstraintHelper.setPartitionConstraintInJobSpec(spec, secondaryBulkLoadOp,
                 secondarySplitsAndConstraint.second);
 
@@ -425,10 +416,12 @@
         Pair<IFileSplitProvider, AlgebricksPartitionConstraint> primarySplitsAndConstraint = metadata
                 .splitProviderAndPartitionConstraintsForInternalOrFeedDataset(primaryIndexName, primaryIndexName);
 
-        BTreeSearchOperatorDescriptor primarySearchOp = new BTreeSearchOperatorDescriptor(spec, primaryRecDesc,
-                storageManager, treeRegistryProvider, primarySplitsAndConstraint.first, primaryInteriorFrameFactory,
-                primaryLeafFrameFactory, primaryTypeTraits, primaryComparatorFactories, true, lowKeyFields,
-                highKeyFields, true, true, new BTreeDataflowHelperFactory());
+		BTreeSearchOperatorDescriptor primarySearchOp = new BTreeSearchOperatorDescriptor(
+				spec, primaryRecDesc, storageManager, treeRegistryProvider,
+				primarySplitsAndConstraint.first, primaryTypeTraits,
+				primaryComparatorFactories, lowKeyFields, highKeyFields, true,
+				true, new BTreeDataflowHelperFactory(),
+				NoOpOperationCallbackProvider.INSTANCE);
 
         AlgebricksPartitionConstraintHelper.setPartitionConstraintInJobSpec(spec, primarySearchOp,
                 primarySplitsAndConstraint.second);
@@ -510,18 +503,6 @@
 
         // ---------- START SECONDARY INDEX BULK LOAD
 
-        /*
-        ITreeIndexFrameFactory secondaryInteriorFrameFactory = JobGenHelper.createRTreeNSMInteriorFrameFactory(
-                secondaryTypeTraits, numNestedSecondaryKeyFields);
-        ITreeIndexFrameFactory secondaryLeafFrameFactory = JobGenHelper.createRTreeNSMLeafFrameFactory(
-                secondaryTypeTraits, numNestedSecondaryKeyFields);
-        */
-
-        ITreeIndexFrameFactory secondaryInteriorFrameFactory = new RTreeNSMInteriorFrameFactory(
-                new RTreeTypeAwareTupleWriterFactory(secondaryTypeTraits), valueProviderFactories);
-        ITreeIndexFrameFactory secondaryLeafFrameFactory = new RTreeNSMLeafFrameFactory(
-                new RTreeTypeAwareTupleWriterFactory(secondaryTypeTraits), valueProviderFactories);
-
         int[] fieldPermutation = new int[numNestedSecondaryKeyFields + numPrimaryKeys];
         for (i = 0; i < numNestedSecondaryKeyFields + numPrimaryKeys; i++)
             fieldPermutation[i] = i;
@@ -529,11 +510,12 @@
         Pair<IFileSplitProvider, AlgebricksPartitionConstraint> secondarySplitsAndConstraint = metadata
                 .splitProviderAndPartitionConstraintsForInternalOrFeedDataset(primaryIndexName, secondaryIndexName);
 
-        // GlobalConfig.DEFAULT_BTREE_FILL_FACTOR
-        TreeIndexBulkLoadOperatorDescriptor secondaryBulkLoadOp = new TreeIndexBulkLoadOperatorDescriptor(spec,
-                storageManager, treeRegistryProvider, secondarySplitsAndConstraint.first,
-                secondaryInteriorFrameFactory, secondaryLeafFrameFactory, secondaryTypeTraits,
-                secondaryComparatorFactories, fieldPermutation, 0.7f, new RTreeDataflowHelperFactory());
+		TreeIndexBulkLoadOperatorDescriptor secondaryBulkLoadOp = new TreeIndexBulkLoadOperatorDescriptor(
+				spec, storageManager, treeRegistryProvider,
+				secondarySplitsAndConstraint.first, secondaryTypeTraits,
+				secondaryComparatorFactories, fieldPermutation, 0.7f,
+				new RTreeDataflowHelperFactory(valueProviderFactories),
+				NoOpOperationCallbackProvider.INSTANCE);
 
         AlgebricksPartitionConstraintHelper.setPartitionConstraintInJobSpec(spec, secondaryBulkLoadOp,
                 secondarySplitsAndConstraint.second);
@@ -662,9 +644,8 @@
                 .splitProviderAndPartitionConstraintsForInternalOrFeedDataset(primaryIndexName, primaryIndexName);
 
         BTreeSearchOperatorDescriptor primarySearchOp = new BTreeSearchOperatorDescriptor(spec, primaryRecDesc,
-                storageManager, treeRegistryProvider, primarySplitsAndConstraint.first, primaryInteriorFrameFactory,
-                primaryLeafFrameFactory, primaryTypeTraits, primaryComparatorFactories, true, lowKeyFields,
-                highKeyFields, true, true, new BTreeDataflowHelperFactory());
+                storageManager, treeRegistryProvider, primarySplitsAndConstraint.first, primaryTypeTraits, primaryComparatorFactories, lowKeyFields,
+                highKeyFields, true, true, new BTreeDataflowHelperFactory(), NoOpOperationCallbackProvider.INSTANCE);
         AlgebricksPartitionConstraintHelper.setPartitionConstraintInJobSpec(spec, primarySearchOp,
                 primarySplitsAndConstraint.second);
 
@@ -774,19 +755,16 @@
         for (i = 0; i < numPrimaryKeys; i++)
             secondaryTypeTraits[i + 1] = primaryTypeTraits[i];
 
-        ITreeIndexFrameFactory secondaryInteriorFrameFactory = AqlMetadataProvider
-                .createBTreeNSMInteriorFrameFactory(secondaryTypeTraits);
-        ITreeIndexFrameFactory secondaryLeafFrameFactory = AqlMetadataProvider
-                .createBTreeNSMLeafFrameFactory(secondaryTypeTraits);
-
         int[] fieldPermutation = new int[numSecondaryKeys + numPrimaryKeys];
         for (i = 0; i < numTokenKeyPairFields; i++)
             fieldPermutation[i] = i;
 
-        TreeIndexBulkLoadOperatorDescriptor secondaryBulkLoadOp = new TreeIndexBulkLoadOperatorDescriptor(spec,
-                storageManager, treeRegistryProvider, secondarySplitsAndConstraint.first,
-                secondaryInteriorFrameFactory, secondaryLeafFrameFactory, secondaryTypeTraits,
-                tokenKeyPairComparatorFactories, fieldPermutation, 0.7f, new BTreeDataflowHelperFactory());
+		TreeIndexBulkLoadOperatorDescriptor secondaryBulkLoadOp = new TreeIndexBulkLoadOperatorDescriptor(
+				spec, storageManager, treeRegistryProvider,
+				secondarySplitsAndConstraint.first, secondaryTypeTraits,
+				tokenKeyPairComparatorFactories, fieldPermutation, 0.7f,
+				new BTreeDataflowHelperFactory(),
+				NoOpOperationCallbackProvider.INSTANCE);
         AlgebricksPartitionConstraintHelper.setPartitionConstraintInJobSpec(spec, secondaryBulkLoadOp,
                 secondarySplitsAndConstraint.second);
 
diff --git a/asterix-app/src/main/java/edu/uci/ics/asterix/file/TestKeywordIndexJob.java b/asterix-app/src/main/java/edu/uci/ics/asterix/file/TestKeywordIndexJob.java
index a4a84db..a96ccee 100644
--- a/asterix-app/src/main/java/edu/uci/ics/asterix/file/TestKeywordIndexJob.java
+++ b/asterix-app/src/main/java/edu/uci/ics/asterix/file/TestKeywordIndexJob.java
@@ -11,11 +11,9 @@
 import edu.uci.ics.asterix.common.exceptions.AsterixException;
 import edu.uci.ics.asterix.dataflow.data.nontagged.comparators.AObjectAscBinaryComparatorFactory;
 import edu.uci.ics.asterix.dataflow.data.nontagged.serde.AObjectSerializerDeserializer;
-import edu.uci.ics.asterix.metadata.declared.AqlMetadataProvider;
 import edu.uci.ics.asterix.om.base.AString;
 import edu.uci.ics.asterix.om.types.ATypeTag;
 import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import edu.uci.ics.hyracks.algebricks.core.algebra.runtime.jobgen.impl.JobGenHelper;
 import edu.uci.ics.hyracks.api.client.HyracksConnection;
 import edu.uci.ics.hyracks.api.client.IHyracksClientConnection;
 import edu.uci.ics.hyracks.api.constraints.PartitionConstraintHelper;
@@ -42,9 +40,9 @@
 import edu.uci.ics.hyracks.dataflow.std.misc.PrinterOperatorDescriptor;
 import edu.uci.ics.hyracks.storage.am.btree.dataflow.BTreeDataflowHelperFactory;
 import edu.uci.ics.hyracks.storage.am.btree.dataflow.BTreeSearchOperatorDescriptor;
-import edu.uci.ics.hyracks.storage.am.common.api.ITreeIndexFrameFactory;
 import edu.uci.ics.hyracks.storage.am.common.dataflow.IIndex;
 import edu.uci.ics.hyracks.storage.am.common.dataflow.IIndexRegistryProvider;
+import edu.uci.ics.hyracks.storage.am.common.impls.NoOpOperationCallbackProvider;
 import edu.uci.ics.hyracks.storage.common.IStorageManagerInterface;
 
 public class TestKeywordIndexJob {
@@ -131,10 +129,6 @@
             }
         };
 
-        ITreeIndexFrameFactory interiorFrameFactory = AqlMetadataProvider
-                .createBTreeNSMInteriorFrameFactory(secondaryTypeTraits);
-        ITreeIndexFrameFactory leafFrameFactory = AqlMetadataProvider.createBTreeNSMLeafFrameFactory(secondaryTypeTraits);
-
         ISerializerDeserializer[] secondaryRecFields = new ISerializerDeserializer[2];
         secondaryRecFields[0] = AObjectSerializerDeserializer.INSTANCE;
         secondaryRecFields[1] = AObjectSerializerDeserializer.INSTANCE;
@@ -150,9 +144,9 @@
                 new FileSplit("nc1", new FileReference(new File("/tmp/nc1/demo1112/Customers_idx_NameInvIndex"))),
                 new FileSplit("nc2", new FileReference(new File("/tmp/nc2/demo1112/Customers_idx_NameInvIndex"))) });
         BTreeSearchOperatorDescriptor secondarySearchOp = new BTreeSearchOperatorDescriptor(spec, secondaryRecDesc,
-                storageManager, btreeRegistryProvider, secondarySplitProvider, interiorFrameFactory, leafFrameFactory,
-                secondaryTypeTraits, secondaryComparatorFactories, true, lowKeyFields, highKeyFields, true, true,
-                new BTreeDataflowHelperFactory());
+                storageManager, btreeRegistryProvider, secondarySplitProvider, 
+                secondaryTypeTraits, secondaryComparatorFactories, lowKeyFields, highKeyFields, true, true,
+                new BTreeDataflowHelperFactory(), NoOpOperationCallbackProvider.INSTANCE);
         String[] secondarySearchOpLocationConstraint = new String[nodeGroup.size()];
         for (int p = 0; p < nodeGroup.size(); p++) {
             secondarySearchOpLocationConstraint[p] = nodeGroup.get(p);
diff --git a/asterix-app/src/main/java/edu/uci/ics/asterix/file/TestSecondaryIndexJob.java b/asterix-app/src/main/java/edu/uci/ics/asterix/file/TestSecondaryIndexJob.java
index cdecd74..01279f3 100644
--- a/asterix-app/src/main/java/edu/uci/ics/asterix/file/TestSecondaryIndexJob.java
+++ b/asterix-app/src/main/java/edu/uci/ics/asterix/file/TestSecondaryIndexJob.java
@@ -11,7 +11,6 @@
 import edu.uci.ics.asterix.common.exceptions.AsterixException;
 import edu.uci.ics.asterix.dataflow.data.nontagged.comparators.AObjectAscBinaryComparatorFactory;
 import edu.uci.ics.asterix.dataflow.data.nontagged.serde.AObjectSerializerDeserializer;
-import edu.uci.ics.asterix.metadata.declared.AqlMetadataProvider;
 import edu.uci.ics.asterix.om.base.AString;
 import edu.uci.ics.asterix.om.types.ATypeTag;
 import edu.uci.ics.hyracks.algebricks.core.algebra.base.LogicalVariable;
@@ -41,9 +40,9 @@
 import edu.uci.ics.hyracks.dataflow.std.misc.PrinterOperatorDescriptor;
 import edu.uci.ics.hyracks.storage.am.btree.dataflow.BTreeDataflowHelperFactory;
 import edu.uci.ics.hyracks.storage.am.btree.dataflow.BTreeSearchOperatorDescriptor;
-import edu.uci.ics.hyracks.storage.am.common.api.ITreeIndexFrameFactory;
 import edu.uci.ics.hyracks.storage.am.common.dataflow.IIndex;
 import edu.uci.ics.hyracks.storage.am.common.dataflow.IIndexRegistryProvider;
+import edu.uci.ics.hyracks.storage.am.common.impls.NoOpOperationCallbackProvider;
 import edu.uci.ics.hyracks.storage.common.IStorageManagerInterface;
 
 public class TestSecondaryIndexJob {
@@ -130,10 +129,6 @@
             }
         };
 
-        ITreeIndexFrameFactory interiorFrameFactory = AqlMetadataProvider
-                .createBTreeNSMInteriorFrameFactory(secondaryTypeTraits);
-        ITreeIndexFrameFactory leafFrameFactory = AqlMetadataProvider.createBTreeNSMLeafFrameFactory(secondaryTypeTraits);
-
         ISerializerDeserializer[] secondaryRecFields = new ISerializerDeserializer[2];
         secondaryRecFields[0] = AObjectSerializerDeserializer.INSTANCE;
         secondaryRecFields[1] = AObjectSerializerDeserializer.INSTANCE;
@@ -148,10 +143,12 @@
         IFileSplitProvider secondarySplitProvider = new ConstantFileSplitProvider(new FileSplit[] {
                 new FileSplit("nc1", new FileReference(new File("/tmp/nc1/demo1112/Customers_idx_NameBtreeIndex"))),
                 new FileSplit("nc2", new FileReference(new File("/tmp/nc2/demo1112/Customers_idx_NameBtreeIndex"))) });
-        BTreeSearchOperatorDescriptor secondarySearchOp = new BTreeSearchOperatorDescriptor(spec, secondaryRecDesc,
-                storageManager, btreeRegistryProvider, secondarySplitProvider, interiorFrameFactory, leafFrameFactory,
-                secondaryTypeTraits, secondaryComparatorFactories, true, lowKeyFields, highKeyFields, true, true,
-                new BTreeDataflowHelperFactory());
+		BTreeSearchOperatorDescriptor secondarySearchOp = new BTreeSearchOperatorDescriptor(
+				spec, secondaryRecDesc, storageManager, btreeRegistryProvider,
+				secondarySplitProvider, secondaryTypeTraits,
+				secondaryComparatorFactories, lowKeyFields, highKeyFields,
+				true, true, new BTreeDataflowHelperFactory(),
+				NoOpOperationCallbackProvider.INSTANCE);
         String[] secondarySearchOpLocationConstraint = new String[nodeGroup.size()];
         for (int p = 0; p < nodeGroup.size(); p++) {
             secondarySearchOpLocationConstraint[p] = nodeGroup.get(p);
diff --git a/asterix-app/src/test/resources/runtimets/only.txt b/asterix-app/src/test/resources/runtimets/only.txt
index e69de29..119728f3 100644
--- a/asterix-app/src/test/resources/runtimets/only.txt
+++ b/asterix-app/src/test/resources/runtimets/only.txt
@@ -0,0 +1 @@
+index/orders-index-custkey-open.aql
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_range.aql b/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_range.aql
index 64ffd8b..4268231 100644
--- a/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_range.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/comparison/datetime_range.aql
@@ -10,10 +10,8 @@
         text: string
 }
 
-create nodegroup group1 if not exists on nc1, nc2;
-
 create dataset TwitterData(Tweet)
-  partitioned by key id on group1;
+  partitioned by key id;
 
 load dataset TwitterData 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
@@ -23,4 +21,4 @@
 for $t in dataset('TwitterData')
 where $t.time > datetime("2011-05-15T16:00:00Z") and $t.time < datetime("2011-05-15T21:59:59Z")
 order by $t.id
-return { "id": $t.id }
\ No newline at end of file
+return { "id": $t.id }
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/co.aql b/asterix-app/src/test/resources/runtimets/queries/custord/co.aql
index ccacb66..879b2b8 100644
--- a/asterix-app/src/test/resources/runtimets/queries/custord/co.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/co.aql
@@ -21,7 +21,6 @@
   }
 }
 
-
 create type OrderType as open {
   oid: int32,
   cid: int32,
@@ -37,15 +36,12 @@
   orders: [OrderType]
 }
 
-create nodegroup group1 if not exists on nc1, nc2;
-
 create dataset Customers3(CustomerType) 
-  partitioned by key cid on group1;
+  partitioned by key cid;
 create dataset Orders3(OrderType)
-  partitioned by key oid on group1;
+  partitioned by key oid;
 create dataset CustomerOrders3(CustomerOrdersType)
-  partitioned by key cid on group1;
-
+  partitioned by key cid;
 
 write output to nc1:"rttest/custord_co.adm";
 
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_01.aql b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_01.aql
index 83a72ee..04f7669 100644
--- a/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_01.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/customer_q_01.aql
@@ -22,8 +22,6 @@
   }
 }
 
-
-
 create external dataset Customers(CustomerType)
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/nontagged/customerData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_01.aql b/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_01.aql
index e951abc..decc8bb 100644
--- a/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_01.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_01.aql
@@ -21,9 +21,6 @@
   }
 }
 
-
-
-
 create type OrderType as open {
   oid: int32,
   cid: int32,
@@ -39,14 +36,12 @@
   orders: [OrderType]
 }
 
-create nodegroup group1 if not exists on nc1, nc2;
-
 create dataset Customers1(CustomerType) 
-  partitioned by key cid on group1;
+  partitioned by key cid;
 create dataset Orders1(OrderType)
-  partitioned by key oid on group1;
+  partitioned by key oid;
 create dataset CustomerOrders1(CustomerOrdersType)
-  partitioned by key cid on group1;
+  partitioned by key cid;
 
 load dataset Customers1 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
@@ -56,10 +51,8 @@
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/custord-tiny/order-tiny.adm"),("format"="adm")) pre-sorted;
 
-
 // write output to nc1:"rttest/denorm-cust-order_01.adm";
 
-
 write into dataset CustomerOrders1 (
 
 for $c in dataset('Customers1')
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_02.aql b/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_02.aql
index 39815d7..2ac6910 100644
--- a/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_02.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_02.aql
@@ -21,9 +21,6 @@
   }
 }
 
-
-
-
 create type OrderType as open {
   oid: int32,
   cid: int32,
@@ -39,14 +36,12 @@
   orders: [OrderType]
 }
 
-create nodegroup group1 if not exists on nc1, nc2;
-
 create dataset Customers2(CustomerType) 
-  partitioned by key cid on group1;
+  partitioned by key cid;
 create dataset Orders2(OrderType)
-  partitioned by key oid on group1;
+  partitioned by key oid;
 create dataset CustomerOrders2(CustomerOrdersType)
-  partitioned by key cid on group1;
+  partitioned by key cid;
 
 load dataset Customers2 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
@@ -56,7 +51,6 @@
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/custord-tiny/order-tiny.adm"),("format"="adm")) pre-sorted;
 
-
 write into dataset CustomerOrders2 (
 
 for $c in dataset('Customers2')
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_03.aql b/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_03.aql
index 978bedf..324dbb0 100644
--- a/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_03.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/denorm-cust-order_03.aql
@@ -4,8 +4,6 @@
 
 use dataverse test;
 
-
-
 create type AddressType as open {
   number: int32, 
   street: string,
@@ -38,14 +36,12 @@
   orders: [OrderType]
 }
 
-create nodegroup group1 if not exists on nc1, nc2;
-
 create dataset Customers3(CustomerType) 
-  partitioned by key cid on group1;
+  partitioned by key cid;
 create dataset Orders3(OrderType)
-  partitioned by key oid on group1;
+  partitioned by key oid;
 create dataset CustomerOrders3(CustomerOrdersType)
-  partitioned by key cid on group1;
+  partitioned by key cid;
 
 load dataset Customers3 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/freq-clerk.aql b/asterix-app/src/test/resources/runtimets/queries/custord/freq-clerk.aql
index d6eb4c4..cd4ef0e 100644
--- a/asterix-app/src/test/resources/runtimets/queries/custord/freq-clerk.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/freq-clerk.aql
@@ -27,10 +27,8 @@
   total: float
 }
 
-create nodegroup group1 if not exists on nc1, nc2;
-
 create dataset CustomerOrders(CustomerOrderType) 
-  partitioned by key cid on group1;
+  partitioned by key cid;
 
 
 load dataset CustomerOrders
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/join_q_01.aql b/asterix-app/src/test/resources/runtimets/queries/custord/join_q_01.aql
index 2a6a37b..ddde56e 100644
--- a/asterix-app/src/test/resources/runtimets/queries/custord/join_q_01.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/join_q_01.aql
@@ -22,8 +22,6 @@
   }
 }
 
-
-
 create type OrderType as open {
   oid: int32,
   cid: int32,
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/load-test.aql b/asterix-app/src/test/resources/runtimets/queries/custord/load-test.aql
index ae2d750..5f73e4b 100644
--- a/asterix-app/src/test/resources/runtimets/queries/custord/load-test.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/load-test.aql
@@ -1,5 +1,4 @@
 drop dataverse test if exists;
-drop nodegroup group0 if exists;
   
 create dataverse test;
 use dataverse test;
@@ -21,13 +20,10 @@
   }
 }
 
-create nodegroup group0 if not exists on nc1;
-create nodegroup group1 if not exists on nc1, nc2;
-
 create dataset c1(CustomerType) 
-  partitioned by key cid on group0;
+  partitioned by key cid;
 create dataset c2(CustomerType) 
-  partitioned by key cid on group1;  
+  partitioned by key cid;  
   
 load dataset c1 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
@@ -49,7 +45,6 @@
 return $c
 
 
-
 // write output to nc1:"rttest/denorm-cust-order_01.adm";
 
 
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_01.aql b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_01.aql
index 36e6830..0fb9218 100644
--- a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_01.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_01.aql
@@ -15,7 +15,6 @@
 }
 
 
-
 create external dataset Orders(OrderType)
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/nontagged/orderData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_02.aql b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_02.aql
index a16eab6..08856e9 100644
--- a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_02.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_02.aql
@@ -15,7 +15,6 @@
 }
 
 
-
 create external dataset Orders(OrderType)
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/nontagged/orderData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_04.aql b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_04.aql
index c9b22d8..b2d55d9 100644
--- a/asterix-app/src/test/resources/runtimets/queries/custord/order_q_04.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/custord/order_q_04.aql
@@ -15,7 +15,6 @@
 }
 
 
-
 create external dataset Orders(OrderType)
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/nontagged/orderData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/dapd/q1.aql b/asterix-app/src/test/resources/runtimets/queries/dapd/q1.aql
index df75811..e55a643 100644
--- a/asterix-app/src/test/resources/runtimets/queries/dapd/q1.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/dapd/q1.aql
@@ -3,7 +3,6 @@
 create dataverse test;
 use dataverse test;
 
-
 create type AddressType as closed {
   street: string,
   city: string,
@@ -25,8 +24,6 @@
   }}
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
 create external dataset User(UserType) 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/events/tiny/user.adm"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/dapd/q2.aql b/asterix-app/src/test/resources/runtimets/queries/dapd/q2.aql
index 171fb02..545e31f 100644
--- a/asterix-app/src/test/resources/runtimets/queries/dapd/q2.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/dapd/q2.aql
@@ -31,10 +31,6 @@
   end_time: datetime
 }
 
-
-
-create nodegroup group1  if not exists on nc1, nc2;
-
 create external dataset Event(EventType) 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/events/tiny/event.adm"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/dapd/q3.aql b/asterix-app/src/test/resources/runtimets/queries/dapd/q3.aql
index 9c871b2..23e4557 100644
--- a/asterix-app/src/test/resources/runtimets/queries/dapd/q3.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/dapd/q3.aql
@@ -23,17 +23,13 @@
 }}
 }
 
-
-create nodegroup group1  if not exists on nc1, nc2;
-
 create dataset User(UserType)
- partitioned by key name on group1;
+ partitioned by key name;
 
 load dataset User 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/events/tiny/user.adm"),("format"="json")) pre-sorted;
 
-
 write output to nc1:'rttest/dapd_q3.adm';
 
 set simthreshold '.5f';
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/delete-with-index.aql b/asterix-app/src/test/resources/runtimets/queries/dml/delete-from-loaded-dataset-with-index.aql
similarity index 85%
rename from asterix-app/src/test/resources/runtimets/queries/dml/delete-with-index.aql
rename to asterix-app/src/test/resources/runtimets/queries/dml/delete-from-loaded-dataset-with-index.aql
index b1ad097..ab6b6c9 100644
--- a/asterix-app/src/test/resources/runtimets/queries/dml/delete-with-index.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/delete-from-loaded-dataset-with-index.aql
@@ -1,5 +1,4 @@
 drop dataverse test if exists;
-  
 create dataverse test;
 use dataverse test;
 
@@ -22,21 +21,19 @@
   l_comment: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 
 load dataset LineItem 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
 
-
 create index idx_LineItem_partkey on LineItem(l_linenumber);
 create index idx_LineItem_suppkey on LineItem(l_suppkey);
 
 delete $l from dataset LineItem where $l.l_suppkey>=2 or $l.l_linenumber>1;
 
-write output to nc1:"rttest/dml_delete-with-index.adm";      
+write output to nc1:"rttest/dml_delete-from-loaded-dataset-with-index.adm";      
 for $c in dataset('LineItem')
 where $c.l_suppkey<150
 order by $c.l_orderkey, $c.l_linenumber
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/delete.aql b/asterix-app/src/test/resources/runtimets/queries/dml/delete-from-loaded-dataset.aql
similarity index 83%
rename from asterix-app/src/test/resources/runtimets/queries/dml/delete.aql
rename to asterix-app/src/test/resources/runtimets/queries/dml/delete-from-loaded-dataset.aql
index cdd0315..1a445bf 100644
--- a/asterix-app/src/test/resources/runtimets/queries/dml/delete.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/delete-from-loaded-dataset.aql
@@ -1,5 +1,4 @@
 drop dataverse test if exists;
-  
 create dataverse test;
 use dataverse test;
 
@@ -22,19 +21,16 @@
   l_comment: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 
 load dataset LineItem 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
 
-
 delete $l from dataset LineItem where $l.l_orderkey>=10;
 
-write output to nc1:"rttest/dml_delete.adm";      
+write output to nc1:"rttest/dml_delete-from-loaded-dataset.adm";      
 for $c in dataset('LineItem')
 order by $c.l_orderkey, $c.l_linenumber
 return $c 
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/empty-load-with-index.aql b/asterix-app/src/test/resources/runtimets/queries/dml/empty-load-with-index.aql
new file mode 100644
index 0000000..ee418e4
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/empty-load-with-index.aql
@@ -0,0 +1,35 @@
+/* 
+ * Test case Name  : empty-load-with-index.aql
+ * Description     : Check that an empty load doesn't preclude a future non-empty load on secondary index 
+ * Expected Result : Success
+ * Date            : May 2 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type LineIDType as closed {
+  l_orderkey: int32, 
+  l_linenumber: int32, 
+  l_suppkey: int32
+}
+
+create dataset LineID(LineIDType)
+  partitioned by key l_orderkey, l_linenumber;
+
+create index linenum_index on LineID(l_linenumber);
+
+load dataset LineID 
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/empty.adm"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset LineID 
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+write output to nc1:"rttest/dml_empty-load-with-index.adm";      
+for $c in dataset('LineID')
+order by $c.l_orderkey, $c.l_linenumber
+limit 1
+return $c
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/empty-load.aql b/asterix-app/src/test/resources/runtimets/queries/dml/empty-load.aql
new file mode 100644
index 0000000..5f51b93
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/empty-load.aql
@@ -0,0 +1,33 @@
+/* 
+ * Test case Name  : empty-load.aql
+ * Description     : Check that an empty load doesn't preclude a future non-empty load on a primary index
+ * Expected Result : Success
+ * Date            : May 2 2012
+ */
+
+drop dataverse test if exists;
+create dataverse test;
+use dataverse test;
+
+create type LineIDType as closed {
+  l_orderkey: int32, 
+  l_linenumber: int32, 
+  l_suppkey: int32
+}
+
+create dataset LineID(LineIDType)
+  partitioned by key l_orderkey, l_linenumber;
+
+load dataset LineID 
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/empty.adm"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+load dataset LineID 
+using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
+(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+
+write output to nc1:"rttest/dml_empty-load.adm";      
+for $c in dataset('LineID')
+order by $c.l_orderkey, $c.l_linenumber
+limit 1
+return $c 
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-tuple-with-index.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-empty-dataset-with-index.aql
similarity index 60%
copy from asterix-app/src/test/resources/runtimets/queries/dml/insert-tuple-with-index.aql
copy to asterix-app/src/test/resources/runtimets/queries/dml/insert-into-empty-dataset-with-index.aql
index fcc83d6..f88b897 100644
--- a/asterix-app/src/test/resources/runtimets/queries/dml/insert-tuple-with-index.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-empty-dataset-with-index.aql
@@ -1,5 +1,11 @@
+/* 
+ * Test case Name  : insert-into-empty-dataset-with-index.aql
+ * Description     : Check that we can insert into an empty dataset and its empty secondary indexes 
+ * Expected Result : Success
+ * Date            : May 2 2012
+ */
+
 drop dataverse test if exists;
-  
 create dataverse test;
 use dataverse test;
 
@@ -9,15 +15,8 @@
   l_suppkey: int32
 }
 
-create nodegroup group1 if not exists on nc1, nc2;
-
 create dataset LineID(LineIDType)
-  partitioned by key l_orderkey, l_linenumber on group1;
-
-load dataset LineID 
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem_0.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
+  partitioned by key l_orderkey, l_linenumber;
 
 create index idx_LineID_partkey on LineID(l_linenumber);
 create index idx_LineID_suppkey on LineID(l_suppkey);
@@ -44,9 +43,8 @@
 }
 );
 
-
-write output to nc1:"rttest/dml_insert-tuple-with-index.adm";      
+write output to nc1:"rttest/dml_insert-into-empty-dataset-with-index.adm";      
 for $c in dataset('LineID')
-where $c.l_suppkey = 3 and $c.l_linenumber=2
+where $c.l_suppkey < 100 and $c.l_linenumber<5
 order by $c.l_orderkey, $c.l_linenumber
 return $c 
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-tuple.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-empty-dataset.aql
similarity index 61%
copy from asterix-app/src/test/resources/runtimets/queries/dml/insert-tuple.aql
copy to asterix-app/src/test/resources/runtimets/queries/dml/insert-into-empty-dataset.aql
index 731f7cd..ad7e3b2 100644
--- a/asterix-app/src/test/resources/runtimets/queries/dml/insert-tuple.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-empty-dataset.aql
@@ -1,5 +1,11 @@
+/* 
+ * Test case Name  : insert-into-empty-dataset.aql
+ * Description     : Check that we can insert into an empty dataset 
+ * Expected Result : Success
+ * Date            : May 2 2012
+ */
+
 drop dataverse test if exists;
-  
 create dataverse test;
 use dataverse test;
 
@@ -9,15 +15,8 @@
   l_suppkey: int32
 }
 
-create nodegroup group1 if not exists on nc1, nc2;
-
 create dataset LineID(LineIDType)
-  partitioned by key l_orderkey, l_linenumber on group1;
-
-load dataset LineID 
-using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-(("path"="nc1://data/tpch0.001/lineitem_0.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
+  partitioned by key l_orderkey, l_linenumber;
 
 insert into dataset LineID (
 let $x:=1
@@ -41,8 +40,7 @@
 }
 );
 
-
-write output to nc1:"rttest/dml_insert-tuple.adm";      
+write output to nc1:"rttest/dml_insert-into-empty-dataset.adm";      
 for $c in dataset('LineID')
 where $c.l_suppkey < 100 and $c.l_linenumber<5
 order by $c.l_orderkey, $c.l_linenumber
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-tuple-with-index.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_01.aql
similarity index 82%
rename from asterix-app/src/test/resources/runtimets/queries/dml/insert-tuple-with-index.aql
rename to asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_01.aql
index fcc83d6..01e1845 100644
--- a/asterix-app/src/test/resources/runtimets/queries/dml/insert-tuple-with-index.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_01.aql
@@ -1,5 +1,4 @@
 drop dataverse test if exists;
-  
 create dataverse test;
 use dataverse test;
 
@@ -9,16 +8,13 @@
   l_suppkey: int32
 }
 
-create nodegroup group1 if not exists on nc1, nc2;
-
 create dataset LineID(LineIDType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 
 load dataset LineID 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/tpch0.001/lineitem_0.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
 
-
 create index idx_LineID_partkey on LineID(l_linenumber);
 create index idx_LineID_suppkey on LineID(l_suppkey);
 
@@ -44,8 +40,7 @@
 }
 );
 
-
-write output to nc1:"rttest/dml_insert-tuple-with-index.adm";      
+write output to nc1:"rttest/dml_insert-into-loaded-dataset-with-index_01.adm";      
 for $c in dataset('LineID')
 where $c.l_suppkey = 3 and $c.l_linenumber=2
 order by $c.l_orderkey, $c.l_linenumber
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-with-index.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_02.aql
similarity index 86%
rename from asterix-app/src/test/resources/runtimets/queries/dml/insert-with-index.aql
rename to asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_02.aql
index ec30668..2212eb9 100644
--- a/asterix-app/src/test/resources/runtimets/queries/dml/insert-with-index.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset-with-index_02.aql
@@ -1,5 +1,4 @@
 drop dataverse test if exists;
-  
 create dataverse test;
 use dataverse test;
 
@@ -28,13 +27,11 @@
   l_suppkey: int32
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 
 create dataset LineID(LineIDType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 
 load dataset LineItem 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
@@ -44,7 +41,6 @@
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/tpch0.001/lineitem_0.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
 
-
 create index idx_LineID_partkey on LineID(l_linenumber);
 create index idx_LineID_suppkey on LineID(l_suppkey);
 
@@ -58,7 +54,8 @@
 	}
 );
 
-write output to nc1:"rttest/dml_insert-with-index.adm";      
+write output to nc1:"rttest/dml_insert-into-loaded-dataset-with-index_02.adm";      
+
 for $c in dataset('LineID')
 where $c.l_suppkey < 100 and $c.l_linenumber<5
 order by $c.l_orderkey, $c.l_linenumber
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-tuple.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset_01.aql
similarity index 82%
rename from asterix-app/src/test/resources/runtimets/queries/dml/insert-tuple.aql
rename to asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset_01.aql
index 731f7cd..ac41ec7 100644
--- a/asterix-app/src/test/resources/runtimets/queries/dml/insert-tuple.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset_01.aql
@@ -1,5 +1,4 @@
 drop dataverse test if exists;
-  
 create dataverse test;
 use dataverse test;
 
@@ -9,16 +8,13 @@
   l_suppkey: int32
 }
 
-create nodegroup group1 if not exists on nc1, nc2;
-
 create dataset LineID(LineIDType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 
 load dataset LineID 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/tpch0.001/lineitem_0.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
 
-
 insert into dataset LineID (
 let $x:=1
 let $y:=2
@@ -41,8 +37,7 @@
 }
 );
 
-
-write output to nc1:"rttest/dml_insert-tuple.adm";      
+write output to nc1:"rttest/dml_insert-into-loaded-dataset_01.adm";      
 for $c in dataset('LineID')
 where $c.l_suppkey < 100 and $c.l_linenumber<5
 order by $c.l_orderkey, $c.l_linenumber
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert-wisc.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset_02.aql
similarity index 77%
rename from asterix-app/src/test/resources/runtimets/queries/dml/insert-wisc.aql
rename to asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset_02.aql
index 4e9e594..ef38109 100644
--- a/asterix-app/src/test/resources/runtimets/queries/dml/insert-wisc.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert-into-loaded-dataset_02.aql
@@ -1,11 +1,7 @@
 drop dataverse test if exists;
-
 create dataverse test;
-
 use dataverse test;
 
-create nodegroup group1 if not exists on nc1, nc2;
-
 create type Schema as closed {
 unique1:  int32,
 unique2:  int32,
@@ -25,9 +21,9 @@
 string4:  string
 }
 
-create dataset onektup(Schema) partitioned by key unique2 on group1;
+create dataset onektup(Schema) partitioned by key unique2;
 
-create dataset tenktup1(Schema) partitioned by key unique2 on group1;
+create dataset tenktup1(Schema) partitioned by key unique2;
 
 load dataset onektup 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
@@ -37,7 +33,7 @@
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/wisc/tenktup.adm"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
 
-create dataset tmp(Schema) partitioned by key unique2 on group1;
+create dataset tmp(Schema) partitioned by key unique2;
 
 load dataset tmp 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
@@ -49,7 +45,7 @@
 return $l
 );
 
-write output to nc1:"rttest/dml_insert-wisc.adm";      
+write output to nc1:"rttest/dml_insert-into-loaded-dataset_02.adm";      
 for $t in dataset('tmp')
 order by $t.unique2
 return $t
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert.aql
index 2123aa8..7c38a64 100644
--- a/asterix-app/src/test/resources/runtimets/queries/dml/insert.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert.aql
@@ -1,5 +1,4 @@
 drop dataverse test if exists;
-  
 create dataverse test;
 use dataverse test;
 
@@ -28,13 +27,11 @@
   l_suppkey: int32
 }
 
-create nodegroup group1  if not exists on nc1;
-
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 
 create dataset LineID(LineIDType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 
 load dataset LineItem 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/insert_less_nc.aql b/asterix-app/src/test/resources/runtimets/queries/dml/insert_less_nc.aql
index 80cb4f5..0fc544d 100644
--- a/asterix-app/src/test/resources/runtimets/queries/dml/insert_less_nc.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/insert_less_nc.aql
@@ -1,5 +1,4 @@
 drop dataverse test if exists;
-  
 create dataverse test;
 use dataverse test;
 
@@ -28,13 +27,11 @@
   l_suppkey: int32
 }
 
-create nodegroup group1nc2 if not exists on nc2;
-
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1nc2;
+  partitioned by key l_orderkey, l_linenumber;
 
 create dataset LineID(LineIDType)
-  partitioned by key l_orderkey, l_linenumber on group1nc2;
+  partitioned by key l_orderkey, l_linenumber;
 
 load dataset LineItem 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
@@ -44,7 +41,6 @@
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/tpch0.001/lineitem_0.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
 
-
 insert into dataset LineID (
 for $l in dataset('LineItem')
 	where $l.l_orderkey<1000
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/load-from-hdfs.aql b/asterix-app/src/test/resources/runtimets/queries/dml/load-from-hdfs.aql
index c6fef4b..0411145 100644
--- a/asterix-app/src/test/resources/runtimets/queries/dml/load-from-hdfs.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/load-from-hdfs.aql
@@ -1,5 +1,4 @@
 drop dataverse test if exists;
-  
 create dataverse test;
 use dataverse test;
 
@@ -22,15 +21,8 @@
   l_comment: string
 }
 
-
-create nodegroup group1 if not exists on nc1, nc2;
-
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1;
-
-//load dataset LineItem 
-//using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
-//(("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
+  partitioned by key l_orderkey, l_linenumber;
 
 load dataset LineItem 
 using "edu.uci.ics.asterix.external.dataset.adapter.HDFSAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/load-with-index.aql b/asterix-app/src/test/resources/runtimets/queries/dml/load-with-index.aql
index 38df3ef..efab267 100644
--- a/asterix-app/src/test/resources/runtimets/queries/dml/load-with-index.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/load-with-index.aql
@@ -21,10 +21,8 @@
   l_comment: string
 }
 
-create nodegroup group1 if not exists on nc1, nc2;
-
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 
 create index idx_partkey on LineItem(l_partkey);
 
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/opentype-insert.aql b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-insert.aql
index d72372f..0c71f54 100644
--- a/asterix-app/src/test/resources/runtimets/queries/dml/opentype-insert.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-insert.aql
@@ -1,15 +1,12 @@
 create dataverse testdv2;
 use dataverse testdv2;
 
-
 create type testtype as open {
   id: string,
   name: string
 }
 
-create nodegroup grouptest on nc1;
-
-create dataset testds(testtype) partitioned by key id on grouptest;
+create dataset testds(testtype) partitioned by key id;
  
  insert into dataset testds (
  { "id": "001", "name": "Person Three", "hobbies": {{"scuba", "music"}}}
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/opentype-insert2.aql b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-insert2.aql
index 8339bc2..db5ee2e 100644
--- a/asterix-app/src/test/resources/runtimets/queries/dml/opentype-insert2.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/opentype-insert2.aql
@@ -13,8 +13,7 @@
 
 insert into dataset testds( for $i in range(1,10) return { "id":$i,"name":"John Doe" });
 
-
 write output to nc1:"rttest/dml_opentype-insert2.adm";
 for $l in dataset('testds')
 order by $l.id
-return $l
\ No newline at end of file
+return $l
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index.aql
index bb2f934..6201ca2 100644
--- a/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-delete-rtree-secondary-index.aql
@@ -13,10 +13,8 @@
   rec: rectangle
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
 create dataset MyData(MyRecord)
-  partitioned by key id on group1;
+  partitioned by key id;
 
 load dataset MyData 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index.aql b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index.aql
index fe9c017..236b4a9 100644
--- a/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/dml/scan-insert-rtree-secondary-index.aql
@@ -18,18 +18,15 @@
   point: point
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
 create dataset MyData(MyRecord)
-  partitioned by key id on group1;
+  partitioned by key id;
 
 load dataset MyData 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/spatial/spatialData.json"),("format"="adm")) pre-sorted;
 
-
 create dataset MyMiniData(MyMiniRecord)
-  partitioned by key id on group1;
+  partitioned by key id;
 
 load dataset MyMiniData 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/delete-rtree.aql b/asterix-app/src/test/resources/runtimets/queries/failure/delete-rtree.aql
index 0ad2dde..465d94f 100644
--- a/asterix-app/src/test/resources/runtimets/queries/failure/delete-rtree.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/delete-rtree.aql
@@ -11,17 +11,13 @@
 	text: string
 }
 
-
-create nodegroup group1  if not exists on nc1, nc2;
-
 create dataset MyData(MyRecord)
-  partitioned by key id on group1;
+  partitioned by key id;
 
 load dataset MyData 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/twitter/smalltweets.txt"),("format"="adm")) pre-sorted;
 
-
 delete $l from dataset MyData where $l.id>=50 die after 1500;
 
 write output to nc1:"rttest/failure_delete-rtree.adm";      
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/delete.aql b/asterix-app/src/test/resources/runtimets/queries/failure/delete.aql
index cb51030..cd4a922 100644
--- a/asterix-app/src/test/resources/runtimets/queries/failure/delete.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/delete.aql
@@ -22,16 +22,13 @@
   l_comment: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 
 load dataset LineItem 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/tpch0.001/lineitem.tbl"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
 
-
 delete $l from dataset LineItem where $l.l_orderkey>=10 die after 1500;
 
 write output to nc1:"rttest/failure_delete.adm";      
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/insert-rtree.aql b/asterix-app/src/test/resources/runtimets/queries/failure/insert-rtree.aql
index ca4e910..2ec32f4 100644
--- a/asterix-app/src/test/resources/runtimets/queries/failure/insert-rtree.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/insert-rtree.aql
@@ -16,10 +16,8 @@
   loc: point
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
 create dataset MyData(MyRecord)
-  partitioned by key id on group1;
+  partitioned by key id;
 
 load dataset MyData 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
@@ -27,7 +25,7 @@
 
 
 create dataset MyMiniData(MyMiniRecord)
-  partitioned by key id on group1;
+  partitioned by key id;
 
 load dataset MyMiniData 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/insert.aql b/asterix-app/src/test/resources/runtimets/queries/failure/insert.aql
index 570f4bc..3f1daad 100644
--- a/asterix-app/src/test/resources/runtimets/queries/failure/insert.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/insert.aql
@@ -28,13 +28,11 @@
   l_suppkey: int32
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 
 create dataset LineID(LineIDType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 
 load dataset LineItem 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/failure/q1_pricing_summary_report_failure.aql b/asterix-app/src/test/resources/runtimets/queries/failure/q1_pricing_summary_report_failure.aql
index def6e9a..a0c7f87 100644
--- a/asterix-app/src/test/resources/runtimets/queries/failure/q1_pricing_summary_report_failure.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/failure/q1_pricing_summary_report_failure.aql
@@ -23,10 +23,8 @@
   l_comment: string
 }
 
-create nodegroup group1  if not exists on nc1;
-
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 
 load dataset LineItem 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_1.aql
index 4409fec..8438ae9 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_1.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_1.aql
@@ -12,9 +12,7 @@
   misc: string
 }
 
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
 
 load dataset DBLP 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.1.1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.1.1.aql
index 8deab14..d575424 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.1.1.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.1.1.aql
@@ -12,9 +12,7 @@
   misc: string
 }
 
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
 
 load dataset DBLP 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.1.aql
index 8a492ae..f0b43d1 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.1.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.1.aql
@@ -12,9 +12,7 @@
   misc: string
 }
 
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
 
 load dataset DBLP 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.aql
index 68d26fe..a96e933 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-1_2.aql
@@ -12,9 +12,7 @@
   misc: string
 }
 
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
 
 load dataset DBLP 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2.1_5.3.1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2.1_5.3.1.aql
index f499ba3..f424166 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2.1_5.3.1.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2.1_5.3.1.aql
@@ -12,9 +12,7 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
 
 load dataset DBLP 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2.2.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2.2.aql
index ce8dae4..05304c5 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2.2.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2.2.aql
@@ -17,10 +17,8 @@
   rank: int32
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset TOKENSRANKEDADM(TOKENSRANKEDADMType) partitioned by key rank on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
+create dataset TOKENSRANKEDADM(TOKENSRANKEDADMType) partitioned by key rank;
 
 load dataset DBLP 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_1.aql
index 7328e60..be6073b 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_1.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_1.aql
@@ -12,9 +12,7 @@
   misc: string
 }
 
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
 
 load dataset DBLP 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_2.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_2.aql
index 5c5cc8e8..9d31f4a 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_2.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_2.aql
@@ -12,9 +12,7 @@
   misc: string
 }
 
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
 
 load dataset DBLP 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_3.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_3.aql
index 6ffb2d5..4bc6836 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_3.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_3.aql
@@ -12,9 +12,7 @@
   misc: string
 }
 
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
 
 load dataset DBLP 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_4.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_4.aql
index 6a0a011..149a9b4 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_4.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_4.aql
@@ -12,9 +12,7 @@
   misc: string
 }
 
-create nodegroup group1 if not exists  on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
 
 load dataset DBLP 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.1.aql
index 7d3e144..90e1b15 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.1.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.1.aql
@@ -12,9 +12,7 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
 
 load dataset DBLP 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.2.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.2.aql
index f69e98f..2771589 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.2.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.2.aql
@@ -12,9 +12,7 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
 
 load dataset DBLP 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.3.1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.3.1.aql
index ec9726d..57cdab4 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.3.1.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.3.1.aql
@@ -12,9 +12,7 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
 
 load dataset DBLP 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.3.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.3.aql
index a0b3011..e4e8cfd 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.3.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.3.aql
@@ -12,9 +12,7 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
 
 load dataset DBLP 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.aql
index 6c5e1ac..8d3c4c3 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-2_5.aql
@@ -12,9 +12,7 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
 
 load dataset DBLP 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.1.aql
index e871290..e65952d 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.1.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.1.aql
@@ -12,9 +12,7 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
 
 load dataset DBLP 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.2.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.2.aql
index d1d65dc..4a98706 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.2.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.2.aql
@@ -12,9 +12,7 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
 
 load dataset DBLP 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.aql
index eea456e..d998928 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-3_1.aql
@@ -12,9 +12,7 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
 
 load dataset DBLP 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-aqlplus_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-aqlplus_1.aql
index 089fc47..445b3f6 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-aqlplus_1.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-aqlplus_1.aql
@@ -12,9 +12,7 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
 
 load dataset DBLP from nc1:'data/pub-small/dblp-small-id.txt' delimited by ':';
 
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_1.aql
index a5bb9cd..a899a80 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_1.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_1.aql
@@ -20,10 +20,8 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
+create dataset CSX(CSXType) partitioned by key id;
 
 load dataset DBLP 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_2.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_2.aql
index fab6877..4c30bb7 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_2.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_2.aql
@@ -20,10 +20,8 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
+create dataset CSX(CSXType) partitioned by key id;
 
 load dataset DBLP 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_3.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_3.aql
index 34654e3..5c49fd2 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_3.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_3.aql
@@ -20,10 +20,8 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
+create dataset CSX(CSXType) partitioned by key id;
 
 load dataset DBLP
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_4.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_4.aql
index f2ad20d..fa8501c 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_4.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_4.aql
@@ -20,10 +20,8 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
+create dataset CSX(CSXType) partitioned by key id;
 
 load dataset DBLP
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.1.aql
index c5d4b73..97d163f 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.1.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.1.aql
@@ -20,10 +20,8 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
+create dataset CSX(CSXType) partitioned by key id;
 
 load dataset DBLP
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.2.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.2.aql
index b272e34..0329a87 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.2.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.2.aql
@@ -20,10 +20,8 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
+create dataset CSX(CSXType) partitioned by key id;
 
 load dataset DBLP
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.3.1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.3.1.aql
index fd58328..9d9c141 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.3.1.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.3.1.aql
@@ -20,10 +20,8 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
+create dataset CSX(CSXType) partitioned by key id;
 
 
 load dataset DBLP
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.3.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.3.aql
index a52183f..11d4327 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.3.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.3.aql
@@ -20,10 +20,8 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
+create dataset CSX(CSXType) partitioned by key id;
 
 load dataset DBLP
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.aql
index 7ccdc0c..603077e 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-2_5.aql
@@ -20,10 +20,8 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
+create dataset CSX(CSXType) partitioned by key id;
 
 load dataset DBLP
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_1.aql
index b22d355..2a3f6ec 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_1.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_1.aql
@@ -20,10 +20,8 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
+create dataset CSX(CSXType) partitioned by key id;
 
 load dataset DBLP
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_2.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_2.aql
index 5dc2cad..e942aa0 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_2.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_2.aql
@@ -20,10 +20,8 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
+create dataset CSX(CSXType) partitioned by key id;
 
 load dataset DBLP
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_3.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_3.aql
index 0ce00ca..dbbc1b1 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_3.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_3.aql
@@ -20,10 +20,8 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
+create dataset CSX(CSXType) partitioned by key id;
 
 load dataset DBLP
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_4.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_4.aql
index ac683c8..a703037 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_4.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_4.aql
@@ -20,10 +20,8 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
+create dataset CSX(CSXType) partitioned by key id;
 
 load dataset DBLP
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.1.aql
index fd6ad95..c6d61e2 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.1.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.1.aql
@@ -20,10 +20,8 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
+create dataset CSX(CSXType) partitioned by key id;
 
 load dataset DBLP
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.2.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.2.aql
index cc49092..f881151 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.2.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.2.aql
@@ -20,10 +20,8 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
+create dataset CSX(CSXType) partitioned by key id;
 
 load dataset DBLP
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.3.1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.3.1.aql
index 66fb57e..b0884f2 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.3.1.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.3.1.aql
@@ -20,10 +20,8 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
+create dataset CSX(CSXType) partitioned by key id;
 
 load dataset DBLP
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.3.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.3.aql
index 93545b3..46bd31d 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.3.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.3.aql
@@ -20,10 +20,8 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
+create dataset CSX(CSXType) partitioned by key id;
 
 load dataset DBLP
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.4.1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.4.1.aql
index 9782508..c8ed34b 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.4.1.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.4.1.aql
@@ -20,10 +20,8 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
+create dataset CSX(CSXType) partitioned by key id;
 
 load dataset DBLP
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.4.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.4.aql
index cb5b8ba..e4eab9d 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.4.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.4.aql
@@ -20,10 +20,8 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
+create dataset CSX(CSXType) partitioned by key id;
 
 load dataset DBLP
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.aql
index 0f1f2fe..55d508b 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-3_5.aql
@@ -20,10 +20,8 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
+create dataset CSX(CSXType) partitioned by key id;
 
 load dataset DBLP
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_1.aql
index ead8e81..c5d4669 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_1.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_1.aql
@@ -20,10 +20,8 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key;
+create dataset CSX(CSXType) partitioned by key;
 
 load dataset DBLP from nc1:'data/pub-small/dblp-small-id.txt' delimited by ':';
 load dataset CSX from nc1:'data/pub-small/csx-small-id.txt' delimited by ':';
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_2.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_2.aql
index 611fd29..da7d3cc 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_2.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_2.aql
@@ -20,10 +20,8 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key;
+create dataset CSX(CSXType) partitioned by key;
 
 load dataset DBLP from nc1:'data/pub-small/dblp-small-id.txt' delimited by ':';
 load dataset CSX from nc1:'data/pub-small/csx-small-id.txt' delimited by ':';
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_3.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_3.aql
index e6dc1ed..0f0e993 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_3.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-aqlplus_3.aql
@@ -20,10 +20,8 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
+create dataset CSX(CSXType) partitioned by key id;
 
 load dataset DBLP from nc1:'data/pub-small/dblp-small-id.txt' delimited by ':';
 load dataset CSX from nc1:'data/pub-small/csx-small-id.txt' delimited by ':';
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-dblp-aqlplus_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-dblp-aqlplus_1.aql
index e1b53d3..b6da9586 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-dblp-aqlplus_1.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-csx-dblp-aqlplus_1.aql
@@ -20,10 +20,8 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
-create dataset CSX(CSXType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
+create dataset CSX(CSXType) partitioned by key id;
 
 load dataset DBLP from nc1:'data/pub-small/dblp-small-id.txt' delimited by ':';
 load dataset CSX from nc1:'data/pub-small/csx-small-id.txt' delimited by ':';
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-lookup_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-lookup_1.aql
index a235756..61ca78e 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-lookup_1.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-lookup_1.aql
@@ -12,9 +12,7 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset DBLP(DBLPType) partitioned by key id on group1;
+create dataset DBLP(DBLPType) partitioned by key id;
 
 load dataset DBLP
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-splits-3_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-splits-3_1.aql
index 68800dd..f0f4a6e 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-splits-3_1.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/dblp-splits-3_1.aql
@@ -12,8 +12,6 @@
   misc: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
 create external dataset DBLP(DBLPType) 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/pub-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/events-users-aqlplus_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/events-users-aqlplus_1.aql
index 6093823..b0c70ad 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/events-users-aqlplus_1.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/events-users-aqlplus_1.aql
@@ -24,10 +24,8 @@
 }
 
 
-create nodegroup group1  if not exists on nc1, nc2;
-
 create dataset User(UserType)
- partitioned by key name on group1;
+ partitioned by key name;
 load dataset User from nc1:'data/events/tiny/user.adm';
 
 write output to nc1:'rttest/fuzzyjoin_events-users-aqlplus_1.adm';
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_1.aql
index 7e4ab38..b7e2d25e 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_1.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_1.aql
@@ -9,9 +9,7 @@
   interests: <string>
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
+create dataset Users(UserType) partitioned by key uid;
 
 load dataset Users from nc1:'data/users-visitors-small/users.json';
 
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_2.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_2.aql
index d1e49a0..8910d67 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_2.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_2.aql
@@ -9,9 +9,7 @@
   interests: <string>
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
+create dataset Users(UserType) partitioned by key uid;
 
 load dataset Users from nc1:'data/users-visitors-small/users.json';
 
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_3.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_3.aql
index bf15bf6..f896430 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_3.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-int-aqlplus_3.aql
@@ -9,9 +9,7 @@
   interests: <string>
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
+create dataset Users(UserType) partitioned by key uid;
 
 load dataset Users from nc1:'data/users-visitors-small/users.json';
 
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_1.1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_1.1.aql
index ccdd07f..584014a 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_1.1.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_1.1.aql
@@ -9,9 +9,7 @@
   interests: <string>
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
+create dataset Users(UserType) partitioned by key uid;
 
 load dataset Users from nc1:'data/users-visitors-small/users.json';
 
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_1.aql
index 3b4a6fe..2a9e544 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_1.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_1.aql
@@ -9,9 +9,7 @@
   interests: <string>
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
+create dataset Users(UserType) partitioned by key uid;
 
 load dataset Users from nc1:'data/users-visitors-small/users.json';
 
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_2.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_2.aql
index 3e970c7..c4592a2 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_2.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_2.aql
@@ -9,9 +9,7 @@
   interests: <string>
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
+create dataset Users(UserType) partitioned by key uid;
 
 load dataset Users from nc1:'data/users-visitors-small/users.json';
 
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_3.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_3.aql
index 1979ba1..10d9c61 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_3.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-lot-aqlplus_3.aql
@@ -9,9 +9,7 @@
   interests: <string>
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
+create dataset Users(UserType) partitioned by key uid;
 
 load dataset Users from nc1:'data/users-visitors-small/users.json';
 
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-3_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-3_1.aql
index abbb66a..d2aebca 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-3_1.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-3_1.aql
@@ -18,10 +18,8 @@
   interests: {{string}}
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-create dataset Visitors(VisitorType) partitioned by key vid on group1;
+create dataset Users(UserType) partitioned by key uid;
+create dataset Visitors(VisitorType) partitioned by key vid;
 
 
 load dataset Users 
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_1.aql
index 1a676c5..64fd639 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_1.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_1.aql
@@ -18,10 +18,8 @@
   interests: <string>
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-create dataset Visitors(VisitorType) partitioned by key vid on group1;
+create dataset Users(UserType) partitioned by key uid;
+create dataset Visitors(VisitorType) partitioned by key vid;
 
 load dataset Users from nc1:'data/users-visitors-small/users.json';
 load dataset Visitors from nc1:'data/users-visitors-small/visitors.json';
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_2.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_2.aql
index 1e6e417..aa24266 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_2.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_2.aql
@@ -18,10 +18,8 @@
   interests: <string>
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-create dataset Visitors(VisitorType) partitioned by key vid on group1;
+create dataset Users(UserType) partitioned by key uid;
+create dataset Visitors(VisitorType) partitioned by key vid;
 
 load dataset Users from nc1:'data/users-visitors-small/users.json';
 load dataset Visitors from nc1:'data/users-visitors-small/visitors.json';
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_3.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_3.aql
index 2d39bd4..674ae07 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_3.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-aqlplus_3.aql
@@ -18,10 +18,8 @@
   interests: <string>
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-create dataset Visitors(VisitorType) partitioned by key vid on group1;
+create dataset Users(UserType) partitioned by key uid;
+create dataset Visitors(VisitorType) partitioned by key vid;
 
 load dataset Users from nc1:'data/users-visitors-small/users.json';
 load dataset Visitors from nc1:'data/users-visitors-small/visitors.json';
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-vis-user-lot-aqlplus_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-vis-user-lot-aqlplus_1.aql
index 4561a7a..51cbc6d 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-vis-user-lot-aqlplus_1.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-int-vis-user-lot-aqlplus_1.aql
@@ -18,10 +18,8 @@
   interests: <string>
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-create dataset Visitors(VisitorType) partitioned by key vid on group1;
+create dataset Users(UserType) partitioned by key uid;
+create dataset Visitors(VisitorType) partitioned by key vid;
 
 load dataset Users from nc1:'data/users-visitors-small/users.json';
 load dataset Visitors from nc1:'data/users-visitors-small/visitors.json';
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-3_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-3_1.aql
index 4de46a5..9f2fd07 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-3_1.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-3_1.aql
@@ -18,10 +18,8 @@
   interests: {{string}}
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-create dataset Visitors(VisitorType) partitioned by key vid on group1;
+create dataset Users(UserType) partitioned by key uid;
+create dataset Visitors(VisitorType) partitioned by key vid;
 
 load dataset Users 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_1.aql
index d328366..439bf67 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_1.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_1.aql
@@ -18,10 +18,8 @@
   interests: <string>
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-create dataset Visitors(VisitorType) partitioned by key vid on group1;
+create dataset Users(UserType) partitioned by key uid;
+create dataset Visitors(VisitorType) partitioned by key vid;
 
 load dataset Users from nc1:'data/users-visitors-small/users.json';
 load dataset Visitors from nc1:'data/users-visitors-small/visitors.json';
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_2.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_2.aql
index bf0f287..81b0b60 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_2.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_2.aql
@@ -18,10 +18,8 @@
   interests: <string>
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-create dataset Visitors(VisitorType) partitioned by key vid on group1;
+create dataset Users(UserType) partitioned by key uid;
+create dataset Visitors(VisitorType) partitioned by key vid;
 
 load dataset Users from nc1:'data/users-visitors-small/users.json';
 load dataset Visitors from nc1:'data/users-visitors-small/visitors.json';
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_3.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_3.aql
index 72cb80c..3c98faa 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_3.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_3.aql
@@ -18,10 +18,8 @@
   interests: <string>
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-create dataset Visitors(VisitorType) partitioned by key vid on group1;
+create dataset Users(UserType) partitioned by key uid;
+create dataset Visitors(VisitorType) partitioned by key vid;
 
 load dataset Users from nc1:'data/users-visitors-small/users.json';
 load dataset Visitors from nc1:'data/users-visitors-small/visitors.json';
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_4.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_4.aql
index 19415d5..5e12c6d 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_4.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_4.aql
@@ -18,10 +18,8 @@
   interests: <string>
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-create dataset Visitors(VisitorType) partitioned by key vid on group1;
+create dataset Users(UserType) partitioned by key uid;
+create dataset Visitors(VisitorType) partitioned by key vid;
 
 load dataset Users from nc1:'data/users-visitors-small/users.json';
 load dataset Visitors from nc1:'data/users-visitors-small/visitors.json';
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_5.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_5.aql
index 698b1b5..8f14385 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_5.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-aqlplus_5.aql
@@ -18,10 +18,8 @@
   interests: <string>
 }
 
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-create dataset Visitors(VisitorType) partitioned by key vid on group1;
+create dataset Users(UserType) partitioned by key uid;
+create dataset Visitors(VisitorType) partitioned by key vid;
 
 load dataset Users from nc1:'data/users-visitors-small/users.json';
 load dataset Visitors from nc1:'data/users-visitors-small/visitors.json';
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-int-aqlplus_1.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-int-aqlplus_1.aql
index 6a43fa6..facf238 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-int-aqlplus_1.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-int-aqlplus_1.aql
@@ -18,11 +18,8 @@
   interests: <string>
 }
 
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-create dataset Visitors(VisitorType) partitioned by key vid on group1;
-
+create dataset Users(UserType) partitioned by key uid;
+create dataset Visitors(VisitorType) partitioned by key vid;
 
 load dataset Users from nc1:'data/users-visitors-small/users.json';
 load dataset Visitors from nc1:'data/users-visitors-small/visitors.json';
diff --git a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-int-aqlplus_2.aql b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-int-aqlplus_2.aql
index 693191a..e38178e 100644
--- a/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-int-aqlplus_2.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/fuzzyjoin/user-vis-lot-int-aqlplus_2.aql
@@ -18,11 +18,8 @@
   interests: <string>
 }
 
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-create dataset Visitors(VisitorType) partitioned by key vid on group1;
-
+create dataset Users(UserType) partitioned by key uid;
+create dataset Visitors(VisitorType) partitioned by key vid;
 
 load dataset Users from nc1:'data/users-visitors-small/users.json';
 load dataset Visitors from nc1:'data/users-visitors-small/visitors.json';
diff --git a/asterix-app/src/test/resources/runtimets/queries/index/orders-index-custkey-conjunctive.aql b/asterix-app/src/test/resources/runtimets/queries/index/orders-index-custkey-conjunctive.aql
index f01b16d..10db179 100644
--- a/asterix-app/src/test/resources/runtimets/queries/index/orders-index-custkey-conjunctive.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/index/orders-index-custkey-conjunctive.aql
@@ -2,7 +2,6 @@
 create dataverse tpch;
 use dataverse tpch;
 
-
 create type OrderType as closed {
   o_orderkey: int32, 
   o_custkey: int32, 
@@ -15,11 +14,8 @@
   o_comment: string
 }
 
-
-create nodegroup group1 if not exists on nc1, nc2;
-
 create dataset Orders(OrderType)
-  partitioned by key o_orderkey on group1;
+  partitioned by key o_orderkey;
 
 load dataset Orders 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter" 
diff --git a/asterix-app/src/test/resources/runtimets/queries/index/orders-index-custkey.aql b/asterix-app/src/test/resources/runtimets/queries/index/orders-index-custkey.aql
index 7bc7320..38bc76c 100644
--- a/asterix-app/src/test/resources/runtimets/queries/index/orders-index-custkey.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/index/orders-index-custkey.aql
@@ -2,7 +2,6 @@
 create dataverse tpch;
 use dataverse tpch;
 
-
 create type OrderType as closed {
   o_orderkey: int32, 
   o_custkey: int32, 
@@ -15,11 +14,8 @@
   o_comment: string
 }
 
-
-create nodegroup group1 if not exists on nc1, nc2;
-
 create dataset Orders(OrderType)
-  partitioned by key o_orderkey on group1;
+  partitioned by key o_orderkey;
 
 load dataset Orders 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/index/range-search.aql b/asterix-app/src/test/resources/runtimets/queries/index/range-search.aql
index ea0b4ef..666dc73 100644
--- a/asterix-app/src/test/resources/runtimets/queries/index/range-search.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/index/range-search.aql
@@ -22,10 +22,8 @@
   l_comment: string
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 
 load dataset LineItem 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter" 
diff --git a/asterix-app/src/test/resources/runtimets/queries/index/rtree-secondary-index.aql b/asterix-app/src/test/resources/runtimets/queries/index/rtree-secondary-index.aql
index 71c5630..6dab809 100644
--- a/asterix-app/src/test/resources/runtimets/queries/index/rtree-secondary-index.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/index/rtree-secondary-index.aql
@@ -13,10 +13,8 @@
   rec: rectangle
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
 create dataset MyData(MyRecord)
-  partitioned by key id on group1;
+  partitioned by key id;
 
 load dataset MyData 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter" 
diff --git a/asterix-app/src/test/resources/runtimets/queries/nested-loop-join_01.aql b/asterix-app/src/test/resources/runtimets/queries/nested-loop-join_01.aql
index 876648b..79b3a9f 100644
--- a/asterix-app/src/test/resources/runtimets/queries/nested-loop-join_01.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/nested-loop-join_01.aql
@@ -16,10 +16,8 @@
   interests: {{string}}
 }
 
-create nodegroup group1 if not exists on nc1, nc2;
-
-create dataset Users(UserType) partitioned by key uid on group1;
-create dataset Visitors(VisitorType) partitioned by key vid on group1;
+create dataset Users(UserType) partitioned by key uid;
+create dataset Visitors(VisitorType) partitioned by key vid;
 
 
 load dataset Users 
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-13.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-13.aql
index 68d0b70..379e282 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-13.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-13.aql
@@ -14,9 +14,7 @@
   name: string
 }
 
-create nodegroup grouptest on nc1;
-
-create dataset testds(testtype) partitioned by key id on grouptest;
+create dataset testds(testtype) partitioned by key id;
 
 insert into dataset testds (
 { "id": "001", "name": "Person Three", "hobbies": {{"scuba", "music"}}}
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-20.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-20.aql
index cc2513f..d7ad173 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-20.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-20.aql
@@ -1,9 +1,10 @@
 /*
  * Test case name :  open-closed-20.aql
- * Description    :  Insert into open type internal dataset by querying another internal dataset
+ * Description    :  Insert into open type internal dataset by querying another internal dataset which is of open type with nullable fields
  *                :  In this case source dataset has (n+n) fields and the target dataset has only n fields, but has no intial records in it.
+ *                :  In this scenario, the source dataset (open) has some optional fields
  * Success        :  Yes
- * Date           :  29 April 2012
+ * Date           :  May 01 2012
  */
 
 
@@ -21,26 +22,24 @@
 id:int32,
 name:string,
 age:int8,
-sex:string,
-dob:date
+sex:string?,
+dob:date?
 }
 
 create dataset employee(Emp) partitioned by key id;
 
-insert into dataset employee({"id":201,"name":"John Doe","age":32,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":202,"name":"John Smith","age":30,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":201,"name":"John Wayne","age":62,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":203,"name":"Roger Sanders","age":48,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":204,"name":"Raj Singh","age":37,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":205,"name":"Mike Tyson","age":44,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":206,"name":"Brett Lee","age":35,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":207,"name":"Chen Li","age":39,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":208,"name":"Mike Carey","age":42,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":209,"name":"Abdullah","age":29,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":221,"name":"Mariam","age":25,"sex":"F","dob":"1-1-82"});
-insert into dataset employee({"id":221,"name":"Mariam","age":25,"sex":"F","dob":"1-1-82","desgination":{{"dsg":"Department Manager"}}});
+insert into dataset employee({"id":201,"name":"John Doe","age":32,"sex":"M","dob":date("1975-01-11")});
+insert into dataset employee({"id":202,"name":"John Smith","age":30,date("1982-05-23")});
+insert into dataset employee({"id":201,"name":"John Wayne","age":62,"sex":"M"});
+insert into dataset employee({"id":203,"name":"Roger Sanders","age":48,"sex":"M","dob":date("1960-01-08")});
+insert into dataset employee({"id":204,"name":"Raj Singh","age":37,"sex":"M","dob":date("1975-01-08")});
+insert into dataset employee({"id":205,"name":"Mike Tyson","age":44,"dob":date("1969-11-02")});
+insert into dataset employee({"id":206,"name":"Brett Lee","age":35,"sex":"M","dob":date("1976-06-09")});
+insert into dataset employee({"id":207,"name":"Chen Li","age":39,"sex":"M"});
+insert into dataset employee({"id":208,"name":"Mike Carey","age":42});
+insert into dataset employee({"id":221,"name":"Mariam","age":40,"sex":"F","dob":date("1970-01-09"),"desgination":{{"dsg":"Department Manager"}}});
 
-insert into dataset dtst01({for $l in dataset('employee') return $l});
+insert into dataset dtst01(for $l in dataset('employee') return $l);
 
 for $l in dataset('dtst01')
-retunr $l 
+return $l 
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-21.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-21.aql
index c1c7ab2..71ce585 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-21.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-21.aql
@@ -1,12 +1,11 @@
 /*
  * Test case name :  open-closed-21.aql
- * Description    :  Insert into open type internal dataset by querying another closed type internal dataset
- *                :  In this case source dataset has (n+n) fields and the target dataset has only n fields, but has no intial records in it.
+ * Description    :  Insert into open type internal dataset by querying another open type internal dataset
+ *                :  In this case source dataset has (n+n) fields and the target dataset has only 1 field, but has no intial records in it.
  * Success        :  Yes
  * Date           :  29 April 2012
  */
 
-
 drop dataverse test if exists;
 create dataverse test;
 use dataverse test;
@@ -17,7 +16,7 @@
 
 create dataset dtst01(TestType) partitioned by key id;
 
-create type Emp as closed {
+create type Emp as open {
 id:int32,
 name:string,
 age:int8,
@@ -27,19 +26,17 @@
 
 create dataset employee(Emp) partitioned by key id;
 
-insert into dataset employee({"id":201,"name":"John Doe","age":32,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":202,"name":"John Smith","age":30,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":201,"name":"John Wayne","age":62,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":203,"name":"Roger Sanders","age":48,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":204,"name":"Raj Singh","age":37,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":205,"name":"Mike Tyson","age":44,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":206,"name":"Brett Lee","age":35,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":207,"name":"Chen Li","age":39,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":208,"name":"Mike Carey","age":42,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":209,"name":"Abdullah","age":29,"sex":"M","dob":"1-1-82"});
-insert into dataset employee({"id":221,"name":"Mariam","age":25,"sex":"F","dob":"1-1-82"});
+insert into dataset employee({"id":201,"name":"John Doe","age":32,"sex":"M","dob":date("1975-01-11")});
+insert into dataset employee({"id":202,"name":"John Smith","age":30,"sex":"M","dob":date("1982-07-12")});
+insert into dataset employee({"id":203,"name":"John Wayne","age":62,"sex":"M","dob":date("1950-01-08")});
+insert into dataset employee({"id":204,"name":"Roger Sanders","age":48,"sex":"M","dob":date("1972-11-12")});
+insert into dataset employee({"id":205,"name":"Raj Singh","age":37,"sex":"M","dob":date("1978-05-06")});
+insert into dataset employee({"id":206,"name":"Mike Tyson","age":44,"sex":"M","dob":date("1965-09-03")});
+insert into dataset employee({"id":227,"name":"Mariam","age":30,"sex":"F","dob":date("1982-11-01")});
 
-insert into dataset dtst01({for $l in dataset('employee') return $l});
+insert into dataset employee({"id":228,"name":"Cathy","age":35,"sex":"F","dob":date("1976-06-11"),"desgination":{{"Department Manager"}}});
+
+insert into dataset dtst01(for $l in dataset('employee') return $l);
 
 for $l in dataset('dtst01')
-retunr $l 
+return $l 
diff --git a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-22.aql b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-22.aql
index ced75c4..6e05f61 100644
--- a/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-22.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/open-closed/open-closed-22.aql
@@ -1,6 +1,6 @@
 /*
  * Test case name :  open-closed-22.aql
- * Description    :  Insert into a closed type internal dataset which has nullable(optional) and non-nullable fields
+ * Description    :  Insert into a closed type dataset which has nullable(optional) and non-nullable fields
  * Success        :  Yes
  * Date           :  30 April 2012
  */
diff --git a/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_02.aql b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_02.aql
index 9ac6f95..18f1c20 100644
--- a/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_02.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/quantifiers/somesat_02.aql
@@ -29,12 +29,10 @@
   total: float
 }
 
-create nodegroup group1 if not exists on nc1, nc2;
-
 create dataset CustomerSomeSat02(CustomerType)
-  partitioned by key cid on group1;
+  partitioned by key cid;
 create dataset OrdersSomeSat02(OrderType)
-  partitioned by key oid on group1;
+  partitioned by key oid;
 
 load dataset CustomerSomeSat02 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter" 
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/10.aql b/asterix-app/src/test/resources/runtimets/queries/scan/10.aql
index 7878583..2d71d87 100644
--- a/asterix-app/src/test/resources/runtimets/queries/scan/10.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/10.aql
@@ -11,18 +11,14 @@
   misc: string
 }
 
-
-create nodegroup group1 if not exists on nc1;
-
 create dataset DBLP1(DBLPType) 
-  partitioned by key id on group1;
+  partitioned by key id;
 
 // drop dataset DBLP1;
 load dataset DBLP1
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/dblp-small/dblp-small-id.txt"),("format"="delimited-text"),("delimiter"=":"));
 
-
 write output to nc1:"rttest/scan_10.adm";
 
 for $paper in dataset('DBLP1')
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/20.aql b/asterix-app/src/test/resources/runtimets/queries/scan/20.aql
index a07aab2..675f26d 100644
--- a/asterix-app/src/test/resources/runtimets/queries/scan/20.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/20.aql
@@ -12,10 +12,8 @@
   misc: string
 }
 
-create nodegroup group1 if not exists on nc1;
-
 create dataset DBLPadm(DBLPType) 
-  partitioned by key id on group1;
+  partitioned by key id;
 
 // drop dataset DBLPadm;
 load dataset DBLPadm 
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/30.aql b/asterix-app/src/test/resources/runtimets/queries/scan/30.aql
index 057bdae..04238ef 100644
--- a/asterix-app/src/test/resources/runtimets/queries/scan/30.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/30.aql
@@ -11,8 +11,6 @@
   misc: string
 }
 
-create nodegroup group1 if not exists on nc1;
-
 create external dataset DBLPsplits(DBLPType) 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/dblp-small/dblp-small.adm"),("format"="adm")); 
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/alltypes_01.aql b/asterix-app/src/test/resources/runtimets/queries/scan/alltypes_01.aql
index e772502..0800ce4 100644
--- a/asterix-app/src/test/resources/runtimets/queries/scan/alltypes_01.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/alltypes_01.aql
@@ -2,14 +2,12 @@
 create dataverse test;
 use dataverse test;
 
-
 create type AddressType as open {
   number: int32, 
   street: string,
   city: string
 }
 
-
 create type AllType as open {
   id: int32,
   name: string,
@@ -33,7 +31,6 @@
   // union
 }
 
-
 create external dataset All(AllType)
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/nontagged/allData.json"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/numeric_types_01.aql b/asterix-app/src/test/resources/runtimets/queries/scan/numeric_types_01.aql
index f716d1c..07586f4 100644
--- a/asterix-app/src/test/resources/runtimets/queries/scan/numeric_types_01.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/numeric_types_01.aql
@@ -12,7 +12,6 @@
   doubleField: double?
 }
 
-
 create external dataset Numeric(NumericType)
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/nontagged/numericData.adm"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/spatial_types_01.aql b/asterix-app/src/test/resources/runtimets/queries/scan/spatial_types_01.aql
index 1ad5244..248149f 100644
--- a/asterix-app/src/test/resources/runtimets/queries/scan/spatial_types_01.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/spatial_types_01.aql
@@ -2,7 +2,6 @@
 create dataverse test;
 use dataverse test;
 
-
 create type SpatialType as open {
   id: int32,
   point: point,
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/spatial_types_02.aql b/asterix-app/src/test/resources/runtimets/queries/scan/spatial_types_02.aql
index 6bca691..ea06b96 100644
--- a/asterix-app/src/test/resources/runtimets/queries/scan/spatial_types_02.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/spatial_types_02.aql
@@ -11,10 +11,8 @@
   circle: circle
 }
 
-create nodegroup group1 on nc1;
-
 create dataset Spatial2(SpatialType) 
-	partitioned by key id on group1;
+	partitioned by key id;
 
 load dataset Spatial2 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/scan/temp_types_02.aql b/asterix-app/src/test/resources/runtimets/queries/scan/temp_types_02.aql
index 22289ef..064385c 100644
--- a/asterix-app/src/test/resources/runtimets/queries/scan/temp_types_02.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/scan/temp_types_02.aql
@@ -10,15 +10,12 @@
   duration: duration
 }
 
-create nodegroup group1 on nc1;
-
 create dataset Temp2(TempType) 
-	partitioned by key id on group1;
+	partitioned by key id;
 
 load dataset Temp2 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/nontagged/tempData.txt"),("format"="delimited-text"),("delimiter"="|")) pre-sorted;
-
        
 write output to nc1:"rttest/scan_temp_types_02.adm";
       
diff --git a/asterix-app/src/test/resources/runtimets/queries/semistructured/count-nullable.aql b/asterix-app/src/test/resources/runtimets/queries/semistructured/count-nullable.aql
index c1bbe7e..0a0945e 100644
--- a/asterix-app/src/test/resources/runtimets/queries/semistructured/count-nullable.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/semistructured/count-nullable.aql
@@ -19,8 +19,6 @@
 }
 
 
-create nodegroup group1 if not exists on nc1;
-
 create external dataset Customers(CustomerType) 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/semistructured/tiny01/customer.adm"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/semistructured/cust-filter.aql b/asterix-app/src/test/resources/runtimets/queries/semistructured/cust-filter.aql
index b5bea3e..e2ab245 100644
--- a/asterix-app/src/test/resources/runtimets/queries/semistructured/cust-filter.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/semistructured/cust-filter.aql
@@ -18,9 +18,6 @@
   children: [ { name: string, age: int32? } ]
 }
 
-
-create nodegroup group1 if not exists on nc1;
-
 create external dataset Customers(CustomerType) 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/semistructured/tiny01/customer.adm"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/semistructured/has-param1.aql b/asterix-app/src/test/resources/runtimets/queries/semistructured/has-param1.aql
index 8f44e23..930e83d 100644
--- a/asterix-app/src/test/resources/runtimets/queries/semistructured/has-param1.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/semistructured/has-param1.aql
@@ -11,8 +11,6 @@
   total: float
 }
 
-create nodegroup group1 if not exists on nc1, nc2;
-
 create external dataset Orders(OrderType)
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
 (("path"="nc1://data/semistructured/tiny01/orders.adm"),("format"="adm"));
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/distinct_by.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/distinct_by.aql
index 278104b..95d715e 100644
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/distinct_by.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/distinct_by.aql
@@ -23,10 +23,8 @@
   l_comment: string
 }
 
-create nodegroup group1  if not exists on nc1;
-
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 
 load dataset LineItem 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/group_no_agg.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/group_no_agg.aql
index d0607bf..dedaa7f 100644
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/group_no_agg.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/group_no_agg.aql
@@ -9,10 +9,8 @@
   r_comment: string
 }
 
-create nodegroup group1 if not exists  on nc1;
-
 create dataset Regions_group_no_agg(RegionType) 
-  partitioned by key r_regionkey on group1;
+  partitioned by key r_regionkey;
 
 write output to nc1:"rttest/tpch_group_no_agg.adm";
 
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q10_returned_item.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q10_returned_item.aql
index 7dea9bb..3b641a4 100644
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q10_returned_item.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q10_returned_item.aql
@@ -1,6 +1,5 @@
 drop dataverse tpch if exists;
 create dataverse tpch;
-  
 
 use dataverse tpch;
 
@@ -89,24 +88,22 @@
   ps_comment: string 
 }
 
-create nodegroup group1 if not exists on nc1;
-
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 create dataset Orders(OrderType)
-  partitioned by key o_orderkey on group1;
+  partitioned by key o_orderkey;
 create dataset Supplier(SupplierType)
-  partitioned by key s_suppkey on group1;
+  partitioned by key s_suppkey;
 create dataset Region(RegionType) 
-  partitioned by key r_regionkey on group1;
+  partitioned by key r_regionkey;
 create dataset Nation(NationType) 
-  partitioned by key n_nationkey on group1;
+  partitioned by key n_nationkey;
 create dataset Part(PartType)
-  partitioned by key p_partkey on group1;
+  partitioned by key p_partkey;
 create dataset Partsupp(PartSuppType)
-  partitioned by key ps_partkey, ps_suppkey on group1;  
+  partitioned by key ps_partkey, ps_suppkey;  
 create dataset Customer(CustomerType) 
-  partitioned by key c_custkey on group1;
+  partitioned by key c_custkey;
 
 load dataset LineItem 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q11_important_stock.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q11_important_stock.aql
index 5545608..245c7f5 100644
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q11_important_stock.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q11_important_stock.aql
@@ -89,24 +89,22 @@
   ps_comment: string 
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 create dataset Orders(OrderType)
-  partitioned by key o_orderkey on group1;
+  partitioned by key o_orderkey;
 create dataset Supplier(SupplierType)
-  partitioned by key s_suppkey on group1;
+  partitioned by key s_suppkey;
 create dataset Region(RegionType) 
-  partitioned by key r_regionkey on group1;
+  partitioned by key r_regionkey;
 create dataset Nation(NationType) 
-  partitioned by key n_nationkey on group1;
+  partitioned by key n_nationkey;
 create dataset Part(PartType)
-  partitioned by key p_partkey on group1;
+  partitioned by key p_partkey;
 create dataset Partsupp(PartSuppType)
-  partitioned by key ps_partkey, ps_suppkey on group1;  
+  partitioned by key ps_partkey, ps_suppkey;  
 create dataset Customer(CustomerType) 
-  partitioned by key c_custkey on group1;
+  partitioned by key c_custkey;
 
 load dataset LineItem 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q12_shipping.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q12_shipping.aql
index ac87051..9dcade8 100644
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q12_shipping.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q12_shipping.aql
@@ -89,24 +89,22 @@
   ps_comment: string 
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 create dataset Orders(OrderType)
-  partitioned by key o_orderkey on group1;
+  partitioned by key o_orderkey;
 create dataset Supplier(SupplierType)
-  partitioned by key s_suppkey on group1;
+  partitioned by key s_suppkey;
 create dataset Region(RegionType) 
-  partitioned by key r_regionkey on group1;
+  partitioned by key r_regionkey;
 create dataset Nation(NationType) 
-  partitioned by key n_nationkey on group1;
+  partitioned by key n_nationkey;
 create dataset Part(PartType)
-  partitioned by key p_partkey on group1;
+  partitioned by key p_partkey;
 create dataset Partsupp(PartSuppType)
-  partitioned by key ps_partkey, ps_suppkey on group1;  
+  partitioned by key ps_partkey, ps_suppkey;  
 create dataset Customer(CustomerType) 
-  partitioned by key c_custkey on group1;
+  partitioned by key c_custkey;
 
 load dataset LineItem 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q13_customer_distribution.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q13_customer_distribution.aql
index a33a716..9a91177 100644
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q13_customer_distribution.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q13_customer_distribution.aql
@@ -89,24 +89,22 @@
   ps_comment: string 
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 create dataset Orders(OrderType)
-  partitioned by key o_orderkey on group1;
+  partitioned by key o_orderkey;
 create dataset Supplier(SupplierType)
-  partitioned by key s_suppkey on group1;
+  partitioned by key s_suppkey;
 create dataset Region(RegionType) 
-  partitioned by key r_regionkey on group1;
+  partitioned by key r_regionkey;
 create dataset Nation(NationType) 
-  partitioned by key n_nationkey on group1;
+  partitioned by key n_nationkey;
 create dataset Part(PartType)
-  partitioned by key p_partkey on group1;
+  partitioned by key p_partkey;
 create dataset Partsupp(PartSuppType)
-  partitioned by key ps_partkey, ps_suppkey on group1;  
+  partitioned by key ps_partkey, ps_suppkey;  
 create dataset Customer(CustomerType) 
-  partitioned by key c_custkey on group1;
+  partitioned by key c_custkey;
 
 load dataset LineItem 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q14_promotion_effect.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q14_promotion_effect.aql
index 9438746..a38b1d6 100644
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q14_promotion_effect.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q14_promotion_effect.aql
@@ -89,24 +89,22 @@
   ps_comment: string 
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 create dataset Orders(OrderType)
-  partitioned by key o_orderkey on group1;
+  partitioned by key o_orderkey;
 create dataset Supplier(SupplierType)
-  partitioned by key s_suppkey on group1;
+  partitioned by key s_suppkey;
 create dataset Region(RegionType) 
-  partitioned by key r_regionkey on group1;
+  partitioned by key r_regionkey;
 create dataset Nation(NationType) 
-  partitioned by key n_nationkey on group1;
+  partitioned by key n_nationkey;
 create dataset Part(PartType)
-  partitioned by key p_partkey on group1;
+  partitioned by key p_partkey;
 create dataset Partsupp(PartSuppType)
-  partitioned by key ps_partkey, ps_suppkey on group1;  
+  partitioned by key ps_partkey, ps_suppkey;  
 create dataset Customer(CustomerType) 
-  partitioned by key c_custkey on group1;
+  partitioned by key c_custkey;
 
 load dataset LineItem 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q15_top_supplier.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q15_top_supplier.aql
index 948f466..49b0c03 100644
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q15_top_supplier.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q15_top_supplier.aql
@@ -89,24 +89,22 @@
   ps_comment: string 
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 create dataset Orders(OrderType)
-  partitioned by key o_orderkey on group1;
+  partitioned by key o_orderkey;
 create dataset Supplier(SupplierType)
-  partitioned by key s_suppkey on group1;
+  partitioned by key s_suppkey;
 create dataset Region(RegionType) 
-  partitioned by key r_regionkey on group1;
+  partitioned by key r_regionkey;
 create dataset Nation(NationType) 
-  partitioned by key n_nationkey on group1;
+  partitioned by key n_nationkey;
 create dataset Part(PartType)
-  partitioned by key p_partkey on group1;
+  partitioned by key p_partkey;
 create dataset Partsupp(PartSuppType)
-  partitioned by key ps_partkey, ps_suppkey on group1;  
+  partitioned by key ps_partkey, ps_suppkey;  
 create dataset Customer(CustomerType) 
-  partitioned by key c_custkey on group1;
+  partitioned by key c_custkey;
 
 load dataset LineItem 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q16_parts_supplier_relationship.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q16_parts_supplier_relationship.aql
index 5e337d4..ad16d3c 100644
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q16_parts_supplier_relationship.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q16_parts_supplier_relationship.aql
@@ -89,24 +89,22 @@
   ps_comment: string 
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 create dataset Orders(OrderType)
-  partitioned by key o_orderkey on group1;
+  partitioned by key o_orderkey;
 create dataset Supplier(SupplierType)
-  partitioned by key s_suppkey on group1;
+  partitioned by key s_suppkey;
 create dataset Region(RegionType) 
-  partitioned by key r_regionkey on group1;
+  partitioned by key r_regionkey;
 create dataset Nation(NationType) 
-  partitioned by key n_nationkey on group1;
+  partitioned by key n_nationkey;
 create dataset Part(PartType)
-  partitioned by key p_partkey on group1;
+  partitioned by key p_partkey;
 create dataset Partsupp(PartSuppType)
-  partitioned by key ps_partkey, ps_suppkey on group1;  
+  partitioned by key ps_partkey, ps_suppkey;  
 create dataset Customer(CustomerType) 
-  partitioned by key c_custkey on group1;
+  partitioned by key c_custkey;
 
 load dataset LineItem 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q17_small_quantity_order_revenue.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q17_small_quantity_order_revenue.aql
index d631abc..05cf693 100644
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q17_small_quantity_order_revenue.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q17_small_quantity_order_revenue.aql
@@ -89,24 +89,22 @@
   ps_comment: string 
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 create dataset Orders(OrderType)
-  partitioned by key o_orderkey on group1;
+  partitioned by key o_orderkey;
 create dataset Supplier(SupplierType)
-  partitioned by key s_suppkey on group1;
+  partitioned by key s_suppkey;
 create dataset Region(RegionType) 
-  partitioned by key r_regionkey on group1;
+  partitioned by key r_regionkey;
 create dataset Nation(NationType) 
-  partitioned by key n_nationkey on group1;
+  partitioned by key n_nationkey;
 create dataset Part(PartType)
-  partitioned by key p_partkey on group1;
+  partitioned by key p_partkey;
 create dataset Partsupp(PartSuppType)
-  partitioned by key ps_partkey, ps_suppkey on group1;  
+  partitioned by key ps_partkey, ps_suppkey;  
 create dataset Customer(CustomerType) 
-  partitioned by key c_custkey on group1;
+  partitioned by key c_custkey;
 
 load dataset LineItem 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q18_large_volume_customer.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q18_large_volume_customer.aql
index 7f55551..1347ff5 100644
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q18_large_volume_customer.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q18_large_volume_customer.aql
@@ -89,24 +89,22 @@
   ps_comment: string 
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 create dataset Orders(OrderType)
-  partitioned by key o_orderkey on group1;
+  partitioned by key o_orderkey;
 create dataset Supplier(SupplierType)
-  partitioned by key s_suppkey on group1;
+  partitioned by key s_suppkey;
 create dataset Region(RegionType) 
-  partitioned by key r_regionkey on group1;
+  partitioned by key r_regionkey;
 create dataset Nation(NationType) 
-  partitioned by key n_nationkey on group1;
+  partitioned by key n_nationkey;
 create dataset Part(PartType)
-  partitioned by key p_partkey on group1;
+  partitioned by key p_partkey;
 create dataset Partsupp(PartSuppType)
-  partitioned by key ps_partkey, ps_suppkey on group1;  
+  partitioned by key ps_partkey, ps_suppkey;  
 create dataset Customer(CustomerType) 
-  partitioned by key c_custkey on group1;
+  partitioned by key c_custkey;
 
 load dataset LineItem 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q19_discounted_revenue.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q19_discounted_revenue.aql
index cbd9d53..b856eed 100644
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q19_discounted_revenue.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q19_discounted_revenue.aql
@@ -89,24 +89,22 @@
   ps_comment: string 
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 create dataset Orders(OrderType)
-  partitioned by key o_orderkey on group1;
+  partitioned by key o_orderkey;
 create dataset Supplier(SupplierType)
-  partitioned by key s_suppkey on group1;
+  partitioned by key s_suppkey;
 create dataset Region(RegionType) 
-  partitioned by key r_regionkey on group1;
+  partitioned by key r_regionkey;
 create dataset Nation(NationType) 
-  partitioned by key n_nationkey on group1;
+  partitioned by key n_nationkey;
 create dataset Part(PartType)
-  partitioned by key p_partkey on group1;
+  partitioned by key p_partkey;
 create dataset Partsupp(PartSuppType)
-  partitioned by key ps_partkey, ps_suppkey on group1;  
+  partitioned by key ps_partkey, ps_suppkey;  
 create dataset Customer(CustomerType) 
-  partitioned by key c_custkey on group1;
+  partitioned by key c_custkey;
 
 load dataset LineItem 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q1_pricing_summary_report_nt.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q1_pricing_summary_report_nt.aql
index 2d2e3c4..b53fc877 100644
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q1_pricing_summary_report_nt.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q1_pricing_summary_report_nt.aql
@@ -23,10 +23,8 @@
   l_comment: string
 }
 
-create nodegroup group1  if not exists on nc1;
-
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 
 load dataset LineItem 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q20_potential_part_promotion.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q20_potential_part_promotion.aql
index 091dda6..bdb591f 100644
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q20_potential_part_promotion.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q20_potential_part_promotion.aql
@@ -89,24 +89,22 @@
   ps_comment: string 
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 create dataset Orders(OrderType)
-  partitioned by key o_orderkey on group1;
+  partitioned by key o_orderkey;
 create dataset Supplier(SupplierType)
-  partitioned by key s_suppkey on group1;
+  partitioned by key s_suppkey;
 create dataset Region(RegionType) 
-  partitioned by key r_regionkey on group1;
+  partitioned by key r_regionkey;
 create dataset Nation(NationType) 
-  partitioned by key n_nationkey on group1;
+  partitioned by key n_nationkey;
 create dataset Part(PartType)
-  partitioned by key p_partkey on group1;
+  partitioned by key p_partkey;
 create dataset Partsupp(PartSuppType)
-  partitioned by key ps_partkey, ps_suppkey on group1;  
+  partitioned by key ps_partkey, ps_suppkey;  
 create dataset Customer(CustomerType) 
-  partitioned by key c_custkey on group1;
+  partitioned by key c_custkey;
 
 load dataset LineItem 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q21_suppliers_who_kept_orders_waiting.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q21_suppliers_who_kept_orders_waiting.aql
index e8bf676..f544e09 100644
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q21_suppliers_who_kept_orders_waiting.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q21_suppliers_who_kept_orders_waiting.aql
@@ -89,24 +89,22 @@
   ps_comment: string 
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 create dataset Orders(OrderType)
-  partitioned by key o_orderkey on group1;
+  partitioned by key o_orderkey;
 create dataset Supplier(SupplierType)
-  partitioned by key s_suppkey on group1;
+  partitioned by key s_suppkey;
 create dataset Region(RegionType) 
-  partitioned by key r_regionkey on group1;
+  partitioned by key r_regionkey;
 create dataset Nation(NationType) 
-  partitioned by key n_nationkey on group1;
+  partitioned by key n_nationkey;
 create dataset Part(PartType)
-  partitioned by key p_partkey on group1;
+  partitioned by key p_partkey;
 create dataset Partsupp(PartSuppType)
-  partitioned by key ps_partkey, ps_suppkey on group1;  
+  partitioned by key ps_partkey, ps_suppkey;  
 create dataset Customer(CustomerType) 
-  partitioned by key c_custkey on group1;
+  partitioned by key c_custkey;
 
 load dataset LineItem 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q22_global_sales_opportunity.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q22_global_sales_opportunity.aql
index 3f96e89..29131c8 100644
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q22_global_sales_opportunity.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q22_global_sales_opportunity.aql
@@ -89,24 +89,22 @@
   ps_comment: string 
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 create dataset Orders(OrderType)
-  partitioned by key o_orderkey on group1;
+  partitioned by key o_orderkey;
 create dataset Supplier(SupplierType)
-  partitioned by key s_suppkey on group1;
+  partitioned by key s_suppkey;
 create dataset Region(RegionType) 
-  partitioned by key r_regionkey on group1;
+  partitioned by key r_regionkey;
 create dataset Nation(NationType) 
-  partitioned by key n_nationkey on group1;
+  partitioned by key n_nationkey;
 create dataset Part(PartType)
-  partitioned by key p_partkey on group1;
+  partitioned by key p_partkey;
 create dataset Partsupp(PartSuppType)
-  partitioned by key ps_partkey, ps_suppkey on group1;  
+  partitioned by key ps_partkey, ps_suppkey;  
 create dataset Customer(CustomerType) 
-  partitioned by key c_custkey on group1;
+  partitioned by key c_custkey;
 
 load dataset LineItem 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q2_minimum_cost_supplier.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q2_minimum_cost_supplier.aql
index 1b87727..5490213 100644
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q2_minimum_cost_supplier.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q2_minimum_cost_supplier.aql
@@ -89,24 +89,22 @@
   ps_comment: string 
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 create dataset Orders(OrderType)
-  partitioned by key o_orderkey on group1;
+  partitioned by key o_orderkey;
 create dataset Supplier(SupplierType)
-  partitioned by key s_suppkey on group1;
+  partitioned by key s_suppkey;
 create dataset Region(RegionType) 
-  partitioned by key r_regionkey on group1;
+  partitioned by key r_regionkey;
 create dataset Nation(NationType) 
-  partitioned by key n_nationkey on group1;
+  partitioned by key n_nationkey;
 create dataset Part(PartType)
-  partitioned by key p_partkey on group1;
+  partitioned by key p_partkey;
 create dataset Partsupp(PartSuppType)
-  partitioned by key ps_partkey, ps_suppkey on group1;  
+  partitioned by key ps_partkey, ps_suppkey;  
 create dataset Customer(CustomerType) 
-  partitioned by key c_custkey on group1;
+  partitioned by key c_custkey;
 
 load dataset LineItem 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q3_shipping_priority_nt.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q3_shipping_priority_nt.aql
index 3152a4b..68fb864 100644
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q3_shipping_priority_nt.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q3_shipping_priority_nt.aql
@@ -89,24 +89,22 @@
   ps_comment: string 
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 create dataset Orders(OrderType)
-  partitioned by key o_orderkey on group1;
+  partitioned by key o_orderkey;
 create dataset Supplier(SupplierType)
-  partitioned by key s_suppkey on group1;
+  partitioned by key s_suppkey;
 create dataset Region(RegionType) 
-  partitioned by key r_regionkey on group1;
+  partitioned by key r_regionkey;
 create dataset Nation(NationType) 
-  partitioned by key n_nationkey on group1;
+  partitioned by key n_nationkey;
 create dataset Part(PartType)
-  partitioned by key p_partkey on group1;
+  partitioned by key p_partkey;
 create dataset Partsupp(PartSuppType)
-  partitioned by key ps_partkey, ps_suppkey on group1;  
+  partitioned by key ps_partkey, ps_suppkey;  
 create dataset Customer(CustomerType) 
-  partitioned by key c_custkey on group1;
+  partitioned by key c_custkey;
 
 load dataset LineItem 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q4_order_priority.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q4_order_priority.aql
index a616f1c..3f1c7ec 100644
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q4_order_priority.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q4_order_priority.aql
@@ -89,24 +89,22 @@
   ps_comment: string 
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 create dataset Orders(OrderType)
-  partitioned by key o_orderkey on group1;
+  partitioned by key o_orderkey;
 create dataset Supplier(SupplierType)
-  partitioned by key s_suppkey on group1;
+  partitioned by key s_suppkey;
 create dataset Region(RegionType) 
-  partitioned by key r_regionkey on group1;
+  partitioned by key r_regionkey;
 create dataset Nation(NationType) 
-  partitioned by key n_nationkey on group1;
+  partitioned by key n_nationkey;
 create dataset Part(PartType)
-  partitioned by key p_partkey on group1;
+  partitioned by key p_partkey;
 create dataset Partsupp(PartSuppType)
-  partitioned by key ps_partkey, ps_suppkey on group1;  
+  partitioned by key ps_partkey, ps_suppkey;  
 create dataset Customer(CustomerType) 
-  partitioned by key c_custkey on group1;
+  partitioned by key c_custkey;
 
 load dataset LineItem 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q5_local_supplier_volume.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q5_local_supplier_volume.aql
index 3a5650f..d345b3b 100644
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q5_local_supplier_volume.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q5_local_supplier_volume.aql
@@ -89,24 +89,22 @@
   ps_comment: string 
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 create dataset Orders(OrderType)
-  partitioned by key o_orderkey on group1;
+  partitioned by key o_orderkey;
 create dataset Supplier(SupplierType)
-  partitioned by key s_suppkey on group1;
+  partitioned by key s_suppkey;
 create dataset Region(RegionType) 
-  partitioned by key r_regionkey on group1;
+  partitioned by key r_regionkey;
 create dataset Nation(NationType) 
-  partitioned by key n_nationkey on group1;
+  partitioned by key n_nationkey;
 create dataset Part(PartType)
-  partitioned by key p_partkey on group1;
+  partitioned by key p_partkey;
 create dataset Partsupp(PartSuppType)
-  partitioned by key ps_partkey, ps_suppkey on group1;  
+  partitioned by key ps_partkey, ps_suppkey;  
 create dataset Customer(CustomerType) 
-  partitioned by key c_custkey on group1;
+  partitioned by key c_custkey;
 
 load dataset LineItem 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q6_forecast_revenue_change.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q6_forecast_revenue_change.aql
index ea05231..3ca0424 100644
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q6_forecast_revenue_change.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q6_forecast_revenue_change.aql
@@ -89,24 +89,22 @@
   ps_comment: string 
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 create dataset Orders(OrderType)
-  partitioned by key o_orderkey on group1;
+  partitioned by key o_orderkey;
 create dataset Supplier(SupplierType)
-  partitioned by key s_suppkey on group1;
+  partitioned by key s_suppkey;
 create dataset Region(RegionType) 
-  partitioned by key r_regionkey on group1;
+  partitioned by key r_regionkey;
 create dataset Nation(NationType) 
-  partitioned by key n_nationkey on group1;
+  partitioned by key n_nationkey;
 create dataset Part(PartType)
-  partitioned by key p_partkey on group1;
+  partitioned by key p_partkey;
 create dataset Partsupp(PartSuppType)
-  partitioned by key ps_partkey, ps_suppkey on group1;  
+  partitioned by key ps_partkey, ps_suppkey;  
 create dataset Customer(CustomerType) 
-  partitioned by key c_custkey on group1;
+  partitioned by key c_custkey;
 
 load dataset LineItem 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q7_volume_shipping.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q7_volume_shipping.aql
index c603a75..c91eca5 100644
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q7_volume_shipping.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q7_volume_shipping.aql
@@ -89,24 +89,22 @@
   ps_comment: string 
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 create dataset Orders(OrderType)
-  partitioned by key o_orderkey on group1;
+  partitioned by key o_orderkey;
 create dataset Supplier(SupplierType)
-  partitioned by key s_suppkey on group1;
+  partitioned by key s_suppkey;
 create dataset Region(RegionType) 
-  partitioned by key r_regionkey on group1;
+  partitioned by key r_regionkey;
 create dataset Nation(NationType) 
-  partitioned by key n_nationkey on group1;
+  partitioned by key n_nationkey;
 create dataset Part(PartType)
-  partitioned by key p_partkey on group1;
+  partitioned by key p_partkey;
 create dataset Partsupp(PartSuppType)
-  partitioned by key ps_partkey, ps_suppkey on group1;  
+  partitioned by key ps_partkey, ps_suppkey;  
 create dataset Customer(CustomerType) 
-  partitioned by key c_custkey on group1;
+  partitioned by key c_custkey;
 
 load dataset LineItem 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q8_national_market_share.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q8_national_market_share.aql
index bea39bf..420a179 100644
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q8_national_market_share.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q8_national_market_share.aql
@@ -89,24 +89,22 @@
   ps_comment: string 
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
-
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 create dataset Orders(OrderType)
-  partitioned by key o_orderkey on group1;
+  partitioned by key o_orderkey;
 create dataset Supplier(SupplierType)
-  partitioned by key s_suppkey on group1;
+  partitioned by key s_suppkey;
 create dataset Region(RegionType) 
-  partitioned by key r_regionkey on group1;
+  partitioned by key r_regionkey;
 create dataset Nation(NationType) 
-  partitioned by key n_nationkey on group1;
+  partitioned by key n_nationkey;
 create dataset Part(PartType)
-  partitioned by key p_partkey on group1;
+  partitioned by key p_partkey;
 create dataset Partsupp(PartSuppType)
-  partitioned by key ps_partkey, ps_suppkey on group1;  
+  partitioned by key ps_partkey, ps_suppkey;  
 create dataset Customer(CustomerType) 
-  partitioned by key c_custkey on group1;
+  partitioned by key c_custkey;
 
 load dataset LineItem 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/queries/tpch/q9_product_type_profit_nt.aql b/asterix-app/src/test/resources/runtimets/queries/tpch/q9_product_type_profit_nt.aql
index 9d83747..33c2aad 100644
--- a/asterix-app/src/test/resources/runtimets/queries/tpch/q9_product_type_profit_nt.aql
+++ b/asterix-app/src/test/resources/runtimets/queries/tpch/q9_product_type_profit_nt.aql
@@ -89,24 +89,23 @@
   ps_comment: string 
 }
 
-create nodegroup group1  if not exists on nc1, nc2;
 
 create dataset LineItem(LineItemType)
-  partitioned by key l_orderkey, l_linenumber on group1;
+  partitioned by key l_orderkey, l_linenumber;
 create dataset Orders(OrderType)
-  partitioned by key o_orderkey on group1;
+  partitioned by key o_orderkey;
 create dataset Supplier(SupplierType)
-  partitioned by key s_suppkey on group1;
+  partitioned by key s_suppkey;
 create dataset Region(RegionType) 
-  partitioned by key r_regionkey on group1;
+  partitioned by key r_regionkey;
 create dataset Nation(NationType) 
-  partitioned by key n_nationkey on group1;
+  partitioned by key n_nationkey;
 create dataset Part(PartType)
-  partitioned by key p_partkey on group1;
+  partitioned by key p_partkey;
 create dataset PartSupp(PartSuppType)
-  partitioned by key ps_partkey, ps_suppkey on group1;  
+  partitioned by key ps_partkey, ps_suppkey;  
 create dataset Customer(CustomerType) 
-  partitioned by key c_custkey on group1;
+  partitioned by key c_custkey;
 
 load dataset LineItem 
 using "edu.uci.ics.asterix.external.dataset.adapter.NCFileSystemAdapter"
diff --git a/asterix-app/src/test/resources/runtimets/results/dml/delete-with-index.adm b/asterix-app/src/test/resources/runtimets/results/dml/delete-from-loaded-dataset-with-index.adm
similarity index 100%
rename from asterix-app/src/test/resources/runtimets/results/dml/delete-with-index.adm
rename to asterix-app/src/test/resources/runtimets/results/dml/delete-from-loaded-dataset-with-index.adm
diff --git a/asterix-app/src/test/resources/runtimets/results/dml/delete.adm b/asterix-app/src/test/resources/runtimets/results/dml/delete-from-loaded-dataset.adm
similarity index 100%
rename from asterix-app/src/test/resources/runtimets/results/dml/delete.adm
rename to asterix-app/src/test/resources/runtimets/results/dml/delete-from-loaded-dataset.adm
diff --git a/asterix-app/src/test/resources/runtimets/results/dml/empty-load-with-index.adm b/asterix-app/src/test/resources/runtimets/results/dml/empty-load-with-index.adm
new file mode 100644
index 0000000..8eabe57
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/dml/empty-load-with-index.adm
@@ -0,0 +1 @@
+{ "l_orderkey": 1, "l_linenumber": 3, "l_suppkey": 6 }
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/results/dml/empty-load.adm b/asterix-app/src/test/resources/runtimets/results/dml/empty-load.adm
new file mode 100644
index 0000000..8eabe57
--- /dev/null
+++ b/asterix-app/src/test/resources/runtimets/results/dml/empty-load.adm
@@ -0,0 +1 @@
+{ "l_orderkey": 1, "l_linenumber": 3, "l_suppkey": 6 }
\ No newline at end of file
diff --git a/asterix-app/src/test/resources/runtimets/results/dml/insert-tuple.adm b/asterix-app/src/test/resources/runtimets/results/dml/insert-into-empty-dataset-with-index.adm
similarity index 100%
copy from asterix-app/src/test/resources/runtimets/results/dml/insert-tuple.adm
copy to asterix-app/src/test/resources/runtimets/results/dml/insert-into-empty-dataset-with-index.adm
diff --git a/asterix-app/src/test/resources/runtimets/results/dml/insert-tuple.adm b/asterix-app/src/test/resources/runtimets/results/dml/insert-into-empty-dataset.adm
similarity index 100%
rename from asterix-app/src/test/resources/runtimets/results/dml/insert-tuple.adm
rename to asterix-app/src/test/resources/runtimets/results/dml/insert-into-empty-dataset.adm
diff --git a/asterix-app/src/test/resources/runtimets/results/dml/insert-tuple-with-index.adm b/asterix-app/src/test/resources/runtimets/results/dml/insert-into-loaded-dataset-with-index_01.adm
similarity index 100%
rename from asterix-app/src/test/resources/runtimets/results/dml/insert-tuple-with-index.adm
rename to asterix-app/src/test/resources/runtimets/results/dml/insert-into-loaded-dataset-with-index_01.adm
diff --git a/asterix-app/src/test/resources/runtimets/results/dml/insert-with-index.adm b/asterix-app/src/test/resources/runtimets/results/dml/insert-into-loaded-dataset-with-index_02.adm
similarity index 100%
rename from asterix-app/src/test/resources/runtimets/results/dml/insert-with-index.adm
rename to asterix-app/src/test/resources/runtimets/results/dml/insert-into-loaded-dataset-with-index_02.adm
diff --git a/asterix-app/src/test/resources/runtimets/results/dml/insert-tuple.adm b/asterix-app/src/test/resources/runtimets/results/dml/insert-into-loaded-dataset_01.adm
similarity index 100%
copy from asterix-app/src/test/resources/runtimets/results/dml/insert-tuple.adm
copy to asterix-app/src/test/resources/runtimets/results/dml/insert-into-loaded-dataset_01.adm
diff --git a/asterix-app/src/test/resources/runtimets/results/dml/insert-wisc.adm b/asterix-app/src/test/resources/runtimets/results/dml/insert-into-loaded-dataset_02.adm
similarity index 100%
rename from asterix-app/src/test/resources/runtimets/results/dml/insert-wisc.adm
rename to asterix-app/src/test/resources/runtimets/results/dml/insert-into-loaded-dataset_02.adm