parent
							
								
									04dc25f87a
								
							
						
					
					
						commit
						3906f1c9f5
					
				| 
						 | 
					@ -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
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    [  ] [ the-person get insert-tuple ] unit-test
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [ 1 ] [ dup person-id ] unit-test
 | 
					    [ 1 ] [ the-person get person-the-id ] unit-test
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    200 over set-person-the-number
 | 
					    200 the-person get set-person-the-number
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [ ] [ dup update-tuple ] unit-test
 | 
					    [ ] [ the-person get update-tuple ] unit-test
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    [ ] [ delete-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