cleaning up db -- removed some unused words, moved words around

db4
Doug Coleman 2008-09-09 14:44:14 -05:00
parent 1e643e7cc1
commit aa8c85f010
5 changed files with 30 additions and 62 deletions

View File

@ -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." } ;

View File

@ -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 ( -- )

View File

@ -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 ;

View File

@ -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 )

View File

@ -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 ;