You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Tyler Hobbs (JIRA)" <ji...@apache.org> on 2011/08/08 19:30:27 UTC

[jira] [Updated] (CASSANDRA-2939) CQL regex to match column family in query

     [ https://issues.apache.org/jira/browse/CASSANDRA-2939?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tyler Hobbs updated CASSANDRA-2939:
-----------------------------------

    Attachment: 2939-test.txt
                2939.txt

2939.txt updates the regex to the one provided by Blake. (In case you're not familiar with the syntax, "+?" is a non-greedy version of "+".)

2939-test.txt adds a small unit test to exercise the Cursor._cfamily_re regex.

> CQL regex to match column family in query
> -----------------------------------------
>
>                 Key: CASSANDRA-2939
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2939
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Drivers
>         Environment: Python CQL
>            Reporter: Blake Visin
>            Assignee: Tyler Hobbs
>              Labels: CQL, python
>         Attachments: 2939-test.txt, 2939.txt
>
>
> In the file cursor.py (https://svn.apache.org/repos/asf/cassandra/drivers/py/cql/cursor.py)
> {code}Line 37: _cfamily_re = re.compile("\s*SELECT\s+.+\s+FROM\s+[\']?(\w+)", re.I | re.M){code}
> The Regex will improperly match anything after the word  'from' even if it is in the WHERE clause
> I believe the fix is:
> {code}_cfamily_re = re.compile("\s*SELECT\s+.+?\s+FROM\s+[\']?(\w+)", re.I | re.M){code}
> Added the ? so the regex is not so greedy
> use this query to reproduce the results:
> SELECT key FROM column_family WHERE key = 'break from chores'"

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira