Crate sql_split

Source
Expand description

Split a string into individual sqlite sql statements.

This package is a library that contains some routines for managing multiple sql statements in a string. sqlite silently ignores multiple statements when it only expects one. The popular rusqlite also does this.

use sql_split::split;
use rusqlite::{Connection, Result};

let conn = Connection::open_in_memory().expect("Can't open db in memory");
let sql = "CREATE TABLE foo (bar text); CREATE TABLE meep (moop text)";
for s in split(sql) {
    conn.execute(&s, []).expect("Can't write to the db");
}

In addition to basic sql statement splitting, there are functions to count the number of statements, a short-cutting function that tries to quickly tell you if you have more than one statement, and a short-cutting function that only tries to split out the first n statements.

Functionsยง

count
Count statements in a string of sqlite sql
is_multiple
Return true iff SQL contains multiple sql statements
split
Split a string into individual sql statements.
split_n
Split first N statements from a multi-statement sql string into a Vec