Merge branch 'master' of git://factorcode.org/git/factor

db4
Slava Pestov 2008-02-11 14:54:13 -06:00
commit 600ae32e29
4 changed files with 26 additions and 9 deletions

View File

@ -7,8 +7,10 @@ USING: kernel sequences assocs builder continuations vocabs vocabs.loader
IN: builder.test IN: builder.test
: try-everything* ( -- vocabs ) try-everything [ first vocab-link-name ] map ;
: do-load ( -- ) : do-load ( -- )
[ try-everything ] "../load-everything-time" log-runtime [ try-everything* ] "../load-everything-time" log-runtime
dup empty? dup empty?
[ drop ] [ drop ]
[ "../load-everything-log" log-object ] [ "../load-everything-log" log-object ]

View File

@ -84,6 +84,11 @@ M: sqlite-db create-sql ( columns table -- sql )
] interleave ")" % ] interleave ")" %
] "" make ; ] "" make ;
M: sqlite-db drop-sql ( table -- sql )
[
"drop table " % %
] "" make ;
M: sqlite-db insert-sql* ( columns table -- sql ) M: sqlite-db insert-sql* ( columns table -- sql )
[ [
"insert into " % "insert into " %
@ -109,7 +114,6 @@ M: sqlite-db update-sql* ( columns table -- sql )
M: sqlite-db delete-sql* ( columns table -- sql ) M: sqlite-db delete-sql* ( columns table -- sql )
[ [
break
"delete from " % "delete from " %
% %
" where " % " where " %

View File

@ -1,4 +1,5 @@
USING: io.files kernel tools.test db db.sqlite db.tuples ; USING: io.files kernel tools.test db db.sqlite db.tuples
db.types continuations namespaces ;
IN: temporary IN: temporary
TUPLE: person the-id the-name the-number ; TUPLE: person the-id the-name the-number ;
@ -13,16 +14,23 @@ person "PERSON"
} define-persistent } define-persistent
SYMBOL: the-person
: test-tuples ( -- ) : test-tuples ( -- )
f "billy" 100 person construct-boa dup insert-tuple [ person drop-table ] [ ] recover
person create-table
f "billy" 100 person construct-boa
the-person set
[ 1 ] [ dup person-id ] unit-test [ ] [ the-person get insert-tuple ] unit-test
200 over set-person-the-number [ 1 ] [ the-person get person-the-id ] unit-test
[ ] [ dup update-tuple ] unit-test 200 the-person get set-person-the-number
[ ] [ delete-tuple ] unit-test ; [ ] [ the-person get update-tuple ] unit-test
[ ] [ the-person get delete-tuple ] unit-test ;
: test-sqlite ( -- ) : test-sqlite ( -- )
"tuples-test.db" resource-path <sqlite-db> [ "tuples-test.db" resource-path <sqlite-db> [

View File

@ -49,7 +49,7 @@ IN: db.tuples
[ <prepared-statement> ] 3compose cache nip ; inline [ <prepared-statement> ] 3compose cache nip ; inline
HOOK: create-sql db ( columns table -- sql ) HOOK: create-sql db ( columns table -- sql )
HOOK: drop-sql db ( columns table -- sql ) HOOK: drop-sql db ( table -- sql )
HOOK: insert-sql* db ( columns table -- sql ) HOOK: insert-sql* db ( columns table -- sql )
HOOK: update-sql* db ( columns table -- sql ) HOOK: update-sql* db ( columns table -- sql )
HOOK: delete-sql* db ( columns table -- sql ) HOOK: delete-sql* db ( columns table -- sql )
@ -80,6 +80,9 @@ HOOK: tuple>params db ( columns tuple -- obj )
: create-table ( class -- ) : create-table ( class -- )
dup db-columns swap db-table create-sql sql-command ; dup db-columns swap db-table create-sql sql-command ;
: drop-table ( class -- )
db-table drop-sql sql-command ;
: insert-tuple ( tuple -- ) : insert-tuple ( tuple -- )
[ [
[ maybe-remove-id ] [ insert-sql ] do-tuple-statement [ maybe-remove-id ] [ insert-sql ] do-tuple-statement