Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/run-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,6 @@ jobs:
with:
fetch-depth: 0
- name: SonarCloud Scan
uses: SonarSource/sonarqube-scan-action@v4.1.0
uses: SonarSource/sonarqube-scan-action@v5.1.0
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
6 changes: 3 additions & 3 deletions pydynamodb/sql/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -225,12 +225,12 @@ class Tokens:
# Common token definition
TABLE_NAME = (
Opt(KeyWords.SUPPRESS_QUOTE)
+ Word(alphanums + "-_<>")("table").set_name("table")
+ Word(alphanums + "-_.")("table").set_name("table")
+ Opt(KeyWords.SUPPRESS_QUOTE)
)
ATTRIBUTE_NAME = (
Opt(KeyWords.SUPPRESS_QUOTE)
+ Word(alphanums + "-_")("attribute_name").set_name("attribute_name")
+ Word(alphanums + "-_.")("attribute_name").set_name("attribute_name")
+ Opt(KeyWords.SUPPRESS_QUOTE)
)
DATA_TYPE = one_of("NUMERIC STRING BINARY", caseless=True)("data_type").set_name(
Expand All @@ -244,7 +244,7 @@ class Tokens:
).set_name("key_type")
INDEX_NAME = (
Opt(KeyWords.SUPPRESS_QUOTE)
+ Word(alphanums + "_")("index_name").set_name("index_name")
+ Word(alphanums + "-_.")("index_name").set_name("index_name")
+ Opt(KeyWords.SUPPRESS_QUOTE)
)
INDEX_TYPE = one_of("GLOBAL LOCAL", caseless=True)("index_type").set_name(
Expand Down
15 changes: 14 additions & 1 deletion tests/test_dml_select.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ def test_parse_simple_case_1(self):
SELECT * FROM Issues.CreateDateIndex
"""
ret = SQLParser(sql).transform()
assert ret == {"Statement": 'SELECT * FROM "Issues"."CreateDateIndex"'}
assert ret == {"Statement": 'SELECT * FROM "Issues.CreateDateIndex"'}

sql = """
SELECT * FROM "Issues"."CreateDateIndex"
Expand Down Expand Up @@ -339,3 +339,16 @@ def test_parse_partiql_functions(self):
assert parser.parser.where_conditions[6] == "size('Title') <= 20"
assert parser.parser.where_conditions[7] == "AND"
assert parser.parser.where_conditions[8] == "CreatedDate IS MISSING"

def test_parse_dot_in_table_name(self):
sql = """
SELECT * FROM "Pub.Issues"."CreateDateIndex"
"""
ret = SQLParser(sql).transform()
assert ret == {"Statement": 'SELECT * FROM "Pub.Issues"."CreateDateIndex"'}

sql = """
SELECT att1, att2 FROM "This.Pub.Issues"."Index.CreateDateIndex"
"""
ret = SQLParser(sql).transform()
assert ret == {"Statement": 'SELECT att1,att2 FROM "This.Pub.Issues"."Index.CreateDateIndex"'}