# psqlODBC release notes

## psqlODBC 09.01.0100 Release

Changes:
1.) SQLStatistics() sets 'D' for the collation column when an reverse index is used.
2.) Fix the bug that PostgreSQL's function calls in queries cause a crash on SQL Server linked servers.
3.) Fix the bug that the first fetch operation doesn't work properly when the operation is SQL_FETCH_ABSOLUTE or SQL_FETCH_LAST.
4.) Revise the handling of decimal point.
5.) Adjust the operations after closing eof-detected cursors.
6.) Before dropping the statement, sync and discard the response from the server for the pending extended query.
7.) Clear col_info(columns info) cache ehen DROP/ALTER TABLE is called so that later SQLDescribeCol() etc work properly.
8.) Improve the handling of BYTEA type.
9.) Don't clear the columns cache info when they are referenced.
10.) Correct the column size of interval types.
- Notes: psqlODBC 09.00.0310
Changes:
1.) Let SC_forget_unnamed() clear the result in case the statement is not executed yet. It would fix the bug reported by Silvio Brandani.
2.) Fix the bug that strings are copied to a null pointer.
3.) Don't clear the parsed plan in SC_recycle_statement().
4.) Now SQLDescribeCol() can detect the changes of column type or size.
5.) Handle *with or without oids* correctly.
6.) Take the environment variable into account.
7.) Use SOCK_get_next_n_bytes() instead of SOCK_get_next_byte().
8.) Add some driver specific options for SQLSetConnectAttr().
9.) Fix compilation errors in case ODBC 2.5.
10.) Fix compilation error on different ODBCVER.
11.) Correct the behavior of SQLSetConnectAttr() for the driver specific options.
- Notes: psqlODBC 09.00.0300
Changes:
1.) Don't propgate the connection level statment options to the internal statements. This fixes an infinite loop reported by Nelson Andre.
2.) Improved a mylog output.
3.) Fix the bug introduced by the previous change reprted by Adrien de Croy.
4.) Divide SC_returns_rows() macro into several categories and make SQLResultNumCols(), SQLDescribeCol() or SQLColAttribute() available
for insert/update/delete .. returning statements.
5.) Initialize flags member in QResultClass before calling QR_set_rowstart_in_cache() per report from Arno Moore.
6.) Applied a patch by Taizo Ito and correct the length of BIT type in Postgres.
7.) Change to read and skip the rest of result data when out of memory occurs while reading tuples so that we can continue to use the connection.
8.) Fix the bug that Access autonumber fields are not detected in 9.0.0200 reported by Arnaud Lesauvage.
9.) Convert large integer strings properly.
10.) Fix the trouble introduced by the change *Return 0 for the column size when the size of numeric items are unknown* per report from Marco Gaiarin.
11.) Remove a meaningless if clause. This had a problem with ltdl function.
- Notes: psqlODBC 09.00.0200
Changes:
1.) Fix a bug about sizeof() at idx_fake_oid of info.
2.) Return 0 for the column size when the size of numeric items are unknown.
Also improve the calculation of scale of numeric items when it is not explicitly specified.
3.) Change to use 'if' instead of an inappropriate 'else if' at cursor of convert.
4.) Remember to set permanent flag to holdable cursors on commit with no precedent rollback (to savepoint) operations.
This fixes a crash bug in case of cursor operations across transaction.
5.) Fix a bug about the handling of the SQL_RETRIEVE_DATA option.
Per report by Andreas.
6.) Fix cursor bug introduced by the previous change.
Per report by Andreas.
7.) Move the setting of folder name of libpq or gssapi related dlls from .wxs file to .bat file.
8.) Fix a bug which returns incorrect values for SQL_DATETIME_SUB.
- Notes: psqlODBC 09.00.0101
Changes:
1.) Fix build source of Windows 64bit environment.
- Notes: psqlODBC 09.00.0100
Changes:
1.) Allow password which contains special characters like {,},=,;.
2.) Add a new data source option which makes it possible to use Kerberos for Windows library to reply to GSSAPI authentication request.
3.) Native support for SSPI Kerberos or Negaotiate service. It may be useful for the 64-bit drivers.
4.) Fix an oversight of Memory overflow handling.
5.) Removed "#define SQL_WCHART_CONVERT" which causes a trouble on some platforms.
6.) Removed the use of misused strcat_s together with snprintf_s (bug report from Jap-Peter Seifert) and use strlcat instead of strncat.
7.) Fix a bug about pre-execute behavior in case of protocol v2 or earlier.
8.) Use poll() instead of select() when it's available.
9.) Take comments or line comments in a query into account.
10.) Fix a crash bug on authentication failures.
11.) Take --without-iodbc(unixODBC) configure option into account.
12.) Apply the patch by Peter Crabtree which fixes a crash bug.
13.) Improve the handling of bools_as_char case.
14.) Fix a bug when creating a connection string.
15.) Use pg_get_expr(adbin, ..) instead of unreliable adsrc in pg_attrdef so as to know the sequence name associated with serial items.
16.) Added 64-bit version of installer files.
17.) Introduce pgtype_attr_xxxx functions which take a typmod parameter as well as a type oid parameter as an extension of pgtype_xxxx functions so that SQLColumns and SQLDescribeCol(SQLColAttrinute) could use common functions.
18.) Call PQconnectdbParams instead of PQconnectdb when it's available.
19.) Make cursor open check at transaction end a little more effective.
20.) Added code for SQL_INTERVAL support and refcursor support though they are disabled.
21.) Correct the handling of dynamic cursors so that they are substituted by keyset-driven ones.
22.) Remove a compilation error and some compiler warnings under unixdODBC 2.3 environment.
23.) Make sure the support of the backward-compatibility version of getaddrinfo() family even when _WIN32_WINNT is supplied.
24.) Update win64.mak so that gssapi support is available without libpq.
- Notes: psqlODBC 08.04.0200
Changes:
1.) Fix a column uodatability problem reported by Tom Goodman.
2.) Display SSL mode list properly on setup dialog.
3.) Don't truncate the result of msgtowstr()/wstrtomsg().
4.) Implement ConfigDriver() function.
5.) check of the SQLLEN definition by the unixODBC version by SQLColAttribute.
6.) Take WITH cte staments into account.
7.) Fix a bug about UTF8 handling.
8.) Wait a ReadyForQuery Message after errors correctly.
9.) Fix a problem with {call procedure reported by Wolfgang Pasche.
10.) Cleanups about the handing of unnamed parsed statements and the handling of ODBC escape { .
11.)Link ws2_32.lib in case the compilation environment #defines _WIN32_WINNT and the value >= 0x0501.
12) Added --with(out)-libpq[=DIR} option to configure.
13) Revise autoconf/automake so that libpq/ssl header/libs are resolved at configure phase.
14) Use md5.c directly instead of win_md5.c.
15) Suppress some compiler warnings.
16) Fix memory leaks on connection failure (Shouji morimoto).
17) Suppress some compilation errors and warnings.
18) Fix SSL connection timeout.
- Notes: psqlODBC 08.04.0100
Changes:
1.) Avoid a crash on exit when using SSL connections by resetting CRTPTO_xx_callbacks before unloding libpq.
2.) Correct the funtion name DiscardRollbackState pointed out by Zoltan Boszormenyi.
3.) Correct the value of INDEX_QUALIFIER column which returned by SLQSTATISTICS();
4.) Take domain types into account in SQLColumns() (Thanks to Luiz K. Matsumura).
5.) Take RESTRICT actions into account in SQLForeignKeys() (report from Farid Zidan).
6.) Fix a bug that small negative decimal values are mistaken for non-negative (bug report from Dominic Smith).
7.) Use MSG_NOSIGNAL/MSG_NOSIGPIPE option on send()/recv() to avoid crash on SIGPIPE (bug report from Brian Feldman).
8.) Remove a spurious "." with no trailing digits in timestamp representation (bug report from Brian Feldman).
9.) Rename trim() funtion in order to avoid conflict of function name(report from Dominic Smith).
10.) Put back the change to add *read only* clause for read only cursors.
11.) Improve pgtype_transfer_octet_length().
12.) Fix a bug reported by Milen Manev that SQLExec *select for a table* -> SQLDescribeCol() -> add a column to the table -> SQLExec *select for the table* -> SQLDescribeCol() for the added column causes a bad result.
13.) Use strncpy_null() instead of strncpy().
14.) Close (holdable) cursors on commit if possible.
15.) Recycle columns cache info if the size becomes pretty large.
16.) Add a 'verify-ca' and 'verify-full' to the sslmode option via libpq of version 8.4.
17.) Add a functionality to change the directory for logging.
18.) Correct the error code for communication errors.
19.) Correct the conversion between UTF-16 and UTF-8 for non UCS2 characters.
20.) Try to convert (especially connection error) messages using local conversions when they are not valid unicode characters.
21.) Add a textbox to setup dialog to change the directory for logging.
22.) Allow multiple Connsettings statements in connection string by enclosing them by braces({}).
23.) Improve the transactional control under useDeclareFetch mode.
24.) Take the platforms where char is unsigned into account per report from Alex Goncharov.
25.) Improve the handling of UUID type especially to support IMPORT or LINK in MS Access.
- Notes: psqlODBC 08.03.0400
Changes:
1.) GUID forgot to set the value to the buffer.
2.) -Wall was taken as gcc limitation.
- Notes: psqlODBC 08.03.0300
Changes:
1.) SQLGUID type support thanks to Jan-Willem Goossens.
2.) Fix a bug about silently adding a *for read only* clause.
3.) Fix a 64bit mode bug about handling of arrays of parameters.
4.) Change the implemetatin of SQLForeignKeys() for 8.3+ servers.
5.) Not commit the transaction too early in useDeclareFetch mode.
6.) Add a cursor open check for SQLPrepare().
7.) Reset the column binding information after SQLMoreResults().
8.) Save the rowset size properly for the FETCH_NEXT operation in case of >= 3.0 drivers.
9.) Support FE/BE communications on Big Endian platform.
10.) Check strerror_r function's return type.
11.) Suppress some compiler warnings.
- Notes: psqlODBC 08.03.0200
Changes:
1.) Fix a bug in socket which uses a socket variable.
2.) Support column alias without "as" so that links from the SQLServer work.
3.) Take ';' into account when the driver adds "for read only" clause.
4.) Use the E'.. ' notation not only in '=' expressions but also in LIKE expressions.
5.) Change to return milliseconds parts for timestamp fields.
6.) Change to return a specific sqlstate in case of multiple parameters.
7.) Fix bug of the selection not using SSL.
- Notes: psqlODBC 08.03.0100
Changes:
1.) Correct the flow of trial of multi protocols and fix related bugs about handling of connection errors.
2.) Use SSPI service for SSL support when libpq is unavailable.
3.) Fix a bug in copy_and_convert_field() when fetching bookmark columns. This bug could occur in case no suitable? lo type is found.
4.) Improve the parse statement operation so that it detect srf in (from clause).
5.) Correct the COLUMN_LENGTH return value of SQLColumns() for varchar/bpchar type columns (Unicode driver).
6.) Change to not return database name if case of MS Query.
7.) The first cut to use Windows SSPI. The trial to use Schannel service for SSL support.
8.) Be more careful about in UseDeclareFetch mode. "for read only" clause for read only queries for 8.3 or later servers for safety.
- Notes: psqlODBC 08.02.0500
Changes:
1.) Correct the format of Bind message under 64bit environment.
2.) Fixed build of without OpenSSL.
- Notes: psqlODBC 08.02.0403
Changes:
1.) Support SQLColAttribute for MS specific SQL_CA_SS_COLUMN_KEY. Some MS applications use this.
2.) Improve the check of updatability of queries by checking if they have multiple tables.
3.) Reduce the round trip overhead in FE/BE communications(especially in useDeclareFetch mode).
4.) Fix a bug in ResolveOneParam() pointed out by Rainer Bauer.
5.) Add a flag which lets SQLTables() show only accessible tables.
6.) The unicode driver now can handle utf-16 surrogate pairs.
- Notes: psqlODBC 08.02.0402
Changes:
1.) Fix some bugs in case without MSDTC support.
2.) Refine the realloc handling.
3.) Put back the @@IDENTITY implementation so as not to use lastval().
4.) Change SQLColumns() to return correct column length in the Unicode driver.
5.) Remove the connection count limitation.
6.) Fix Protocol=7.4--1 notation (should be Protocol=7.4).
7.) Fix a typo in socket.c (bug report from Rainer bauer).
8.) Add CC_set_autocommit to psqlodbc(a).def files.
9.) Handle Standard_conforming_strings.
10.) Handle standard_conforming_strings also in case via libpq.
11.) Fix a bug which doesn't free connection list properly.
12.) Fix DelayLoadDLL was made explicit of psqlodbc.proj file.
- Notes: psqlODBC 08.02.0401
Changes:
1.) Fix a bug which checking join is confused by CR+LF.
2.) Handle AUTOCOMMIT mode more carefully in a distributed transaction so as not to issue COMMIT unexpectedly.
3.) Allow the UNIX domain configuration (the same as libpq).
4.) Fixed the automake/autoconf scripts.(by Peter Eisentraut)
- Notes: psqlODBC 08.02.0400
Changes:
1.) Fixed control binding of SetField problem.
2.) Fixed pgenlist.h losts to the release package.
- Notes: psqlODBC 08.02.0300
Changes:
1.) Allow non-admin or Vista users to create log fils in the home directory.
2.) Fix an index over bug which causes a crash or an unexpected result.
- Notes: psqlODBC 08.02.0205
Changes:
1.) Append DETAIL messages to GetDiag...() messages.
2.) Use SQL_SUCCEEDED macros so as to simplify the code.
3.) Use lastval() function to replace IDENTITY on 8.1 or later servers.
4.) Remove WSAStartup() and WSACleanup() from DllMain.
5.) Load libpq from the driver's folder.
6.) Use QR_get_value_backend_int/_text() funcs instead of QR_get_value_backend_row().
7.) Improve the implemetation of SQLSetPos(.., SQL_ADD/SQL_UPDATE) using the 8.2 new feature INSERT/UPDATE .. returning.
8.) Seaparate DTC code as a Delayload DLL.
- Notes: psqlODBC 08.02.0204
Changes:
1.) Configure the combination of time.h and sys/time.h.
2.) Treat the tables in information_schema as system tables.
3.) Correct the precision of SQL_NUMERIC_STRUCT.
4.) Change the default max varchar size from 254 to 255.
5.) Reset the fields information properly in case of SQLMoreResults.
6.) Implement SQLDescribeParam() also in case of multi-command queries.
7.) Handle dollar-quotes more properly.
8.) Provide a make option to link dynamic multithread library.
9.) Set the default nullablity to TRUE.
10.) Parse command delimiters(;) more correctly.
11.) Use QR_get_value_backend_text() or QR_get_value_backend_int()
12.) instead of QR_get_value_backend_row().
13.) Apply Parse statement or disallow premature properly.
14.) Reset current_schema cache in case 'set search_path ..' command is issued.
- Notes: psqlODBC 08.02.0203
Changes:
1) Fix a bug which forgets unnamed plans too early especially when handling large objects.
2) Don't treat charcters whose value >= 128 as alphanumeric in case of conversion of binary data to bytea.
3) Change ConfigDSN() so that it takes the options in Setup Dialog page 1 into account.
4) Simplify the memory management of statements'columns info so as to prevent memory leaks or a crash in parse_statement etc.
5) SQLTables("", SQL_ALL_SCHEMAS. "", ..) now returns a list of valid schemas.
6) SQLTables("", "", "", SQL_ALL_TABLE_TYPES) now returns a list of valid table types.
7) SQLGetInfo SQL_DATABASE_NAME now returns the database name.
8) Improve the automatic setting mechanism of the client_encoding for Windows code page 125x (ANSI drivers only).
- Notes: psqlODBC 08.02.0202
Changes:
1) Change to use NULL indicator instead of the length buffer in SQLFetch.
2) Fix long -> serial conversion error in MS Access.
- Notes: psqlODBC 08.02.0201
Changes:
1) Ditinguish the indicaitor and the octet_length field of APD clcearly.
2) Handle @@IDENTITY more generally.
3) Take outer join into account so as to evaluate nullability.
4) Fix a bug about Keyset-driven cursors.
- Notes: psqlODBC 08.02.0200
Changes:
1) Fix some bugs or warnings on 64 bit OS.
2) Avoid backend crash caused by Execute Requests for committed holdable cursors.
- Notes: psqlODBC 08.02.0105
Changes:
1) SQLStatistics now returns indices based on expression also.
2) Add a TEST button on the setup dialog.
- Notes: psqlODBC 08.02.0104
Changes:
1) Take 64bit mode into account for the format parameter of (s(n))printf, sscanf etc.
2) getpid() instead of _getpid()
3) SQLGetInfo(SQL_NULL_COLLATION) now returns SQL_NC_HIGH instead of SQL_NC_END
4) Remove the function SQLParamOptions from ODBC3.0.
- Notes: psqlODBC 08.02.0103
Changes:
1) Improve the handling of connection error messages.
2) Add an option to convert empty strings to NULL.
3) Handle domain type as the basetype.
4) Fake MSS in case of not only SQLExecute but also SQLParamData.
5) Prevent SQLColumns from displaying system columns.
6) Unload delayLoaded libraries on dll detach (not on disconnect time).
7) Fix a SQLGetDiagField crash bug.
8) Fix a insertion count bug.
9) Take win98 cases into account a little.
- Notes: psqlODBC 08.02.0102
Changes:
1) Compensate a loss of report of being Jet when using MS Access.
2) Add NULL <-> "" date converion function for FOXPRO and
revise parse/describe/execute mechanism.
3) Miscellaneous type changes for 64 bit drivers.
- Notes: psqlODBC 08.02.0101
Changes:
1) Delayload import XOLEHLP.dll so that the driver can be loaded
without the existence of the dll.
2) Fix a simple password authentication bug.
3) Fix a buffer overrun bug which prevented the connection phase
from retrying another version appropriately.
4) Handle multi-addresses of a specified host properly.
5) Refine the socket handling(connect, recv, send).
6) Display more appropriate error messages in the connection phase.
- Notes: psqlODBC 08.02.0100
Changes:
1) Return to Unicode/ANSI driver distribution as some users still find one works better than the other for them.
2) Improve connection error message in case of invalid protocol characters.
3) Initial value has set MSDTC=no of VC6 (Support of MSDTC is only VC7 and VC8)
4) Addition which is a driver name in a resource (Unicode or ANSI)
- Notes: psqlODBC 08.02.0007
Changes:
1) Fix some SQLPrimaryKey, SQLForeignKey bugs.
Fill PK_NAME or FK_NAME columns.
Return right update_rule values.
Remove duplicates.
2) Handle SQL_ALL_SCHEMAS parameter in SQLTables.
3) Handle unaligned indicator/length buffers more properly.
4) Fix a bug in ProcedureColumns in case of set returning functions.
5) Fix a buffer overrun in handle_notice_message (Bart Samuel)
6) Fix a output parameters problem (Bart Samuel)
7) Hold the connection lock while a rollbackable statement running.
8) Add Extra Opts option to the DSN option setupdialog.
- Notes: psqlODBC 08.02.0006
Changes:
1) Add an option to fake Microsoft SQL Server which would improve SERIAL type handling.
2) Add support for LOGIN_TIMEOUT.
3) Improve Statement error handling about the reference of Connection error.
4) Improve the handling BIGINT type in the OSs without having strtoll().
5) Support ODBC CONVERT scalar functions in some cases.
6) Close qlog, mylog files on detach dll.
7) Improve comunication performance in case of the driver's original socket.
8) Fix send a close
9) Support of IPV6.
8.2.0003-8.2.0005 was skipped by the situation.
- Notes: psqlODBC 08.02.0002
Changes:
1) SQL injections via ODBC catalog function calls.
2) Fix SQLNumParams problem related to literal or dollar quote.
3) Call libpq in case of Kerberos authentication.
4) Add E' before literal for after 8.1 severs.
5) Return the correct error message in case of no password.
6) Take E'...' literal expression into account.
7) Fix an SQL_C_WCHAR -> numeric type conversion problem.
8) Refine the handling of io or output parameters.
9) Refine the dollar quote handling.
10) Fix the client_encoding mismatch problem.
11) Fix for SQLStatistics returns UNKNOWN instead of real column names.
- Notes: psqlODBC 08.02.0001
Changes:
1) updated CVS tip to the REL-07_03_ENHANCED branch
2) updated the installer for the single driver distribution
3) standardised various filenames that were previously based on build types
4) standardised the build on ODBC version 3.51

## Note

Releases from this point onwards are based on the REL-07_03_ENHANCED code branch of psqlODBC - please see http://archives.postgresql.org/pgsql-odbc/2006-02/msg00131.php for further details.

The following changes are based on the 07.03 codebase

    [7.3.0261]

    1.Handle the converion from text-like field to SQL_C_BINARY more properly.
    2.Make buffer extension in SQLPutData more effective.
    3.Reply SQL_CONVERT_xxxx correctly for SQLGetInfo request.
    4.Reply DBMS_NAME, DBMS_VERSION correctly for SQLGetInfo request.
    5.Not call show max_identifier_length in PG 7.4.
    6.Change adjustLikePattern() to take literal quote(') into account.
    7.Fix a bug in memory debug routine.
    8.Change the multibyte encoding list to match that of the current
      offical driver.
    9.Change SC_clear_error() to call CC_clear_error() also.
    10.Change the length values returned when they are unknown for
       SQLDescribeCol or SQLColAttribute requests.

    [7.3.0261]

    1.Fix the handling of *too small buffer* in the Unicode version.
    2.Fix the behavior of DiscardStatementSvp which resets the status too early.
    3.Fix the bug in PGAPI_ParamData which fails to count the number
      of parameters.
    4.Allow blanks in password.
    5.Add an option to force abbreviation of connection string.
    6.Fix the handling of "PROTOCOL=x.x-x" in the connction string.
    7.Fix the loadlib module of *nix.

    [7.3.0260]

    1. Change delay load import library mechanism(libpq,openssl)
    2. Compile Optimization correspondence.
    3. SQLForeignKeys ResultSet accuracy correspondence.

    [7.3.0258]

    1. bug fix: SQLBulkOperations rollback option.
       There was a case where a rollback was not published in SQLBulkOperations
       as option specification at the time of error generating.

    [7.3.0257]

    1. Fault correction of the division SQLGetData to SQL_C_WCHAR.

    [7.3.0256]

    1. SQLSetPos does not position to current-row to renewal of unblock cursor.
       (Data is unacquirable by SQLGetData etc.)

    [7.3.0255]

    1. bug fix: leak of a return value clearance
    2. Correspondence Windows English Dialog.
    3. Changes into the libpq link method.

    [7.3.0254]

    1. Setting menu of SSLMODE is added.
    2. Correspondence to domain type lo (an approvement is still required).
    3. bug fix: LIBPQ version cancellation request transmitting correspondence.
    4. Correction of the exclusive control between threads of SQLCancel

    [7.3.0253]

    1. Compilation of escape usage.
       (preliminaries corresponding to a literal-escape abolition schedule)
    2. Correspondence of libpq and openssl.
    3. SQLProcedureColumns()RESULT_COLS row is outputted.
    4. bug fix: server-side prepare the number check of parameters.
    5. bug fix: parameter bind without a parameter marker is disregarded.
    6. bug fix: Retrying without carrying out a select operation to EWOULDBLOCK of socket/SSL-read.
    7. Abolition of abolition in manual_result mode, TupleList, and TupleNode employment

    [7.3.0252]

    1. Bug fix: Multi-byte employment by a table name etc.
    2. The text (varchar/char) type key assignation was enabled by MS-Access.

    [7.3.0251]

    1. Suppression of SQLColumnPrivilege support
       It rejects using information_schema.column_privileges.
    2. Binary mode is used for a bytea type parameter value setup.
       (Performs by the sequence of SQLPrepare->SQLExecute by server_side_prepare employment)
    3. Coexistence of LO type and bytea type.
       When the parameter of LongVarBinary exists not by SQLPrepare->SQLExecute but by
       SQLExecDirect at the time of direct dispatching, the Parse/Describe function of
       a protocol 3 is used, the model in saver of LongVarBinary is acquired beforehand,
       and a bytea type and LO type are recognized.

    [Feature of Driver7.3.025x]

    1. Correspondence protocol 3
       Options, such as client encoding, are set up by the start-up packet.
       This makes the most of the mechanism of Parse/Bind/Execute.
       .The outfit of SQLDescribeParam
       .PREPARE/EXECUTE is changed from the command base to the protocol base.
       .FETCH command is changed to an Execute request as it has come out.
       .Moreover, bytea and lo type coexistence is possible.
       .Others...

    2. Enhancement in declare/fetch mode (7.4 or later)
       Even if a certain renewal occurs on the way by holdable cursor exploitation,
       a commitment is possible in comfort.
       Moreover, the static update cursor was supported.
       (Only for SQLSetPos correspondence, SQLBulkOperation are un-supporting)
       Bug fix of the cursor which can be updated.

    3. Rollback support of a syntactical unit at the time of an error.(8.0 or later)
       Can choose from three Transaction module,Statement module,Nothing.
       These can be specified by data source setup.

    4. Output parameter support (8.1 or later)
       Corresponded to the output parameter of the function introduced by 8.1.
       (Only the return value of a function was supported before.)

## psqlODBC 08.01.0200 Release

psqlODBC 08.01.0200 contains only documentation changes over the 08.01.0108 development build.

- Notes: psqlODBC 08.01.0108
1) fix most warnings during build in x86_64 environment
2) fixed point of failure on x86_64 boxes
3) fixed autocommit = off behaviour with starting transactions when needed
4) quick hack againist access violation with Disallow premature - this rarely used feature is still broken, but should no longer crash
5) report correct SQLSTATE in SQLGetDiagField and SQLGetDiagRec
- Notes: psqlODBC 08.01.0107
1) fix next problem with calling implicit rollback in bad time
2) detecting transaction commands into if branch which mean backend successfuly done the command. add support for "start transaction"
3) fix bug when mylog output can't be created
4) fix problem with SQLSetPos
5) fix problem with column length in CC_mapping
6) fix - typelen could be less then zero not only -1
- Notes: psqlODBC 08.01.0106
1) fix problem with getting long text in unicode driver
2) fix sqlstate iin case of error in statement
3) doesn't call rollback in autocommit off or in manual transaction
4) remove obsolete parameter protocol
- Notes: psqlODBC 08.01.0105
Changes:
1) fix problem with rollback aborted queries
2) SQLColumns or SQLColAttribute may return bad answer when Show system tables is turned off
3) adds support for ; delimited options in ConfigDSN
4) fixes problem with binding parameters and SQLCancel without SQLFreeStmt
- Notes: psqlODBC 08.01.0104
Changes:
1) add commit after set basic options in SQLDriverConnect when autocommit is turned off
2) driver doesn't fail when there isn't bind enough parameters
3) collattributes doesn't work since switch to libpq.
There is still problem with select '' as xx from table
4) SQLTables after SQLExecDirect has problem with GetData for all rows
5) grow MAXKEYLEN for SQLConfigDataSource
6) repair behaviour of more queries in one statement
- Notes: psqlODBC 08.01.0103
Changes:
1) RowCount problem in SELECT
2) Server side prepare - but only first run in allocated statement
(http://pgfoundry.org/tracker/index.php?func=detail&aid=1000460&group_id=1000125&atid=538)
3) Table names repeated in BDE with usedeclarefetch=1
4) Binding parameters are now freed in SQLCancel
5) Skip fetching data for commands
- Notes: psqlODBC 08.01.0102
Changes:
1) Server side prepare now works correctly.
2) A bug in SQLTables that shows up in Borland SQL Explorer in
3) Declare/Fetch mode has been fixed.
4) A number of inconsistent internal APIs have been cleaned up. These
issues only showed up on some OS's.
5) Correct value returned by SQLGetInfo for
SQL_CATALOG_LOCATION/SQL_QUALIFIER_LOCATION. This prevented use of the
driver in Visual Studio 2005.
The last four numbers will represent the build. If the last 2 digits are
both zero, a stable version is indicated. If the last two digits are
non-zero, it is a development snapshot.
So, starting with the next stable release, we will have:
08.01.0200 - Stable
08.01.0201 - Development
...
...
08.01.0299 - Development
08.01.0300 - Stable
Of course, we won't necessarily have 99 snaphosts between stable releases!
- Notes: psqlODBC 08.01.0101
Changes:
This release fixes a serious problem in non-declare/fetch mode where
recordsets over the configured declare/fetch cache size were returned
incorrectly. It is advised that all users of v08.01.0100 upgrade as soon
as possible.

## psqlODBC 08.01.0100 Release

This release represents a major change to the driver over previous versions;
in particular, the network code has been replaced with the PostgreSQL libpq
library. This allows us to more easily take advantage of updates and new
features that might be introduced to the PostgreSQL wire protocol, and also
allowed us to upgrade straight away to the version 3 protocol which was
previously unsupported. We were also able to add SSL support, as well as
Kerberos authentication support.
>From this release, two versions of the driver are provided for Windows,
'PostgreSQL ANSI' which supports single and multibyte applications through
the ANSI ODBC API, and 'PostgreSQL Unicode' which provides Unicode support
through the Unicode ODBC API. On Unix systems, the driver type may be
selected via a configure option.
psqlODBC may be downloaded from http://www.postgresql.org/ftp/odbc/versions/
in source, Windows Installer, merge module, and basic zip file formats.
Please post any bug reports to the pgsql-odbc@postgresql.org mailing list.
I'd like to take this opportunity to thank all those involved with the
development, testing and bug fixing of the updated driver.
PostgreSQL Core Team
- Notes: psqlODBC 08.00.0102
This is a bug fix release
of the pre-libpq version of the driver, specifically to fix a bug
affecting Unix users
(http://gborg.postgresql.org/project/psqlodbc/bugs/bugupdate.php?1176)

## psqlODBC 08.00.0100 Release

The driver is available in source form, as well as a dll, merge module
and msi installer for Windows.
Regards, Dave.
- Notes: psqlODBC 08.00.0005
This version
contains a some recent fixes, and is packaged in a new installer built
entirely using open source tools (specifically, the Wix toolkit).
- Notes: psqlODBC 08.00.0002
This version of the driver is a minor update
with a fix to the string sizing code in SQLGetInfo, and removal of the
need for tables to be in the search path or public schema for them to be
returned by SQLTables.
- Notes: psqlODBC 08.00.0001
The purpose of this version is to try to get something stable, with
proper schema/without OID support ready for the 8.0 release
(particularly the win32 release). To that end, this release is mainly a
quick cleanup of the following:
- GUI cleanup. Dialogues should behave better now and not have unlabeled
buttons or move around the screen in strange ways.
- Updateable Cursor support. This is largely experimental and is (I
believe) the cause of a least a couple of stability issues in the recent
snapshots. In this release it is marked 'experimental' on the setup
dialogue (only in English, if anyone can do the Japanese version, please
send a patch) and turned off by default.
I'd appreciate it if ppl could test it a little with Updateable Cursors
*turned off* and report any bugs.

## psqlODBC 07.05.0001

This is version 07.05.0001. For those that don't know or don't recall
how the versioning works, the major and minor number track the latest
release of PostgreSQL that the driver is expected to work with. The
revision number is a bit more complex. The first two digits are the
version number, where even numbers are development versions, and odd are
release. The last two digits are the build number.
In other words, this driver is build 01 of development version 00, and
is expected to work with PostgreSQL 7.5dev. :-) The leading zeros are an
ODBC thing...

## psqlODBC 07.03.0100 Release

I'm pleased to announce the long awaited new version of psqlODBC. This
release represents a major change in the packaging and distribution of
psqlODBC. In particular the following points should be noted:
1) The build number will now be used to indicate both the release number
(first 2 digits), and snapshot build number (last 2 digits). this
release is 0100, or release 1, snapshot 0. The first development
snapshot will become 0101, the second 0102 and so on. The next official
release should be 07.03.0200.
2) With this release, the ODBC 3 driver is now the default. The
filenames, driver names and their capabilities are as follows:
psqlodbc.dll PostgreSQL ODBC3.0 Level
driver
psqlodbc25.dll PostgreSQL Legacy ODBC2.5 Level
driver
psqlodbc30w.dll PostgreSQL Unicode (Beta) Beta quality ODBC3.0
level driver with Unicode support
3) The 3 drivers are no longer self contained. psqlodbc.dll is used as
the setup dll for all three drivers, hence no matter how you
redistribute or install the drivers, you should always include this
file.
In addition, this driver fixes an annoying problem with recent builds of
PostgreSQL on Redhat systems that have a particularly long compiler
version string that caused a buffer overflow resulting in a GPF on
Windows upon connection to the database.
The driver is released under the LGPL, and can be downloaded from the
Downloads page on the website at
http://gborg.postgresql.org/project/psqlodbc/projdisplay.php

## === gborg.postgresql.org(This is the past history.) ===

1.33 by hinoue Annotate
Thu Feb 5 09:11:44 2004 (2 weeks, 3 days ago)
Changed since 1.32: +3 -3 [Select for Diff]
Diffs to version 1.32 (long / unified)
Diffs ignoring whitespace to version 1.32 (long / unified)
[7.3.0208]
1) Change catalog functions to search 'public' schema if a user
tries to search the user named schema and finds no record to
return.
2) Set the statement status to STMT_FINISHED(not STMT_PREPARED)
if the pre execution causes an error.
3) Adjust null terminator for SQL_C_WCHAR type.
4) Change getCharColumnSize to return max size when the
statement has no result.
5) Cache the number of parameters for statements.
1.32 by hinoue Annotate
Tue Jan 6 09:58:22 2004 (46 hours, 12 minutes ago)
Changed since 1.31: +3 -3 [Select for Diff]
Diffs to version 1.31 (long / unified)
Diffs ignoring whitespace to version 1.31 (long / unified)
1) Correct the handling of SQL_C_ULONG (for *nix).
2) Prevent plan deallocation errors when the transaction
is in abort status.
3) Avoid a connection failure when notice message arrives.
4) Improve the handling of mutex(critical section).
5) Correct the cursor open check.
6) Change the Unicode driver to set the NULL terminator
of SQL_C_WCHAR type data properly.
7) Add some m(re)alloc error check.
8) Add proper cleanup steps for some functions.
9) Return proper min & max scale for timestamp data type.
10) Return proper scale for timestamp data fields.
11) Fix the bug that .009 numeric generates .9 output. (George A.J)
1.31 by hinoue Annotate
Tue Dec 9 05:01:38 2003 (44 hours, 22 minutes ago)
Changed since 1.30: +3 -3 [Select for Diff]
Diffs to version 1.30 (long / unified)
Diffs ignoring whitespace to version 1.30 (long / unified)
[7.3.0205]
(for *nix)
1. Detect -lsocket for some platforms.
2. Handle unix domain sockets.
3. EINTR safety for send/recv.
4. Set TCP_NDEALY option for inet connections.
<1-4: thanks to Hartmut Raschick>
5. Use recursive mutex if possible.
6. Add descriptor.c to Makefile.
(for Windows)
7. Automatic setting of client encoding for latin1(9).
(common)
8. Avoid those notorious core dumps when logging on hitting
"null" data...
<8: thanls to Hartmut Raschick>
9. Removed a static varible for thread-safety.
10. Improve the performance of keyset-driven fetch operation.
11. Map (var)char type to SQL type more properly.
12. Change create_params for NUMERIC type to (precison, scale).
13. Add type cast to remove some compiler warnings.
1.30 by hinoue
Wed Nov 12 05:15:21 2003 (8 days, 1 hour ago)
Changed since 1.29: +3 -3 [Select for Diff]
Diffs to version 1.29 (long / unified)
Diffs ignoring whitespace to version 1.29 (long / unified)
[7.03.0204]
1) Clear statements' cursors on commit/rollback.
2) Change SQLColumns, SQLTablePrivileges to take show_system_tables
option into account.
3) When an ODBC 2.x application working with an ODBC 3.x driver
1.calls SQLExecDirect, SQLExecute, or SQLParamData, and a searched
2.update or delete statement was executed but did not affect any
3.rows at the data source, the ODBC 3.x driver should return
4.SQL_SUCCESS. When an ODBC 3.x application working with an ODBC
5.3.x driver calls SQLExecDirect, SQLExecute, or SQLParamData
6.with the same result, the ODBC 3.x driver should return SQL_NO_DATA.
1.29 by hinoue
Mon Nov 10 02:10:07 2003 (10 hours, 1 minute ago)
Changed since 1.28: +3 -3 [Select for Diff]
Diffs to version 1.28 (long / unified)
Diffs ignoring whitespace to version 1.28 (long / unified)
[7.03.0203]
1) Add conversion from text to SQL_C_BINARY(bug report from Brad Wilson).
2) Change SQLColumns, SQLTables etc to initialize the statement handle
properly(bug report from Yutaka Tanida).
3) Improve the handling of mutex under *nix(bug report from Steve Wampler).
1.28 by hinoue
Wed Nov 5 20:35:02 2003 (4 days, 15 hours ago)
Changed since 1.27: +3 -3 [Select for Diff]
Diffs to version 1.27 (long / unified)
Diffs ignoring whitespace to version 1.27 (long / unified)
[7.03.0202]
1) Improve SQLColAttributes(SQL_COLUMN_DISPLAY_SIZE) (bug report from Benjamin Riefenstahl).
2) Correct EN_set_odbc3 macro (bug report from tomas@nocrew.org(Tomas Skûñe)).
1.27 by hinoue
Sat Oct 25 00:19:23 2003 (2 weeks, 2 days ago)
Changed since 1.26: +3 -3 [Select for Diff]
Diffs to version 1.26 (long / unified)
Diffs ignoring whitespace to version 1.26 (long / unified)
[7.03.0201]
1) Revise the handling of descriptors and implement SQLCopyDesc.
2) Handle data_at_execution columns for SQLSetPos or SQLBulkOperations.
1.26 by dpage
Wed Oct 22 09:07:25 2003 (2 weeks, 5 days ago)
CVS Tags: REL-07_03_0200
Changed since 1.25: +3 -3 [Select for Diff]
Diffs to version 1.25 (long / unified)
Diffs ignoring whitespace to version 1.25 (long / unified)
Version number bump.
1.25 by hinoue
Sun Oct 19 22:37:42 2003 (3 weeks ago)
Changed since 1.24: +3 -3 [Select for Diff]
Diffs to version 1.24 (long / unified)
Diffs ignoring whitespace to version 1.24 (long / unified)
[7.03.0116]
1. Fix a memory leak in case of updatable KEYSET_DRIVEN cursors.
2. Change SQLMoreResults to initialize the cursor position.
3. Hopefully, SQLDescribeCol() returns a more appropriate
error code(SQLSTATE).
1.24 by hinoue
Fri Sep 19 05:25:17 2003 (7 weeks, 3 days ago)
Changed since 1.23: +3 -3 [Select for Diff]
Diffs to version 1.23 (long / unified)
Diffs ignoring whitespace to version 1.23 (long / unified)
1) Correct the return info for SQLGetInfo(.., SQL_CURSOR_COMMIT
(ROLLBACK)_BEHAVIOR) call.
2) Explictly reject the SQLBrowseConnect call.
1.23 by hinoue
Mon Sep 15 04:25:03 2003 (8 weeks ago)
Changed since 1.22: +3 -3 [Select for Diff]
Diffs to version 1.22 (long / unified)
Diffs ignoring whitespace to version 1.22 (long / unified)
1. Serialize the connection use for communication(multi-thread).
2. Let escape strings case-insensitive.
1.22 by hinoue
Tue Sep 2 07:25:53 2003 (2 months, 1 week ago)
Changed since 1.21: +1 -1 [Select for Diff]
Diffs to version 1.21 (long / unified)
Diffs ignoring whitespace to version 1.21 (long / unified)
Fix a bug when handling data_at_execution parameter array
reported by Jol Valentine .
1.21 by hinoue
Wed Aug 27 06:17:53 2003 (2 months, 2 weeks ago)
Changed since 1.20: +3 -3 [Select for Diff]
Diffs to version 1.20 (long / unified)
Diffs ignoring whitespace to version 1.20 (long / unified)
1) Fix a bug on SQLSetStmtAttr(.., SQL_CONCURRENCY) reported by Shachar Shemesh.
2) Apply a patch to changes the storage type of the debug "func" variables
to be stored in the constant area of the program(Shachar Shemesh).
3) Correct the column size in case of bytea as LO.
1.20 by hinoue
Wed Jul 30 21:57:50 2003 (3 months, 1 week ago)
Changed since 1.19: +3 -3 [Select for Diff]
Diffs to version 1.19 (long / unified)
Diffs ignoring whitespace to version 1.19 (long / unified)
1) Distinguish the rowset size for SQLFetch(Scroll) from that for
SQLExtendedFetch.
2) Implement SQLGetDiagFieldW() for the Unicode driver.
1.19 by hinoue
Fri Jul 11 06:47:17 2003 (4 months ago)
Changed since 1.18: +3 -3 [Select for Diff]
Diffs to version 1.18 (long / unified)
Diffs ignoring whitespace to version 1.18 (long / unified)
Improve SQLGetDiagField so that an MFC appliaction reports
error messages properly(bug report from Silvio Scarpati).
1.18 by hinoue
Wed Jul 9 04:09:11 2003 (4 months ago)
Changed since 1.17: +3 -3 [Select for Diff]
Diffs to version 1.17 (long / unified)
Diffs ignoring whitespace to version 1.17 (long / unified)
Add quotes around table names to use ::regclass in parse.c .
1.17 by hinoue
Sun Jun 29 23:51:24 2003 (4 months, 1 week ago)
Changed since 1.16: +3 -3 [Select for Diff]
Diffs to version 1.16 (long / unified)
Diffs ignoring whitespace to version 1.16 (long / unified)
Change SQLGetFunctions to contain ODBC3 APIs.
1.16 by hinoue
Thu May 29 22:30:33 2003 (5 months, 1 week ago)
Changed since 1.15: +3 -3 [Select for Diff]
Diffs to version 1.15 (long / unified)
Diffs ignoring whitespace to version 1.15 (long / unified)
1) Improve the SQL_C_VARBOOKMARK type handling.
2) Cleanup copy_and_convert_field() a little.
3) Set an error number and an error message for SQLAllocHandle(
SQL_HANDLE_DESC).
1.15 by hinoue
Tue May 27 22:26:37 2003 (5 months, 2 weeks ago)
Changed since 1.14: +3 -3 [Select for Diff]
Diffs to version 1.14 (long / unified)
Diffs ignoring whitespace to version 1.14 (long / unified)
Fix a bug about a bookmark handling in SQLBulkOperaitons(SQL_ADD,..)
1.14 by hinoue
Tue May 27 19:23:41 2003 (5 months, 2 weeks ago)
Changed since 1.13: +3 -3 [Select for Diff]
Diffs to version 1.13 (long / unified)
Diffs ignoring whitespace to version 1.13 (long / unified)
Remove date cast(::date) from the conversion of {d escape before
7.3 servers. 7.2 servers are poor in implicit cast from date ->
timestamp without time zone.
1.13 by hinoue
Tue May 27 01:20:09 2003 (5 months, 2 weeks ago)
Changed since 1.12: +3 -3 [Select for Diff]
Diffs to version 1.12 (long / unified)
Diffs ignoring whitespace to version 1.12 (long / unified)
1) Corrent the handling of bookmark in SQLBulkOperations.
2) Correct the calculation of a global index in SC_pos_add.
3) Cleanup global/rowset/resultset index handling a little.
1.12 by hinoue
Sun May 25 20:47:50 2003 (5 months, 2 weeks ago)
Changed since 1.11: +3 -3 [Select for Diff]
Diffs to version 1.11 (long / unified)
Diffs ignoring whitespace to version 1.11 (long / unified)
Correct a handling of offset in SQLBulkOperations.
1.11 by hinoue
Tue May 20 10:11:22 2003 (5 months, 3 weeks ago)
Changed since 1.10: +4 -4 [Select for Diff]
Diffs to version 1.10 (long / unified)
Diffs ignoring whitespace to version 1.10 (long / unified)
Fix a crash bug in SQLDriverConnect().
1.10 by hinoue
Tue May 20 06:39:28 2003 (5 months, 3 weeks ago)
Changed since 1.9: +3 -3 [Select for Diff]
Diffs to version 1.9 (long / unified)
Diffs ignoring whitespace to version 1.9 (long / unified)
The previous change wasn't in time of 7.3.0100.
It belongs to 7.03.0101.
1.9 by hinoue
Mon May 19 06:12:09 2003 (5 months, 3 weeks ago)
Changed since 1.8: +1 -1 [Select for Diff]
Diffs to version 1.8 (long / unified)
Diffs ignoring whitespace to version 1.8 (long / unified)
1) Revert a *int8 as* DSN option to *numeric* for MS Jet.
2) Add a SQL_CA2_SENSITIVITY_ADDTIONS mask to the reply for
SQLGetInfo(.., SQL_ATTR_KEYSET_DRIVEN_CURSOR_ATTRIBUTES2)
which would make a little OpenOffice happy.
3) Fix a bug in SQLGetInfo(.., SQL_ATTR_ROW_NUMBER) for keyset_driven
cursors.
1.8 by dpage
Thu May 15 04:24:40 2003 (5 months, 3 weeks ago)
CVS Tags: REL-07_03_0100
Changed since 1.7: +3 -3 [Select for Diff]
Diffs to version 1.7 (long / unified)
Diffs ignoring whitespace to version 1.7 (long / unified)
Updates for 07.03.0100
1.7 by dpage
Thu May 15 03:38:16 2003 (5 months, 3 weeks ago)
Changed since 1.6: +3 -3 [Select for Diff]
Diffs to version 1.6 (long / unified)
Diffs ignoring whitespace to version 1.6 (long / unified)
Updates for 07.03.0001
1.6 by hinoue
Mon May 12 11:44:08 2003 (5 months, 4 weeks ago)
Changed since 1.5: +3 -3 [Select for Diff]
Diffs to version 1.5 (long / unified)
Diffs ignoring whitespace to version 1.5 (long / unified)
1) Add a *bytea as LO* DSN option button.
2) Add japanese resources to psqlodbc.rc.
3) Add a dialog for the driver change.
1.5 by hinoue
Wed Apr 23 05:49:47 2003 (6 months, 2 weeks ago)
Changed since 1.4: +3 -3 [Select for Diff]
Diffs to version 1.4 (long / unified)
Diffs ignoring whitespace to version 1.4 (long / unified)
1) Avoid password leak in the log.
2) Reduce time() calls for the performance.
3) Improve the handling of per Driver resource.
4) #define HAVE_STRTOLL
etc.
1.4 by hinoue
Wed Nov 27 04:30:53 2002 (11 months, 1 week ago)
CVS Tags: REL-07_02_0005
Changed since 1.3: +3 -3 [Select for Diff]
Diffs to version 1.3 (long / unified)
Diffs ignoring whitespace to version 1.3 (long / unified)
Upgrade to 7.2.0005.
1.3 by hinoue
Thu Oct 10 02:37:54 2002 (13 months ago)
CVS Tags: REL-07_02_0004
Changed since 1.2: +3 -3 [Select for Diff]
Diffs to version 1.2 (long / unified)
Diffs ignoring whitespace to version 1.2 (long / unified)
1) Change SQLDescribeCol or SQLColAttribute to return right ResultNumCols for
keyset/static cursors.
2) Change PG_TYPE_TEXT -> PG_TYPE_VARCHAR for character columns of the
result of catalog functions (bug report from Mike Mascari).
1.2 by hinoue
Mon Sep 23 04:08:22 2002 (13 months, 2 weeks ago)
CVS Tags: REL-07_02_0003
Changed since 1.1: +3 -3 [Select for Diff]
Diffs to version 1.1 (long / unified)
Diffs ignoring whitespace to version 1.1 (long / unified)
1) Removed most static variables for thread safety.
2) Trial implementation of the thread safe driver under
Windows.
3) Fix a bug about DSN options setting.
4) Fix a bug about Driver options setting.
5) Implement SQLProcedureColumns().
6) Changed default numeric precision/scale.
7) Fix some memory leaks in Unicode driver.
8) datetime -> timestamp with time zone since 7.0.
9) Change manually started(using begin) transactions never
be implicitly committed.
1.1 by inoue
Thu May 9 00:10:22 2002 (18 months ago)
[Select for Diff]
Add a file for version control.