DuckDB `register` is not visible from `con.cursor()`
Maintainer antworten meist innerhalb von 3 Tagen
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 55/100
Rechercherichtung
Start by reading the implementation and documentation for register, arrow_dataset, and from_arrow; the issue does not name their file paths. Reproduce the example with DuckDB 1.5.6 and xarray-sql 0.6.0, comparing queries through con and con.cursor(). Decide whether to document the view workaround or add a view option, then verify the documented or implemented behavior across cursors.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
xql.register(con, name, ds) on a DuckDB connection works on that handle, but a cursor from the same connection cannot see the table. Apps that run each query on con.cursor() (for thread safety, as Lumen's DuckDBSource does) then get a CatalogException.
import duckdb, xarray as xr, xarray_sql as xql
ds = xr.Dataset({"t": ("x", [1.0, 2.0])}, coords={"x": [0, 1]})
con = duckdb.connect()
xql.register(con, "grid", ds)
con.sql("SELECT COUNT(*) FROM grid").fetchall() # [(2,)]
con.cursor().sql("SELECT COUNT(*) FROM grid").fetchall() # CatalogException: Table with name grid does not exist!
A view works from every cursor:
con.from_arrow(xql.arrow_dataset(ds)).to_view("grid_view")
con.cursor().sql("SELECT COUNT(*) FROM grid_view").fetchall() # [(2,)]
I think this comes from DuckDB keeping Python-registered objects per connection handle, so it may be a docs note rather than a bug. Would an option on register that creates a view (or a line in the docs pointing to from_arrow(arrow_dataset(ds)).to_view(name)) make sense?
duckdb 1.5.6, xarray-sql 0.6.0
- Vorherrschende Sprache
- Python
- Sterne
- 142
- Forks
- 19
- Ø Merge
- 3 T. 47 Min.
- Gemergte PRs (30 T.)
- 8
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus xqlsystems/xarray-sql
-
dependencies github_actions
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
xqlsystems/xarray-sql#295 ·
Maintainer antworten meist innerhalb von 3 Tagen
-
A big-endian data variable registers, then every query fails: Byte-swapped arrays not supportedOffenbug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
xqlsystems/xarray-sql#288 ·
Maintainer antworten meist innerhalb von 3 Tagen
-
documentation ml
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 85/100
xqlsystems/xarray-sql#268 ·
Maintainer antworten meist innerhalb von 3 Tagen
-
enhancement ml
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 64/100
xqlsystems/xarray-sql#267 · 4 Kommentare ·
Maintainer antworten meist innerhalb von 3 Tagen
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 74/100
xqlsystems/xarray-sql#243 ·
Maintainer antworten meist innerhalb von 3 Tagen
Alle Issues in xqlsystems/xarray-sql
Ähnliche Issues
-
documentation good first issue
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
MarketSquare/robotframework-browser#5479 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Visual COBOL: missing 11.0 and 12.0, and 9.0 date differs from Rocket Software's lifecycle pageOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
endoflife-date/endoflife.date#11561 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
OCA/l10n-brazil#5602 ·
Maintainer antworten meist innerhalb von 1 Tag
-
documentation review-2.0.0
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
dkuenzel/meshcore-home-gateway#106 ·
Maintainer antworten meist innerhalb von 1 Tag