Skip to content

Commit c36336a

Browse files
committed
Do not escape the upper case names
1 parent be3a2b8 commit c36336a

2 files changed

Lines changed: 13 additions & 1 deletion

File tree

litecli/sqlcompleter.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ def __init__(self, supported_formats=(), keyword_casing="auto"):
258258
self.reserved_words = set()
259259
for x in self.keywords:
260260
self.reserved_words.update(x.split())
261-
self.name_pattern = compile(r"^[_a-z][_a-z0-9\$]*$")
261+
self.name_pattern = compile(r"^[_a-zA-Z][_a-zA-Z0-9\$]*$")
262262

263263
self.special_commands = []
264264
self.table_formats = supported_formats

tests/test_smart_completion_public_schema_only.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,18 @@ def complete_event():
4040
return Mock()
4141

4242

43+
def test_escape_name(completer):
44+
45+
for name, expected_name in [# Upper case name shouldn't be escaped
46+
("BAR", "BAR"),
47+
# This name is escaped and should start with back tick
48+
("2025todos", "`2025todos`"),
49+
# normal case
50+
("people", "people"),
51+
# table name with _underscore should not be escaped
52+
("django_users", "django_users")]:
53+
assert completer.escape_name(name) == expected_name
54+
4355
def test_empty_string_completion(completer, complete_event):
4456
text = ""
4557
position = 0

0 commit comments

Comments
 (0)