Closed amotl closed 11 months ago
C'est la vie. Please use the provided example programs until we have them.
There is more work to do, to make the hybrid dialect use the CrateDDLCompiler
instead of the PGDDLCompiler
. Otherwise, when defining a column with autoincrement=True
, it will obviously croak, because it will render the SERIAL
type, which CrateDB does not understand.
sa.Column("x", sa.Integer, primary_key=True, autoincrement=True)
CREATE TABLE testdrive (
x SERIAL NOT NULL,
y INT,
PRIMARY KEY (x)
)
sqlalchemy.exc.InternalError: (psycopg.errors.InternalError_) Cannot find data type: serial
Cannot find portal: c_10479c0a0_1
with psycopg3
This flaw has been observed with the psycopg
driver in asynchronous mode when using result streaming based on server-side cursors. It can be exercised using the async_streaming.py example program.
python examples/async_streaming.py psycopg
The same program works fine when using the asyncpg
driver.
python examples/async_streaming.py asyncpg
This patch has been replaced by two others.
/cc @SStorm, @surister
About
The idea is to unlock the CrateDB dialect for SQLAlchemy with the psycopg3 and asyncpg drivers by introducing corresponding
crate+psycopg://
,crate+asyncpg://
, andcrate+urllib3://
dialect identifiers.The asynchronous variant of
psycopg
is also supported and will be automatically selected when usingcreate_async_engine()
instead ofcreate_engine()
.Installation
Examples
Those example programs exercise basic conversations using the specified drivers.
References