factor/libs/sql/simple.factor

54 lines
1.7 KiB
Factor

USING: errors generic kernel namespaces prettyprint
sequences sql:utils ;
IN: sql
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 [
! "create table " %
! dup class unparse % "(" %
! tuple>mapping%
! ");" %
! ] "" make ;
! M: connection drop-sql* ( db tuple -- string )
! nip [ "drop table " % tuple>sql-name % ";" % ] "" make ;
!
! M: connection insert-sql* ( db tuple -- string )
! nip [
! "insert into " %
! dup tuple>sql-name %
! ! " (" % fulltuple>insert-all-parts dup first ", " join %
! ") values(" %
! second [ escape-sql enquote ] map ", " join %
! ");" %
! ] "" make ;
!
! M: connection delete-sql* ( db tuples -- string )
! nip [
! ! "delete from table " % unparse % ";" %
! ] "" make ;
!
! M: connection update-sql* ( db tuples -- string )
! nip [
! ] "" make ;
!
! M: connection select-sql* ( db tuples -- string )
! nip [
! ] "" make ;