tursodatabase / libsql-client-go

Go client API for libSQL
MIT License
166 stars 23 forks source link

File urls with double leading slashes cause "SQL logic error: out of memory" #37

Open CodingDoug opened 1 year ago

CodingDoug commented 1 year ago
var dbUrl = "file://tmp/test.db"

db, err := sql.Open("libsql", dbUrl)
if err != nil {
    fmt.Fprintf(os.Stderr, "failed to open db %s: %s", dbUrl, err)
    os.Exit(1)
}

rows, err := db.Query("select 1")
if err != nil {
    fmt.Fprintf(os.Stderr, "failed to execute statement: %s", err)
    os.Exit(1)
}

The error happens on Query (not the Open!) This does not happen when the file URL is "file:/tmp/test.db" or "file:///tmp/test.db"

The TypeScript driver documents that two leading slashes is not a valid URL, which is fine. We just need a more sensible error message about it, and preferably during Open and not Query.