Skip to content

Suggestion for easier more Rust-like commands #170

@Raj2032

Description

@Raj2032

Hey @KyGost, I wanted to suggest improvements to multisql.

In this example:

use gluesql::prelude::*;

fn main() {
    let storage = SledStorage::new("data/doc-db").unwrap();
    let mut glue = Glue::new(storage);
    let sqls = vec![
        "DROP TABLE IF EXISTS Glue;",
        "CREATE TABLE Glue (id INTEGER);",
        "INSERT INTO Glue VALUES (100);",
        "INSERT INTO Glue VALUES (200);",
        "SELECT * FROM Glue WHERE id > 100;",
    ];

    for sql in sqls {
        let output = glue.execute(sql).unwrap();
        println!("{:?}", output)
    }
}

While this is great for basic stuff, I wanted to suggest a more cleaner alternative.

Here is my suggestion to use commands to execute stuff such as select etc etc. Here is my example (this is pseudo code):

glue.drop(["Glue"]);
glue.create("Glue", vec![id: INTEGER]); // Takes two arguments, one is for the table name, the other is for column names
glue.insert("Glue", vec!(100);
glue.insert("Glue", vec!(200);
glue.select("Glue", ["*"], [id > 100, id == 100]; // table_name, columns, condition(s)

Unless if there was a way to do this already?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions