summaryrefslogtreecommitdiff
path: root/sqlparse
diff options
context:
space:
mode:
authorVictor Uriarte <victor.m.uriarte@intel.com>2016-06-03 11:36:07 -0700
committerVictor Uriarte <victor.m.uriarte@intel.com>2016-06-04 11:54:22 -0700
commit752100443bd1a5ddd81d57166db887c1fbd9f7ef (patch)
tree5e2b93aff70ec9a7e52e08bbcf07ec0a1a18b7b8 /sqlparse
parentcca348e295fc2e00c745d3a8c1bac3e8d4a5d97e (diff)
downloadsqlparse-752100443bd1a5ddd81d57166db887c1fbd9f7ef.tar.gz
Simplify regex [^\W\d_]
[^\W\d_] = [a-z] (when ignoring case) not( not (a-z, numbers, or _) or number or _ ) [(a-z or number or _) and not number and not _] [A-Z] Correct not null spacing
Diffstat (limited to 'sqlparse')
-rw-r--r--sqlparse/keywords.py16
1 files changed, 10 insertions, 6 deletions
diff --git a/sqlparse/keywords.py b/sqlparse/keywords.py
index fb2f042..1b5d5f2 100644
--- a/sqlparse/keywords.py
+++ b/sqlparse/keywords.py
@@ -33,7 +33,7 @@ SQL_REGEX = {
(r"`(``|[^`])*`", tokens.Name),
(r"´(´´|[^´])*´", tokens.Name),
- (r'\$([^\W\d]\w*)?\$', tokens.Name.Builtin),
+ (r'\$([_A-Z]\w*)?\$', tokens.Name.Builtin),
(r'\?', tokens.Name.Placeholder),
(r'%(\(\w+\))?s', tokens.Name.Placeholder),
@@ -45,8 +45,11 @@ SQL_REGEX = {
# is never a functino, see issue183
(r'(CASE|IN|VALUES|USING)\b', tokens.Keyword),
- (r'(@|##|#)[^\W\d_]\w+', tokens.Name),
- (r'[^\W\d_]\w*(?=[.(])', tokens.Name), # see issue39
+ (r'(@|##|#)[A-Z]\w+', tokens.Name),
+ (r'[A-Z]\w*(?=\.)', tokens.Name), # see issue39
+ (r'(?<=\.)[A-Z]\w*', tokens.Name), # .'Name'
+ (r'[A-Z]\w*(?=\()', tokens.Name), # side effect: change kw to func
+
(r'[-]?0x[0-9a-fA-F]+', tokens.Number.Hexadecimal),
(r'[-]?[0-9]*(\.[0-9]+)?[eE][-]?[0-9]+', tokens.Number.Float),
(r'[-]?[0-9]*\.[0-9]+', tokens.Number.Float),
@@ -61,11 +64,12 @@ SQL_REGEX = {
(r'((LEFT\s+|RIGHT\s+|FULL\s+)?(INNER\s+|OUTER\s+|STRAIGHT\s+)?'
r'|(CROSS\s+|NATURAL\s+)?)?JOIN\b', tokens.Keyword),
(r'END(\s+IF|\s+LOOP|\s+WHILE)?\b', tokens.Keyword),
- (r'NOT NULL\b', tokens.Keyword),
+ (r'NOT\s+NULL\b', tokens.Keyword),
(r'CREATE(\s+OR\s+REPLACE)?\b', tokens.Keyword.DDL),
(r'DOUBLE\s+PRECISION\b', tokens.Name.Builtin),
- (r'(?<=\.)[^\W\d_]\w*', tokens.Name),
- (r'[^\W\d]\w*', is_keyword),
+
+ (r'[_A-Z]\w*', is_keyword),
+
(r'[;:()\[\],\.]', tokens.Punctuation),
(r'[<>=~!]+', tokens.Operator.Comparison),
(r'[+/@#%^&|`?^-]+', tokens.Operator),