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

Reply via email to