cleaning up db -- removed some unused words, moved words around
parent
1e643e7cc1
commit
aa8c85f010
|
@ -47,7 +47,7 @@ HELP: prepared-statement
|
|||
HELP: result-set
|
||||
{ $description } ;
|
||||
|
||||
HELP: construct-statement
|
||||
HELP: new-statement
|
||||
{ $values { "sql" string } { "in" sequence } { "out" sequence } { "class" class } { "statement" statement } }
|
||||
{ $description "Makes a new statement object from the given parameters." } ;
|
||||
|
||||
|
|
|
@ -17,9 +17,9 @@ TUPLE: db
|
|||
H{ } clone >>update-statements
|
||||
H{ } clone >>delete-statements ; inline
|
||||
|
||||
GENERIC: make-db* ( seq db -- db )
|
||||
GENERIC: make-db* ( object db -- db )
|
||||
|
||||
: make-db ( seq class -- db ) new-db make-db* ;
|
||||
: make-db ( object class -- db ) new-db make-db* ;
|
||||
|
||||
GENERIC: db-open ( db -- db )
|
||||
HOOK: db-close db ( handle -- )
|
||||
|
@ -36,13 +36,33 @@ HOOK: db-close db ( handle -- )
|
|||
} cleave
|
||||
] with-variable ;
|
||||
|
||||
TUPLE: result-set sql in-params out-params handle n max ;
|
||||
|
||||
GENERIC: query-results ( query -- result-set )
|
||||
GENERIC: #rows ( result-set -- n )
|
||||
GENERIC: #columns ( result-set -- n )
|
||||
GENERIC# row-column 1 ( result-set column -- obj )
|
||||
GENERIC# row-column-typed 1 ( result-set column -- sql )
|
||||
GENERIC: advance-row ( result-set -- )
|
||||
GENERIC: more-rows? ( result-set -- ? )
|
||||
|
||||
: init-result-set ( result-set -- )
|
||||
dup #rows >>max
|
||||
0 >>n drop ;
|
||||
|
||||
: new-result-set ( query handle class -- result-set )
|
||||
new
|
||||
swap >>handle
|
||||
>r [ sql>> ] [ in-params>> ] [ out-params>> ] tri r>
|
||||
swap >>out-params
|
||||
swap >>in-params
|
||||
swap >>sql ;
|
||||
|
||||
TUPLE: statement handle sql in-params out-params bind-params bound? type retries ;
|
||||
TUPLE: simple-statement < statement ;
|
||||
TUPLE: prepared-statement < statement ;
|
||||
|
||||
TUPLE: result-set sql in-params out-params handle n max ;
|
||||
|
||||
: construct-statement ( sql in out class -- statement )
|
||||
: new-statement ( sql in out class -- statement )
|
||||
new
|
||||
swap >>out-params
|
||||
swap >>in-params
|
||||
|
@ -54,13 +74,6 @@ GENERIC: prepare-statement ( statement -- )
|
|||
GENERIC: bind-statement* ( statement -- )
|
||||
GENERIC: low-level-bind ( statement -- )
|
||||
GENERIC: bind-tuple ( tuple statement -- )
|
||||
GENERIC: query-results ( query -- result-set )
|
||||
GENERIC: #rows ( result-set -- n )
|
||||
GENERIC: #columns ( result-set -- n )
|
||||
GENERIC# row-column 1 ( result-set column -- obj )
|
||||
GENERIC# row-column-typed 1 ( result-set column -- sql )
|
||||
GENERIC: advance-row ( result-set -- )
|
||||
GENERIC: more-rows? ( result-set -- ? )
|
||||
|
||||
GENERIC: execute-statement* ( statement type -- )
|
||||
|
||||
|
@ -79,18 +92,6 @@ M: object execute-statement* ( statement type -- )
|
|||
[ bind-statement* ] keep
|
||||
t >>bound? drop ;
|
||||
|
||||
: init-result-set ( result-set -- )
|
||||
dup #rows >>max
|
||||
0 >>n drop ;
|
||||
|
||||
: construct-result-set ( query handle class -- result-set )
|
||||
new
|
||||
swap >>handle
|
||||
>r [ sql>> ] [ in-params>> ] [ out-params>> ] tri r>
|
||||
swap >>out-params
|
||||
swap >>in-params
|
||||
swap >>sql ;
|
||||
|
||||
: sql-row ( result-set -- seq )
|
||||
dup #columns [ row-column ] with map ;
|
||||
|
||||
|
@ -115,12 +116,6 @@ M: object execute-statement* ( statement type -- )
|
|||
: default-query ( query -- result-set )
|
||||
query-results [ [ sql-row ] query-map ] with-disposal ;
|
||||
|
||||
: do-bound-query ( obj query -- rows )
|
||||
[ bind-statement ] keep default-query ;
|
||||
|
||||
: do-bound-command ( obj query -- )
|
||||
[ bind-statement ] keep execute-statement ;
|
||||
|
||||
SYMBOL: in-transaction
|
||||
HOOK: begin-transaction db ( -- )
|
||||
HOOK: commit-transaction db ( -- )
|
||||
|
|
|
@ -80,7 +80,7 @@ M: postgresql-statement query-results ( query -- result-set )
|
|||
] [
|
||||
dup do-postgresql-statement
|
||||
] if*
|
||||
postgresql-result-set construct-result-set
|
||||
postgresql-result-set new-result-set
|
||||
dup init-result-set ;
|
||||
|
||||
M: postgresql-result-set advance-row ( result-set -- )
|
||||
|
@ -109,7 +109,7 @@ M: postgresql-statement prepare-statement ( statement -- )
|
|||
>>handle drop ;
|
||||
|
||||
M: postgresql-db <simple-statement> ( sql in out -- statement )
|
||||
postgresql-statement construct-statement ;
|
||||
postgresql-statement new-statement ;
|
||||
|
||||
M: postgresql-db <prepared-statement> ( sql in out -- statement )
|
||||
<simple-statement> dup prepare-statement ;
|
||||
|
|
|
@ -27,7 +27,7 @@ M: sqlite-db <simple-statement> ( str in out -- obj )
|
|||
<prepared-statement> ;
|
||||
|
||||
M: sqlite-db <prepared-statement> ( str in out -- obj )
|
||||
sqlite-statement construct-statement ;
|
||||
sqlite-statement new-statement ;
|
||||
|
||||
: sqlite-maybe-prepare ( statement -- statement )
|
||||
dup handle>> [
|
||||
|
@ -42,9 +42,6 @@ M: sqlite-statement dispose ( statement -- )
|
|||
M: sqlite-result-set dispose ( result-set -- )
|
||||
f >>handle drop ;
|
||||
|
||||
: reset-statement ( statement -- )
|
||||
sqlite-maybe-prepare handle>> sqlite-reset ;
|
||||
|
||||
: reset-bindings ( statement -- )
|
||||
sqlite-maybe-prepare
|
||||
handle>> [ sqlite3_reset drop ] [ sqlite3_clear_bindings drop ] bi ;
|
||||
|
@ -112,7 +109,7 @@ M: sqlite-result-set more-rows? ( result-set -- ? )
|
|||
|
||||
M: sqlite-statement query-results ( query -- result-set )
|
||||
sqlite-maybe-prepare
|
||||
dup handle>> sqlite-result-set construct-result-set
|
||||
dup handle>> sqlite-result-set new-result-set
|
||||
dup advance-row ;
|
||||
|
||||
M: sqlite-db create-sql-statement ( class -- statement )
|
||||
|
|
|
@ -30,15 +30,6 @@ UNION: +primary-key+ +db-assigned-id+ +user-assigned-id+ +random-id+ ;
|
|||
SYMBOLS: +autoincrement+ +serial+ +unique+ +default+ +null+ +not-null+
|
||||
+foreign-id+ +has-many+ ;
|
||||
|
||||
: find-random-generator ( seq -- obj )
|
||||
[
|
||||
{
|
||||
random-generator
|
||||
system-random-generator
|
||||
secure-random-generator
|
||||
} member?
|
||||
] find nip [ system-random-generator ] unless* ;
|
||||
|
||||
: primary-key? ( spec -- ? )
|
||||
primary-key>> +primary-key+? ;
|
||||
|
||||
|
@ -122,12 +113,6 @@ ERROR: no-sql-type ;
|
|||
(lookup-type) second
|
||||
] if ;
|
||||
|
||||
: single-quote ( string -- new-string )
|
||||
"'" swap "'" 3append ;
|
||||
|
||||
: double-quote ( string -- new-string )
|
||||
"\"" swap "\"" 3append ;
|
||||
|
||||
: paren ( string -- new-string )
|
||||
"(" swap ")" 3append ;
|
||||
|
||||
|
@ -150,12 +135,3 @@ HOOK: bind# db ( spec obj -- )
|
|||
|
||||
: set-slot-named ( value name obj -- )
|
||||
tuck offset-of-slot set-slot ;
|
||||
|
||||
: tuple>filled-slots ( tuple -- alist )
|
||||
<mirror> [ nip ] assoc-filter ;
|
||||
|
||||
: tuple>params ( specs tuple -- obj )
|
||||
[
|
||||
>r [ type>> ] [ slot-name>> ] bi r>
|
||||
get-slot-named swap
|
||||
] curry { } map>assoc ;
|
||||
|
|
Loading…
Reference in New Issue