Skip to content

Commit 8a2d14f

Browse files
committed
Fix duckdb connection DNS string
1 parent 8cbf898 commit 8a2d14f

1 file changed

Lines changed: 15 additions & 12 deletions

File tree

connectors/duckdb/connector.go

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,11 @@ func init() {
1717
connectors.Register[Config](func(cfg Config) (connectors.Connector, error) {
1818
connStr := cfg.ConnectionString()
1919

20+
// Remove duckdb:// prefix if present to standardize
21+
connStr = strings.TrimPrefix(connStr, "duckdb://")
22+
23+
safetyGuardRails := "allow_community_extensions=false"
24+
2025
// Special handling for memory database - don't modify memory connection strings
2126
if connStr == ":memory:" {
2227
// Leave it as is - the driver expects exactly ":memory:"
@@ -25,21 +30,19 @@ func init() {
2530
// convert to proper in-memory format
2631
connStr = ":memory:"
2732
} else {
28-
// Remove duckdb:// prefix if present to standardize
29-
connStr = strings.TrimPrefix(connStr, "duckdb://")
30-
31-
// Add safety guard rails for non-memory DB
32-
safetyGuardRails := "access_mode=READ_ONLY&allow_community_extensions=false"
33-
if strings.Contains(connStr, "?") {
34-
connStr += "&" + safetyGuardRails
35-
} else {
36-
connStr += "?" + safetyGuardRails
37-
}
3833

39-
// Add prefix back
40-
connStr = "duckdb://" + connStr
34+
safetyGuardRails = "access_mode=READ_ONLY&" + safetyGuardRails
4135
}
4236

37+
//Lets add some safety guard rails
38+
if strings.Contains(connStr, "?") {
39+
connStr += "&" + safetyGuardRails
40+
} else {
41+
connStr += "?" + safetyGuardRails
42+
}
43+
44+
print(connStr)
45+
4346
db, err := sqlx.Connect("duckdb", connStr)
4447
if err != nil {
4548
return nil, fmt.Errorf("unable to connect to duckdb: %v", err)

0 commit comments

Comments
 (0)