Adrian Grucza [Fri, 26 Apr 2024 13:00:13 +0000 (23:00 +1000)]
Use mimalloc to improve performance and reduce memory allocation lock contention (#6)
* Add mimalloc submodule and update build script
* Add steps to build and test with UseMimalloc
* Update mimalloc submodule
* Change UseMimalloc parameter type to switch
* Add ExpectMimalloc parameter
* Fetch mimalloc submodule and use mimalloc parameters
* Prevent MIMALLOC_VERBOSE aborting tests
* Uninstall driver after tests; upload mimalloc artifacts
davecramer [Mon, 4 Mar 2024 23:08:49 +0000 (18:08 -0500)]
Build and release using github actions
Dave Cramer [Mon, 4 Mar 2024 21:25:20 +0000 (16:25 -0500)]
Merge pull request #3 from davecramer/fix_overflow
use unsigned word for lengths to avoid overflow
Dave Cramer [Wed, 28 Feb 2024 13:30:05 +0000 (08:30 -0500)]
make stapos an unsigned int just in case
Dave Cramer [Tue, 27 Feb 2024 14:20:27 +0000 (09:20 -0500)]
use unsigned word for lengths to avoid overflow
SAITO Hiroshi [Sat, 16 Sep 2023 08:18:07 +0000 (17:18 +0900)]
Prep Relese 16.00.0000.
Hiroshi Inoue [Fri, 8 Sep 2023 02:04:30 +0000 (11:04 +0900)]
Make it possible to use standard bool on Windows.
Ubuntu [Mon, 4 Sep 2023 19:57:41 +0000 (19:57 +0000)]
Use autoconf to check for stdbool.h Committer: Dave Cramer <davecramer@gmail.com>
SAITO Hiroshi [Fri, 23 Jun 2023 07:28:19 +0000 (16:28 +0900)]
Prep release 15.00.0000.
Hiroshi Inoue [Fri, 23 Jun 2023 02:37:02 +0000 (11:37 +0900)]
Define TRUE and FALSE for regression tests in case they aren't defined.
Adrian Grucza [Fri, 23 Jun 2023 01:10:57 +0000 (11:10 +1000)]
Bug fix: SQLColAttribute returns wrong column name - In some circumstances it was returning a name from the previous result
Adrian Grucza [Fri, 23 Jun 2023 00:15:24 +0000 (09:15 +0900)]
Prevent cursors being closed prematurely
Hiroshi Inoue [Sun, 27 Nov 2022 11:00:07 +0000 (20:00 +0900)]
Currenly SQLColumnPrivileges() call fails. Fix a typo which is the cause.
Patch by foxi_yiyi12081003@outlook.com.
Hiroshi Inoue [Wed, 30 Nov 2022 02:54:50 +0000 (11:54 +0900)]
Enable SQLColumnPrivileges functionality.
Add a regression test for SQLColumnPrivileges().
Adrian Grucza [Wed, 30 Nov 2022 11:09:45 +0000 (20:09 +0900)]
Fix FetchRefcursors issues 1. Fix crash if error occurs when fetching noninitial refcursor 2. Fix error when fetching NULL refcursor 3. Return empty result if all refcursors are NULL
Hiroshi Inoue [Sun, 17 Oct 2021 12:29:12 +0000 (21:29 +0900)]
1. Fix a bug that SQLGetDiagField(SQL_DIAG_NUMBER) with SQL_HANDLE_DBC returns SQL_NO_DATA
even if an error record exists.
2. Fix a typo "RECISION" which should be "PRECISION".
Hiroshi Saito [Wed, 22 Sep 2021 09:59:47 +0000 (18:59 +0900)]
Prep Release 13.02.0000.
Vadim [Mon, 2 Aug 2021 15:56:08 +0000 (18:56 +0300)]
CPTimeout option set to 60 for odbc driver by default
Hiroshi Inoue [Sun, 22 Aug 2021 05:39:49 +0000 (14:39 +0900)]
Use ODBC 3 column names for the result set of catalog functions.
Hiroshi Inoue [Mon, 7 Jun 2021 12:47:21 +0000 (21:47 +0900)]
Suppress compiler warnings.
Adrian Grucza [Wed, 26 May 2021 05:14:16 +0000 (15:14 +1000)]
Named parameter binding support
Hiroshi Inoue [Mon, 24 May 2021 09:20:54 +0000 (18:20 +0900)]
The commit 2e67af added a new ansi test dsn psqlodbc_test_dsn_ansi_debug. So change the way how to determine ansi test driver.
Hiroshi Inoue [Sun, 23 May 2021 11:41:50 +0000 (20:41 +0900)]
Suppress compiler warnings.
Adrian Grucza [Wed, 12 May 2021 06:50:42 +0000 (16:50 +1000)]
Allow installation and testing of a debug build of the driver (useful for debugging).
Fixed a bug in `regress.ps1` where accepting the default password of
`postgres` did not work.
Adrian Grucza [Wed, 12 May 2021 14:15:02 +0000 (00:15 +1000)]
Support fetching results from multiple refcursors * Multiple result sets are returned if multiple refcursors are found * Works with both ODBC CALL and PostgreSQL CALL syntaxes * Query must be executed in a transaction to avoid cursors being closed * Now works when output parameters are present * Added fetch-refcursors regression test
Adrian Grucza [Wed, 12 May 2021 13:16:35 +0000 (23:16 +1000)]
Remove REFCUR_SUPPORT, add FetchRefcursors setting
Aaron Spike [Tue, 27 Apr 2021 10:46:59 +0000 (19:46 +0900)]
We've noticed that the password field on the PostgreSQL Connection
dialog is always focused when empty, even when other fields that appear
earlier on the dialog (and in the tab order) are empty. This is only a
minor annoyance, but it does seem like it would be contrary to the
expectation of most users.
I would propose separating the conditional to inform the user that the
password is required, but still focus the first empty field.
Aaron Spike
Hiroshi Inoue [Tue, 11 May 2021 12:03:08 +0000 (21:03 +0900)]
Remove a mylog() call which is a dupilicate of the preceding MYLOG()
macro call.
Also direct use of mylog() should be avoided because mylog() uses lots of CPU.
Report and patch by Marko Ristola.
Hiroshi Saito [Sun, 2 May 2021 12:07:34 +0000 (21:07 +0900)]
Prep Ver 03.01.0000
Hiroshi Inoue [Fri, 23 Apr 2021 11:25:31 +0000 (20:25 +0900)]
Format check for ExtraOptions of setup dialog.
Hiroshi Inoue [Wed, 21 Apr 2021 06:39:41 +0000 (15:39 +0900)]
Prioritize DISABLE_KEEPALIVE checkbox over the disable_keepalive bit of ExtraOptions.
Hiroshi Inoue [Wed, 21 Apr 2021 03:43:30 +0000 (12:43 +0900)]
Forget to apply disable_convert_func flag to VARCHAR and LONGVARCHAR.
Hiroshi Inoue [Wed, 14 Apr 2021 04:45:00 +0000 (13:45 +0900)]
Let SQLExecute() destroy the old result first.
This change fixes the diff of insertreturning-test regression test
reported by Patrick Cheung.
Hiroshi Inoue [Wed, 7 Apr 2021 09:36:40 +0000 (18:36 +0900)]
Let SQLDescribeCol() use parsed result when the current executed result is NULL.
This change fixes the diff of prepare-test regression test reported by Mangold Fabian.
Hiroshi Inoue [Mon, 19 Apr 2021 06:25:41 +0000 (15:25 +0900)]
Add a *update returning* test case to insertreturning regression test.
The diff of the result was reported by Patrick Cheung and will be fixed
in the later commit.
Hiroshi Inoue [Mon, 19 Apr 2021 00:12:07 +0000 (09:12 +0900)]
Add a call for SQLDescribeCol() before SQLExecute() to prepare-test.
The diff of the result was reported by Mangold Fabian and will be fixed in the later commit.
Hiroshi Inoue [Thu, 8 Apr 2021 09:55:36 +0000 (18:55 +0900)]
Fix a bug of CC_send_query_append() when the ignore_roundtrip_time flag is on.
Daniel Gustafsson [Tue, 16 Feb 2021 15:01:08 +0000 (16:01 +0100)]
Refactor check for SSL connection
PQgetssl has been discouraged from use since postgres 9.5 since it
will risk false negatives if postgres supports other TLS libraries
than OpenSSL. Refactor to use PQsslInUse which has been available
since 9.5 for just this purpose.
Hiroshi Inoue [Sun, 13 Dec 2020 11:55:13 +0000 (20:55 +0900)]
Remove deprected-test from regression test. It is no longer needed
and causes compilation errors in some environments.
Hiroshi Saito [Wed, 2 Dec 2020 11:56:47 +0000 (20:56 +0900)]
fixed typo, per report Hayato Kuroda-san.
Hiroshi Saito [Thu, 19 Nov 2020 09:26:08 +0000 (18:26 +0900)]
Prep release 13.00.0000.
Hiroshi Saito [Thu, 19 Nov 2020 08:47:03 +0000 (17:47 +0900)]
fixed C99 mode.
Hiroshi Inoue [Mon, 6 Jul 2020 12:31:00 +0000 (21:31 +0900)]
Add support for CONVERT scalar function.
Hiroshi Inoue [Mon, 9 Nov 2020 04:43:35 +0000 (13:43 +0900)]
Cope with the case that openssl libraries link msvc runtimes other than libraries which psqlodbc or libpq links.
Hiroshi Inoue [Sat, 7 Nov 2020 12:43:41 +0000 (21:43 +0900)]
Fix a compilation error with vc10.
Hiroshi Inoue [Thu, 24 Sep 2020 04:44:55 +0000 (13:44 +0900)]
Call AC_CHECK_SIZEOF() or AC_CHECK_TYPES() macros at earlier stage where LIBS variable isn't set yet.
These macros compile and run some programs. On some platforms(with some linker options like
--no-as-needed in Lnux Gnu linker) the programs try to link libraries specified by LIBS variable at run time.
There are some cases that the programs fail due to missing library which is actually not needed and AC_CHECK_SIZEOF() returns 0.
Hiroshi Inoue [Wed, 23 Sep 2020 07:46:58 +0000 (16:46 +0900)]
Suppress some gcc compiler warnings.
Hiroshi Inoue [Sun, 26 Jul 2020 09:29:49 +0000 (18:29 +0900)]
Fix a compilation error with GCC 10 due to conflicting variable names.
Patch by Paul Wise.
Hiroshi Inoue [Thu, 2 Jul 2020 10:53:34 +0000 (19:53 +0900)]
A code cleaup.
Remove curr_param_result property of StatementClass and separate parsed result from the exec result.
Hiroshi Inoue [Tue, 14 Jul 2020 23:43:51 +0000 (08:43 +0900)]
Add support for development with VC16(Visual Studio 2019).
MSToolsVersion parameter of BuildAll.ps1 and of regress.ps1 are deprecated.
Hiroshi Inoue [Thu, 16 Jul 2020 11:46:18 +0000 (20:46 +0900)]
Fix compilation errors with vc10 caused by the previous commit.
Hiroshi Inoue [Fri, 26 Jun 2020 13:44:51 +0000 (22:44 +0900)]
Hold the first and last result for parametrized SQL statements with array of parameters. This would improve the performance of bulk inserts/updates etc.
Hiroshi Inoue [Wed, 24 Jun 2020 10:46:44 +0000 (19:46 +0900)]
Revise the handling of QResultClass list.
Introduce macros QR_concat(), QR_detach() and QR_next().
Hiroshi Inoue [Wed, 10 Jun 2020 04:20:27 +0000 (13:20 +0900)]
Correct the handling of SQL_ROW_ERROR and SQL_ROW_SUCCESS_WITH_INFO.
worldleaderpretend [Wed, 27 May 2020 22:11:10 +0000 (18:11 -0400)]
* Remove the single table restriction in SC_set_SS_columnkey
Hiroshi Inoue [Thu, 18 Jun 2020 23:41:21 +0000 (08:41 +0900)]
Fix a compilation error in cygwin.
worldleaderpretend [Wed, 27 May 2020 14:49:38 +0000 (10:49 -0400)]
* Fixed the way joins are identified in the parser * Added to gitignore
Hiroshi Inoue [Sat, 30 May 2020 10:28:48 +0000 (19:28 +0900)]
Oops, I forgot to place a line in a macro defintion.
Hiroshi Inoue [Sat, 30 May 2020 00:16:21 +0000 (09:16 +0900)]
Improve error reporting abuut SC_pos_reload_needed().
Hiroshi Saito [Tue, 26 May 2020 10:10:24 +0000 (19:10 +0900)]
Prep release 12.02.0000.
Hiroshi Saito [Tue, 26 May 2020 10:00:35 +0000 (19:00 +0900)]
fixed loop initial declaration used outside C99 mode.
Hiroshi Inoue [Sat, 23 May 2020 12:06:24 +0000 (21:06 +0900)]
Suppress a warning.
Hiroshi Inoue [Wed, 25 Mar 2020 06:40:54 +0000 (15:40 +0900)]
An improvement for psqlodbc developpers. Make it possible to call some shell scripts from other directories.
Hiroshi Inoue [Wed, 20 May 2020 10:57:20 +0000 (19:57 +0900)]
Add a new option IgnoreTimeout.
Some tools issue issue SQLSetStmtAttr(.., SQL_ATTR_QUERY_TIMEOUT,,) internally and sometimes it's difficult for users to change the timeout value. You can disable the timeout by turning on this option.
Hiroshi Inoue [Tue, 19 May 2020 12:22:17 +0000 (21:22 +0900)]
Add regression test for batch execution.
Hiroshi Inoue [Mon, 18 May 2020 10:54:30 +0000 (19:54 +0900)]
Change SC_execute() so that it returns a return code which is not
affetced by the preceding results. It's necessary for batch execution
with arrays of parameters.
Hiroshi Inoue [Mon, 18 May 2020 10:53:48 +0000 (19:53 +0900)]
Improve execution of parameterized SQL statements with arrays of parameters by sending chunks of SQL statements.
If SQL_ATTR_CURSOR_TYPE of an statement is SQL_CURSOR_FORWARD_ONLY, SQL_ATTR_CONCURRENCY is SQL_CONCUR_READ_ONLY and extended protocol isn't used, the batch execution of the statement is possible.
A new option Batch Size was introduced for such cases.
Batch Size: Split an array (of parameters) into chunks of Batch Size to execute statements. The last chunk may contain less than Batch Size elements. Setting 1 to this option forces the current one by one execution.
Also turn off use_server_side_prepare option temporarily when batch executuion is possible.
Hiroshi Inoue [Sun, 17 May 2020 11:29:32 +0000 (20:29 +0900)]
Ignore PQtransactionStatus PQTRANS_ACTIVE in LIBPQ_update_transaction_status().
PQTRANS_ACTIVE isn't a transaction status.
Hiroshi Inoue [Sat, 16 May 2020 04:49:48 +0000 (13:49 +0900)]
Handle notice messages in libpq_bind_and_exec(). Sets and resets a notify receiver
around PQexecParams() or PQexecPrepared().
Hiroshi Inoue [Thu, 27 Feb 2020 13:08:54 +0000 (22:08 +0900)]
Add a new *Display Optional Error Message* option. This option allows to
display error messages other than primary one.
Also add documentaition about the option and *Numeric as* option.
Hiroshi Inoue [Fri, 28 Feb 2020 04:44:44 +0000 (13:44 +0900)]
Use diff command of git bash in preference to wsl diff command.
Unfortunately >> (appending redirected output) doesn't work well with wsl.
Hiroshi Saito [Tue, 7 Jan 2020 13:26:12 +0000 (22:26 +0900)]
Prep release 12.01.0000
Hiroshi Inoue [Sun, 5 Jan 2020 02:05:57 +0000 (11:05 +0900)]
Fix param-conversion and error-rollback regression test in PG12.
Old param-conversions.out was renamed param-conversions_2.out.
Old param-conversions_1.out was renamed param-conversions_3.out.
Old error-rollback.out was renamed error-rollback_1.out.
Hiroshi Inoue [Sun, 5 Jan 2020 01:29:49 +0000 (10:29 +0900)]
Update the expected result of odbc-escapes regression test for PG12's new floating point output format.
Old odbc-escapes.out was renamed odbc-escapes_1.out.
Hiroshi Inoue [Sun, 5 Jan 2020 01:01:07 +0000 (10:01 +0900)]
Cope with the removal of pg_class.relhasoids in PG12 correctly when retrieving updatable cursors.
Hiroshi Inoue [Wed, 11 Dec 2019 11:58:16 +0000 (20:58 +0900)]
Flush stdout before exiting.
Hiroshi Inoue [Sat, 30 Nov 2019 11:16:28 +0000 (20:16 +0900)]
Fix the bug that causes Error : A parameter cannot be found that matches parameter name‘ne'.
1. Check BuildResult(the result of drivers build) before building installers.
2. Enclose the command part * Find_VSDir $vc_ver * with parentheses so that
the subsequent * -ne "" * isn't considered to be a parameter.
Hiroshi Inoue [Wed, 11 Dec 2019 03:27:07 +0000 (12:27 +0900)]
Check the format of version number in editConfiguration.ps1.
Hiroshi Inoue [Fri, 8 Nov 2019 10:00:59 +0000 (19:00 +0900)]
Fix result-conversions regression test.
1. Remove tests for abstime type because the type was removed in PG12.
2. Update results for PG12's new floating point output format.
Results for old floating point output format were moved to result-conversions_2.out and result-conversions_3.out.
Hiroshi Saito [Fri, 11 Oct 2019 13:35:43 +0000 (22:35 +0900)]
Prep release 12.00.0000
Hiroshi Inoue [Fri, 4 Oct 2019 05:51:32 +0000 (14:51 +0900)]
Silence some compiler warnings.
Hiroshi Inoue [Thu, 26 Sep 2019 11:58:28 +0000 (20:58 +0900)]
Fix a crash bug when SQLProcedureColumns() handles satisfies_hash_partition(). The proargmodes column of satisfies_hash_partition()'s pg_proc entry is not null but the proallargtypes column is null. Per report from James.wang <james.wangke@gmail.com>.
Hiroshi Inoue [Fri, 4 Oct 2019 05:48:55 +0000 (14:48 +0900)]
The macro IS_NOT_SPACE() is used for not pointers but integers.
Hiroshi Inoue [Sat, 10 Aug 2019 12:51:31 +0000 (21:51 +0900)]
Added support for scalar functions TIMESTAMPADD(), TIMESTAMPDIFF() and EXTRACT() functions.
Hiroshi Inoue [Thu, 25 Jul 2019 03:51:13 +0000 (12:51 +0900)]
Since commit 778571, SQLGetTypeInfo() filters SQL_TYPE_DATE, SQL_TYPE_TIME and SQL_TYPE_TIMESTAMP for ODBC 2.x applications. However it isn't appropriate to filter them for individual SQLGetTypeInfo(.., SQL_DATE/TIME/TIMESTAMP(9/10/11)) call because Microsoft ODBC driver manager calls SQLGetTypeInfo(.., SQL_TYPE_DATE/TIME/TIMESTAMP(91/92/93)) of ODBC 3.x drivers when ODBC 2.x applications call SQLGetTypeInfo(.., SQL_DATE/TIME/TIMESTAMP(9/10/11)).
Per report from Michael Riksman.
Hiroshi Inoue [Thu, 27 Jun 2019 12:35:42 +0000 (21:35 +0900)]
Fix the bug that SQLGetDescField() for Field SQL_DESC_COUNT returns SQLINTEGER value which should be of type SQLSMALLINT.
Hiroshi Saito [Fri, 24 May 2019 14:00:08 +0000 (23:00 +0900)]
Prep release 11.01.0000
Hiroshi Inoue [Sun, 19 May 2019 04:09:31 +0000 (13:09 +0900)]
Fix test_connection() in setup.c so that settings of conn_settings and pqopt option are reflected properly.
Hiroshi Inoue [Sun, 19 May 2019 03:55:16 +0000 (12:55 +0900)]
Bug fix: don't forget to set parameter numbers while handling escaped ODBC
functions.
Report and patch by Grant Shirreiffs.
Hiroshi Inoue [Wed, 15 May 2019 11:58:08 +0000 (20:58 +0900)]
Correct the rgbInfoValue returned by SQLGetInfo(.., SQL_NUMERIC_FUNCTIONS(SQL_SYSTEM_FUNCTIONS or SQL_STRING_FUNCTIONS, ..).
Pointed out by Grant Shirreffs.
Hiroshi Inoue [Wed, 1 May 2019 01:32:09 +0000 (10:32 +0900)]
Fix a typo in SQLForeignKeys-ResultSet-Column.
'deferrablity' should be 'DEFERRABILITY'.
Report from Alexander Roskamp.
Hiroshi Inoue [Mon, 29 Apr 2019 11:19:44 +0000 (20:19 +0900)]
Correct the rgbInfoValue returned by SQLGetInfo(SQL_LIKE_ESCAPE_CLAUSE, ..).
Pointed out by Grant Shirreffs.
Hiroshi Inoue [Mon, 29 Apr 2019 01:04:58 +0000 (10:04 +0900)]
Register drivers {PostgreSQL ANSI} and {PostgreSQL Unicode} during installation on 64bit Windows so that users could use the same connection strings in both x86 and x64 environments.
Per report from Grant Shirreffs.
Hiroshi Inoue [Sun, 28 Apr 2019 04:13:26 +0000 (13:13 +0900)]
Because the field 'relhasoids' was dropped in PG12, psqlodbc drivers would have some troubles with PG12 servers.
Report and patch by Vladimir Koković.
Hiroshi Inoue [Fri, 29 Mar 2019 07:35:22 +0000 (16:35 +0900)]
Correct the rgbInfoValue returned by SQLGetInfo(SQL_TIMEDATE_FUNCTIONS, ..).
Pointed out by Song X. Gao.
Hiroshi Saito [Sat, 17 Nov 2018 13:18:33 +0000 (22:18 +0900)]
Prep release 11.00.0000.
Hiroshi Inoue [Tue, 13 Nov 2018 11:04:05 +0000 (20:04 +0900)]
Fix a bug that SQLSpecialColumns() returns oid/xmin incorrectly when a table does not exist.
Patch by Quan Zongliang.
Hiroshi Inoue [Sat, 10 Nov 2018 00:46:32 +0000 (09:46 +0900)]
Change the default platform parameter from "x64" to "both" in Windows regression test.
Hiroshi Inoue [Wed, 7 Nov 2018 06:11:51 +0000 (15:11 +0900)]
Documentation fix.
Hiroshi Inoue [Mon, 5 Nov 2018 05:39:49 +0000 (14:39 +0900)]
In Postgresql, numeric items without precision are unlimited and there's no natural map between SQL Data types.
Add an option *Numeric(without precision) as*.