Patch attached adds an :add-column action to :alter-table where the column should be the same form as a column in :create-table.
For example: (:alter-table table :add-column col-name :type string :default "default")) -- Daniel White
Tue Aug 25 22:34:17 EST 2009 Daniel White <dan...@whitehouse.id.au> * Add :add-column action to :alter-table New patches: [Add :add-column action to :alter-table Daniel White <dan...@whitehouse.id.au>**20090825123417 Ignore-this: eef311a1f7d7255dc678b889cbf46222 ] { hunk ./doc/s-sql.html 551 table. <code>args</code> should be a constraint in the same form as for <a href="#table-constraints"><code>:create-table</code></a>.</dd> + <dt><code>:add-column</code></dt><dd>Adds column to table. + <code>args</code> should be a column in the same form as for + <a href="#create-table"><code>:create-table</code></a>.</dd> <dt><code>:drop-constraint</code><dd>Drops constraint. First of <code>args</code> should name a constraint to be dropped; second, optional argument specifies behaviour regarding hunk ./s-sql/s-sql.lisp 667 `("FOREIGN KEY (" ,@(sql-expand-names columns) ")" ,@(%build-foreign-reference target on-delete on-update)))))) +(defun expand-table-column (column-name args) + `(,(to-sql-name column-name) " " + ,@(let ((type (or (getf args :type) + (sql-error "No type specified for column ~A." column-name)))) + (multiple-value-bind (type null) (dissect-type type) + `(,(to-type-name type) ,@(when (not null) '(" NOT NULL"))))) + ,@(loop :for (option value) :on args :by #'cddr + :append (case option + (:default `(" DEFAULT " ,@(sql-expand value))) + (:primary-key (when value `(" PRIMARY KEY"))) + (:unique (when value `(" UNIQUE"))) + (:check `(" CHECK " ,@(sql-expand value))) + (:references + (destructuring-bind (target &optional (on-delete :restrict) (on-update :restrict)) value + (%build-foreign-reference target on-delete on-update))) + (:type ()) + (t (sql-error "Unknown column option: ~A." option)))))) + (def-sql-op :create-table (name (&rest columns) &rest options) hunk ./s-sql/s-sql.lisp 686 - (labels ((expand-column (column-name args) - `(,(to-sql-name column-name) " " - ,@(let ((type (or (getf args :type) - (sql-error "No type specified for column ~A." column-name)))) - (multiple-value-bind (type null) (dissect-type type) - `(,(to-type-name type) ,@(when (not null) '(" NOT NULL"))))) - ,@(loop :for (option value) :on args :by #'cddr - :append (case option - (:default `(" DEFAULT " ,@(sql-expand value))) - (:primary-key (when value `(" PRIMARY KEY"))) - (:unique (when value `(" UNIQUE"))) - (:check `(" CHECK " ,@(sql-expand value))) - (:references - (destructuring-bind (target &optional (on-delete :restrict) (on-update :restrict)) value - (%build-foreign-reference target on-delete on-update))) - (:type ()) - (t (sql-error "Unknown column option: ~A." option))))))) - (when (null columns) - (sql-error "No columns defined for table ~A." name)) - `("CREATE TABLE " ,(to-sql-name name) " (" - ,@(loop :for ((column-name . args) . rest) :on columns - :append (expand-column column-name args) - :if rest :collect ", ") - ,@(loop :for ((option . args)) :on options - :collect ", " - :append (expand-table-constraint option args)) - ")"))) + (when (null columns) + (sql-error "No columns defined for table ~A." name)) + `("CREATE TABLE " ,(to-sql-name name) " (" + ,@(loop :for ((column-name . args) . rest) :on columns + :append (expand-table-column column-name args) + :if rest :collect ", ") + ,@(loop :for ((option . args)) :on options + :collect ", " + :append (expand-table-constraint option args)) + ")")) (def-sql-op :alter-table (name action &rest args) (flet hunk ./s-sql/s-sql.lisp 708 ,(to-sql-name name) " " ,@ (case action (:add (cons "ADD " (expand-table-constraint (first args) (rest args)))) + (:add-column (cons "ADD COLUMN " (expand-table-column (first args) (rest args)))) (:drop-constraint (list "DROP CONSTRAINT " (to-sql-name (first args)) (if (rest args) } Context: [add :if-exists arg to :drop-... operators mari...@gmail.com**20090528171136 Ignore-this: e083892c397a559a112cea1b66d0f105 ] [make with-connection docstring less confusing mari...@gmail.com**20090526055151 Ignore-this: 801c62dd25b3c4511e6b5b8fd850f98d ] [call license zlib-like, not BSD-like mari...@gmail.com**20090418183111 Ignore-this: 7685218504a778e47ab3ed6327eb8c46 ] [Make sure simple-date postgres glue is loaded in all asdf configurations. a...@boinkor.net**20090417101916 Split out the glue into an asdf system of its own and add :after load-op methods for cl-postgres and simple-date that ensure the glue is loaded if the other system has been loaded, as well. ] [fix bug in decoding 29th February dates in simple-date mari...@gmail.com**20090415104648 Ignore-this: 7eed7ac4863f6ce60c4bbb4a8ecfe532 ] [support natural joins, don't require :on clause for cross joins mari...@gmail.com**20090409133503 Ignore-this: 4674b8335ec8c3d0767885bc5df84a93 ] [make sure prompt is visible before asking for input in test suite mari...@gmail.com**20090311124809 Ignore-this: fec903b2178c1d096e5e31ce4b034565 ] [don't use usocket on allegro CL (reducing dependencies) mari...@gmail.com**20090311124503 Ignore-this: 3bf1a6d7c66bb53424605af630dae59f ] [make sure direct-keys of a class are cleared when it is redefined without a keys option mari...@gmail.com**20090311084048 Ignore-this: 5c32ec446b320a07ced7b2f780d42c59 ] [suppress warnings mari...@gmail.com**20090311082328 Ignore-this: a2ea27d684f4e12f1a50b0a3341046db ] [allow non-column slots to be defined as columns mari...@gmail.com**20090311082018 Ignore-this: 7227932681a3c3439026d39eb70f85f6 ] [mark release 1.14 mari...@gmail.com**20090307122340 Ignore-this: fc6b7d33be599bfd5b7e08c109e39b02 ] [revise rational-writing behaviour, add *silently-truncate-rationals* mari...@gmail.com**20090206150926 Ignore-this: 1e00e7831455c35325af44d457aefc4f ] [added a write-rational-as-foating-point function and use it to serialize rationals when sending them to Postgres. attila.lend...@gmail.com**20090206112412 Ignore-this: 45c9cc579792d173983382218dbfbac1 it limits their length at 38 digits and throws an error if they don't fit (instead of silently losing precision as it did before). with this change storing 0.7 into a NUMERIC column will properly read back as 0.7. ] [Added :cascade op to drop any object recursively. tsuf...@gmail.com**20090119074804 Ignore-this: c30f340ba5a5e17c4bf21218ae4dac91 'DROP TABLE p_channels; NOTICE: constraint p_channels_history_p_channel_id_fkey on table p_channels_history depends on table p_channels channels ERROR: cannot drop table p_channels because other objects depend on it HINT: Use DROP ... CASCADE to drop the dependent objects too.' The error message and a hint described above suggested this patch. ] [wrong term in symbol index in cl-postgres doc mari...@gmail.com**20081229073715] [Add query callback feature to cl-postgres. Maciej Pasternacki <mac...@pasternacki.net>**20081221223846] [document :delete-from :returning support mari...@gmail.com**20081218105519] [support RETURNING in :delete-from (courtesy Timur Sufiev) mari...@gmail.com**20081217075326] [use a custom error type for S-SQL parsing errors mari...@gmail.com**20081217075031] [fix use of wrong oid for oid datatype mari...@gmail.com**20081217075009] [fix stupid typo in !foreign mari...@gmail.com**20081216161327] [add interpreter spec for oid datatype mari...@gmail.com**20081216160824] [fix another ACL modern-mode incompatibility mari...@gmail.com**20081216155519] [escape exclamation marks in symbol names, to prevent breaking when allegrograph is loaded mari...@gmail.com**20081215161255] [DAO-KEYS method for DAOs. Maciej Pasternacki <mac...@pasternacki.net>**20081125004221] [Export DAO-KEYS. Maciej Pasternacki <mac...@pasternacki.net>**20081125002818] [added transaction-rollback error codes, including deadlock-detected attila.lend...@gmail.com**20081124150038 Ignore-this: af1d8d6f9b64498aeeb0e1f0fe7c054c ] [add :insert-rows-into mari...@gmail.com**20081112090408] [S-SQL support for UPDATE ... RETURNING. Maciej Pasternacki <mac...@pasternacki.net>**20081022110923] [fix last patch mari...@gmail.com**20081022144519] [make sure :nextval works with sql-compile mari...@gmail.com**20081022144430] [add a :nextval op so that both symbols and strings can be given to that operator mari...@gmail.com**20081022143128] [s-sql-op :alter-table to support adding and dropping constraints. Maciej Pasternacki <mac...@pasternacki.net>**20081021135242] [Add support for named constraints. Maciej Pasternacki <mac...@pasternacki.net>**20081021134600] [Fix compiler warning in a loop. Maciej Pasternacki <mac...@pasternacki.net>**20081021131355] [Factor out table constraints to separate function. Maciej Pasternacki <mac...@pasternacki.net>**20081021131210] [Documentation typo fix: enable-sql-syntax -> enable-s-sql-syntax Maciej Pasternacki <mac...@pasternacki.net>**20081021130515] [document nulls-first, nulls-last mari...@gmail.com**20081009071426] [s-sql ops: nulls-last, nulls-first Ryszard Szopa <ryszard.sz...@gmail.com>**20081008192233] [Detect Clozure CL's Unicode properly. Maciej Pasternacki <mac...@pasternacki.net>**20081008213910] [clafify doquery documentation mari...@gmail.com**20081001061950] [bugfix: (def-sql-op :create-rule) Ryszard Szopa <ryszard.sz...@gmail.com>**20080928221955] [the table code in create-table is executed in a transaction Ryszard Szopa <ryszard.sz...@gmail.com>**20080928221914] [In (def-sql-op :create-domain) dissect-type was getting a list whose Ryszard Szopa <ryszard.sz...@gmail.com>**20080928162227 only element was the type instead of the type. ] [document :create-view mari...@gmail.com**20080928072632] [clean up create-view, create-rule, create-domain ops mari...@gmail.com**20080928072356] [make :create-rule accept many arguments to DO Ryszard Szopa <ryszard.sz...@gmail.com>**20080925231220] [create-view takes the view-name as an unquoted symbol (like create-table) Ryszard Szopa <ryszard.sz...@gmail.com>**20080925000803] [create view Ryszard Szopa <ryszard.sz...@gmail.com>**20080924113910] [sql-ops: create rule, drop rule Ryszard Szopa <ryszard.sz...@gmail.com>**20080924030332] [sql-operators: create-domain, drop-domain Ryszard Szopa <ryszard.sz...@gmail.com>**20080923180708] [sql-operators: create-enum, drop-enum Ryszard Szopa <ryszard.sz...@gmail.com>**20080923180116] [mark release 1.13 mari...@gmail.com**20080828075110] [Correct rational (double-float) formatting Arjan Wekking <ar...@streamtech.nl>**20080725135212 On Clozure CL (PPC32), (format "~f" (coerce 1/123 'double-float)) returns "0.008130081300813009D0" which is not a number syntax PostgreSQL understands. In order to be sure that a format is used that is always supported, the formatting string was changed to generate the number in exponential notation which is accepted by PostgreSQL and which can be reliably generated by at least SBCL and Clozure CL (only CLs I've tested). The modified control string in this patch ("~,,,,,,'EE") will generate for the rational 1/123 "8.130081300813009E-3" which is accepted and interpreted properly by PostgreSQL. ] [fix wrong default argument in enc-read-string mari...@gmail.com**20080713160237] [Add a few type declarations for speed. Stelian Ionescu <sione...@common-lisp.net>**20080713154443] [Minor fix to WITH-QUERY to accomodate SBCL. Stelian Ionescu <sione...@common-lisp.net>**20080713142541] [fix a stupid mistake (when you leave a single line untested, guess where the bug appears) mari...@gmail.com**20080711203222] [fix the previous patch, forgot to save before recording! mari...@gmail.com**20080710113408] [try to not break in Allegro's modern mode (though split-sequence is still broken there, it seems) mari...@gmail.com**20080710112601] [add deftable (again, now with a different role) mari...@gmail.com**20080710112121] [support outer joins (courtesy of Timur Sufiev) mari...@gmail.com**20080704104331] [effected -> affected in docs mari...@gmail.com**20080624195046] [evaluate queries for prepared statements only once mari...@gmail.com**20080620005641] [use transactions instead of savepoints for the previous patch (since the second will fail when no transaction is active)" mari...@gmail.com**20080516144345] [add a savepoint to save-dao to prevent it from aborting transactions mari...@gmail.com**20080516090122] [fix mistake in docs mari...@gmail.com**20080514141026] [more informative error reporting for malformed (or db-null ...) types mari...@gmail.com**20080510081233] [mark release 1.12 mari...@gmail.com**20080430120335] [touch up docs mari...@gmail.com**20080430115210] [update reference to local-time mari...@gmail.com**20080430113052] [make the ssl stuff rely on its caller to close the socket, as advertised mari...@gmail.com**20080429204434] [add :case and :between operators to s-sql (courtesy of Drew Crampsie) mari...@gmail.com**20080429194524] [add SSL support mari...@gmail.com**20080429192910] [make execute return the amount of effected rows as first argument mari...@gmail.com**20080429151223] [save-dao is back mari...@gmail.com**20080429101908] [fix syncing, which was causing the library to hang on a socket read when an error happened at the wrong moment mari...@gmail.com**20080428101038] [make error message more informative when *database* is nil mari...@gmail.com**20080425093141] [resolve conflict in prev patches mari...@gmail.com**20080425092754] [add with-column-writers form mari...@gmail.com**20080425092016] [prevent table-names from 'sticking' to classes when the class is redefined without a table name mari...@gmail.com**20080425081231] [make to-sql-name accept strings mari...@gmail.com**20080424182642] [prevent going into an infinite loop when calling get-dao on a class with no key slots mari...@gmail.com**20080421081223] [clarify errors raised by dao row readers when the wrong columns are read mari...@gmail.com**20080419172600] [add :% to the list of n-ary sql operators mari...@gmail.com**20080417140821] [provide a simple-date interpreter for timestamp-with-timezone values mari...@gmail.com**20080414135654] [replace dashes with spaces in symbols that are interpreted as type names, allowing stuff like timestamp-with-time-zone to work mari...@gmail.com**20080414135242] [prevent breaking when (for some reason) a postgres error does not contain an error code mari...@gmail.com**20080410074649] [mark release 1.11 mari...@gmail.com**20080409183707] [normalise links to postgres docs in pomo docs mari...@gmail.com**20080409183459] [remove silly copyright footers from source files, put them in a single LICENSE file mari...@gmail.com**20080409181724] [add *max-pool-size* parameter, allowing client code to cap the size of connection pools mari...@gmail.com**20080409181140] [add timing information to *query-log* output mari...@gmail.com**20080408160255] [always listen for ParameterStatus messages in message-case, since it seems to occur in a lot of contexts mari...@gmail.com**20080407092524] [add :any and :all operators, which need a special case now because they are reserved words and are automatically escaped mari...@gmail.com**20080405155530] [support for field names and types in :as mari...@gmail.com**20080404070824] [support for EXTRACT operator in S-SQL mari...@gmail.com**20080401155256] [handle ParameterStatus messages when reading in query results mari...@gmail.com**20080401133953] [define a :distinct operator, since this is apparently not a regular function-style SQL operator, and must not be escaped mari...@gmail.com**20080331131149] [properly recognise T and NIL as booleans, even when not quoted mari...@gmail.com**20080331082153] [properly handle symbols with lowercase characters when looking for reserved words mari...@gmail.com**20080330115001] [keep docstrings up to date mari...@gmail.com**20080330114339] [add test case for auto-escaping of reserved words mari...@gmail.com**20080330113846] [add automatic escaping of reserved words, undo previous patch which is no longer needed mari...@gmail.com**20080330113252] [use 'person' instead of 'user' in the doc example, since 'user' is a reserved word mari...@gmail.com**20080330103558] [give to-sql-name a second optional argument to directly control escaping, optimize it, and make sure the sql names stored in DAO slots are not escaped mari...@gmail.com**20080330103104] [add :reconnect example to docs mari...@gmail.com**20080327142642] [add coalesce util function mari...@gmail.com**20080325091348] [mark release 1.10 mari...@gmail.com**20080319211339] [add a few test cases for prepared statements mari...@gmail.com**20080319210327] [update migration guide mari...@gmail.com**20080319205126] [document the fact that update-dao and insert-dao return their arguments mari...@gmail.com**20080319112149] [make update-dao and insert-dao return their argument mari...@gmail.com**20080319112016] [Fix binding ratio's: only lose precision up to double-float's precision. attila.lend...@gmail.com**20080317120016] [do not convert arguments to strings before passing them to exec-prepared mari...@gmail.com**20080317130512] [Fix binding sql null's attila.lend...@gmail.com**20080316174719] [update the default time readers to use useconds mari...@gmail.com**20080316175738] [fix bug in previous patch mari...@gmail.com**20080316175350] [add :timestamp-with-timezone argument to set-sql-datetime-readers mari...@gmail.com**20080316174951] [document addition of time readers and use of microsecond resolution mari...@gmail.com**20080316174141] [Do not round away usec resolution for timestamps attila.lend...@gmail.com**20080316161622] [also make set-sql-reader return the readtable, for consistency mari...@gmail.com**20080316173625] [Return the table from set-sql-datetime-readers for easier chaining attila.lend...@gmail.com**20080316171204] [Reintroduce time reader attila.lend...@gmail.com**20080316161945] [forgot to add a new file in previous patch mari...@gmail.com**20080316140402] [move s-sql:sql-ize to cl-postgres:to-sql-string, make exec-prepared accept any sql-stringifyable parameters mari...@gmail.com**20080316134815] [export sql readtables as objects that client code can manipulate mari...@gmail.com**20080316122657] [slight fixes in docs mari...@gmail.com**20080307221621] [have query-dao% test whether its subject class has been finalized mari...@gmail.com**20080313143433] [document error recovery features mari...@gmail.com**20080307220944] [update migrating document mari...@gmail.com**20080307214949] [clean up documentation of new DAO system mari...@gmail.com**20080307214252] [document dao-table-name mari...@gmail.com**20080307210713] [make inheritance work for DAO classes mari...@gmail.com**20080307210352] [initialize instances of DAO objects when read from the db (still ignores :default-initargs) mari...@gmail.com**20080307112254] [export dao-table-name function mari...@gmail.com**20080307112227] [rename database-stream-error to database-socket-error, add more :reconnect restarts mari...@gmail.com**20080305155942] [fix really bad bug in with-connection mari...@gmail.com**20080304122701] [add two error types to cl-postgres mari...@gmail.com**20080304111021] [handle table-name specification in a more solid way mari...@gmail.com**20080304091221] [make direct-slot-definition-class return a class rather than a class-name, to please CLISP mari...@gmail.com**20080302190912] [make the selection of string-handling functions (for different encodings) in cl-postgres a little less scare (use separate files instead of reader macros all over the place) mari...@gmail.com**20080302175903] [update postmodern testsuite for new changes mari...@gmail.com**20080302173156] [make simple-date dependency for cl-postgres and s-sql optional, add some system-loading magic to make simple-date automatically hook into these libraries when it is loaded after them mari...@gmail.com**20080302172657] [add version 1.10 migration doc (unfinished) mari...@gmail.com**20080302093251] [small touches to documentation mari...@gmail.com**20080302093211] [fix inconsistencies in docs mari...@gmail.com**20080301233732] [update documentation index to reflect new DAO system mari...@gmail.com**20080301232549] [make null slots with no given default default to :null mari...@gmail.com**20080301223255] [ditch save-dao mari...@gmail.com**20080301223243] [document new DAO system mari...@gmail.com**20080301223202] [update tests for changes in dao system, fix bugs in said system mari...@gmail.com**20080301212451] [fix tests to use with-connection correctly mari...@gmail.com**20080301212359] [add standards-mode doctypes to the documentation mari...@gmail.com**20080301212021] [make with-connection do what with-connection* used to do mari...@gmail.com**20080301211901] [refine new DAO system a bit further mari...@gmail.com**20080301200623] [unfinished dao-class metaclass implementation mari...@gmail.com**20080223105219] [add closer-mop dependency, use *features* instead of reader-eval hack to manage compile-time options mari...@gmail.com**20080223093119] [add support for SERIAL and SERIAL8 types to S-SQL mari...@gmail.com**20080301203142] [optimize sql-compile -- and fix a mistake in :returning patch mari...@gmail.com**20080301202538] [add suport for :returning to :insert-into mari...@gmail.com**20080301202240] [handle special case of not passing any values to :insert-into (DEFAULT VALUES) mari...@gmail.com**20080301200536] [fix spacing in documentation mari...@gmail.com**20080226212920] [add :drop-view operator mari...@gmail.com**20080226211943] [add :where keyword to :create-index/:create-unique-index forms mari...@gmail.com**20080226201807] [allow ordering arguments to select-dao mari...@gmail.com**20080228141158] [add :single! result type mari...@gmail.com**20080228102820] [fix mistake in :reconnect patch mari...@gmail.com**20080228102746] [ugly hack to fix the problem of daos with only a primary and no other columns **20080227145952] [raise an error when a :single, :alist, :str-alist, :list, or :row query yields a number of rows that is not 1 mari...@gmail.com**20080228094458] [add :except-all and :intersect-all to s-sql mari...@gmail.com**20080228094043] [export and document symbols introduced in previous patches mari...@gmail.com**20080228092912] [remove disfunctional change-class trick, wrap stream-errors in a database-connection-error when they provide a :reconnect restart mari...@gmail.com**20080228091651] [provide :reconnect restart in more situations, database-connection-error is now the condition that is raised when this restart is available mari...@gmail.com**20080228084919] [remove inline declarations causing mysterious SBCL errors mari...@gmail.com**20080227153544] [fix foo.* expanding to foo._ mari...@gmail.com**20080226103631] [clean up md5-optimise patch mari...@gmail.com**20080224073859] [Optimize md5-password attila.lend...@gmail.com**20080223175249] [revert accidental de-alphabetization of symbol list in docs mari...@gmail.com**20080223105834] [add *query-log* to cl-postgres mari...@gmail.com**20080223104959] [add license blurb to new file mari...@gmail.com**20080223093027] [add register-type-reader for custom interpretation of pg types mari...@gmail.com**20080222222824] [add file forgotten in previous patch (errors.lisp), and shorten error names mari...@gmail.com**20080222210710] [add cute asdf:test-op interface to tests mari...@gmail.com**20080222205148] [add distinct types for useful error conditions mari...@gmail.com**20080222201246] [Modify integer-reader so that it generates both the signed/unsigned version. attila.lend...@gmail.com**20071111163119 This way it's more like the integer-writer. Also declaim inline the functions. ] [document sql-template mari...@gmail.com**20080220203027] [disable pretty printing when generating sql templates mari...@gmail.com**20080220195541] [remove superfluous check in sequence-next mari...@gmail.com**20080218221709] [add a way to precompute sql templates, storing them in functions mari...@gmail.com**20080218221642] [fix :set in the case it is given a dynamic argument that evaluates to nil mari...@gmail.com**20080222165046] [make sure dead connections do not get repooled mari...@gmail.com**20080213193556] [add support for 'union all' operator mari...@gmail.com**20080207091001] [remove (the ...) form that causes probs in lispworks mari...@gmail.com**20080204075046] [forgot a line in the previous patch mari...@gmail.com**20080114143344] [allow :unique indices in deftable, retouch deftable docs mari...@gmail.com**20080114141127] [mark release 1.05 mari...@gmail.com**20080111222254] [change the meaning of the type (string N) from VARCHAR(N) to CHAR(N) in s-sql mari...@gmail.com**20080111215306] [fix forgotten comma in previous patch mari...@gmail.com**20080109172732] [make the interface for defining simple s-sql operators public mari...@gmail.com**20080108194027] [make strcat take a list of strings instead of &rest args mari...@gmail.com**20080108175954] [add an E prefix to strings to properly indicate that they are backslash-escaped, and add a mode for standard sql strings mari...@gmail.com**20080106204435] [store the configuration parameters in a hash table for later reference mari...@gmail.com**20080106200208] [fix and document the savepoint interface mari...@gmail.com**20080105110131] [add savepoint interface (by Ivan Boldyrev) mari...@gmail.com**20080105093551] [add type information to escaped representation of simple-date values mari...@gmail.com**20080105093046] [be a bit more liberal in the forms that :insert-into allows (stuff like :union is also valid) mari...@gmail.com**20080103151527] [mark release 1.04 mari...@gmail.com**20071227092950] [recognise unicode support in Allegro (by Ivan Boldyrev) mari...@gmail.com**20071227091922] [there is no apostrophe in to-dos! (it still looks funny) mari...@gmail.com**20071118213523] [support :distinct-on, change place of :distinct mari...@gmail.com**20071113232921] [add distinct option to :select operator mari...@gmail.com**20071113134330] [+ corrected to * in split-on-keywords docstring. Ryszard Szopa <ryszard.sz...@gmail.com>**20071107221948] [make error messages for malformed joins a little less confusing mari...@gmail.com**20071017115929] [optimize hex encoding in md5 authorisation mari...@gmail.com**20070925131842] [mark release 1.03 mari...@gmail.com**20070918171824] [missing comma in definition of `WITH-CONNECTION*'. Ryszard Szopa <ryszard.sz...@gmail.com>**20070918155338] [link to submarine from docs mari...@gmail.com**20070917135653] [add my name to the docs mari...@gmail.com**20070917132526] [*untested*: give some more practical alternatives to with-connection mari...@gmail.com**20070917131631] [*untested*: fix weird use of loop, to hopefully fix a lispworks problem mari...@gmail.com**20070917124449] [communicate.lisp: bugfix for CMUCL Ryszard Szopa <ryszard.sz...@gmail.com>**20070905130310 If CMUCL was used, declaring byte-length to be of type FIXNUM in read-ascii-string caused it to be optimized as non-NIL when given as first argument to WHEN. Fixed by declaring it to be of type (OR NULL FIXNUM). ] [make string-escaping and binary-data-escaping a *lot* faster by turning off *print-pretty* and not using format mari...@gmail.com**20070730213308] [fix query to evaluate its arguments *before* it prepares its query mari...@gmail.com**20070728153645] [add some check-type tests to prevent the connection from being screwed up in case a non-string value is passed as a query or query name mari...@gmail.com**20070728074336] [tiny error in doc mari...@gmail.com**20070724203257] [mark release 1.02 mari...@gmail.com**20070724201043] [fix for the patch that added effected-rows output to query and execute mari...@gmail.com**20070724200520] [make the query macro more picky about interpreting arguments as format specifiers mari...@gmail.com**20070724194830] [detect server shutdown errors, close the connection when they happen mari...@gmail.com**20070716124633] [use Attila's ensure-socket-is-closed in a few more places mari...@gmail.com**20070716122115] [also add note about previous patch to postmodern documentation mari...@gmail.com**20070716114659] [clean up effected-rows code mari...@gmail.com**20070716114132] [Typo attila.lend...@gmail.com**20070712173643] [Return the updated row count from CommandComplete attila.lend...@gmail.com**20070712173609] [Make aborting transactions safer, properly close the socket attila.lend...@gmail.com**20070523124441] [fix to previous patch, make dao-exists-p check for bound auto-id, not save-dao, because the slot name is not always id mari...@gmail.com**20070622074026] [make save-dao work nicely with previous patch mari...@gmail.com**20070621155617] [add :defer-id keyword to table class initializer mari...@gmail.com**20070617205036] [release 1.01 mari...@gmail.com**20070613105755] [sql-ize the name of fields when building index names mari...@gmail.com**20070522161607] [Extended integer-writer to define write-int* functions. Use write-int4 where appropriate. levente.mesza...@gmail.com**20070503081639] [Use ecase at two places instead of case attila.lend...@gmail.com**20070424113757] [mark release 1.0 in docs mari...@gmail.com**20070515172832] [missed a :type-of in one-but-last patch mari...@gmail.com**20070430004853] [use uninterned keywords for exports in all packages mari...@gmail.com**20070430004807] [add :of-type keyword to type declarations in loops mari...@gmail.com**20070430004023] [Support binding (vector (unsigned-byte 8)) in bind-message. IOW, support binary long objects. attila.lend...@gmail.com**20070421142807] [Added vector-row-reader attila.lend...@gmail.com**20070421001358] [FIX: ignore-row-reader was collecting unnecessarily attila.lend...@gmail.com**20070421000500] [Added a simple blob test attila.lend...@gmail.com**20070420234300] [Use uninterned symbols in the .asd attila.lend...@gmail.com**20070420193639] [Signal an exported 'postgresql-warning so that it can be muffled attila.lend...@gmail.com**20070420193528] [fix :limit sql operator mari...@gmail.com**20070327113825] [release .24 mari...@gmail.com**20070316081950] [make message-case macro continue with the next message if it encounters a warning (thanks to Bart Botta) mari...@gmail.com**20070303133912] [make :reconnect restarts usable, document them mari...@gmail.com**20070216075349] [allow extra arguments to query and execute to replace placeholders like $1 in the query mari...@gmail.com**20070215190255] [minor corrections in docs mari...@gmail.com**20070208194545] [release .23 mari...@gmail.com**20070129085059] [fix bug in expansion of :create-table for NULL columns mari...@gmail.com**20070129084832] [fix bug that made regexp operator expand to minus mari...@gmail.com**20070127204150] [note release .22 in documentation mari...@gmail.com**20070127094928] [revise syntax of create-table, allowing constraints, foreign keys, and default values to be specified mari...@gmail.com**20070127093828] [remove typo from docs mari...@gmail.com**20070126204028] [beautify the style of the docs a bit mari...@gmail.com**20070126203826] [disallow recursive use of queries from row-readers mari...@gmail.com**20070126200826] [make the transaction model less error-prone mari...@gmail.com**20070126200631] [report release .21 in docs mari...@gmail.com**20070122213642] [update create-table example to reflect changes in syntax mari...@gmail.com**20070122211915] [fix typo in docs mari...@gmail.com**20070122211559] [add support for regular expression matching and traditional like/ilike matching to s-sql mari...@gmail.com**20070122211323] [make retrieving dao objects from a query result more robust mari...@gmail.com**20070122205950] [move db-null type into S-SQL, and use it in :create-table mari...@gmail.com**20070117142836] [switch from trivial-sockets to usocket mari...@gmail.com**20070117135908] [a few corrections in the documentation mari...@gmail.com**20061224074412] [correct typo in a link mari...@gmail.com**20061222204441] [initial import mari...@gmail.com**20061222202457] Patch bundle hash: 5db0010e2a8760c31f58b792175865a836025ea9
_______________________________________________ postmodern-devel mailing list postmodern-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/postmodern-devel