Kevin M. Rosenberg [Thu, 26 Apr 2012 16:05:34 +0000 (10:05 -0600)]
Update version number
Kevin M. Rosenberg [Thu, 26 Apr 2012 16:01:33 +0000 (10:01 -0600)]
Automated commit for debian release 6.1.1-1
Kevin M. Rosenberg [Thu, 26 Apr 2012 15:15:56 +0000 (09:15 -0600)]
Automated commit for upstream build of version 6.1.1
Kevin M. Rosenberg [Thu, 26 Apr 2012 15:14:50 +0000 (09:14 -0600)]
Version 6.2 release
Russ Tyndall [Wed, 25 Apr 2012 16:24:30 +0000 (12:24 -0400)]
added (*in-subselect* t) bindings around rendering out update/insert values
Nathan Bird [Wed, 25 Apr 2012 15:25:31 +0000 (11:25 -0400)]
Adding some (incomplete) information about the current state of thread-safety.
Nathan Bird [Tue, 24 Apr 2012 15:49:08 +0000 (11:49 -0400)]
Mysql > CREATE TABLE: use 'engine' keyword instead of 'type'.
Nathan Bird [Tue, 24 Apr 2012 14:57:42 +0000 (10:57 -0400)]
Revert "If running on a threaded lisp try loading libmysqlclient_r"
This reverts commit
7127589ca079f4f4279be601ebd272b7488906b4.
While I think this might be right, I've not gotten a chance to test
this at all. Aside from that, on my system (ubuntu 12.04 x86_64) both
versions symlink to the same shared object.
Russ Tyndall [Wed, 28 Mar 2012 18:11:22 +0000 (14:11 -0400)]
Bug in sequence names was reported by Jan Tolenaar.
We changed the naming scheme inadvertently. Added a flag
*old-sequence-names* to force use of the old naming scheme. Hopefully
this will not break for anyone relying on the new naming scheme
Ryan Davis [Tue, 27 Mar 2012 20:21:39 +0000 (16:21 -0400)]
merging changelog
Ryan Davis [Tue, 27 Mar 2012 20:18:23 +0000 (16:18 -0400)]
updated changelog
Ryan Davis [Tue, 27 Mar 2012 20:06:27 +0000 (16:06 -0400)]
convered orphan sql-ident-table test function to use RT and run with
the rest of the syntax tests (and fail)
Had to fix some package references, and uses backquote to splice
together the a decent deftest form without being overly verbose. Also
used clsql:sql instead of calling output-sql directly.
Currently fails by not preserving case when using a symbol like '|foo|
as the table name, we're getting "FOO" not "foo".
Ryan Davis [Tue, 27 Mar 2012 19:42:39 +0000 (15:42 -0400)]
add 3 new syntax tests for subqueries in SELECT, UPDATE,
and DELETE statements.
Had to use clsql-sys unexported symbols for sql-delete
and sql-update because clsql:sql-operation does not support
either.
Russ Tyndall [Mon, 26 Mar 2012 21:03:47 +0000 (17:03 -0400)]
added change log entry for the last two patches
Ryan Davis [Mon, 26 Mar 2012 19:57:24 +0000 (15:57 -0400)]
use output-sql-where-clause when rendering update statements
Ryan Davis [Mon, 26 Mar 2012 19:52:13 +0000 (15:52 -0400)]
fix SQL syntax errors when using subqueries in WHERE clauses of DELETE or UPDATE statements.
A similar issue was fixed for SELECTs in
b06efa82, this patch pulls WHERE clause printing
into a seperate function called by the different output-sql methods.
Ryan Davis [Fri, 23 Mar 2012 18:54:20 +0000 (14:54 -0400)]
update clsql-odbc docs to explain the :connection-string connection argument.
Ryan Davis [Fri, 23 Mar 2012 18:53:51 +0000 (14:53 -0400)]
fix typos in the ChangeLog
Nathan Bird [Wed, 22 Feb 2012 21:59:23 +0000 (16:59 -0500)]
If running on a threaded lisp try loading libmysqlclient_r
http://dev.mysql.com/doc/refman/5.1/en/threaded-clients.html
Nathan Bird [Fri, 6 Jan 2012 21:39:09 +0000 (16:39 -0500)]
Removing odbc::%cstring-into-vector -- unused and unreliable.
The idea of the function was to copy out of c string memory into a
lisp string a byte at a time, converting to lisp characters as we go.
However:
* this doesn't work with multibyte charsets
* the underlying deref-array funcall would sometimes pull the entire
array into lisp to then get at the single element-- for each element.
* set elements in the lisp array using schar but there's no guarantee
that the lisp array is a simple-string. Newer SBCL's err on this.
Nathan Bird [Fri, 6 Jan 2012 21:36:22 +0000 (16:36 -0500)]
Rewrote ODBC's read-data-in-chunks to handle multibyte characters.
This function is called on large (greater than +max-precision+) fields
and was previously converting to lisp characters one at time with no
regard for encoding. The new method uses 2x more memory as it uses an
extra copy of the string (in pieces) but at least it returns correct
data.
Added a test case that shows the problem (now fixed).
Nathan Bird [Thu, 5 Jan 2012 22:33:40 +0000 (17:33 -0500)]
Handle sql decimal type identically to sql numeric type--read into a double.
Russ Tyndall [Tue, 13 Dec 2011 14:13:25 +0000 (09:13 -0500)]
Fixed bug reported by JTK related to the not-null sql-expression
especially as used in conjunction with the is operator
Made null called with more than one argument throw an exception
instead of silently discarding all arguments past the first
Nathan Bird [Wed, 4 Jan 2012 20:37:15 +0000 (15:37 -0500)]
Fixup ODBC :connection-string codepath.
In the call to odbc's SQLDriverConnect default the WindowHandle
argument to a null ptr so that connecting with :connection-string will
work in the default case of SQL_DRIVER_NOPROMPT.
I.e. you can now do things like: (clsql:connect '("DsnName" "UserName"
"" :connection-string
"DRIVER={FreeTDS};SERVER=...;DATABASE=...;UID=...;PWD=...;PORT=1433;TDS_Version=8.0;APP=clsql"
:database-type :odbc))
I believe the DsnName and Username at that point are only used when
printing the connection information.
When connecting with ODBC :connection-string argument default the
window-handle (for popping up a prompt) to the null ptr in the case
that one hasn't been passed in.
The default is to tell the driver library not to prompt so it doesn't
really need a window handle, it just needs it to be a null ptr rather
than nil.
Kevin M. Rosenberg [Wed, 21 Dec 2011 02:59:33 +0000 (19:59 -0700)]
Fix typo in recent 6.1.0
Kevin M. Rosenberg [Mon, 19 Dec 2011 17:14:55 +0000 (10:14 -0700)]
Oracle foreign encoding fix
2011-12-20 Kevin Rosenberg <kevin@rosenberg.net>
* db-oracle/oracle.lisp: Change length function to
uffi:foreign-string-length to handle foreign encodings.
Nathan Bird [Thu, 1 Dec 2011 21:55:25 +0000 (16:55 -0500)]
Export the new symbol: *time-format*.
Russ Tyndall [Mon, 28 Nov 2011 22:44:20 +0000 (17:44 -0500)]
In ODBC backend, avoid going through the common lisp universal time
type (because it lacks support for historic dates) when doing date
conversions. Instead use CLSQL date/time types.
*time-conversion-function* renamed to *time-format*
Patch from: Francisco Vides Fernandez
Russ Tyndall [Mon, 28 Nov 2011 22:13:51 +0000 (17:13 -0500)]
Merge branch 'master' of http://git.b9.com/clsql
Ryan Davis [Tue, 15 Nov 2011 15:54:24 +0000 (10:54 -0500)]
added some more documentation on command-object
Russ Tyndall [Tue, 18 Oct 2011 21:21:49 +0000 (17:21 -0400)]
added nvarchar to the possible sql-to-c-types for ODBC backend
Kevin M. Rosenberg [Wed, 21 Sep 2011 16:58:27 +0000 (10:58 -0600)]
Automated commit for upstream build of version 6.0.1
Russ Tyndall [Mon, 12 Sep 2011 17:48:12 +0000 (13:48 -0400)]
added changelog entry describing previous bug fix
Russ Tyndall [Mon, 12 Sep 2011 15:13:27 +0000 (11:13 -0400)]
fixed a bugs in list-attribute(s|-types) in fddl that I introduced
with %database-identifier stuff (essentially I need unquoted column
names but was passing around quoted ones). Pass around
%database-identifiers instead and only get the un/escaped version as
you are about to stick it in a query.
Kevin M. Rosenberg [Wed, 3 Aug 2011 14:49:41 +0000 (08:49 -0600)]
Automated commit for upstream build of version 6.0.0
Kevin M. Rosenberg [Wed, 3 Aug 2011 14:48:55 +0000 (08:48 -0600)]
CLSQL 6.0.0 release
Russ Tyndall [Tue, 2 Aug 2011 17:29:24 +0000 (13:29 -0400)]
use file-enable in tests to make it harder to get the syntax enable/disabling wrong
Russ Tyndall [Thu, 28 Jul 2011 17:22:42 +0000 (13:22 -0400)]
added changelog entry for the merged patch stack
Russ Tyndall [Wed, 27 Jul 2011 20:14:20 +0000 (16:14 -0400)]
Merge branch 'accel-2'
Russ Tyndall [Mon, 25 Jul 2011 19:46:52 +0000 (15:46 -0400)]
write out postgresql-socket-3 parameter values to the recording stream (when we write out command object expressions)
Kevin M. Rosenberg [Sat, 16 Jul 2011 15:19:56 +0000 (09:19 -0600)]
Version 5.4.0 release
Russ Tyndall [Thu, 7 Jul 2011 18:41:17 +0000 (14:41 -0400)]
fixed type-dec on substitute-string-for-char so that nil arg value returns nil as previously
Nathan Bird [Mon, 4 Jul 2011 19:40:44 +0000 (15:40 -0400)]
Adding to utils make-weak-hash-table for use in caches.
Currently used for
* *output-hash*: caching generated SQL strings
* oodml records cache
Nathan Bird [Fri, 1 Jul 2011 19:40:17 +0000 (15:40 -0400)]
requiring ownership isn't integral and causes it to fail
Nathan Bird [Fri, 1 Jul 2011 19:39:52 +0000 (15:39 -0400)]
Another test that depends on auto-increment
Nathan Bird [Fri, 1 Jul 2011 18:39:34 +0000 (14:39 -0400)]
refactor the way oodml find-all and select deal with their keyword args.
* introduce filter-plist for filtering key-value pairs out of a plist.
* switch some (apply #'some-fun (append args (list :key val)))
to (apply #'some-fun :key val args)
where we know the key isn't in the args list
Nathan Bird [Fri, 1 Jul 2011 18:16:25 +0000 (14:16 -0400)]
A few type declarations
Russ Tyndall [Fri, 1 Jul 2011 18:41:36 +0000 (14:41 -0400)]
added output-caching tests to ensure that the output cache works correctly and can be disabled
Nathan Bird [Thu, 30 Jun 2011 21:09:46 +0000 (17:09 -0400)]
ignore emacs #foo.lisp# autosave files
Nathan Bird [Wed, 29 Jun 2011 18:47:51 +0000 (14:47 -0400)]
Adding todo
Nathan Bird [Wed, 29 Jun 2011 18:32:51 +0000 (14:32 -0400)]
Making :basic/bigtext/2 a stronger test
Nathan Bird [Wed, 29 Jun 2011 18:27:49 +0000 (14:27 -0400)]
whitespace for readability
Nathan Bird [Thu, 30 Jun 2011 20:45:05 +0000 (16:45 -0400)]
A pass over the connection pool trying to make sure the locked scopes are as narrow as possible.
Ryan Davis [Mon, 27 Jun 2011 19:04:20 +0000 (15:04 -0400)]
Suite of new tests for connection pool operations.
Also introduced dummy backend to aide running tests not about database backends.
Ryan Davis [Mon, 27 Jun 2011 18:16:34 +0000 (14:16 -0400)]
adds another testing path that is run without any open database connection, meant to test internals.
Internal-only test suites need to be added to INTERNAL-SUITES (a peer to DEFAULT-SUITES). Internal-suites are not run against db backends.
Nathan Bird [Wed, 29 Jun 2011 19:00:41 +0000 (15:00 -0400)]
Fixup read-data-in-chunks a bit to use helper functions and whitespace
Russ Tyndall [Sun, 19 Jun 2011 17:25:58 +0000 (13:25 -0400)]
BUG FIX update-records-from-instance threw errors if pkey-slot was unbound
Nathan Bird [Wed, 29 Jun 2011 18:56:57 +0000 (14:56 -0400)]
BUGFIX: when read-data-in-chunks had an off-by-1 error when dealing with strings of length (1+ +max-precision+).
Russ Tyndall [Fri, 17 Jun 2011 21:53:45 +0000 (17:53 -0400)]
Optimize odbc::%cstring-to-vector on sbcl if cffi isn't loaded.
It now uses sb-sys:sap-ref-8 instead of sb-alien:deref (via
uffi:deref-array) based on what we found CFFI using.
This makes the ODBC backend a couple orders of magnitude faster when
talking strings to MSSQL.
TODO: figure out how to make this change in UFFI or sb-alien so that
more places can benefit from this speed improvement
Russ Tyndall [Sun, 12 Jun 2011 16:19:12 +0000 (12:19 -0400)]
add %get-int to handle type-coersion to int and use it in generic-postgres
and throughout tests to simplify integer coersion, and allow
postgresql-socket3 to pass tests. (postgresql-socket3 always returns the
correct type, rather than sometimes returning strings)
Russ Tyndall [Wed, 22 Jun 2011 14:43:02 +0000 (10:43 -0400)]
stopped lisp symbols as values from being able to inject sql (SECURITY BUG)
Fixed some more places where we should have been using escaped-database-identifier
Russ Tyndall [Sun, 12 Jun 2011 15:58:39 +0000 (11:58 -0400)]
changed generate-sql-reference to read [foo bar] and [foo.bar] as the same attribute expression
Russ Tyndall [Thu, 30 Jun 2011 19:40:25 +0000 (15:40 -0400)]
fixed some bugs with sql-expression caching and made it possible to
disable this system
Russ Tyndall [Mon, 24 Aug 2009 21:14:09 +0000 (17:14 -0400)]
Major rewrite of table/column name output escaping system wide.
Centralized logic in database-identifier that returns
database-identifier objects. These allow us to coerce to a canonical
output name and have both its escaped and unescaped version available.
Previously the logic for converting from various sql-expressions,
symbols and strings into names that will be sent to the database, was
done all over the place and with different logic in each location
prev:
5282676789105fe52990b29ec991209dcfa84aa6
6d643c3749b77b6e6207871f0cf40f135094f457
6bf69ed2c616ea75e5402bd95853adee5551743b
Russ Tyndall [Thu, 9 Jun 2011 18:27:53 +0000 (14:27 -0400)]
made odbc read (from c) decimals and numerics as doubles instead of
strings
TODO: Read these numbers in as rationals instead of floats
Russ Tyndall [Thu, 9 Jun 2011 18:04:47 +0000 (14:04 -0400)]
allow update-record-from-slots to accept slot names or slot
definitions (by improving slotdef-for-slot-with-class)
Russ Tyndall [Thu, 24 Feb 2011 18:39:02 +0000 (13:39 -0500)]
fixed :from clauses to not throw errors when presented with a string or string expression
Russ Tyndall [Mon, 5 Oct 2009 15:12:20 +0000 (11:12 -0400)]
changed how where clauses are output to ensure that we do not output a
"where" sql keyword when we will not output a clause. (Some
expressions might produce an empty string in some cases (an and
without any children comes to mind)).
prev:
814ef0649edf23f0136d5cad2d7738ae72e79871
Russ Tyndall [Wed, 8 Jun 2011 21:12:57 +0000 (17:12 -0400)]
made select accept a parameters argument.
If parameters are supplied, it builds a command object and executes
that instead of the flat query. This allows you to return objects and
use parameters
prev:
8b4602546d876db6e9853635d694de1993214127
Russ Tyndall [Wed, 8 Jun 2011 21:05:47 +0000 (17:05 -0400)]
improved and moved command object up to clsql (out of cl-postgres-socket3)
* added command-object fn
* added reset-command-object
* command-objects: made nil be treated as "null" in the database by default instead of "false". To pass false use :false or :f
prev:
d704ea35ebc38b6b9efd5cbb0417d0340bee3c5c
1e8d22b3fdace44a45b6b0702da5587e136e2398
f6651e31a95d4df2481ebaca270d35fa16b6be13
051f4d2f472406fa381e20d2da0cf25f091f262a
f3430ff34ef6631daf20cb9c69ecbc7ad84d14df
Russ Tyndall [Wed, 8 Jun 2011 20:39:17 +0000 (16:39 -0400)]
cl-postgres-socket3 backend using cl-postgres (backing of postmodern)
Major goals
* Use newer version (3) of the postgres socket api
* Allows use of command objects and prepared statements against
postgres.
Russ Tyndall [Thu, 3 Sep 2009 21:34:38 +0000 (17:34 -0400)]
Pulled a flet out into a method (select-table-sql-expr) which can be
overridden to supply a different implementation. The impetus for this
is that I wanted to select from a function's results aliased as the
table instead of the table directly.
prev:
53bf64089da7f091d748f46eb95ebeb39d990dd9
Nathan Bird [Tue, 12 Jun 2007 21:51:57 +0000 (17:51 -0400)]
Refactorng choose-database-for-instance method out.
This function encapsulates the logic about which database connection
to use and is called by most of the update-*-from-* in the oodml
functions. Also allows overriding to control object connection
management (which is nice in heavily multithreaded (web) environs)
*
f10fc333da09ea7e24477e6199ffbc541adff2f1
*
348cafca35b850b66b1181ba0661211e64f0d4f1
Russ Tyndall [Mon, 27 Jun 2011 18:15:01 +0000 (14:15 -0400)]
fixed bad SQL_C_SBIGINT call that must have been a bad merge
Russ Tyndall [Mon, 27 Jun 2011 18:48:27 +0000 (14:48 -0400)]
TOP X mssql limit clause must appear after DISTINCT if they are both present
Russ Tyndall [Mon, 27 Jun 2011 17:49:56 +0000 (13:49 -0400)]
ODBC Memory management improvements
* More stuff goes through db-close-query; try to make that function
more complete
* Adding SqlFreeHandle call after disconnect: free resources associated
with that connection
* Adding with-allocate-foreign-string to wrap allocate-foreign-string
ensuring we free correspondingly.
* fix bugs in dispose-column-ptrs (set fill pointers to 0)
Adding todo comments on apparently dead functions
Nathan Bird [Fri, 5 Mar 2010 22:05:21 +0000 (17:05 -0500)]
Adding docstring warning on clear-con-pool
Nathan Bird [Mon, 20 Jun 2011 19:48:38 +0000 (15:48 -0400)]
Adding ChangeLog entry for changes in development since 5.3.4
Nathan Bird [Mon, 20 Jun 2011 20:45:56 +0000 (16:45 -0400)]
Postgres odbc returns bigint's correctly now
At least with postgesql 8.4, and ubuntu odbc-postgresql 1:08.03.0200-1
Nathan Bird [Thu, 14 Jun 2007 19:25:43 +0000 (15:25 -0400)]
Implementing bigint support for odbc + mssql
prev:
2135bfa98887e609e060f30c0b04130075089788
Russ Tyndall [Wed, 8 Jun 2011 18:19:30 +0000 (14:19 -0400)]
specify data type translation for mssql ODBC database Date->"smalldatetime"
Ryszard Szopa [Sun, 4 Jan 2009 00:23:07 +0000 (01:23 +0100)]
Make it possible to pass functional expression to :order-by in select.
Also prevent errors when setting table qualifiers
prev: Ryszard Szopa <ryszard.szopa@gmail.com>
0c4d66aaaf81025974508a4e7b5d10205e4db7f7
9aafcb72bd7ca1d7e908938b6a5319753b3371d9
Russ Tyndall [Sun, 12 Jun 2011 14:41:34 +0000 (10:41 -0400)]
fixed broken oodml/select where clauses
Russ Tyndall [Fri, 17 Jun 2011 16:29:26 +0000 (12:29 -0400)]
fixed broken listify (it used to make (nil) when passed nil)
Russ Tyndall [Thu, 20 Aug 2009 18:23:33 +0000 (14:23 -0400)]
special cased MSSQL/ODBC limit handling in output-sql of sql-query
Russ Tyndall [Wed, 22 Jul 2009 20:05:15 +0000 (16:05 -0400)]
fixed canonicalize-type-list so that it behaved even remotely sanely
prev:
8ef3f8059e39bf66e8afddc2cbcd97c7c0710c7c
Russ Tyndall [Thu, 14 May 2009 17:27:38 +0000 (13:27 -0400)]
Update-slots-from-instance now throws an exception if it generates an update without a where clause
prev:
106b55bc15b5118cd328e3ebb6f5f67db3b26206
Nathan Bird [Fri, 27 Feb 2009 22:48:05 +0000 (17:48 -0500)]
Dont declare the the column precisions to be a fixnum since odbc
implementations like to set it to
2147483647, we arent going to
allocate anything of this size.
nathan@acceleration.net [Fri, 22 Feb 2008 20:59:39 +0000 (15:59 -0500)]
Teach expressions how to deal with identity columns
prev:
667c9db132c12759b33419fd408c0718d4694cb3
nathan@acceleration.net [Thu, 10 Apr 2008 15:25:12 +0000 (11:25 -0400)]
In ODBC when reading data in chunks with a specified out-length, use
that as an indicator since freetds doenst set the info status
appropriately.
prev:
9eeb8ab3eb68bf37b93a557ed72ba46d0734efc4
Russ Tyndall [Fri, 17 Jun 2011 19:47:27 +0000 (15:47 -0400)]
made parse-time/datestring handle already parsed time/datestrings
Kevin M. Rosenberg [Mon, 20 Jun 2011 19:20:31 +0000 (13:20 -0600)]
Automated commit for upstream build of version 5.3.4
Nathan Bird [Mon, 20 Jun 2011 19:07:59 +0000 (15:07 -0400)]
Adding version to clsql asd system.
Nathan Bird [Mon, 20 Jun 2011 19:04:27 +0000 (15:04 -0400)]
Adding versions to the Changelog
Nathan Bird [Mon, 20 Jun 2011 15:29:45 +0000 (11:29 -0400)]
Russ Tyndall [Fri, 17 Jun 2011 19:32:31 +0000 (15:32 -0400)]
dont write an extra 0 byte to the postgres-socket-api before every
string write (in SBCL)
(fixes bug in
104ea5dc162028f1433940e19af03b6919a6082c)
Kevin M. Rosenberg [Sun, 12 Jun 2011 19:23:00 +0000 (13:23 -0600)]
Automated commit for debian release 5.3.3-1
Kevin M. Rosenberg [Sun, 12 Jun 2011 19:22:38 +0000 (13:22 -0600)]
Add unicode for CCL for pgsql-socket
Kevin M. Rosenberg [Thu, 21 Apr 2011 16:57:54 +0000 (10:57 -0600)]
Add defgeneric for database-last-auto-increment-id
Kevin M. Rosenberg [Fri, 1 Apr 2011 18:09:18 +0000 (12:09 -0600)]
Fix reader conditional