#include "parser.h" #include "usql.h" // https://dev.to/joaoh82/what-would-sqlite-look-like-if-written-in-rust-part-1-2np4 // parser should get lexer as param and table executor to be able translate * or get types or so // podporovat create as select // drop table int main(int argc, char *argv[]) { std::vector sql_commands{ "create table a (i integer not null, s varchar(64), f float null)", "insert into a (i, s) values(1, upper('one'))", "insert into a (i, s) values(2, 'two')", "insert into a (i, s) values(3, 'two')", "insert into a (i, s) values(4, lower('FOUR'))", "insert into a (i, s) values(5, 'five')", // "select i, s from a where i > 2", // "select i, s from a where i = 1", // "select i, s from a where s = 'two'", // "select i, s from a where i <= 3 and s = 'one'", // "select i, s from a where i > 0", // "delete from a where i = 4", // "select i, s from a where i > 0", // "update a set f = 9.99 where i = 3", // "select i, s, f from a where i = 3", // "update a set s = 'three', f = f + 0.01 where i = 3", // "select i, s, f from a where i = 3", // "create table data (ticker varchar(8), price float null)", // "load data from '/Users/vaclavt/Library/Mobile Documents/com~apple~CloudDocs/Development/usql/data.csv')", // "select ticker, price from data", "select i, s, f from a where i < 300", "create table x as select i, s, f from a where i < 300", "select i, s, f from x where i < 300" }; usql::USql uSql{}; for (auto command : sql_commands) { std::cout << command << std::endl; auto result = uSql.execute(command); result->print(); } return 0; }