You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by br...@apache.org on 2012/07/11 16:44:38 UTC

[2/3] git commit: cqlsh: describe command outputs valid CQL. Patch by paul cannon, reviewed by brandonwilliams for CASSANDRA-4380

cqlsh: describe command outputs valid CQL.
Patch by paul cannon, reviewed by brandonwilliams for CASSANDRA-4380


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3e485827
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3e485827
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3e485827

Branch: refs/heads/trunk
Commit: 3e4858271d2c2f3f9a6ab4a13f6a48f63b77aa70
Parents: a12aa08
Author: Brandon Williams <br...@apache.org>
Authored: Wed Jul 11 09:38:22 2012 -0500
Committer: Brandon Williams <br...@apache.org>
Committed: Wed Jul 11 09:38:22 2012 -0500

----------------------------------------------------------------------
 bin/cqlsh                      |   13 ++++---------
 pylib/cqlshlib/cql3handling.py |   15 ++++++++++++---
 2 files changed, 16 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/3e485827/bin/cqlsh
----------------------------------------------------------------------
diff --git a/bin/cqlsh b/bin/cqlsh
index 842a313..574d49b 100755
--- a/bin/cqlsh
+++ b/bin/cqlsh
@@ -1187,7 +1187,7 @@ class Shell(cmd.Cmd):
             for cf in ksdef.cf_defs:
                 out.write('\n')
                 # yes, cf might be looked up again. oh well.
-                self.print_recreate_columnfamily(ksname, cf.name, out)
+                self.print_recreate_columnfamily(ksdef.name, cf.name, out)
 
     def print_recreate_columnfamily(self, ksname, cfname, out):
         """
@@ -1201,13 +1201,9 @@ class Shell(cmd.Cmd):
         """
 
         # no metainfo available from system.schema_* for system CFs, so we have
-        # to use cfdef-based description for those.  also, use cfdef-based
-        # description when the CF doesn't have a composite key.  that seems like
-        # an ok compromise between hiding "comparator",
-        # "default_validation_class", etc for cql3, and still allowing users
-        # to work with old cql2-style wide tables.
+        # to use cfdef-based description for those.
 
-        if cfname != 'system' \
+        if ksname != 'system' \
         and self.cqlver_atleast(3):
             try:
                 layout = self.get_columnfamily_layout(ksname, cfname)
@@ -1215,8 +1211,7 @@ class Shell(cmd.Cmd):
                 # most likely a 1.1 beta where cql3 is supported, but not system.schema_*
                 pass
             else:
-                if len(layout.key_components) > 1:
-                    return self.print_recreate_columnfamily_from_layout(layout, out)
+                return self.print_recreate_columnfamily_from_layout(layout, out)
 
         cfdef = self.get_columnfamily(cfname, ksname=ksname)
         return self.print_recreate_columnfamily_from_cfdef(cfdef, out)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/3e485827/pylib/cqlshlib/cql3handling.py
----------------------------------------------------------------------
diff --git a/pylib/cqlshlib/cql3handling.py b/pylib/cqlshlib/cql3handling.py
index 2bc7ef9..1628c66 100644
--- a/pylib/cqlshlib/cql3handling.py
+++ b/pylib/cqlshlib/cql3handling.py
@@ -41,6 +41,17 @@ class Cql3ParsingRuleSet(CqlParsingRuleSet):
         'compact', 'storage', 'order', 'by', 'asc', 'desc', 'clustering', 'token'
     ))
 
+    columnfamily_options = (
+        # (CQL option name, Thrift option name (or None if same))
+        ('comment', None),
+        ('comparator', 'comparator_type'),
+        ('read_repair_chance', None),
+        ('gc_grace_seconds', None),
+        ('default_validation', 'default_validation_class'),
+        ('replicate_on_write', None),
+        ('compaction_strategy_class', 'compaction_strategy'),
+    )
+
     columnfamily_layout_options = (
         'comment',
         'bloom_filter_fp_chance',
@@ -48,8 +59,6 @@ class Cql3ParsingRuleSet(CqlParsingRuleSet):
         'read_repair_chance',
         # 'local_read_repair_chance',   -- not yet a valid cql option
         'gc_grace_seconds',
-        'min_compaction_threshold',
-        'max_compaction_threshold',
         'replicate_on_write',
         'compaction_strategy_class',
     )
@@ -90,7 +99,7 @@ class Cql3ParsingRuleSet(CqlParsingRuleSet):
     def cql3_escape_name(name):
         return '"%s"' % name.replace('"', '""')
 
-    valid_cql3_word_re = re.compile(r'^[a-z][0-9a-z_]*$', re.I)
+    valid_cql3_word_re = re.compile(r'^[a-z][0-9a-z_]*$')
 
     @classmethod
     def is_valid_cql3_name(cls, s):