psqlodbc.git
11 years agoThe driver takes SQL_C_LONG to mean SQLINTEGER rather than "long".
Heikki Linnakangas [Fri, 14 Feb 2014 12:52:16 +0000 (14:52 +0200)]
The driver takes SQL_C_LONG to mean SQLINTEGER rather than "long".

The regression test was failing on the s390x architecture because of that.
It's big-endian, with sizeof(long) == 8.

11 years agoAdd regression test for SQLBindCol.
Heikki Linnakangas [Fri, 14 Feb 2014 12:24:13 +0000 (14:24 +0200)]
Add regression test for SQLBindCol.

We were already doing SQLBindCol as part of the positioned-update test, but
seems good to have one explicitly for it.

11 years agoFix cursors test case on big-endian systems.
Heikki Linnakangas [Thu, 13 Feb 2014 20:30:44 +0000 (22:30 +0200)]
Fix cursors test case on big-endian systems.

The SQL_CURSOR_COMMIT_BEHAVIOR property is a SQLUSMALLINT, not SQLUINTEGER.
On a little-endian system, you wouldn't notice, provided that the target
variable was initialized to 0 before the SQLGetInfo call.

Per report from Christoph Berg that the cursors test was failing on mipsel
and other big-endian architectures.

11 years agoMSBuild instead of nmake to build binaries using 10.0 or later version of VC.
Hiroshi Inoue [Mon, 3 Feb 2014 04:59:32 +0000 (13:59 +0900)]
MSBuild instead of nmake to build binaries using 10.0 or later version of VC.
See readme_winbuild.txt or winbuild/readme.txt about the use.

11 years agoSet TCP keepalive by default.
Hiroshi Inoue [Tue, 14 Jan 2014 10:54:28 +0000 (19:54 +0900)]
Set TCP keepalive by default.

11 years agoFix out-of-bounds write when Bind request packet size is a multiple of 4096.
Heikki Linnakangas [Thu, 9 Jan 2014 22:31:01 +0000 (00:31 +0200)]
Fix out-of-bounds write when Bind request packet size is a multiple of 4096.

Also add a test case to reproduce that bug on unpatched version.

Report and analysis by Patrice Dardoize.

11 years agoFix off-by-one error in parsing ExtraSysTablePrefixes and table types.
Heikki Linnakangas [Tue, 7 Jan 2014 14:00:48 +0000 (16:00 +0200)]
Fix off-by-one error in parsing ExtraSysTablePrefixes and table types.

I fixed these already once, but it was still off-by-one. Since we've been
burned by this twice now, refactor the code to make it more readable. Also
add a regression test case for the table types. The prefixes code is more
difficult to test since it's only used when connected to a pre-7.3 server.

Per report from Pavel Raiskup with help from Coverity static code analyzer.

11 years agoRemember "Description" DSN attribute
Heikki Linnakangas [Mon, 6 Jan 2014 09:23:54 +0000 (11:23 +0200)]
Remember "Description" DSN attribute

DSN attribute "Description" was not being copied from the input during DSN
creation in ConfigDSN(). This attribute is now copied into connection info
struct (while parsing input attributes) so that it is later saved (either in
File DSN or user/system DSN entry in Windows registry).

Patch and diagnosis by Nikhil Deshpande

11 years agoUpdate link to MSDN appendix on ODCB scalar functions.
Heikki Linnakangas [Fri, 20 Dec 2013 19:48:24 +0000 (21:48 +0200)]
Update link to MSDN appendix on ODCB scalar functions.

Mike Landl

11 years agoUpdate GUI to edit configuration.xml. REL-09_03_0100
Hiroshi Inoue [Wed, 18 Dec 2013 12:36:22 +0000 (21:36 +0900)]
Update GUI to edit configuration.xml.
Added items corrsponding to setvcvars elements.

11 years agoThe environment variable env:ProgramFiles(x86) in PowerShell must be enbraced.
Hiroshi Inoue [Wed, 18 Dec 2013 01:42:31 +0000 (10:42 +0900)]
The environment variable env:ProgramFiles(x86) in PowerShell must be enbraced.

11 years agoThe value x64 for PROCESSOR_ARCHITECTURE on Windows is unappropriate.
Hiroshi Inoue [Wed, 18 Dec 2013 01:19:05 +0000 (10:19 +0900)]
The value x64 for PROCESSOR_ARCHITECTURE on Windows is unappropriate.

11 years agoincrement of build number.
Hiroshi Saito [Tue, 17 Dec 2013 14:22:01 +0000 (23:22 +0900)]
increment of build number.

11 years agoFixed some typo.
Hiroshi Saito [Tue, 17 Dec 2013 14:20:56 +0000 (23:20 +0900)]
Fixed some typo.

11 years agoadjustment of the path name.
Hiroshi Saito [Mon, 16 Dec 2013 14:39:01 +0000 (23:39 +0900)]
adjustment of the path name.

11 years agochange name libintl.dll.
Hiroshi Saito [Mon, 16 Dec 2013 14:34:19 +0000 (23:34 +0900)]
change name libintl.dll.

11 years agoForget connexp.h.
Hiroshi Saito [Mon, 16 Dec 2013 14:28:38 +0000 (23:28 +0900)]
Forget connexp.h.

11 years agoincrement of build number.
Hiroshi Saito [Mon, 16 Dec 2013 13:13:52 +0000 (22:13 +0900)]
increment of build number.

11 years agoStop using inet_pton() when it's unavailable on Windows.
Hiroshi Inoue [Mon, 16 Dec 2013 08:03:16 +0000 (17:03 +0900)]
Stop using inet_pton() when it's unavailable on Windows.

11 years agoSuppress Windows Compile warnings: C4018 signed/unsigned mismatch by default.
Hiroshi Inoue [Mon, 16 Dec 2013 03:25:27 +0000 (12:25 +0900)]
Suppress Windows Compile warnings: C4018 signed/unsigned mismatch by default.

11 years agoForget modification.
Hiroshi Saito [Sun, 15 Dec 2013 13:32:32 +0000 (22:32 +0900)]
Forget modification.

11 years ago/bin/sh of standard equipment.
Hiroshi Saito [Sun, 15 Dec 2013 08:30:47 +0000 (17:30 +0900)]
/bin/sh of standard equipment.
problem in an environment of /usr/local/bin/bash.

11 years agoOoops, test makefile (not gmake) is broken.
Hiroshi Saito [Sun, 15 Dec 2013 06:35:08 +0000 (15:35 +0900)]
Ooops, test makefile (not gmake) is broken.

11 years agoFix the bug introduced by
Hiroshi Inoue [Sun, 15 Dec 2013 05:30:37 +0000 (14:30 +0900)]
Fix the bug introduced by
  commit d293c1bfbab69660683b07fd1fe3e0cc3cad570e
    Replace calls to my_strcat and my_strcat with snprintf_add.

Note that my_strcat1() does nothing when the 4th parameter doesn't
have a valid value.

11 years agofixed build error in WiX v3.8.
Hiroshi Saito [Sun, 15 Dec 2013 03:10:14 +0000 (12:10 +0900)]
fixed build error in WiX v3.8.
Per report ljwilson@digitalav.com.

11 years agoFixed not recognized by FreeBSD.
Hiroshi Saito [Sun, 15 Dec 2013 03:05:54 +0000 (12:05 +0900)]
Fixed not recognized by FreeBSD.

11 years agoPrep release 09.03.0100.
Hiroshi Saito [Sat, 14 Dec 2013 13:49:40 +0000 (22:49 +0900)]
Prep release 09.03.0100.

11 years agoAdding a split document.
Hiroshi Saito [Sat, 14 Dec 2013 13:37:00 +0000 (22:37 +0900)]
Adding a split document.

11 years agoArrangement change history.
Hiroshi Saito [Sat, 14 Dec 2013 13:09:11 +0000 (22:09 +0900)]
Arrangement change history.

11 years agoadd some contents and adjustment.
Hiroshi Saito [Fri, 13 Dec 2013 14:49:49 +0000 (23:49 +0900)]
add some contents and adjustment.
Per report Pavel Raiskup.

11 years agochange history(prep release)
Hiroshi Saito [Thu, 12 Dec 2013 12:34:02 +0000 (21:34 +0900)]
change history(prep release)

11 years agoCall getaddrinfo() with AI_NUMERICSERV because the service is a port number.
Hiroshi Inoue [Wed, 11 Dec 2013 11:50:02 +0000 (20:50 +0900)]
Call getaddrinfo() with AI_NUMERICSERV because the service is a port number.

11 years agosocket: speedup also ipv6 connection
Pavel Raiskup [Thu, 5 Dec 2013 12:58:30 +0000 (13:58 +0100)]
socket: speedup also ipv6 connection

[Patch by Pavel Raiskup]
Call getaddrinfo() with AI_NUMERICHOST if it is ipv4/ipv6 address.
For that reason the inet_pton() is better than inet_addr().

11 years agoFix memset() call, meant to clear the whole struct.
Heikki Linnakangas [Tue, 10 Dec 2013 09:16:16 +0000 (11:16 +0200)]
Fix memset() call, meant to clear the whole struct.

Per compiler warning.

11 years agoMake it possible to invoke several scripts from any working directory.
Hiroshi Inoue [Fri, 22 Nov 2013 07:15:56 +0000 (16:15 +0900)]
Make it possible to invoke several scripts from any working directory.

11 years agoStop dot-sourcing a script to avoid confusion of scope of variables. Also make it...
Hiroshi Inoue [Thu, 21 Nov 2013 05:19:17 +0000 (14:19 +0900)]
Stop dot-sourcing a script to avoid confusion of scope of variables. Also make it possible to specify the configuration file path as a parameter.

11 years agoAdd formatVersion attribute to configuration.xml so as to detect the format change...
Hiroshi Inoue [Thu, 21 Nov 2013 00:08:47 +0000 (09:08 +0900)]
Add formatVersion attribute to configuration.xml so as to detect the format change. Unify configuration_template.xml to configuration.xml when the format change is detected.

11 years agoRemove CRs from editConfiguration.ps1.
Hiroshi Inoue [Thu, 21 Nov 2013 07:55:50 +0000 (16:55 +0900)]
Remove CRs from editConfiguration.ps1.

11 years agobufferoverflowu.lib seems no longer needed in recent versions of VC environment.
Hiroshi Inoue [Mon, 18 Nov 2013 12:55:18 +0000 (21:55 +0900)]
bufferoverflowu.lib seems no longer needed in recent versions of VC environment.
 So removed it from win64.mak. Speocify CUSTOMLINKLIBS=bufferoverflowu.lib from the command line when it is neccessary in old VC environment.

11 years agoAdd build_macros element to winbuild/configuration(_template).xml so that buildXxx...
Hiroshi Inoue [Sun, 17 Nov 2013 03:34:40 +0000 (12:34 +0900)]
Add build_macros element to winbuild/configuration(_template).xml so that buildXxx.ps1 can specify macros to the makefiles. Also make some part of CL options of makefiles replacable.

11 years agoMove -Wall -Wno-pointer-sign CFLAGS option specified in Makefile.am to configure...
Hiroshi Inoue [Fri, 15 Nov 2013 02:47:33 +0000 (11:47 +0900)]
Move -Wall -Wno-pointer-sign CFLAGS option specified in Makefile.am to configure.ac. Users can disable those options by giving CFLAGS option explicitly. Also verify the availability of those options.

11 years agoStop linking lib(i)odbc library because the library is unnecessary and rather harmful...
Hiroshi Inoue [Thu, 14 Nov 2013 01:58:01 +0000 (10:58 +0900)]
Stop linking lib(i)odbc library because the library is unnecessary and rather harmful. Per report from Pavel Raiskup(postgresql.org/message-id/1769926.65KUyECjFr@nb.usersys.redhat.com).

11 years agoUse snprintf() instead of sprintf() for safety.
Heikki Linnakangas [Tue, 12 Nov 2013 23:23:57 +0000 (01:23 +0200)]
Use snprintf() instead of sprintf() for safety.

I believe these instances were in fact safe, because a cursor name has
a maximum length, but better safe than sorry.

11 years agoAdd regression test for SQLTables() function.
Heikki Linnakangas [Tue, 12 Nov 2013 22:59:01 +0000 (00:59 +0200)]
Add regression test for SQLTables() function.

11 years agoFix buffer overflow in handling of SQLTables params.
Heikki Linnakangas [Tue, 12 Nov 2013 22:56:15 +0000 (00:56 +0200)]
Fix buffer overflow in handling of SQLTables params.

Found by Fortify static analysis tool.

11 years agoReplace calls to my_strcat and my_strcat with snprintf_add.
Heikki Linnakangas [Tue, 12 Nov 2013 22:15:38 +0000 (00:15 +0200)]
Replace calls to my_strcat and my_strcat with snprintf_add.

my_strcat didn't check for buffer overflow, which Fortify static analysis
tool flagged as an issue. I'm not sure if that can actually happen, but
the code is clearer like this anyway.

11 years agoCheck return value of stdup() for out-of-memory.
Heikki Linnakangas [Tue, 12 Nov 2013 21:57:29 +0000 (23:57 +0200)]
Check return value of stdup() for out-of-memory.

There are a lot of little bugs like this throughout the code, but it's
start...

Flagged by Fortify static analysis tool.

11 years agoFix buffer overflow in interval parsing.
Heikki Linnakangas [Tue, 12 Nov 2013 21:53:04 +0000 (23:53 +0200)]
Fix buffer overflow in interval parsing.

Includes a test case.

Flagged by Fortify static analysis tool.

11 years agoConstruct ctid string correctly for block no > 2^31.
Heikki Linnakangas [Tue, 12 Nov 2013 20:35:56 +0000 (22:35 +0200)]
Construct ctid string correctly for block no > 2^31.

Block number is unsigned. Other places where we construct ctid strings we
got this right, but not this one. I'm not sure how to trigger this codepath,
but I'm sure something funny would happen if you tried to use these functions
on large enough tables (> 16 TB).

11 years agoEscape double-quotes in table name correctly.
Heikki Linnakangas [Tue, 12 Nov 2013 20:21:51 +0000 (22:21 +0200)]
Escape double-quotes in table name correctly.

When constructing the select/update/delete for current row in a rowset,
and the schema or table name contained double-quotes, they were not correctly
escaped in the constructed SQL statement. That lead to errors when doing
positioned updates.

Also, use snprintf and snprintf_add instead of sprintf and strcat in more
places. Makes these things look less like buffer overflows to static analysis
tools, and make for more readable code anyway.

11 years agoAdd test case for positioned updates (SQLSetPos).
Heikki Linnakangas [Tue, 12 Nov 2013 18:19:06 +0000 (20:19 +0200)]
Add test case for positioned updates (SQLSetPos).

11 years agoAvoid double-free() bug.
Heikki Linnakangas [Tue, 12 Nov 2013 13:49:50 +0000 (15:49 +0200)]
Avoid double-free() bug.

Spotted by Fortify static analysis tool.

11 years agoImprove the help message of configure script.
Hiroshi Inoue [Sat, 9 Nov 2013 03:58:23 +0000 (12:58 +0900)]
Improve the help message of configure script.

11 years agoSuppress compiler warnings.
Hiroshi Inoue [Fri, 8 Nov 2013 12:47:57 +0000 (21:47 +0900)]
Suppress compiler warnings.

11 years agoUse with_xxxxx (xxxxx is the package name) variables directly instead of the withval...
Hiroshi Inoue [Wed, 6 Nov 2013 13:21:40 +0000 (22:21 +0900)]
Use with_xxxxx (xxxxx is the package name) variables directly instead of the withval variable.

11 years agowinres.h instead of afxres.h. There are some cases (VS 2012 express etc) when afxres...
Hiroshi Inoue [Wed, 6 Nov 2013 12:27:29 +0000 (21:27 +0900)]
winres.h instead of afxres.h. There are some cases (VS 2012 express etc) when afxres.h doesn't exist.

11 years agoRename the name of elements in configuration(_template).xml from
Hiroshi Inoue [Mon, 4 Nov 2013 13:08:03 +0000 (22:08 +0900)]
Rename the name of elements in configuration(_template).xml from
setenv to setvcvars.

11 years agoWhen nmake macros are given as command line parameters, they can't be changed.
Hiroshi Inoue [Mon, 4 Nov 2013 12:58:10 +0000 (21:58 +0900)]
When nmake macros are given as command line parameters, they can't be changed.

11 years agoVOID is not defined on all systems. Use void insted.
Heikki Linnakangas [Sun, 3 Nov 2013 08:31:44 +0000 (10:31 +0200)]
VOID is not defined on all systems. Use void insted.

Christoph Berg

11 years agoChange conifuration_template.xml so that its 64bit default is use_sspi=yes,
Hiroshi Inoue [Thu, 31 Oct 2013 12:46:15 +0000 (21:46 +0900)]
Change conifuration_template.xml so that its 64bit default is use_sspi=yes,
 use_gss=no. Also add the treatment of libpq default version.

11 years agoAdd support for verify-ca/full sslmode using Windows Schannel Security
Hiroshi Inoue [Sat, 26 Oct 2013 11:45:39 +0000 (20:45 +0900)]
Add support for verify-ca/full sslmode using Windows Schannel Security
Service Provider.
Root CAs must be installed into Windows Root certificate store beforehand.

11 years agoFix the newly-introduced CORR_STRCPY and CORR_VALCPY macros.
Heikki Linnakangas [Mon, 28 Oct 2013 10:48:35 +0000 (12:48 +0200)]
Fix the newly-introduced CORR_STRCPY and CORR_VALCPY macros.

They were broken, did not compile.

Michael Paquier

12 years agoFix a bug in CC_copy_conninfo() that free()s password item of input source
Hiroshi Inoue [Fri, 25 Oct 2013 05:35:52 +0000 (14:35 +0900)]
Fix a bug in CC_copy_conninfo() that free()s password item of input source
unexpectedly.
Change CC_copy_conninfo() and copy_globals() so that they copy each item
one by one.

12 years agoOK I found the way to handle private keys of PEM form using CryptoAPI.
Hiroshi Inoue [Thu, 24 Oct 2013 08:49:58 +0000 (17:49 +0900)]
OK I found the way to handle private keys of PEM form using CryptoAPI.
Certificates of PFX form are no longer needed for SSL client certificate
authntication.

12 years agoConcentrate the settings of Windows build system to an xml file and
Hiroshi Inoue [Tue, 22 Oct 2013 13:40:57 +0000 (22:40 +0900)]
Concentrate the settings of Windows build system to an xml file and
build binaries or installers with reference to it.

(configuration.xml)
xml file to specify the setting of the build environment.
It is automatically generated in winbuild folder as a copy
of winbuild/configuration_template.xml when you invoke
editConfiguration script firstly.

winbuild/configuration.ps1 modules to handle the configuration file
winbuild/editConfiguration.ps1 edit configuration file (GUI)
winbuild/editConfiguration.bat same as above with a minimized console window

buildx86.ps1 build 32bit binary
buildx64.ps1 build 64bit binary

installer/buildx86-installer.ps1 build 32bit installer
installer/buildx64-installer.ps1 build 64bit installer

12 years agoChange Windows installer build system for the next release.
Hiroshi Inoue [Tue, 22 Oct 2013 13:21:56 +0000 (22:21 +0900)]
Change Windows installer build system for the next release.

Change to specify ProductCode for each version so as not to forget to change
ProductCode in case of major version up.
Remove VC runtime merge modules from the installer(runtime dlls will be
installed via psqlodbc setup program).

[64bit version only]
Use libpq by default
Remove GSSAPI support by default

12 years agoHandle SSL client certificate authentication in Windows Schannel security
Hiroshi Inoue [Tue, 22 Oct 2013 08:51:50 +0000 (17:51 +0900)]
Handle SSL client certificate authentication in Windows Schannel security
support provider.

You have to place the certificate file postgresql.pfx (PFX or PKCS12 format)
in %APPDATA%\postgresql folder instead of postgresql.crt and postgresql.key
(I wasn't able to find the way to handle PEM format using Cryptography API
unfortunately).
You can create the file using the following command.
 openssl pkcs12 -export -in postgresql.crt -inkey postgresql.key
 -out postgresql.pfx (with empty password).

12 years agoWhen LF->CR+LF conversion causes an buffer truncation, supress the conversion (in...
Hiroshi Inoue [Thu, 22 Aug 2013 11:40:01 +0000 (20:40 +0900)]
When LF->CR+LF conversion causes an buffer truncation, supress the conversion (in case of unicode).

12 years agoDon't issue a BEGIN when running VACUUM in auto-commit mode.
Heikki Linnakangas [Mon, 2 Sep 2013 10:20:02 +0000 (13:20 +0300)]
Don't issue a BEGIN when running VACUUM in auto-commit mode.

Normally in auto-commit mode the driver begins a new transaction
implicitly at the first statement, by sending a BEGIN statement. However,
some commands, like VACUUM, cannot be run in a transaction block, and you
will get an error like "VACUUM cannot run inside a transaction block" from
the server. In UseServerSidePrepare=0 mode, the code looks at the first word
of the query to determine if the statement is one of the special ones, and
if so, didn't begin a new transaction even when auto-commit mode is
disabled. However, in UseServerSidePrepare=1 mode, when using SQLPrepare/
SQLExecute to run the VACUUM, that check was not made. Fix that.

There was one more related inconsistency between UseServerSidePrepare modes.
Without server-side-prepares, if you issued an explicit BEGIN in auto-commit
mode, the implicit BEGIN was ont sent. But without server-side prepares, it
was. It seems best to send the implicit BEGIN in both cases, because then
you get a warning from the backend about the second BEGIN. That's a good
thing, because a sane ODBC application should be using the ODBC function
SQLEndTran() for transaction control, not explicit BEGIN/COMMIT.

Also add a test case for executing VACUUM, with and without autocommit.

12 years agoAdd test case for interleaving operations on several prepared statements.
Heikki Linnakangas [Mon, 2 Sep 2013 08:29:46 +0000 (11:29 +0300)]
Add test case for interleaving operations on several prepared statements.

12 years agoAdd test case for SQLDescribeParam
Heikki Linnakangas [Mon, 2 Sep 2013 08:29:41 +0000 (11:29 +0300)]
Add test case for SQLDescribeParam

12 years agoRemove useless 'sync' parameter from prepareParameters() function.
Heikki Linnakangas [Mon, 2 Sep 2013 08:29:28 +0000 (11:29 +0300)]
Remove useless 'sync' parameter from prepareParameters() function.

It was always passed as TRUE.

12 years agoAdd preliminary release notes for upcoming 9.3 release.
Heikki Linnakangas [Thu, 22 Aug 2013 07:11:16 +0000 (10:11 +0300)]
Add preliminary release notes for upcoming 9.3 release.

This doesn't cover everything yet, but it's a start.

12 years agoChange the default for UseServerSidePrepare to 1.
Heikki Linnakangas [Thu, 22 Aug 2013 06:58:02 +0000 (09:58 +0300)]
Change the default for UseServerSidePrepare to 1.

The docs have recommended UseServerSidePrepare=1 for server versions 7.4
onwards, so it seems prudent to change the default so that people don't need
to remember to specify it manually.

With UseServerSidePrepare=1, the "insertreturning" regression test case
behaves better, ie. SQLNumResultCols() correctly returns the number of
columns for an INSERT RETURNING statement, even when called before
SQLExecute(). Hence change the expected output. I'm not 100% if the behavior
with UseServerSidePrepare=0 was even correct, so I'm not adding an
alternative expected output file for it.

12 years agoFix bug when a statement is executed twice with data-at-execution params.
Heikki Linnakangas [Thu, 22 Aug 2013 06:47:07 +0000 (09:47 +0300)]
Fix bug when a statement is executed twice with data-at-execution params.

When a statement with array-bound data-at-execution parameters is executed
twice, the second result set was not returned when UseServerSidePrepare=1.
This was demonstrated by the data-at-execution regression test case.

12 years agoAdd test case for testing the effect of COMMIT/ROLLBACK on cursors.
Heikki Linnakangas [Wed, 21 Aug 2013 12:37:33 +0000 (15:37 +0300)]
Add test case for testing the effect of COMMIT/ROLLBACK on cursors.

The behavior differs depending on UseDeclareFetch, so there are two expected
outputs for this.

12 years agoAdd test case for multi-statements.
Heikki Linnakangas [Tue, 20 Aug 2013 21:11:30 +0000 (00:11 +0300)]
Add test case for multi-statements.

12 years agoRemove common.o on "make clean"
Heikki Linnakangas [Tue, 20 Aug 2013 21:00:13 +0000 (00:00 +0300)]
Remove common.o on "make clean"

12 years agoHandle turning standard_conforming_strings to off in mid-session.
Heikki Linnakangas [Tue, 20 Aug 2013 20:26:30 +0000 (23:26 +0300)]
Handle turning standard_conforming_strings to off in mid-session.

We already watched for a ParameterStatus response indicating that
standard_conforming_strings was turned on, and acted accordingly, but
if it was turned off, we did nothing. Fix that.

Also add a test case for that.

12 years agoAdd test case for using SQLBindParameter with SQLExecDirect.
Heikki Linnakangas [Tue, 20 Aug 2013 19:41:53 +0000 (22:41 +0300)]
Add test case for using SQLBindParameter with SQLExecDirect.

12 years agoRemove some dead code.
Heikki Linnakangas [Tue, 20 Aug 2013 10:44:53 +0000 (13:44 +0300)]
Remove some dead code.

12 years agoOops, used wrong #ifdef for CC_Copy.
Heikki Linnakangas [Tue, 20 Aug 2013 04:46:31 +0000 (07:46 +0300)]
Oops, used wrong #ifdef for CC_Copy.

CC_Copy is needed if _HANDLE_ENLIST_IN_DTC_ is used, regardless of
CLEANUP_CONN_BEFORE_ISOLATION. That caused compilation on Windows to fail.

12 years agoSilence misc compiler warnings.
Heikki Linnakangas [Thu, 15 Aug 2013 10:12:15 +0000 (13:12 +0300)]
Silence misc compiler warnings.

Also a few comment typo and whitespace fixes.

12 years agoConfigure is checking SIZEOF_LONG not SIZEOF_LONG_INT.
Hiroshi Inoue [Wed, 24 Jul 2013 15:07:58 +0000 (00:07 +0900)]
Configure is checking SIZEOF_LONG not SIZEOF_LONG_INT.

12 years agoThe first cut of psqlodbc setup project. It builds a setup program which
Hiroshi Inoue [Sun, 14 Jul 2013 11:51:17 +0000 (20:51 +0900)]
The first cut of psqlodbc setup project. It builds a setup program which
can't be done by a single MSI. It would install VC++ redistributable, 32
bit psqlodbc driver and 64 bit psqlodbc driver (on 64 bit windows).

12 years agoChange configure.ac so that ODBC_CONFIG is set when neither unixODBC nor
Hiroshi Inoue [Sat, 13 Jul 2013 09:29:50 +0000 (18:29 +0900)]
Change configure.ac so that ODBC_CONFIG is set when neither unixODBC nor
iODBC is explicitly specified.

12 years agoIgnore automatically-generated files in source code with .gitignore.
Hiroshi Inoue [Wed, 10 Jul 2013 14:32:24 +0000 (23:32 +0900)]
Ignore automatically-generated files in source code with .gitignore.
This is useful to prevent accidental commit of files that are not wanted
in the remote repository. The original patch was provided by Michael
Paquier. I also added files genearated by VC build tools or WIX tools
to .gitignore.

12 years agoRevise MSDTC support.
Hiroshi Inoue [Fri, 21 Jun 2013 04:09:06 +0000 (13:09 +0900)]
Revise MSDTC support.
1. Remove pointlessly complicated AsyncThreads stuff. Instead use
   _beginthread() to clean up threads.
2. Make pgenlist.dll from the structure change of ConnectionClass.
   The driver dlls exports the functions described in connexp.h
   which are used by pgenlist.dll.

3. Isolate the current communication path if necessary.
   While an IAsyncPG object is alive, a ConnectionClass object (hereinafter
   refered to as conn-obj) is assigned to it. The assignment has to be
   changed in the following cases.

   a) SQLDisconnect() is called for the current connection handle which
      is assigned to an IAsyncPG object.
Allocate another conn-obj and move the current communication
path (*sock* member of the current conn-obj) to the new conn-obj.
The communicaation path is lost from the current conn-obj and
the new conn-obj is assigned to the IAsyncPG object.

   b) Another (global) transaction is about to begin but the current
      global transaction is not PREPARED yet.
Same as case a) but will open a new communication path for
the current conn-obj for the subsequent ODBC API calls.

   c) Another (global) transaction is about to begin and the current
      global transaction is already PREPARED.
Allocate another conn-obj and open a new communication path for
the conn-obj. The new conn-obj is assigned to the IAsyncPG
object only to issue COMMIT/ROLLBACK PREPARED command.

   communication pass (*sock* member of the current ConnectionClass
   object) to the new object and change the state of the current
   object NOT CONNECTED. The IAsyncPG object uses new object instead
   of the current object. In case b) the current object will open a
   new communication path.

12 years agoReduce the memory usage of ConnectinClass objects by changing their large
Hiroshi Inoue [Fri, 21 Jun 2013 03:45:40 +0000 (12:45 +0900)]
Reduce the memory usage of ConnectinClass objects by changing their large
 fixed length text fields to variable ones. Because changes are applied to
 percent-encoded fields this time, password field is also a target of this
 change.

12 years agoChange SQL_ATTR_PARAMS_PROCESSED_PTR attribute which is set by SQLSetStmtAttr() from...
Hiroshi Inoue [Mon, 17 Jun 2013 21:51:24 +0000 (06:51 +0900)]
Change SQL_ATTR_PARAMS_PROCESSED_PTR attribute which is set by SQLSetStmtAttr() from (SQLUINTEGER *) to (SQLULEN *). This fixes the bug reported by Christopf Berg. Also verify similar attributes which were changed from SQL(U)INTEGER (*) to SQL(U)LEN (*) when 64bit ODBC was introduced.

12 years agoSQL_C_SLONG stands for SQLINTEGER not long.
Hiroshi Inoue [Fri, 14 Jun 2013 22:09:51 +0000 (07:09 +0900)]
SQL_C_SLONG stands for SQLINTEGER not long.

12 years agoFix uninitialized use of 'allocbuf' variable, in case of out-of-memory.
Heikki Linnakangas [Wed, 12 Jun 2013 11:03:37 +0000 (14:03 +0300)]
Fix uninitialized use of 'allocbuf' variable, in case of out-of-memory.

Compiler warned about this. If ENLARGE_NEWSTATEMENT macro ran out of memory,
it would jump to cleanup routine. The cleanup would check if allocbuf is
NULL, and try to free() it if not. allocbuf needs to be initialized to NULL
before the first ENLARGE_NEWSTATEMENT macro invocation.

12 years agoChange release date. REL-09_02_0100
Hiroshi Saito [Sun, 2 Jun 2013 13:05:53 +0000 (22:05 +0900)]
Change release date.

12 years agoadd change history.
Hiroshi Saito [Sun, 2 Jun 2013 13:04:42 +0000 (22:04 +0900)]
add change history.

12 years agoMake sure accesses to a connection from multiple threads are exclusive. This change...
Hiroshi Inoue [Sun, 2 Jun 2013 01:29:35 +0000 (10:29 +0900)]
Make sure accesses to a connection from multiple threads are exclusive. This change fixes the problem *UseDeclareFetch=1, Fetch=100, UseServerSidePrepare=1 causes Windows client to intermittently hang* reported by Jack Wilson. I hope it would also fix the problem *Segmentation Fault in Postgres server when using psqlODBC* reported by Joshua Berry.

12 years agoinclude VS2010 Merge Modules.
Hiroshi Saito [Tue, 28 May 2013 16:14:57 +0000 (01:14 +0900)]
include VS2010 Merge Modules.

12 years agoVS2010 module support at postgresql 9.2. per report jack(ljwilson).
Hiroshi Saito [Sun, 26 May 2013 09:10:33 +0000 (18:10 +0900)]
VS2010 module support at postgresql 9.2. per report jack(ljwilson).

12 years agoadd test modules.
Hiroshi Saito [Sun, 26 May 2013 06:24:27 +0000 (15:24 +0900)]
add test modules.

12 years agoadd change history.
Hiroshi Saito [Sun, 26 May 2013 06:15:16 +0000 (15:15 +0900)]
add change history.

12 years agoFix the *cursor XXXXXXXX already exists* error when handling *with cte* statements...
Hiroshi Inoue [Sat, 25 May 2013 21:33:37 +0000 (06:33 +0900)]
Fix the *cursor XXXXXXXX already exists* error when handling *with cte* statements reported by Joe Conway.