factor/libs/sql/simple.factor

54 lines
1.7 KiB
Factor
Raw Normal View History

2006-12-17 23:29:33 -05:00
USING: errors generic kernel namespaces prettyprint
sequences sql:utils ;
2006-12-15 04:06:17 -05:00
IN: sql
2006-12-17 23:29:33 -05:00
G: create-sql* ( db tuple -- string ) 1 standard-combination ;
G: drop-sql* ( db tuple -- string ) 1 standard-combination ;
G: insert-sql* ( db tuple -- string ) 1 standard-combination ;
G: delete-sql* ( db tuple -- string ) 1 standard-combination ;
G: update-sql* ( db tuple -- string ) 1 standard-combination ;
G: select-sql* ( db tuple -- string ) 1 standard-combination ;
: create-sql ( tuple -- string ) >r db get r> create-sql* ;
: drop-sql ( tuple -- string ) >r db get r> drop-sql* ;
: insert-sql ( tuple -- string ) >r db get r> insert-sql* ;
: delete-sql ( tuple -- string ) >r db get r> delete-sql* ;
: update-sql ( tuple -- string ) >r db get r> update-sql* ;
: select-sql ( tuple -- string ) >r db get r> select-sql* ;
M: connection create-sql* ( db tuple -- string )
nip [
2006-12-15 04:06:17 -05:00
"create table " %
dup class unparse % "(" %
tuple>mapping%
");" %
] "" make ;
2006-12-17 23:29:33 -05:00
M: connection drop-sql* ( db tuple -- string )
nip [ "drop table " % tuple>sql-name % ";" % ] "" make ;
2006-12-15 04:06:17 -05:00
2006-12-17 23:29:33 -05:00
M: connection insert-sql* ( db tuple -- string )
nip [
2006-12-15 04:06:17 -05:00
"insert into " %
dup tuple>sql-name %
2006-12-17 23:29:33 -05:00
! " (" % fulltuple>insert-all-parts dup first ", " join %
2006-12-15 04:06:17 -05:00
") values(" %
second [ escape-sql enquote ] map ", " join %
");" %
] "" make ;
2006-12-17 23:29:33 -05:00
M: connection delete-sql* ( db tuples -- string )
nip [
2006-12-15 04:06:17 -05:00
! "delete from table " % unparse % ";" %
] "" make ;
2006-12-17 23:29:33 -05:00
M: connection update-sql* ( db tuples -- string )
nip [
2006-12-15 04:06:17 -05:00
] "" make ;
2006-12-17 23:29:33 -05:00
M: connection select-sql* ( db tuples -- string )
nip [
2006-12-15 04:06:17 -05:00
] "" make ;