#sql #split #sqlite

sql_split

Split a string wtih multiple sqlite sql statements into separate strings

2 releases

0.1.1 Apr 26, 2022
0.1.0 Apr 26, 2022

#1189 in Database interfaces

MIT license

19KB
343 lines

sql_split

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.

License: MIT


lib.rs:

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.

No runtime deps