- Notifications
You must be signed in to change notification settings - Fork31
[DRAFT] SA20: Add compatibility adapters for psycopg3 and asyncpg dialects#532
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
It introduces the `crate+psycopg://`, `crate+asyncpg://`, and`crate+urllib3://` dialect identifiers. The asynchronous variant of`psycopg` is also supported.
amotl commentedMar 4, 2023 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
Backlog1. Missing test casesC'est la vie. Please use the provided example programs until we have them. 2. Still using PGDDLCompilerThere is more work to do, to make the hybrid dialect use the sa.Column("x",sa.Integer,primary_key=True,autoincrement=True) CREATETABLEtestdrive (xSERIALNOT NULL,yINT,PRIMARY KEY (x)) sqlalchemy.exc.InternalError: (psycopg.errors.InternalError_)Cannotfinddata type:serial 3. Error |
| About | |
| ===== | |
| Example program to demonstrate how to connect to CrateDB using its SQLAlchemy | |
| dialect, and exercise a few basic examples using the low-level table API, this | |
| time in asynchronous mode. | |
| Specific to the asynchronous mode of SQLAlchemy is the streaming of results: | |
| > The `AsyncConnection` also features a "streaming" API via the `AsyncConnection.stream()` | |
| > method that returns an `AsyncResult` object. This result object uses a server-side cursor | |
| > and provides an async/await API, such as an async iterator. | |
| > | |
| > -- https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#synopsis-core |
Bug
crate-python/examples/async_streaming.py
Lines 42 to 47 in387b19f
| Bugs | |
| ==== | |
| When using the `psycopg` driver, the program currently croaks like:: | |
| sqlalchemy.exc.InternalError: (psycopg.errors.InternalError_) Cannot find portal: c_10479c0a0_1 |
References
amotl commentedDec 23, 2023 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
This patch has been replaced by two others. |
Uh oh!
There was an error while loading.Please reload this page.
About
The idea is to unlock the CrateDB dialect for SQLAlchemy with thepsycopg3 andasyncpg drivers by introducing corresponding
crate+psycopg://,crate+asyncpg://, andcrate+urllib3://dialect identifiers.The asynchronous variant of
psycopgis 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