Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Squash commits of devel branch DEV_0_6_0 in preparation for release R…
…EL0_6_0. commit 0357237df15ffe16e4a73ca5835143d1973afa63 Author: Bernd Helmle <[email protected]> Date: Sat Aug 5 14:10:03 2023 +0000 Follow up fix for issue credativ#31. Commit 285119f partially fixed our architecture thinko regarding query planning, but it turned out that we have the same issue in ifxGetForeignRelSize(). The former idea was to cache all informix objects created during the planning phase for execution later, since we rely on query statistics by using the query descriptors. We created them in ifxGetForeignRelSize() and reused these objects in ifxPlanForeignModify() later. But ifxGetForeignRelSize() isn't necessarily called, so ifxPlanForeignModify() needs to take care whether the objects are usable directly or still need to be created. I just copied the code from ifxGetForeignRelSize() without moving it into a dedicated function, which fixes the problem. It might be more pretty to have it in a dedicated function, but leave it as-is for now. Regression tests are extended to have trigger tests as described in issue credativ#31. commit db73ab94c94d77d3d56590933c7a3dd1c66d1f5a Author: Bernd Helmle <[email protected]> Date: Mon Jul 24 16:37:43 2023 +0000 Fix longstanding bug in issue credativ#31. The issue describe here httpg://github.com/credativ/issues/31 uncovered an unfortunate mistake in our approach on how we plan a modify action. Formerly, ifxPlanForeignModify() was also responsible to create and execute the necessary query objects on the remote Informix server (like describing the statement and thus creating the required SQLDA structure). In this issue above it turned out that we are far too optimistic in doing this preparation work at this early stage: ifxPlanForeignModify() might not be called once a prepared statement settles the execution plan and thus we miss important things like creating and describing the statement handles. To fix this, we need to delay creating of query objects on the remote Informix server to ifxBeginForeignModify(), which is now responsible to create and describe the statement. ifxPlanForeignModify() still creates all required identifiers for query objects (like cursor, statement handle, ...), but this leaves us after the plan settled with a static reference counter (refid) used in the identifiers. I think this isn't a problem here, since afaics the refid can't be reused somewhere else at this point. This might be wrong, but since we pass regression tests at this point i leave it for now. commit 3fdfab57056c454738c99279f1d9dbfad5e9c0e0 Author: Bernd Helmle <[email protected]> Date: Thu Jul 20 16:41:31 2023 +0000 Update and correct README. commit b2798e3f4866c851dc20dc4d0109d66f58dda3dc Author: Bernd Helmle <[email protected]> Date: Thu Jul 20 16:07:41 2023 +0000 Fix copy&paste error. commit 67eed75976efa40f17b5452b373fb732ed088c11 Author: Bernd Helmle <[email protected]> Date: Thu Jul 20 15:56:46 2023 +0000 Follow up commit for backward compatibility. HASH_STRINGS is available as dynahash flag beginning with PG14, so handle it accordingly. commit ab2b38f5fd714acced49c9c6bac2a462a977d76d Author: Bernd Helmle <[email protected]> Date: Thu Jul 20 10:21:08 2023 +0000 Fix compile issues caused by changes made for PG16 support. commit 1f71169f36d121260ec4b27c106d54c04ca4e24a Author: Bernd Helmle <[email protected]> Date: Thu Jul 20 09:59:12 2023 +0000 Support PostgreSQL 16. Including commit 76a08e2 this introduces support for the upcoming new major release 16 of PostgreSQL. Commit a61b1f74823c9c4f79c95226a461f1e7a367764b reworked the relation permission checking infrastructure in PostgreSQL which forces us to cope with them properly. No new features yet and needs testing against all supported older major releases (as of this commit these are 10, 11, 12, 13, 14, 15). commit fc137b2c258ecc21cc1290da33417b04780abf5f Author: Bernd Helmle <[email protected]> Date: Thu Jul 20 09:56:01 2023 +0000 Make HASH_STRINGS in connection cache explicit. Starting with PostgreSQL 16 dynahash's implementation forces explicit usage of HASH_STRINGS when creating the hash table we use for storing Informix connection handles. Since the lookup key is the connection identifier composed by strings up to IFX_CONNAME_LEN, we must set HASH_STRINGS accordingly, otherwise we run into an assertion failure.
- Loading branch information