커맨드라인 트러블슈팅
커맨드라인 트러블슈팅 (Command Line)
DuckDB 커맨드라인 클라이언트를 쓰다 보면 특정 버전에서 만날 수 있는 알려진 문제(known issue)가 몇 가지 있어요. 이 페이지는 그 문제들과 해결 방법을 정리해 둔 거예요.
출처: 공식문서
v1.5.2에서 HTTPS 데이터베이스 열기
DuckDB v1.5.2에는 커맨드라인에서 HTTPS 데이터베이스를 바로 열 때 httpfs 확장 자동 로딩 과정에서 오류가 나는 알려진 문제가 있어요.
duckdb https://blobs.duckdb.org/data/tpch-sf1.db
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!"
이 문제를 우회하려면 URL 앞에 duckdb::를 붙이면 돼요.
duckdb duckdb:https://blobs.duckdb.org/data/tpch-sf1.db
v1.5.0에서 파이프로 넘긴 스크립트가 실행되지 않는 문제
Linux와 macOS에서 DuckDB v1.5.0에는 커맨드라인 클라이언트가 파이프로 넘긴 스크립트를 해석하지 못하는 알려진 문제가 있어요 (#21243).
문제를 재현해 볼게요. 먼저 test.sql 파일을 만들어요.
echo "SELECT 42 AS x;" > test.sql
이 파일을 DuckDB 1.5.0 CLI 클라이언트에 파이프로 넘기면 스크립트가 실행되지 않아요.
duckdb < test.sql
# does not run the script
해결 방법은 호출 끝에 | cat을 붙이는 거예요.
duckdb < test.sql | cat
┌───────┐
│ x │
│ int32 │
├───────┤
│ 42 │
└───────┘
파일에서 파이프로 넘기는 경우라면 -f 인자를 쓸 수도 있어요.
duckdb -f test.sql
┌───────┐
│ x │
│ int32 │
├───────┤
│ 42 │
└───────┘