;;;;; ;;;;; ;;;;; Database.egi ;;;;; ;;;;; (define $database-table (algebraic-data-matcher {})) (define $database-name (lambda [$data] (match data database-table {[ n]}))) (define $table-name (lambda [$data] (match data database-table {[ n]}))) ;; ;; Generate SQL ;; (define $simple-select (lambda [$whats $table-name $wheres] {@"select " @(intercalate "," whats) @" from " @table-name @" " @(simple-where wheres)})) (define $simple-where (lambda [$wheres] (letrec {[$loop-fn (lambda [$wheres] (match wheres (list [string something]) {[ ""] [ {{@key @" = " @val} @(loop-fn rs)}]}))]} (match (loop-fn wheres) (list string) {[ ""] [ {@"where " @(intercalate " and " {wc @wcs})}]})))) ;; ;; for SQLite ;; (define $pure-sqlite (lambda [$db $q] (io (sqlite db q))))