(cqlsh) parse_for_table_meta errors out on queries with undefined grammars

patch by Philip Thompson; reviewed by Mikhail Stepura for CASSANDRA-8262
diff --git a/CHANGES.txt b/CHANGES.txt
index ee18be0..2e60f3a 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,6 @@
 2.1.2
+ * (cqlsh) parse_for_table_meta errors out on queries with undefined
+   grammars (CASSANDRA-8262)
  * (cqlsh) Fix SELECT ... TOKEN() function broken in C* 2.1.1 (CASSANDRA-8258)
  * Fix Cassandra crash when running on JDK8 update 40 (CASSANDRA-8209)
  * Optimize partitioner tokens (CASSANDRA-8230)
diff --git a/bin/cqlsh b/bin/cqlsh
index 763a828..6ace914 100755
--- a/bin/cqlsh
+++ b/bin/cqlsh
@@ -943,7 +943,10 @@
         return result
 
     def parse_for_table_meta(self, query_string):
-        parsed = cqlruleset.cql_parse(query_string)[1]
+        try:
+            parsed = cqlruleset.cql_parse(query_string)[1]
+        except IndexError:
+            return None
         ks =  self.cql_unprotect_name(parsed.get_binding('ksname', None))
         cf = self.cql_unprotect_name(parsed.get_binding('cfname'))
         return self.get_table_meta(ks, cf)
@@ -1010,6 +1013,8 @@
 
     def print_static_result(self, rows, table_meta):
         if not rows:
+            if not table_meta:
+                return
             # print header only
             colnames = table_meta.columns.keys()  # full header
             formatted_names = [self.myformat_colname(name, table_meta) for name in colnames]