diff --git a/basis/db/postgresql/postgresql.factor b/basis/db/postgresql/postgresql.factor index 8e0dd6ef6b..ae31b168cb 100755 --- a/basis/db/postgresql/postgresql.factor +++ b/basis/db/postgresql/postgresql.factor @@ -40,15 +40,15 @@ M: postgresql-db dispose ( db -- ) M: postgresql-statement bind-statement* ( statement -- ) drop ; -GENERIC: postgresql-bind-conversion ( tuple obj -- low-level-binding ) +GENERIC: postgresql-bind-conversion ( tuple object -- low-level-binding ) -M: sql-spec postgresql-bind-conversion ( tuple spec -- obj ) +M: sql-spec postgresql-bind-conversion ( tuple spec -- object ) slot-name>> swap get-slot-named ; -M: literal-bind postgresql-bind-conversion ( tuple literal-bind -- obj ) +M: literal-bind postgresql-bind-conversion ( tuple literal-bind -- object ) nip value>> ; -M: generator-bind postgresql-bind-conversion ( tuple generate-bind -- obj ) +M: generator-bind postgresql-bind-conversion ( tuple generate-bind -- object ) dup generator-singleton>> eval-generator [ swap slot-name>> rot set-slot-named ] [ ] bi ; @@ -66,10 +66,10 @@ M: postgresql-result-set #columns ( result-set -- n ) : result-handle-n ( result-set -- handle n ) [ handle>> ] [ n>> ] bi ; -M: postgresql-result-set row-column ( result-set column -- obj ) +M: postgresql-result-set row-column ( result-set column -- object ) >r result-handle-n r> pq-get-string ; -M: postgresql-result-set row-column-typed ( result-set column -- obj ) +M: postgresql-result-set row-column-typed ( result-set column -- object ) dup pick out-params>> nth type>> >r >r result-handle-n r> r> postgresql-column-typed ; @@ -121,7 +121,7 @@ M: postgresql-db ( sql in out -- statement ) M: postgresql-db bind% ( spec -- ) bind-name% 1, ; -M: postgresql-db bind# ( spec obj -- ) +M: postgresql-db bind# ( spec object -- ) >r bind-name% f swap type>> r> 1, ; : create-table-sql ( class -- statement ) @@ -251,7 +251,8 @@ M: postgresql-db persistent-table ( -- hashtable ) { random-generator { f f f } } } ; -M: postgresql-db compound ( str obj -- str' ) +ERROR: no-compound-found string object ; +M: postgresql-db compound ( string object -- string' ) over { { "default" [ first number>string join-space ] } { "varchar" [ first number>string paren append ] } @@ -260,5 +261,5 @@ M: postgresql-db compound ( str obj -- str' ) swap [ slot-name>> = ] with find nip column-name>> paren append ] } - [ "no compound found" 3array throw ] + [ drop no-compound-found ] } case ; diff --git a/basis/db/sql/sql.factor b/basis/db/sql/sql.factor index 2496ac6f3a..ba0673ae24 100755 --- a/basis/db/sql/sql.factor +++ b/basis/db/sql/sql.factor @@ -30,8 +30,6 @@ DEFER: sql% [ third 1, \ ? 0, ] tri ] each ; -USE: multiline -/* HOOK: sql-create db ( object -- ) M: db sql-create ( object -- ) drop @@ -97,35 +95,35 @@ M: db sql-limit ( object -- ) ! M: db sql-subselectselect ( object -- ) ! "(select" sql% sql% ")" sql% ; -GENERIC: sql-table db ( object -- ) +HOOK: sql-table db ( object -- ) M: db sql-table ( object -- ) sql% ; -GENERIC: sql-set db ( object -- ) +HOOK: sql-set db ( object -- ) M: db sql-set ( object -- ) "set" "," sql-interleave ; -GENERIC: sql-values db ( object -- ) +HOOK: sql-values db ( object -- ) M: db sql-values ( object -- ) "values(" sql% "," (sql-interleave) ")" sql% ; -GENERIC: sql-count db ( object -- ) +HOOK: sql-count db ( object -- ) M: db sql-count ( object -- ) "count" sql-function, ; -GENERIC: sql-sum db ( object -- ) +HOOK: sql-sum db ( object -- ) M: db sql-sum ( object -- ) "sum" sql-function, ; -GENERIC: sql-avg db ( object -- ) +HOOK: sql-avg db ( object -- ) M: db sql-avg ( object -- ) "avg" sql-function, ; -GENERIC: sql-min db ( object -- ) +HOOK: sql-min db ( object -- ) M: db sql-min ( object -- ) "min" sql-function, ; -GENERIC: sql-max db ( object -- ) +HOOK: sql-max db ( object -- ) M: db sql-max ( object -- ) "max" sql-function, ; @@ -156,9 +154,7 @@ M: db sql-max ( object -- ) { \ max [ sql-max ] } [ sql% [ sql% ] each ] } case ; -*/ -: sql-array% ( array -- ) drop ; ERROR: no-sql-match ; : sql% ( obj -- ) {