Merge branch 'master' of git://factorcode.org/git/factor
commit
600ae32e29
|
@ -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 ]
|
||||||
|
|
|
@ -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 " %
|
||||||
|
|
|
@ -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> [
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue