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

db4
John Benediktsson 2008-10-09 14:28:56 -07:00
commit bb32cc3eff
5 changed files with 19 additions and 19 deletions

View File

@ -96,9 +96,9 @@ M: ppc %epilogue ( n -- )
1 1 rot ADDI
0 MTLR ;
: (%call) ( -- ) 11 MTLR BLRL ;
: (%call) ( reg -- ) MTLR BLRL ;
: (%jump) ( -- ) 11 MTCTR BCTR ;
: (%jump) ( reg -- ) MTCTR BCTR ;
: %load-dlsym ( symbol dll register -- )
0 swap LOAD32 rc-absolute-ppc-2/2 rel-dlsym ;
@ -117,7 +117,7 @@ M: ppc %dispatch ( -- )
"offset" operand "n" operand 1 SRAWI
11 11 "offset" operand ADD
11 dup 6 cells LWZ
(%jump)
11 (%jump)
] H{
{ +input+ { { f "n" } } }
{ +scratch+ { { f "offset" } } }
@ -244,17 +244,17 @@ M: ppc %prepare-alien-invoke
rs-reg 11 12 STW ;
M: ppc %alien-invoke ( symbol dll -- )
11 %load-dlsym (%call) ;
11 %load-dlsym 11 (%call) ;
M: ppc %alien-callback ( quot -- )
3 load-indirect "c_to_factor" f %alien-invoke ;
M: ppc %prepare-alien-indirect ( -- )
"unbox_alien" f %alien-invoke
3 11 MR ;
13 3 MR ;
M: ppc %alien-indirect ( -- )
(%call) ;
13 (%call) ;
M: ppc %callback-value ( ctype -- )
! Save top of data stack

View File

@ -285,7 +285,7 @@ ARTICLE: "db-custom-database-combinators" "Custom database combinators"
{ $code <"
USING: db.sqlite db io.files ;
: with-sqlite-db ( quot -- )
"my-database.db" temp-file <sqlite-db> swap with-db ;"> }
"my-database.db" temp-file <sqlite-db> swap with-db ; inline"> }
"PostgreSQL example combinator:"
{ $code <" USING: db.postgresql db ;
@ -296,7 +296,7 @@ USING: db.sqlite db io.files ;
"erg" >>username
"secrets?" >>password
"factor-test" >>database
swap with-db ;">
swap with-db ; inline">
} ;
ABOUT: "db"

View File

@ -22,14 +22,13 @@ HOOK: db-close db ( handle -- )
: dispose-statements ( assoc -- ) values dispose-each ;
: db-dispose ( db -- )
M: db dispose ( db -- )
dup db [
{
[ insert-statements>> dispose-statements ]
[ update-statements>> dispose-statements ]
[ delete-statements>> dispose-statements ]
[ handle>> db-close ]
} cleave
[ dispose-statements H{ } clone ] change-insert-statements
[ dispose-statements H{ } clone ] change-update-statements
[ dispose-statements H{ } clone ] change-delete-statements
[ db-close f ] change-handle
drop
] with-variable ;
TUPLE: result-set sql in-params out-params handle n max ;

View File

@ -30,8 +30,8 @@ M: postgresql-db db-open ( db -- db )
[ password>> ]
} cleave connect-postgres >>handle ;
M: postgresql-db dispose ( db -- )
handle>> PQfinish ;
M: postgresql-db db-close ( handle -- )
PQfinish ;
M: postgresql-statement bind-statement* ( statement -- ) drop ;

View File

@ -19,7 +19,6 @@ M: sqlite-db db-open ( db -- db )
dup path>> sqlite-open >>handle ;
M: sqlite-db db-close ( handle -- ) sqlite-close ;
M: sqlite-db dispose ( db -- ) db-dispose ;
TUPLE: sqlite-statement < statement ;
@ -87,9 +86,11 @@ M: sqlite-statement bind-tuple ( tuple statement -- )
in-params>> [ sqlite-bind-conversion ] with map
] keep bind-statement ;
ERROR: sqlite-last-id-fail ;
: last-insert-id ( -- id )
db get handle>> sqlite3_last_insert_rowid
dup zero? [ "last-id failed" throw ] when ;
dup zero? [ sqlite-last-id-fail ] when ;
M: sqlite-db insert-tuple-set-key ( tuple statement -- )
execute-statement last-insert-id swap set-primary-key ;