From 93bf51eb68f2beb0e472821cc1843e46991d1e31 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Mon, 28 Apr 2008 18:21:45 -0500 Subject: [PATCH] ensure-table just does [ create-table ] curry ignore-errors recreate-table is the old ensure-table --- extra/db/sql/sql.factor | 1 - extra/db/sqlite/lib/lib.factor | 2 +- extra/db/tuples/tuples-tests.factor | 8 ++++---- extra/db/tuples/tuples.factor | 7 +++++-- extra/db/types/types.factor | 4 ++-- 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/extra/db/sql/sql.factor b/extra/db/sql/sql.factor index 184c45f8b1..82c6e370bd 100755 --- a/extra/db/sql/sql.factor +++ b/extra/db/sql/sql.factor @@ -1,7 +1,6 @@ USING: kernel parser quotations classes.tuple words math.order namespaces.lib namespaces sequences arrays combinators prettyprint strings math.parser sequences.lib math symbols ; -USE: tools.walker IN: db.sql SYMBOLS: insert update delete select distinct columns from as diff --git a/extra/db/sqlite/lib/lib.factor b/extra/db/sqlite/lib/lib.factor index f25ec12d1b..e92c4bbd8a 100755 --- a/extra/db/sqlite/lib/lib.factor +++ b/extra/db/sqlite/lib/lib.factor @@ -4,7 +4,7 @@ USING: alien.c-types arrays assocs kernel math math.parser namespaces sequences db.sqlite.ffi db combinators continuations db.types calendar.format serialize io.streams.byte-array byte-arrays io.encodings.binary -tools.walker io.backend ; +io.backend ; IN: db.sqlite.lib : sqlite-error ( n -- * ) diff --git a/extra/db/tuples/tuples-tests.factor b/extra/db/tuples/tuples-tests.factor index f5f229bfd2..5fbf8a58d4 100755 --- a/extra/db/tuples/tuples-tests.factor +++ b/extra/db/tuples/tuples-tests.factor @@ -2,8 +2,8 @@ ! See http://factorcode.org/license.txt for BSD license. USING: io.files kernel tools.test db db.tuples classes db.types continuations namespaces math math.ranges -prettyprint tools.walker calendar sequences db.sqlite -math.intervals db.postgresql accessors random math.bitfields.lib ; +prettyprint calendar sequences db.sqlite math.intervals +db.postgresql accessors random math.bitfields.lib ; IN: db.tuples.tests TUPLE: person the-id the-name the-number the-real @@ -328,7 +328,7 @@ C: secret { "message" "MESSAGE" TEXT } } define-persistent - [ ] [ secret ensure-table ] unit-test + [ ] [ secret recreate-table ] unit-test [ t ] [ f "kilroy was here" [ insert-tuple ] keep n>> integer? ] unit-test @@ -342,7 +342,7 @@ C: secret ] unit-test [ t ] [ - T{ secret } select-tuples dup . length 3 = + T{ secret } select-tuples length 3 = ] unit-test ; [ db-assigned-person-schema test-tuples ] test-sqlite diff --git a/extra/db/tuples/tuples.factor b/extra/db/tuples/tuples.factor index afea61fc90..835b4b45d3 100755 --- a/extra/db/tuples/tuples.factor +++ b/extra/db/tuples/tuples.factor @@ -3,7 +3,7 @@ USING: arrays assocs classes db kernel namespaces classes.tuple words sequences slots math accessors math.parser io prettyprint db.types continuations -mirrors sequences.lib tools.walker combinators.lib ; +mirrors sequences.lib combinators.lib ; IN: db.tuples : define-persistent ( class table columns -- ) @@ -108,12 +108,15 @@ M: retryable execute-statement* ( statement type -- ) : drop-table ( class -- ) drop-sql-statement [ execute-statement ] with-disposals ; -: ensure-table ( class -- ) +: recreate-table ( class -- ) [ drop-sql-statement make-nonthrowable [ execute-statement ] with-disposals ] [ create-table ] bi ; +: ensure-table ( class -- ) + [ create-table ] curry ignore-errors ; + : insert-db-assigned-statement ( tuple -- ) dup class db get db-insert-statements [ ] cache diff --git a/extra/db/types/types.factor b/extra/db/types/types.factor index 8328bd7626..8dbf6786bc 100755 --- a/extra/db/types/types.factor +++ b/extra/db/types/types.factor @@ -2,8 +2,8 @@ ! See http://factorcode.org/license.txt for BSD license. USING: arrays assocs db kernel math math.parser sequences continuations sequences.deep sequences.lib -words namespaces tools.walker slots slots.private classes -mirrors classes.tuple combinators calendar.format symbols +words namespaces slots slots.private classes mirrors +classes.tuple combinators calendar.format symbols classes.singleton accessors quotations random ; IN: db.types