Zum Inhalt springen

Kommandozeile

Anbinden von HTTPS-Datenbanken in v1.5.2

DuckDB v1.5.2 hat ein bekanntes Problem: Das direkte Öffnen einer HTTPS-Datenbank von der Kommandozeile schlägt mit einem Fehler beim automatischen Laden der httpfs-Erweiterung fehl:

Terminal window
duckdb https://blobs.duckdb.org/data/tpch-sf1.db
Terminal window
Extension Autoloading Error:
An error occurred while trying to automatically install the required extension 'httpfs':
Initialization function "httpfs_duckdb_cpp_init" from file ".../.duckdb/extensions/v1.5.2/osx_arm64/httpfs.duckdb_extension" threw an exception:
"Schema with name main does not exist!"

Als Workaround stellen Sie der URL duckdb: voran:

Terminal window
duckdb duckdb:https://blobs.duckdb.org/data/tpch-sf1.db

Weitergeleitete Skripte werden in v1.5.0 nicht ausgeführt

Unter Linux und macOS hat DuckDB v1.5.0 ein bekanntes Problem: Der Kommandozeilen-Client interpretiert weitergeleitete (gepipte) Skripte nicht (#21243).

Um das Problem zu demonstrieren, legen Sie eine Datei test.sql an:

Terminal window
echo "SELECT 42 AS x;" > test.sql

Das Weiterleiten der Datei an den DuckDB-1.5.0-CLI-Client führt das Skript nicht aus:

Terminal window
duckdb < test.sql
# does not run the script

Als Workaround fügen Sie | cat am Ende des Aufrufs hinzu:

Terminal window
duckdb < test.sql | cat
┌───────┐
│ x │
│ int32 │
├───────┤
│ 42 │
└───────┘

Wenn Sie aus einer Datei weiterleiten, können Sie auch das Argument -f verwenden:

Terminal window
duckdb -f test.sql
┌───────┐
│ x │
│ int32 │
├───────┤
│ 42 │
└───────┘