From aa8c85f0101c0bdf4cc6753d7e578012e9eab540 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Tue, 9 Sep 2008 14:44:14 -0500 Subject: [PATCH] cleaning up db -- removed some unused words, moved words around --- basis/db/db-docs.factor | 2 +- basis/db/db.factor | 55 ++++++++++++--------------- basis/db/postgresql/postgresql.factor | 4 +- basis/db/sqlite/sqlite.factor | 7 +--- basis/db/types/types.factor | 24 ------------ 5 files changed, 30 insertions(+), 62 deletions(-) diff --git a/basis/db/db-docs.factor b/basis/db/db-docs.factor index 3e29bcb4d6..9395fcce32 100644 --- a/basis/db/db-docs.factor +++ b/basis/db/db-docs.factor @@ -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." } ; diff --git a/basis/db/db.factor b/basis/db/db.factor index 26141ec62c..4e3fe49947 100755 --- a/basis/db/db.factor +++ b/basis/db/db.factor @@ -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 ( -- ) diff --git a/basis/db/postgresql/postgresql.factor b/basis/db/postgresql/postgresql.factor index d833063b51..8e0dd6ef6b 100755 --- a/basis/db/postgresql/postgresql.factor +++ b/basis/db/postgresql/postgresql.factor @@ -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 ( sql in out -- statement ) - postgresql-statement construct-statement ; + postgresql-statement new-statement ; M: postgresql-db ( sql in out -- statement ) dup prepare-statement ; diff --git a/basis/db/sqlite/sqlite.factor b/basis/db/sqlite/sqlite.factor index dc8104ba00..1eb9b566d3 100755 --- a/basis/db/sqlite/sqlite.factor +++ b/basis/db/sqlite/sqlite.factor @@ -27,7 +27,7 @@ M: sqlite-db ( str in out -- obj ) ; M: sqlite-db ( 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 ) diff --git a/basis/db/types/types.factor b/basis/db/types/types.factor index c7fbcd859e..24344acbf7 100755 --- a/basis/db/types/types.factor +++ b/basis/db/types/types.factor @@ -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 ) - [ nip ] assoc-filter ; - -: tuple>params ( specs tuple -- obj ) - [ - >r [ type>> ] [ slot-name>> ] bi r> - get-slot-named swap - ] curry { } map>assoc ;