]> gitweb.factorcode.org Git - factor.git/blob - libs/sql/simple.factor
more sql changes
[factor.git] / libs / sql / simple.factor
1 USING: errors generic kernel namespaces prettyprint\r
2 sequences sql:utils ;\r
3 IN: sql\r
4 \r
5 G: create-sql* ( db tuple -- string ) 1 standard-combination ;\r
6 G: drop-sql* ( db tuple -- string ) 1 standard-combination ;\r
7 G: insert-sql* ( db tuple -- string ) 1 standard-combination ;\r
8 G: delete-sql* ( db tuple -- string ) 1 standard-combination ;\r
9 G: update-sql* ( db tuple -- string ) 1 standard-combination ;\r
10 G: select-sql* ( db tuple -- string ) 1 standard-combination ;\r
11 \r
12 : create-sql ( tuple -- string ) >r db get r> create-sql* ;\r
13 : drop-sql ( tuple -- string ) >r db get r> drop-sql* ;\r
14 : insert-sql ( tuple -- string ) >r db get r> insert-sql* ;\r
15 : delete-sql ( tuple -- string ) >r db get r> delete-sql* ;\r
16 : update-sql ( tuple -- string ) >r db get r> update-sql* ;\r
17 : select-sql ( tuple -- string ) >r db get r> select-sql* ;\r
18 \r
19 ! M: connection create-sql* ( db tuple -- string )\r
20     ! nip [\r
21         ! "create table " %\r
22         ! dup class unparse % "(" %\r
23         ! tuple>mapping%\r
24         ! ");" %\r
25     ! ] "" make ;\r
26 \r
27 ! M: connection drop-sql* ( db tuple -- string )\r
28     ! nip [ "drop table " % tuple>sql-name % ";" % ] "" make ;\r
29\r
30 ! M: connection insert-sql* ( db tuple -- string )\r
31     ! nip [\r
32         ! "insert into " %\r
33         ! dup tuple>sql-name %\r
34         ! ! " (" % fulltuple>insert-all-parts dup first ", " join %\r
35         ! ") values(" %\r
36         ! second [ escape-sql enquote ] map ", " join %\r
37         ! ");" %\r
38     ! ] "" make ;\r
39\r
40 ! M: connection delete-sql* ( db tuples -- string )\r
41     ! nip [\r
42         ! ! "delete from table " % unparse % ";" %\r
43     ! ] "" make ;\r
44\r
45 ! M: connection update-sql* ( db tuples -- string )\r
46     ! nip [\r
47     ! ] "" make ;\r
48\r
49 ! M: connection select-sql* ( db tuples -- string )\r
50     ! nip [\r
51     ! ] "" make ;\r
52 \r
53 \r