recording patches so i can go eat
parent
c2219c94b4
commit
70c91ffad1
|
@ -40,15 +40,15 @@ M: postgresql-db dispose ( db -- )
|
||||||
M: postgresql-statement bind-statement* ( statement -- )
|
M: postgresql-statement bind-statement* ( statement -- )
|
||||||
drop ;
|
drop ;
|
||||||
|
|
||||||
GENERIC: postgresql-bind-conversion ( tuple obj -- low-level-binding )
|
GENERIC: postgresql-bind-conversion ( tuple object -- low-level-binding )
|
||||||
|
|
||||||
M: sql-spec postgresql-bind-conversion ( tuple spec -- obj )
|
M: sql-spec postgresql-bind-conversion ( tuple spec -- object )
|
||||||
slot-name>> swap get-slot-named <low-level-binding> ;
|
slot-name>> swap get-slot-named <low-level-binding> ;
|
||||||
|
|
||||||
M: literal-bind postgresql-bind-conversion ( tuple literal-bind -- obj )
|
M: literal-bind postgresql-bind-conversion ( tuple literal-bind -- object )
|
||||||
nip value>> <low-level-binding> ;
|
nip value>> <low-level-binding> ;
|
||||||
|
|
||||||
M: generator-bind postgresql-bind-conversion ( tuple generate-bind -- obj )
|
M: generator-bind postgresql-bind-conversion ( tuple generate-bind -- object )
|
||||||
dup generator-singleton>> eval-generator
|
dup generator-singleton>> eval-generator
|
||||||
[ swap slot-name>> rot set-slot-named ] [ <low-level-binding> ] bi ;
|
[ swap slot-name>> rot set-slot-named ] [ <low-level-binding> ] bi ;
|
||||||
|
|
||||||
|
@ -66,10 +66,10 @@ M: postgresql-result-set #columns ( result-set -- n )
|
||||||
: result-handle-n ( result-set -- handle n )
|
: result-handle-n ( result-set -- handle n )
|
||||||
[ handle>> ] [ n>> ] bi ;
|
[ handle>> ] [ n>> ] bi ;
|
||||||
|
|
||||||
M: postgresql-result-set row-column ( result-set column -- obj )
|
M: postgresql-result-set row-column ( result-set column -- object )
|
||||||
>r result-handle-n r> pq-get-string ;
|
>r result-handle-n r> pq-get-string ;
|
||||||
|
|
||||||
M: postgresql-result-set row-column-typed ( result-set column -- obj )
|
M: postgresql-result-set row-column-typed ( result-set column -- object )
|
||||||
dup pick out-params>> nth type>>
|
dup pick out-params>> nth type>>
|
||||||
>r >r result-handle-n r> r> postgresql-column-typed ;
|
>r >r result-handle-n r> r> postgresql-column-typed ;
|
||||||
|
|
||||||
|
@ -121,7 +121,7 @@ M: postgresql-db <prepared-statement> ( sql in out -- statement )
|
||||||
M: postgresql-db bind% ( spec -- )
|
M: postgresql-db bind% ( spec -- )
|
||||||
bind-name% 1, ;
|
bind-name% 1, ;
|
||||||
|
|
||||||
M: postgresql-db bind# ( spec obj -- )
|
M: postgresql-db bind# ( spec object -- )
|
||||||
>r bind-name% f swap type>> r> <literal-bind> 1, ;
|
>r bind-name% f swap type>> r> <literal-bind> 1, ;
|
||||||
|
|
||||||
: create-table-sql ( class -- statement )
|
: create-table-sql ( class -- statement )
|
||||||
|
@ -251,7 +251,8 @@ M: postgresql-db persistent-table ( -- hashtable )
|
||||||
{ random-generator { f f f } }
|
{ random-generator { f f f } }
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
M: postgresql-db compound ( str obj -- str' )
|
ERROR: no-compound-found string object ;
|
||||||
|
M: postgresql-db compound ( string object -- string' )
|
||||||
over {
|
over {
|
||||||
{ "default" [ first number>string join-space ] }
|
{ "default" [ first number>string join-space ] }
|
||||||
{ "varchar" [ first number>string paren append ] }
|
{ "varchar" [ first number>string paren append ] }
|
||||||
|
@ -260,5 +261,5 @@ M: postgresql-db compound ( str obj -- str' )
|
||||||
swap [ slot-name>> = ] with find nip
|
swap [ slot-name>> = ] with find nip
|
||||||
column-name>> paren append
|
column-name>> paren append
|
||||||
] }
|
] }
|
||||||
[ "no compound found" 3array throw ]
|
[ drop no-compound-found ]
|
||||||
} case ;
|
} case ;
|
||||||
|
|
|
@ -30,8 +30,6 @@ DEFER: sql%
|
||||||
[ third 1, \ ? 0, ] tri
|
[ third 1, \ ? 0, ] tri
|
||||||
] each ;
|
] each ;
|
||||||
|
|
||||||
USE: multiline
|
|
||||||
/*
|
|
||||||
HOOK: sql-create db ( object -- )
|
HOOK: sql-create db ( object -- )
|
||||||
M: db sql-create ( object -- )
|
M: db sql-create ( object -- )
|
||||||
drop
|
drop
|
||||||
|
@ -97,35 +95,35 @@ M: db sql-limit ( object -- )
|
||||||
! M: db sql-subselectselect ( object -- )
|
! M: db sql-subselectselect ( object -- )
|
||||||
! "(select" sql% sql% ")" sql% ;
|
! "(select" sql% sql% ")" sql% ;
|
||||||
|
|
||||||
GENERIC: sql-table db ( object -- )
|
HOOK: sql-table db ( object -- )
|
||||||
M: db sql-table ( object -- )
|
M: db sql-table ( object -- )
|
||||||
sql% ;
|
sql% ;
|
||||||
|
|
||||||
GENERIC: sql-set db ( object -- )
|
HOOK: sql-set db ( object -- )
|
||||||
M: db sql-set ( object -- )
|
M: db sql-set ( object -- )
|
||||||
"set" "," sql-interleave ;
|
"set" "," sql-interleave ;
|
||||||
|
|
||||||
GENERIC: sql-values db ( object -- )
|
HOOK: sql-values db ( object -- )
|
||||||
M: db sql-values ( object -- )
|
M: db sql-values ( object -- )
|
||||||
"values(" sql% "," (sql-interleave) ")" sql% ;
|
"values(" sql% "," (sql-interleave) ")" sql% ;
|
||||||
|
|
||||||
GENERIC: sql-count db ( object -- )
|
HOOK: sql-count db ( object -- )
|
||||||
M: db sql-count ( object -- )
|
M: db sql-count ( object -- )
|
||||||
"count" sql-function, ;
|
"count" sql-function, ;
|
||||||
|
|
||||||
GENERIC: sql-sum db ( object -- )
|
HOOK: sql-sum db ( object -- )
|
||||||
M: db sql-sum ( object -- )
|
M: db sql-sum ( object -- )
|
||||||
"sum" sql-function, ;
|
"sum" sql-function, ;
|
||||||
|
|
||||||
GENERIC: sql-avg db ( object -- )
|
HOOK: sql-avg db ( object -- )
|
||||||
M: db sql-avg ( object -- )
|
M: db sql-avg ( object -- )
|
||||||
"avg" sql-function, ;
|
"avg" sql-function, ;
|
||||||
|
|
||||||
GENERIC: sql-min db ( object -- )
|
HOOK: sql-min db ( object -- )
|
||||||
M: db sql-min ( object -- )
|
M: db sql-min ( object -- )
|
||||||
"min" sql-function, ;
|
"min" sql-function, ;
|
||||||
|
|
||||||
GENERIC: sql-max db ( object -- )
|
HOOK: sql-max db ( object -- )
|
||||||
M: db sql-max ( object -- )
|
M: db sql-max ( object -- )
|
||||||
"max" sql-function, ;
|
"max" sql-function, ;
|
||||||
|
|
||||||
|
@ -156,9 +154,7 @@ M: db sql-max ( object -- )
|
||||||
{ \ max [ sql-max ] }
|
{ \ max [ sql-max ] }
|
||||||
[ sql% [ sql% ] each ]
|
[ sql% [ sql% ] each ]
|
||||||
} case ;
|
} case ;
|
||||||
*/
|
|
||||||
|
|
||||||
: sql-array% ( array -- ) drop ;
|
|
||||||
ERROR: no-sql-match ;
|
ERROR: no-sql-match ;
|
||||||
: sql% ( obj -- )
|
: sql% ( obj -- )
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue