Skip to content

Commit 46d0f7d

Browse files
committed
add sqlite dialect and use for py314 compat
1 parent 099475f commit 46d0f7d

3 files changed

Lines changed: 10 additions & 1 deletion

File tree

csql/_/models/dialect.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,9 @@ class SQLDialect:
112112
MSSQL = SQLDialect(paramstyle=ParamStyle.numeric, limit=Limit.top_n)
113113
"""A dialect for MS SQL Server"""
114114

115+
SQLite = SQLDialect(paramstyle=ParamStyle.qmark, limit=Limit.limit)
116+
"""A dialect for SQLite."""
117+
115118
ClickHouse = SQLDialect(paramstyle=ParamStyle.clickhouse, limit=Limit.limit)
116119

117120
# def __repr__(self) -> str:

csql/dialect.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
Limit,
88
ParamStyle,
99
SQLDialect,
10+
SQLite,
1011
)
1112

1213
DefaultDialect = DefaultDialect # give sphinx a nudge # noqa: PLW0127
@@ -22,3 +23,5 @@
2223
"""A dialect for MS SQL Server"""
2324

2425
ClickHouse = SQLDialect(paramstyle=ParamStyle.clickhouse, limit=Limit.limit)
26+
27+
SQLite = SQLite # noqa: PLW0127

tests/test_persist.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import sqlite3
33
from unittest.mock import Mock
44

5+
import csql.dialect
56
from csql import Parameters, Q, Query
67
from csql.contrib.persist import Key, TempTableCacher
78

@@ -43,7 +44,9 @@ def test_persist_reparameterize():
4344
c = TempTableCacher(con)
4445
p = Parameters(val=123)
4546

46-
q1 = Q(f""" select {p["val"]} as val """).persist(c)
47+
q1 = Q(f""" select {p["val"]} as val """, dialect=csql.dialect.SQLite).persist(
48+
c
49+
)
4750
q2 = Q(f""" select val*2 as v2 from {q1} """)
4851

4952
res2 = con.execute(*q2.db).fetchall()

0 commit comments

Comments
 (0)