From 2d93f850299563ac4f38649c81c06686774c0e22 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Mon, 28 Apr 2008 17:35:45 -0500 Subject: [PATCH] delete-tuple now takes an object as a template --- extra/db/queries/queries.factor | 16 ++++++++-------- extra/db/tuples/tuples.factor | 13 ++++--------- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/extra/db/queries/queries.factor b/extra/db/queries/queries.factor index 41b2d01b28..7f3eaff84c 100644 --- a/extra/db/queries/queries.factor +++ b/extra/db/queries/queries.factor @@ -35,14 +35,6 @@ M: db ( class -- statement ) where-primary-key% ] query-make ; -M: db ( specs table -- sql ) - [ - "delete from " 0% 0% - " where " 0% - find-primary-key - dup column-name>> 0% " = " 0% bind% - ] query-make ; - M: random-id-generator eval-generator ( singleton -- obj ) drop system-random-generator get [ @@ -87,6 +79,14 @@ M: string where ( spec obj -- ) object-where ; 2dup slot-name>> swap get-slot-named where ] interleave drop ; +M: db ( tuple table -- sql ) + [ + "delete from " 0% 0% + dupd + [ slot-name>> swap get-slot-named ] with filter + dup empty? [ 2drop ] [ where-clause ] if ";" 0% + ] query-make ; + M: db ( tuple class -- statement ) [ "select " 0% diff --git a/extra/db/tuples/tuples.factor b/extra/db/tuples/tuples.factor index e14b4f79d4..afea61fc90 100755 --- a/extra/db/tuples/tuples.factor +++ b/extra/db/tuples/tuples.factor @@ -39,13 +39,8 @@ HOOK: drop-sql-statement db ( class -- obj ) HOOK: db ( class -- obj ) HOOK: db ( class -- obj ) - HOOK: db ( class -- obj ) -HOOK: db ( class -- obj ) - -HOOK: db ( class -- obj ) -HOOK: db ( class -- obj ) - +HOOK: db ( tuple class -- obj ) HOOK: db ( tuple class -- tuple ) HOOK: insert-tuple* db ( tuple statement -- ) @@ -139,9 +134,9 @@ M: retryable execute-statement* ( statement type -- ) [ bind-tuple ] keep execute-statement ; : delete-tuple ( tuple -- ) - dup class - db get db-delete-statements [ ] cache - [ bind-tuple ] keep execute-statement ; + dup dup class [ + [ bind-tuple ] keep execute-statement + ] with-disposal ; : select-tuples ( tuple -- tuples ) dup dup class [