Author: jbellis
Date: Mon Aug 8 18:46:22 2011
New Revision: 1155055
URL: http://svn.apache.org/viewvc?rev=1155055&view=rev
Log:
fix CF regex
patch by Blake Visin and thobbs for CASSANDRA-2939
Added:
cassandra/drivers/py/test/test_regex.py
Modified:
cassandra/drivers/py/cql/cursor.py
Modified: cassandra/drivers/py/cql/cursor.py
URL:
http://svn.apache.org/viewvc/cassandra/drivers/py/cql/cursor.py?rev=1155055&r1=1155054&r2=1155055&view=diff
==============================================================================
--- cassandra/drivers/py/cql/cursor.py (original)
+++ cassandra/drivers/py/cql/cursor.py Mon Aug 8 18:46:22 2011
@@ -35,7 +35,7 @@ _VOID_DESCRIPTION = (None)
class Cursor:
_keyspace_re = re.compile("USE (\w+);?", re.I | re.M)
- _cfamily_re = re.compile("\s*SELECT\s+.+\s+FROM\s+[\']?(\w+)", re.I | re.M)
+ _cfamily_re = re.compile("\s*SELECT\s+.+?\s+FROM\s+[\']?(\w+)", re.I |
re.M)
_ddl_re = re.compile("\s*(CREATE|ALTER|DROP)\s+", re.I | re.M)
def __init__(self, parent_connection):
Added: cassandra/drivers/py/test/test_regex.py
URL:
http://svn.apache.org/viewvc/cassandra/drivers/py/test/test_regex.py?rev=1155055&view=auto
==============================================================================
--- cassandra/drivers/py/test/test_regex.py (added)
+++ cassandra/drivers/py/test/test_regex.py Mon Aug 8 18:46:22 2011
@@ -0,0 +1,23 @@
+import unittest
+from cql.cursor import Cursor
+
+class TestRegex(unittest.TestCase):
+
+ def single_match(self, match, string):
+ groups = match.groups()
+ self.assertEquals(groups, (string, ))
+
+ def test_cfamily_regex(self):
+ cf_re = Cursor._cfamily_re
+
+ m = cf_re.match("SELECT key FROM column_family WHERE key = 'foo'")
+ self.single_match(m, "column_family")
+
+ m = cf_re.match("SELECT key FROM 'column_family' WHERE key = 'foo'")
+ self.single_match(m, "column_family")
+
+ m = cf_re.match("SELECT key FROM column_family WHERE key = 'break from
chores'")
+ self.single_match(m, "column_family")
+
+ m = cf_re.match("SELECT key FROM 'from_cf' WHERE key = 'break from
chores'")
+ self.single_match(m, "from_cf")