duckdb / duckdb/duckdb-sqlite

Transaction starts prematurely during "did you mean" suggestion, causing database open failure

Open
#183 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
C
Stars
291
Forks
45
Avg merge
10h 13m
Merged PRs (30d)
18

Description

### What happens?

Related to: https://github.com/duckdb/duckdb/issues/21618

When a table is not found in an attached SQLite database, DuckDB Core iterates through all attached databases to generate "did you mean" suggestions. This triggers
GetCatalogTransaction() which calls Transaction::Get(), and for SQLite extension, this starts a transaction and opens the database file.

If a previously attached database file has been deleted, opening it fails with an error like:

Unable to open database "/path/to/deleted.db": unable to open database file

### To Reproduce

look at https://github.com/duckdb/duckdb/issues/21618

### OS:

Mac

### SQLite Version:

main

### DuckDB Version:

1.5.1

### DuckDB Client:

1.5.1

### Full Name:

Tangruilin

### Affiliation:

Alibaba Cloud

### Have you tried this on the latest `main` branch?

- [x] I agree

### Have you tried the steps to reproduce? Do they include all relevant data and configuration? Does the issue you report still appear there?

- [x] I agree

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.