Skip to content

Commit dfbed6d

Browse files
authored
fix: set div_is_floordiv to False to avoid bad casts
1 parent 5bf8a59 commit dfbed6d

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

duckdb_engine/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,8 +237,8 @@ class Dialect(PGDialect_psycopg2):
237237
supports_comments = has_comment_support()
238238
supports_sane_rowcount = False
239239
supports_server_side_cursors = False
240+
div_is_floordiv = False # TODO: tweak this to be based on DuckDB version
240241
inspector = DuckDBInspector
241-
# colspecs TODO: remap types to duckdb types
242242
colspecs = util.update_copy(
243243
PGDialect.colspecs,
244244
{

duckdb_engine/tests/test_datatypes.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
from sqlalchemy.ext.declarative import declarative_base
2626
from sqlalchemy.orm import Session
2727
from sqlalchemy.sql import sqltypes
28-
from sqlalchemy.types import JSON
28+
from sqlalchemy.types import FLOAT, JSON
2929

3030
from .._supports import duckdb_version, has_uhugeint_support
3131
from ..datatypes import Map, Struct, types
@@ -238,3 +238,13 @@ def test_interval(engine: Engine, snapshot: SnapshotTest) -> None:
238238
test_table = Table("test_table", MetaData(), Column("duration", Interval))
239239

240240
assert "duration INTERVAL" in str(schema.CreateTable(test_table).compile(engine))
241+
242+
243+
def test_div_is_floordiv(engine: Engine) -> None:
244+
test_table = Table(
245+
"test_table", MetaData(), Column("value", FLOAT), Column("eur2usd_rate", FLOAT)
246+
)
247+
248+
stmt = test_table.c.value / test_table.c.eur2usd_rate
249+
250+
assert str(stmt.compile(engine)) == "test_table.value / test_table.eur2usd_rate"

0 commit comments

Comments
 (0)