ensure-table just does [ create-table ] curry ignore-errors

recreate-table is the old ensure-table
db4
Doug Coleman 2008-04-28 18:21:45 -05:00
parent e486683d96
commit 93bf51eb68
5 changed files with 12 additions and 10 deletions

View File

@ -1,7 +1,6 @@
USING: kernel parser quotations classes.tuple words math.order USING: kernel parser quotations classes.tuple words math.order
namespaces.lib namespaces sequences arrays combinators namespaces.lib namespaces sequences arrays combinators
prettyprint strings math.parser sequences.lib math symbols ; prettyprint strings math.parser sequences.lib math symbols ;
USE: tools.walker
IN: db.sql IN: db.sql
SYMBOLS: insert update delete select distinct columns from as SYMBOLS: insert update delete select distinct columns from as

View File

@ -4,7 +4,7 @@ USING: alien.c-types arrays assocs kernel math math.parser
namespaces sequences db.sqlite.ffi db combinators namespaces sequences db.sqlite.ffi db combinators
continuations db.types calendar.format serialize continuations db.types calendar.format serialize
io.streams.byte-array byte-arrays io.encodings.binary io.streams.byte-array byte-arrays io.encodings.binary
tools.walker io.backend ; io.backend ;
IN: db.sqlite.lib IN: db.sqlite.lib
: sqlite-error ( n -- * ) : sqlite-error ( n -- * )

View File

@ -2,8 +2,8 @@
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: io.files kernel tools.test db db.tuples classes USING: io.files kernel tools.test db db.tuples classes
db.types continuations namespaces math math.ranges db.types continuations namespaces math math.ranges
prettyprint tools.walker calendar sequences db.sqlite prettyprint calendar sequences db.sqlite math.intervals
math.intervals db.postgresql accessors random math.bitfields.lib ; db.postgresql accessors random math.bitfields.lib ;
IN: db.tuples.tests IN: db.tuples.tests
TUPLE: person the-id the-name the-number the-real TUPLE: person the-id the-name the-number the-real
@ -328,7 +328,7 @@ C: <secret> secret
{ "message" "MESSAGE" TEXT } { "message" "MESSAGE" TEXT }
} define-persistent } define-persistent
[ ] [ secret ensure-table ] unit-test [ ] [ secret recreate-table ] unit-test
[ t ] [ f "kilroy was here" <secret> [ insert-tuple ] keep n>> integer? ] unit-test [ t ] [ f "kilroy was here" <secret> [ insert-tuple ] keep n>> integer? ] unit-test
@ -342,7 +342,7 @@ C: <secret> secret
] unit-test ] unit-test
[ t ] [ [ t ] [
T{ secret } select-tuples dup . length 3 = T{ secret } select-tuples length 3 =
] unit-test ; ] unit-test ;
[ db-assigned-person-schema test-tuples ] test-sqlite [ db-assigned-person-schema test-tuples ] test-sqlite

View File

@ -3,7 +3,7 @@
USING: arrays assocs classes db kernel namespaces USING: arrays assocs classes db kernel namespaces
classes.tuple words sequences slots math accessors classes.tuple words sequences slots math accessors
math.parser io prettyprint db.types continuations math.parser io prettyprint db.types continuations
mirrors sequences.lib tools.walker combinators.lib ; mirrors sequences.lib combinators.lib ;
IN: db.tuples IN: db.tuples
: define-persistent ( class table columns -- ) : define-persistent ( class table columns -- )
@ -108,12 +108,15 @@ M: retryable execute-statement* ( statement type -- )
: drop-table ( class -- ) : drop-table ( class -- )
drop-sql-statement [ execute-statement ] with-disposals ; drop-sql-statement [ execute-statement ] with-disposals ;
: ensure-table ( class -- ) : recreate-table ( class -- )
[ [
drop-sql-statement make-nonthrowable drop-sql-statement make-nonthrowable
[ execute-statement ] with-disposals [ execute-statement ] with-disposals
] [ create-table ] bi ; ] [ create-table ] bi ;
: ensure-table ( class -- )
[ create-table ] curry ignore-errors ;
: insert-db-assigned-statement ( tuple -- ) : insert-db-assigned-statement ( tuple -- )
dup class dup class
db get db-insert-statements [ <insert-db-assigned-statement> ] cache db get db-insert-statements [ <insert-db-assigned-statement> ] cache

View File

@ -2,8 +2,8 @@
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: arrays assocs db kernel math math.parser USING: arrays assocs db kernel math math.parser
sequences continuations sequences.deep sequences.lib sequences continuations sequences.deep sequences.lib
words namespaces tools.walker slots slots.private classes words namespaces slots slots.private classes mirrors
mirrors classes.tuple combinators calendar.format symbols classes.tuple combinators calendar.format symbols
classes.singleton accessors quotations random ; classes.singleton accessors quotations random ;
IN: db.types IN: db.types