diff --git a/basis/furnace/sessions/sessions.factor b/basis/furnace/sessions/sessions.factor index f2923f3911..9ccdbc9eb9 100644 --- a/basis/furnace/sessions/sessions.factor +++ b/basis/furnace/sessions/sessions.factor @@ -17,6 +17,7 @@ PERSISTENT: { session "SESSIONS" } { "user-agent" TEXT +not-null+ } { "client" TEXT +not-null+ } ; + : get-session ( id -- session ) dup [ session get-state ] when ; diff --git a/basis/orm/persistent/persistent.factor b/basis/orm/persistent/persistent.factor index 682f5c2ab2..49b0684e2d 100644 --- a/basis/orm/persistent/persistent.factor +++ b/basis/orm/persistent/persistent.factor @@ -67,7 +67,11 @@ M: +random-key+ compute-generator swap >>slot-name 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 ) + 3 ?cut [ db-column-must-be-triple ] unless-empty ?first3 [ parse-name ] [ parse-column-type ] @@ -231,7 +235,7 @@ M: integer parse-table-name throw ; M: sequence parse-table-name unclip swap unclip swap - [ quote-sql-name ] [ "." join ] bi* [ "." glue ] unless-empty ; + [ ] [ "." join ] bi* [ "." glue ] unless-empty ; M: tuple-class parse-table-name dup name>> sql-name-replace ; diff --git a/basis/postgresql/db2/result-sets/result-sets.factor b/basis/postgresql/db2/result-sets/result-sets.factor index df50b3b6f1..7d79e69a77 100644 --- a/basis/postgresql/db2/result-sets/result-sets.factor +++ b/basis/postgresql/db2/result-sets/result-sets.factor @@ -101,7 +101,9 @@ M: postgresql-db-connection statement>result-set ( statement -- result-set ) [ param-formats ] } cleave 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 ] with-destructors \ postgresql-result-set new-result-set diff --git a/basis/postgresql/db2/types/types.factor b/basis/postgresql/db2/types/types.factor index e885e7c929..15fcd83a76 100644 --- a/basis/postgresql/db2/types/types.factor +++ b/basis/postgresql/db2/types/types.factor @@ -23,10 +23,10 @@ M: postgresql-db-connection sql-type>string { CHARACTER [ "TEXT" ] } { DATE [ "DATE" ] } { TIME [ "TIME" ] } - { DATETIME [ "DATETIME" ] } + { DATETIME [ "TIMESTAMP" ] } { TIMESTAMP [ "TIMESTAMP" ] } - { BLOB [ "BLOB" ] } - { FACTOR-BLOB [ "BLOB" ] } + { BLOB [ "BYTEA" ] } + { FACTOR-BLOB [ "BYTEA" ] } { URL [ "TEXT" ] } { +db-assigned-key+ [ "INTEGER" ] } { +random-key+ [ "BIGINT" ] } @@ -48,10 +48,10 @@ M: postgresql-db-connection sql-create-type>string { CHARACTER [ "TEXT" ] } { DATE [ "DATE" ] } { TIME [ "TIME" ] } - { DATETIME [ "DATETIME" ] } + { DATETIME [ "TIMESTAMP" ] } { TIMESTAMP [ "TIMESTAMP" ] } - { BLOB [ "BLOB" ] } - { FACTOR-BLOB [ "BLOB" ] } + { BLOB [ "BYTEA" ] } + { FACTOR-BLOB [ "BYTEA" ] } { URL [ "TEXT" ] } { +db-assigned-key+ [ "SERIAL" ] } { +random-key+ [ "BIGINT" ] } diff --git a/extra/webapps/wiki/wiki.factor b/extra/webapps/wiki/wiki.factor index 5918f0d2c5..1afe7b09b7 100644 --- a/extra/webapps/wiki/wiki.factor +++ b/extra/webapps/wiki/wiki.factor @@ -33,7 +33,7 @@ can-delete-wiki-articles? define-capability TUPLE: article title revision ; 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 :
( title -- article ) article new swap >>title ;