1 2015-01-23 Don Porter <dgp@users.sourceforge.net>
4 * README: Advanced version number to 1.0.3.
5 * configure: TEA update; autoconf-2.69.
7 2014-10-27 Don Porter <dgp@users.sourceforge.net>
9 * generic/tdbcodbc.c: Used && instead of &.
11 2014-10-23 Don Porter <dgp@users.sourceforge.net>
14 * README: Advanced version number to 1.0.2.
15 * configure: TEA update; autoconf-2.68.
17 * doc/*.[3n]: [Bug 00b792] OpenBSD friendly docs.
19 2014-08-14 Don Porter <dgp@users.sourceforge.net>
22 * README: Advanced version number to 1.0.1.
23 * configure: autoconf-2.68.
25 2012-12-05 Harald Oehlmann <oehhar@users.sf.net>
27 * win/makefile.vc: Compiles when bundled and standalone, test fixed.
29 2012-11-14 Kevin B. Kenny <kennykb@acm.org>
31 * configure.in: Added code so that `make test` can find an
32 * Makefile.in: uninstalled `tdbc` and load it from the build
34 * configure: autoconf-2.68
35 *** ADVANCED THE AUTOCONF VERSION IN USE ***
37 2012-11-08 Don Porter <dgp@users.sourceforge.net>
40 * README: Advanced version number to 1.0.0.
41 * configure: autoconf 2.59
43 2012-07-26 Jan Nijtmans <jan.nijtmans@gmail.com>
45 * generic/odbcStubInit.s: Make some tables "const"
46 * tclconfig/install-sh: Update to latest TEA
48 * configure: autoconf-2.59
50 2012-07-13 Kevin B. Kenny <kennykb@acm.org>
52 * generic/tdbcodbc.c: A user asserts that certain 'output' parameters
53 to SQLGetData must be initialized. While I have
54 never seen the failure he reports, initializing
55 them appears to be Mostly Harmless, so do so.
58 2012-07-10 Kevin B. Kenny <kennykb@acm.org>
60 * generic/tdbcodbc.c: Fixed a non-static table argument to
61 Tcl_GetIndexFromObjStruct.
63 2012-06-10 Jan Nijtmans <jan.nijtmans@gmail.com>
65 * configure.in: make TDBC API functions MODULE_SCOPE
66 * configure: autoconf-2.59
68 2012-06-08 Jan Nijtmans <jan.nijtmans@gmail.com>
70 * tclconfig/ChangeLog:
71 * tclconfig/tcl.m4: Update to latest TEA
72 * configure: autoconf-2.59
74 2012-05-07 Kevin B. Kenny <kennykb@acm.org>
76 * generic/tdbcodbc.c: Fixed a crash when reporting SQLInstallError
77 messages. pcbErrorMsg, documented to be
78 an output parameter, needs to be preinitialized
79 with the string length.
81 2011-08-30 Kevin B. Kenny <kennykb@acm.org>
83 * Makefile.in: Added a 'valgrind-sqlite' rule to allow for
85 * generic/odbcStubInit.c:
86 * generic/tdbcodbc.c: A round of memory leak hunting. In the test
87 suite, 6 'definitely lost' blocks remain,
88 all of which at this point appear to be
89 leaks in dependent libraries. Thanks to
90 Giorgios Petasis for reporting the presence
91 of the leaks and diagnosing two of them.
92 * library/tdbcodbc.tcl: Corrected a typo in 'rename' statements that
93 caused handles to leak (and potentially caused
94 user commands to be deleted?)
95 * tests/all.tcl: Added [rename exit {}] for leak checking.
96 * tests/tdbcodbc.test: Removed a useless [catch] on a cleanup
99 2011-07-19 Kevin B. Kenny <kennykb@acm.org>
103 * README: Advanced version number to 1.0b17.
105 * configure: autoconf 2.59
107 2011-07-18 Don Porter <dgp@users.sourceforge.net>
109 * configure.in: Update to latest TEA 3.9 revisions.
113 * configure: autoconf-2.59
115 2011-02-21 Kevin B. Kenny <kennykb@acm.org>
117 * generic/tdbcodbc.c (GetCell, HasBigintMethod, ResultSetConstructor):
118 Fix a crash where an error is returned from SQLGetData.
119 Add a check for whether a connection supports 64-bit integers
120 before trying to use them to replace NUMERIC or DECIMAL
121 values. Add a method to determine 64-bit integer support.
123 * library/tdbcodbc.tcl (tdbc::odbc::connection typemap):
124 Add to initialization a check for 64-bit integer support
125 so that the above change works. (Bug [8766b8dc40].)
126 * tests/tdbcodbc.test:
127 Code formatting changes to avoid long lines and spurious
130 2011-02-20 Kevin B, Kenny <kennykb@acm.org>
132 * tests/tdbcodbc.test (tdbc::odbc-30.[45]):
133 Added tests for [allrows] and [foreach] on multiple
136 * generic/tdbcodbc.c (ResultSetNextresultsMethod):
137 * tests/tdbcodbc.test (tdbc::odbc-{30.6,31.1}:
138 Made 'rowcount' work for multiple result sets. Added a
139 test for 'rowcount' in multiple result sets, and added
140 a rudimentary test that stored procedures can be called.
141 * library/tdbcodbc.tcl (tdbc::odbc::resultset preparecall)
142 Added a non-executed sketch of how a preparse of
143 a prepared statement call might go in order to allow
144 the use of SQLProcedureColumns to determine parameter
145 directions. (This code may or may not be used; a first
146 experiment would simply be to make all SP parameters
147 'inout' and see if that works.)
149 2011-01-26 Kevin B. Kenny <kennykb@acm.org>
152 Added empty comment at the start of each manpage because 'man'
153 interprets comments there as directives. Thanks to Konstantin
154 Kohmoutov for reporting and diagnosing this error.
156 2011-01-22 Kevin B. Kenny <kennykb@acm.org>
158 * odbcStubDefs.txt: Added SQLMoreResults, needed for multiple result
161 * odbcStubs.h: make genstubs
162 * tdbcodbc.c: Added a 'moreresults' method to the result set object
163 to allow for SQL statements that return multiple result
165 Fixed a resource leak in the case where bad parameters
166 are supplied to the 'foreignkeys' method.
167 * tdbcodbc.test: Added tests that the 'moreresults' method works
168 correctly in the event of 0, 1, and more than one
171 2010-09-03 Kevin B. Kenny <kennykb@acm.org>
173 * tdbcodbc.test: Made tests more portable.
175 * generic/odbcStubDefs.txt:
176 * generic/tdbcodbc.c:
177 * library/tdbcodbc.tcl:
178 * tests/tdbcodbc.test:
179 Added the 'primarykeys' and 'foreignkeys' methods,
180 and the corresponding tests.
181 * generic/odbcStubInit.c:
182 * generic/odbcStubs.h:
187 * pkgIndex.tcl.in (new file):
189 * tclconfig/: Upgraded the build to use TEA 3.9. Changed the
190 approach to pkgIndex.tcl generation. (It's now built
191 at configure time, rather than from the Makefile.)
192 Advanced version number to 1.0b16.
194 * configure: autoconf 2.59
196 2010-06-19 Kevin B. Kenny <kennykb@acm.org>
198 * Makefile.in: Revised the code at the suggestion
199 * generic/tdbcodbc.c: of Andreas Kupries to avoid using
200 * tests/all.tcl: 'tcl_findLibrary' and instead execute
201 * tests/tdbcodbc.test: both 'source' and 'load' commands from
202 'pkgIndex.tcl'. Revised the 'make test'
203 rule, and the test scripts, to
204 test successfully under the new regime.
205 Thanks to Andreas for providing the
206 original patch, and to Joe English
207 for providing ideas for simplifying
208 and repairing 'make test' under the
211 2010-05-12 Kevin B. Kenny <kennykb@acm.org>
214 Eliminated uses of INT64 and UINT64 in
215 favour of Tcl_WideInt and Tcl_WideUInt
216 respectively. (Avoids a conflict with
217 INT64 and UINT64 definitions in basetsd.h
220 2010-05-10 Kevin B. Kenny <kennykb@acm.org>
222 * aclocal.m4: Synchronized with the 'tdbc' package.
223 * configure.in: Advanced release to 1.0b15 and TEA version to 3.7.
224 Added code to detect VC++ and include the stub
225 library by path rather than with -L and -l.
227 Corrected syntax of INSTAPI specifiers.
228 * generic/odbcStubDefs.txt:
229 Added a CONVENTION: SQL_API line so that
230 genExtStubs.tcl can get the syntax right on the
231 pointer-to-function declarations.
232 * generic/odbcStubInit.txt:
233 Corrected syntax of INSTAPI specifiers. Regenerated.
234 * generic/odbcStubs.h:
236 * generic/tdbcodbc.c:
237 Silenced several VC++ warnings.
238 * README: Advanced release to 1.0b15.
239 * tclconfig/: Advanced to TEA 3.7
240 * configure: autoconf-2.59
242 2010-05-10 Andreas Kupries <andreask@activestate.com>
244 * Makefile.in: Removed attempt to generate a stub library. Drivers
245 do not export stub tables.
247 2010-04-30 Kevin B. Kenny <kennykb@acm.org>
249 * Makefile.in: Added missing files to 'make dist.' Added a 'genstubs'
250 rule to automate building of the Stubs table from the
251 ODBC library added at run time.
253 * generic/odbcStubDefs.txt:
254 * generic/odbcStubInit.c:
255 Fixed DOS line endings.
257 2010-04-25 Kevin B. Kenny <kennykb@acm.org>
260 * README: Advance version to 1.0b14
261 * configure: autoconf 2-59
263 2010-04-10 Kevin B. Kenny <kennykb@acm.org>
266 * Makefile.in: Added code to specify to 'make test' and 'make shell'
267 the value of TDBC_LIBRARY, needed for
268 [package require tdbc] to work. This library is
269 either the 'library' subdirectory of the TDBC source
270 directory (when running from an un-installed TDBC)
271 or else the TDBC library directory in the installed
273 * configure: autoconf 2.59
275 2010-04-08 Kevin B. Kenny <kennykb@acm.org>
277 * configure.in: Revised TDBC_ names to be tdbc_, because that's
278 what TEA_LOAD_CONFIG does. Added a check to find 'tdbc.h' in the
279 build directory if necessary.
281 * configure: autoconf 2.59.
283 2010-03-17 Kevin B. Kenny <kennykb@acm.org>
285 * generic/odbcStubInit.c: Revised TIP 357 API yet again, adding a
286 'flags' parameter to Tcl_LoadFile.
288 2010-03-15 Kevin B. Kenny <kennykb@acm.org>
290 * generic/odbcStubInit.c: Adjusted to revised TIP 357 API.
292 2010-03-14 Kevin B. Kenny <kennykb@acm.org>
294 * configure.in: Removed all dependency on the native ODBC headers
295 and import libraries. All ODBC references are now resolved at
296 run time and contained in a 'fakesql.h' file. Removed references to
298 * configure: autoconf-2.59
299 * generic/fakesql.h (new file): Added file containing declarations
300 of all ODBC API's used in this package, to avoid dependence on native
302 * generic/odbcStubsDefs.txt (new file): Declarations of functions
303 imported from odbc32.dll using Tcl_LoadLibrary.
304 * generic/odbcStubInit.c (new file): Code to load odbc32.dll and
305 odbccp32.dll and initialize Stubs tables with the routines in them
306 that are used in tdbc::odbc.
307 * generic/odbcStubs.h (new file): Generated .h file with the Stubs
308 structure defined in generic/odbcStubsDefs.txt.
309 * tdbcodbc.c: Updated to use run-time-loaded ODBC libraries instead
310 of associating to system headers at compile time and import libraries
311 at link time. Revised handling of the '-parent' option so that the
312 dependence on Tk is only at run time.
314 2009-09-29 Kevin B. Kenny <kennykb@acm.org>
316 * Makefile.in: Changed 'test' rule to test all available
318 * tests/tdbcodbc.test: Changed all TEST_* env vars to TDBCODBC_*
319 for easier top-level scripting. Clarified
320 and expanded database type selection.
321 * generic/tdbcodbc.c: Replaced SQLSetConnectAttr with the obsolete
322 SQLSetConnectOption, for better compatibility
323 with older ODBC drivers.
325 2009-09-20 Kevin B. Kenny <kennykb@acm.org>
328 * configure.in: Advance version number to 1.0b13
329 * configure: autoconf-2.59
331 2009-07-02 Kevin B. Kenny <kennykb@acm.org>
333 * Makefile.in: Added testing on SQL Server Express so that
334 * generic/tdbcodbc.c: more functionality and data types can be
335 * tests/tdbcodbc.test: exposed. Added code to force column names
336 in result sets to be unique.
338 * library/tdbcodbc.tcl: Conditioned use of the IS_NULLABLE hack
339 on the driver's not returning the NULLABLE
340 flag in [$db columns]. This conditional
341 fixes bug 3e523335bb, which fails when
342 IS_NULLABLE is padded to a fixed length with
345 * configure.in: Advanced version to 1.0b12
346 * configure: autoconf-2.59
348 2009-05-29 Kevin B. Kenny <kennykb@acm.org>
351 * configure.in: Advanced version to 1.0b11
352 * configure: autoconf-2.59
354 * generic/tdbcodbc.c (GetCell): Corrected a problem where
355 results longer than the preallocated buffer length had spurious
356 NULL characters inserted. Corrected a subsequent problem where
357 BLOBs had *missing* characters. (The ODBC documentation lies about
358 terminating NULL bytes.)
359 * tests/tdbcodbc.test (odbc-27.[12]): Corrected a problem where
360 BLOB and MEMO tests didn't actually test anything.
361 Thanks to Alan Grunwald for reporting these bugs
363 2009-04-19 Kevin B. Kenny <kennykb@acm.org>
365 * doc/tdbc_odbc.n: Added missing documentation for 'new' constructors.
367 2009-04-18 Kevin B. Kenny <kennykb@acm.org>
369 * doc/tdbc_odbc.n: Made changes so that NROFF formatting matches
371 * generic/tdbcodbc.c: Changed so that all variable access failures
372 are mapped to NULL rather than passing errors
374 * tests/tdbcodbc.test: Adjusted test cases for inappropriate access
377 2009-04-16 Kevin B. Kenny <kennykb@acm.org>
380 * configure.in: Advanced version to 1.0b10
381 * configure: autoconf-2.59
383 2009-03-03 Kevin B. Kenny <kennykb@acm.org>
385 * generic/tdbcodbc.c:
386 * library/tdbcodbc.tcl: Replaced 'my variable' with variables at
387 class level. Replaced 'init' methods with constructors implemented
388 in C. Replaced 'statementClass' and 'resultSetClass' variables
389 with forwarded 'statementCreate' and 'resultSetCreate' methods.
391 2009-02-16 Kevin B. Kenny <kennykb@acm.org>
394 * configure.in: Advanced version to 1.0b9
395 * configure: autoconf-2.59
397 * Makefile.in: Removed useless TCL_VERSION_REQ test in the
399 * generic/tdbcodbc.c (GetCell):
400 Fixed bad bug in retrieving LONGVARCHAR, LONGVARBINARY,
401 CLOB, BLOB, etc. (The SQL_NO_TOTAL return was not being
402 handled, resulting in infinite loops, memory corruption,
403 or NULLS in place of the actual data.)
404 * tests/tdbcodbc.test (tdbc::odbc-27.1):
405 Added a test case for the above bug.
406 Thanks to Patrick Dunnigan for the bug report.
408 2009-02-14 Kevin B. Kenny <kennykb@acm.org>
411 * README: Advance verwsion to 1.0b8
412 * configure: autoconf-2.59
414 * doc/tdbc_odbc.n: Formatting changes so that man2html works.
416 * tests/tdbcodbc.test (tdbc::odbc-26.1):
417 Removed superfluous difference between
418 SQLite and non-SQLite tests - all now
419 return the same SQLSTATE.
421 2009-02-01 Kevin B. Kenny <kennykb@acm.org>
423 * generic/tdbcodbc.c (StatementInitMethod): Corrected a bad check
424 that caused SQLDescribeParam to be bypassed entirely. Corrected
425 bad code that was exposed by this fix (SQLDescribeParam failure was
426 handled incorrectly). Corrected the error code for variables in
428 * tests/tdbcodbc.test: Corrected error codes for seven tests, to
429 match the [try]-friendly error code syntax.
431 2009-01-31 Kevin B. Kenny <kennykb@acm.org>
433 * README: Advanced version to 1.0b7
435 * configure: autoconf 2.59
436 * generic/tdbcodbc.c: Revised error codes to be more [try]-friendly.
437 * tests/tdbcodbc.test: Added test cases for revised error codes,
438 and for an uncovered branch in ODBC statement error handling.
441 2009-01-05 Kevin B. Kenny <kennykb@acm.org>
443 * README: Advanced version to 1.0b6
445 * configure: autoconf 2.59
447 2009-01-04 Kevin B. Kenny <kennykb@acm.org>
449 * README: Advanced version to 1.0b5
451 * configure: autoconf 2.59
453 2008-12-30 Kevin B. Kenny <kennykb@acm.org>
455 * makefile.in: Changes to make 'make dist' work.
456 * README: Advanced version to 1.0b4
458 * configure: autoconf 2.59
460 2008-12-18 Kevin B. Kenny <kennykb@acm.org>
462 * configure: Autoconf 2.59, to conform with Tcl (mandir changes
463 between 2.59 and 2.61). Signed manifest.
465 2008-12-08 Kevin B. Kenny <kennykb@acm.org>
467 * doc/tdbc_odbc.n: Added man page for the driver.
469 2008-12-07 Kevin B. Kenny <kennykb@acm.org>
472 * generic/tdbcodbc.c:
473 * library/tdbcodbc.tcl: Advanced version to 1.0b1 in preparation for
474 release, and cleaned up a little bit of dependency management.
475 * configure: Autoconf 2.61
477 2008-12-06 Kevin B. Kenny <kennykb@acm.org>
480 * generic/tdbcodbc.c: Added the autoconf stuff to support finding
481 the odbcinst libraries at configuration time.
482 * configure: Autoconf 2.61
484 2008-12-05 Kevin B. Kenny <kennykb@acm.org>
486 * generic/tdbcodbc.c (DatasourceObjCmd):
487 Added the tdbc::odbc::datasource command for adding, configuring
488 and removing data sources.
490 2008-12-04 Kevin B. Kenny <kennykb@acm.org>
492 * generic/tdbcodc.c (ResultSetInitMethod, GetCell):
493 * tests/tdbcodbc.test (tdbc::odbc-21.2): Added direct transfer of
494 BINARY, VARBINARY, LONGVARBINARY parameters and results.
496 2008-12-03 Kevin B. Kenny <kennykb@acm.org>
498 * generic/tdbodbc.c: Added "tdbc::odbc::datasources" and
499 * library/tdbcodbc.tcl: "tdbc::odbc::drivers" for inspection of
500 * tests/tdbcodbc.test: available databases.
502 2008-12-01 Kevin B. Kenny <kennykb@acm.org>
504 * generic/tdbcodbc.c: Added '-encoding' and -timeout' options.
505 Added direct transfer (rather than stringization) of parameters
506 of integer and floating point types.
507 * tests/tdbcodbc.test (tdbc::odbc-19.*): Added rudimentary
508 configuration tests, and rudimentary tests of direct value
511 2008-11-30 Kevin B. Kenny <kennykb@acm.org>
513 * configure.in: Changed PACKAGE_NAME to lowercase 'tdbcodbc'
514 Changed PACKAGE_VERSION to 0.2a1
516 Look in a few additional places for dependent packages.
517 * library/tdbcodbc.tcl: Lowercased the 'tdbc' package and advanced the
518 version number on which tdbcodbc depends.
519 Added code to detect whether the connection
521 * generic/tdbcodbc.c: Added '-isolation' and '-readonly' configuration
522 options. Added code to use Unicode if possible
523 for columns of unknown type and wide-character
524 columns. Changed the script-level package name
526 * tests/tdbcodbc.test: Changed the script-level package name to
527 tdbc::odbc. Renamed all tests accordingly.
528 * Makefile.in: Changed the script-level package name to tdbc::odbc
529 for building pkgIndex.tcl
530 * test.mdb: Reverted a commit that corrupted this file.
532 2008-11-22 Kevin B. Kenny <kennykb@acm.org>
534 * configure.in: Changed configurator so that 8.6 no longer requires a
536 * configure: Autoconf 2.61
538 2008-06-15 Kevin B. Kenny <kennykb@acm.org>
540 * generic/tdbcodbc.c:
541 * tests/tdbcodbc.test: Removed the default check for Tk. Instead,
542 added a '-parent window' option to the constructor of
543 tdbc::odbc::connection that gives a parent window for the
544 driver manager dialog.
545 Added a 'configure' method to the connection object, and
546 rudimentary tests. (No configuration options yet implemented)
548 2008-06-11 Kevin B. Kenny <kennykb@acm.org>
550 * generic/tdbcodbc.c: Split [$resultset nextrow] into two primitive
551 methods: [$resultset nextlist] and [$resultset nextdict]. Refactored
552 a little bit of the code that handles result sets.
554 2008-05-24 Kevin B Kenny <kennykb@acm.org>
556 * configure.in: Changed configuration to use TEA_PATH_CONFIG to
557 * aclocal.m4: locate tcloo and tdbc. Removed the local code that
558 did it from aclocal.m4.
559 * configure: Autoconf 2.61
561 2008-05-13 Kevin B. Kenny <kennykb@acm.org>
563 * Makefile (deleted): Removed a superfluous file from an
564 earlier stage of development.
565 * generic/tdbcodbc.c (TablesStmtInitMethod,ResultSetNextrowMethod):
566 Removed a cut-and-paste error in TablesStmtInitMethod that
567 caused a pointer smash, and added a cast to silence a gcc
568 warning. Changed the 'init2' method on the 'statement'
569 class back to 'init' now that TclOO seems to be getting
570 method resolution correct.
571 * library/tdbcodbc.tcl (tdbc::sqlite::statement constructor):
572 Changed the 'init2' method on 'statement' back to
573 'init' now that TclOO seems to be getting method resolution
575 * tests/tdbcodbc.test: Corrected misnumbering of tests, and added
576 code to remove the test database on startup to avoid running
577 with old data if a previous test run aborted.
579 2008-05-10 Kevin B. Kenny <kennykb@acm.org>
581 * tests/tdbcodbc.test (tdbcodbc-9.9): Corrected invalid test numbering.
583 2008-05-01 Kevin B. Kenny <kennykb@acm.org>
585 * tdbcodbc/Makefile.in:
587 * tdbcodbc/aclocal.m4:
588 * tdbcodbc/configure:
589 * tdbcodbc/configure.in:
590 * tdbcodbc/generic/tdbcodbc.c:
591 * tdbcodbc/library/tdbcodbc.tcl:
592 * tdbcodbc/tclconfig/ChangeLog:
593 * tdbcodbc/tclconfig/README.txt:
594 * tdbcodbc/tclconfig/install-sh:
595 * tdbcodbc/tclconfig/tcl.m4:
596 * tdbcodbc/tests/all.tcl:
597 * tdbcodbc/tests/tdbcodbc.test:
598 * tdbcodbc/tests/test.mdb:
599 Initial commit of a 'tdbcodbc' package that provides a reference
600 implementation of a TDBC driver layered atop ODBC.