diff --git a/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/AbstractCreateChannelStatement.java b/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/AbstractCreateChannelStatement.java
index 3020cb0..43f11fd 100644
--- a/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/AbstractCreateChannelStatement.java
+++ b/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/AbstractCreateChannelStatement.java
@@ -140,7 +140,7 @@
         TypeExpression subItemType = new TypeReferenceExpression(
                 new Pair<>(MetadataConstants.METADATA_DATAVERSE_NAME, subscriptionsTypeName));
         DatasetDecl createSubscriptionsDataset = new DatasetDecl(dataverseName, new Identifier(subscriptionsTableName),
-                subItemType, null, null, new HashMap<>(), DatasetType.INTERNAL, idd, null, true);
+                subItemType, null, new HashMap<>(), DatasetType.INTERNAL, idd, null, true);
 
         ((QueryTranslator) statementExecutor).handleCreateDatasetStatement(metadataProvider, createSubscriptionsDataset,
                 hcc, null);
@@ -155,7 +155,7 @@
             TypeExpression resultItemType =
                     new TypeReferenceExpression(new Pair<>(MetadataConstants.METADATA_DATAVERSE_NAME, resultsTypeName));
             DatasetDecl createResultsDataset = new DatasetDecl(dataverseName, new Identifier(resultsTableName),
-                    resultItemType, null, null, new HashMap<>(), DatasetType.INTERNAL, idd, null, true);
+                    resultItemType, null, new HashMap<>(), DatasetType.INTERNAL, idd, null, true);
 
             //Create an index on timestamp for results
             CreateIndexStatement createTimeIndex = new CreateIndexStatement();
diff --git a/asterix-bad/src/main/resources/lang-extension/lang.txt b/asterix-bad/src/main/resources/lang-extension/lang.txt
index f2b6410..8b8c507 100644
--- a/asterix-bad/src/main/resources/lang-extension/lang.txt
+++ b/asterix-bad/src/main/resources/lang-extension/lang.txt
@@ -129,7 +129,6 @@
   boolean ifNotExists = false;
   Map<String,String> properties = null;
   Pair<List<Integer>, List<List<String>>> primaryKeyFields = null;
-  String nodeGroupName = null;
   Map<String,String> hints = new HashMap<String,String>();
   DatasetDecl stmt = null;
   boolean autogenerated = false;
@@ -142,7 +141,6 @@
     ifNotExists = IfNotExists()
     primaryKeyFields = PrimaryKey()
     (<AUTOGENERATED> { autogenerated = true; } )?
-    (<ON> nodeGroupName = Identifier() )?
     ( <HINTS> hints = Properties() )?
     ( <WITH> withRecord = RecordConstructor() )?
       {
@@ -156,7 +154,6 @@
                                    nameComponents.second,
                                    datasetTypeExpr,
                                    activeRecordTypeExpr,
-                                   nodeGroupName != null ? new Identifier(nodeGroupName) : null,
                                    hints,
                                    DatasetType.INTERNAL,
                                    idd,
