Skip to content

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

@jnesss

Description

@jnesss

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions