tursodatabase/turso

Feature Request: Support multiple SQL statements in single Exec() call

Open

#1 440 ouverte le 3 mai 2025

Voir sur GitHub
 (2 commentaires) (2 réactions) (0 assignés)Rust (1 001 forks)github user discovery
enhancementhelp wanted

Métriques du dépôt

Stars
 (19 103 stars)
Métriques de merge PR
 (Métriques PR en attente)

Description

Currently, when executing multiple SQL statements (particularly CREATE TABLE statements) in a single Exec() call, Limbo only executes the first statement and ignores the rest.

// This code only creates table1, ignoring table2 and table3
schema := `
CREATE TABLE table1 (id INTEGER PRIMARY KEY, name TEXT);
CREATE TABLE table2 (id INTEGER PRIMARY KEY, name TEXT);
CREATE TABLE table3 (id INTEGER PRIMARY KEY, name TEXT);
`
_, err = db.Exec(schema)

The same CREATE TABLE sequence works fine with each statement executed separately.

statements := []string{
    "CREATE TABLE table1 (id INTEGER PRIMARY KEY, name TEXT);",
    "CREATE TABLE table2 (id INTEGER PRIMARY KEY, name TEXT);",
    "CREATE TABLE table3 (id INTEGER PRIMARY KEY, name TEXT);",
}

for _, stmt := range statements {
    _, err = db.Exec(stmt)
    // handle error
}

If this is by design (possibly for security reasons), it's fine to close this of course. Supporting multiple statements would improve compatibility with existing SQLite-based applications migrating to Limbo.

main_go.txt

Guide contributeur