db4: Fixing up postgresql.
parent
00f3b70788
commit
7b07e5a9bf
|
@ -17,6 +17,7 @@ PERSISTENT: { session "SESSIONS" }
|
||||||
{ "user-agent" TEXT +not-null+ }
|
{ "user-agent" TEXT +not-null+ }
|
||||||
{ "client" TEXT +not-null+ } ;
|
{ "client" TEXT +not-null+ } ;
|
||||||
|
|
||||||
|
|
||||||
: get-session ( id -- session )
|
: get-session ( id -- session )
|
||||||
dup [ session get-state ] when ;
|
dup [ session get-state ] when ;
|
||||||
|
|
||||||
|
|
|
@ -67,7 +67,11 @@ M: +random-key+ compute-generator
|
||||||
swap >>slot-name
|
swap >>slot-name
|
||||||
set-generator ; inline
|
set-generator ; inline
|
||||||
|
|
||||||
|
: ?cut ( seq n -- before after ) [ short head ] [ short tail ] 2bi ;
|
||||||
|
|
||||||
|
ERROR: db-column-must-be-triple extra ;
|
||||||
: parse-column ( seq -- db-column )
|
: parse-column ( seq -- db-column )
|
||||||
|
3 ?cut [ db-column-must-be-triple ] unless-empty
|
||||||
?first3
|
?first3
|
||||||
[ parse-name ]
|
[ parse-name ]
|
||||||
[ parse-column-type ]
|
[ parse-column-type ]
|
||||||
|
@ -231,7 +235,7 @@ M: integer parse-table-name throw ;
|
||||||
M: sequence parse-table-name
|
M: sequence parse-table-name
|
||||||
unclip swap
|
unclip swap
|
||||||
unclip swap
|
unclip swap
|
||||||
[ quote-sql-name ] [ "." join ] bi* [ "." glue ] unless-empty ;
|
[ ] [ "." join ] bi* [ "." glue ] unless-empty ;
|
||||||
|
|
||||||
M: tuple-class parse-table-name
|
M: tuple-class parse-table-name
|
||||||
dup name>> sql-name-replace ;
|
dup name>> sql-name-replace ;
|
||||||
|
|
|
@ -101,7 +101,9 @@ M: postgresql-db-connection statement>result-set ( statement -- result-set )
|
||||||
[ param-formats ]
|
[ param-formats ]
|
||||||
} cleave
|
} cleave
|
||||||
0 PQexecParams dup postgresql-result-ok? [
|
0 PQexecParams dup postgresql-result-ok? [
|
||||||
[ postgresql-result-error-message parse-sql-error ] [ PQclear ] bi throw
|
[
|
||||||
|
postgresql-result-error-message parse-sql-error
|
||||||
|
] [ PQclear ] bi throw
|
||||||
] unless
|
] unless
|
||||||
] with-destructors
|
] with-destructors
|
||||||
\ postgresql-result-set new-result-set
|
\ postgresql-result-set new-result-set
|
||||||
|
|
|
@ -23,10 +23,10 @@ M: postgresql-db-connection sql-type>string
|
||||||
{ CHARACTER [ "TEXT" ] }
|
{ CHARACTER [ "TEXT" ] }
|
||||||
{ DATE [ "DATE" ] }
|
{ DATE [ "DATE" ] }
|
||||||
{ TIME [ "TIME" ] }
|
{ TIME [ "TIME" ] }
|
||||||
{ DATETIME [ "DATETIME" ] }
|
{ DATETIME [ "TIMESTAMP" ] }
|
||||||
{ TIMESTAMP [ "TIMESTAMP" ] }
|
{ TIMESTAMP [ "TIMESTAMP" ] }
|
||||||
{ BLOB [ "BLOB" ] }
|
{ BLOB [ "BYTEA" ] }
|
||||||
{ FACTOR-BLOB [ "BLOB" ] }
|
{ FACTOR-BLOB [ "BYTEA" ] }
|
||||||
{ URL [ "TEXT" ] }
|
{ URL [ "TEXT" ] }
|
||||||
{ +db-assigned-key+ [ "INTEGER" ] }
|
{ +db-assigned-key+ [ "INTEGER" ] }
|
||||||
{ +random-key+ [ "BIGINT" ] }
|
{ +random-key+ [ "BIGINT" ] }
|
||||||
|
@ -48,10 +48,10 @@ M: postgresql-db-connection sql-create-type>string
|
||||||
{ CHARACTER [ "TEXT" ] }
|
{ CHARACTER [ "TEXT" ] }
|
||||||
{ DATE [ "DATE" ] }
|
{ DATE [ "DATE" ] }
|
||||||
{ TIME [ "TIME" ] }
|
{ TIME [ "TIME" ] }
|
||||||
{ DATETIME [ "DATETIME" ] }
|
{ DATETIME [ "TIMESTAMP" ] }
|
||||||
{ TIMESTAMP [ "TIMESTAMP" ] }
|
{ TIMESTAMP [ "TIMESTAMP" ] }
|
||||||
{ BLOB [ "BLOB" ] }
|
{ BLOB [ "BYTEA" ] }
|
||||||
{ FACTOR-BLOB [ "BLOB" ] }
|
{ FACTOR-BLOB [ "BYTEA" ] }
|
||||||
{ URL [ "TEXT" ] }
|
{ URL [ "TEXT" ] }
|
||||||
{ +db-assigned-key+ [ "SERIAL" ] }
|
{ +db-assigned-key+ [ "SERIAL" ] }
|
||||||
{ +random-key+ [ "BIGINT" ] }
|
{ +random-key+ [ "BIGINT" ] }
|
||||||
|
|
|
@ -33,7 +33,7 @@ can-delete-wiki-articles? define-capability
|
||||||
TUPLE: article title revision ;
|
TUPLE: article title revision ;
|
||||||
|
|
||||||
PERSISTENT: { article "ARTICLES" }
|
PERSISTENT: { article "ARTICLES" }
|
||||||
{ "title" { VARCHAR 256 } +not-null+ +user-assigned-key+ }
|
{ "title" { VARCHAR 256 } { +not-null+ +user-assigned-key+ } }
|
||||||
{ "revision" INTEGER +not-null+ } ; ! revision id
|
{ "revision" INTEGER +not-null+ } ; ! revision id
|
||||||
|
|
||||||
: <article> ( title -- article ) article new swap >>title ;
|
: <article> ( title -- article ) article new swap >>title ;
|
||||||
|
|
Loading…
Reference in New Issue