Original Message:
Sent: Tue November 19, 2024 11:38 AM
From: Luis Panozzo
Subject: Informix 15 is out! Well sort of...
Hi.
I just download and installed IBM Informix 15.0.0.0 on Linux RedHat 8.9.
First dbaccess is not showing databases.
Second, I tried this code:
create table tab1 (n int, n2 int, n4 int, cc char(16));
with cte(n) as (
select 1 as n
union all
select n+1 from cte where n < 1000000
)
insert into tab1
select n,
case when mod(n,10) == 0 then n else null end,
mod(n,4),
n from cte;
It took 4 minutes to finish. But using the same scenario with IBM Informix 14.10.FC11 it took 6 seconds.
Luis Panozzo
------------------------------
Luis Panozzo
Original Message:
Sent: Tue November 19, 2024 09:53 AM
From: Andreas Legner
Subject: Informix 15 is out! Well sort of...
Hi Seb,
first of all: that new defect already got fixed - thanks for reporting!
Then to your question:
I'd say you're application will accept v15 libraries even if compiled with a pre-v15 CSDK, but as soon as you're running your code with v15 libraries, it will be considered a v15 client and the server, if enabled, would not apply any restrictions and, for instance, create any new tables in big-rowid shape - which pre-v15-clients could not access.
So you're safe as long as your code doesn't make any assumptions on the size of a BYTE/TEXT column (why would it?) and on the size of 'rowid' (ideally it doesn't rely on rowid at all, but if it does then any variables holding such rowid should now be bigint and no assumptions should be made on their content).
You're also safe as long as an upgraded (to v15) instance didn't have the v15 features enabled yet - the instance, in any client facing aspects, would still behave like v14.10.
HTH,
Andreas
------------------------------
Andreas Legner
Dev Engineer
HCL Software
Original Message:
Sent: Mon November 18, 2024 08:55 AM
From: Sebastien FLAESCH
Subject: Informix 15 is out! Well sort of...
Hello Andreas,
Thanks for the details!
What I need to know is following, because we have many platforms for porting our solution and we would like to avoid to build CSDK-version-specific binaries.
So here is my question: (assuming we do not use new V15 features of course)
If I compile our .ec source to a bin with an older CSDK like 4.50, will it be runtime-compatible when using a recent CSDK V15?
The ESQL/C API/ABI should be backward compatible.
I am willing to test, but I my Actian account has currently no permissions to download the CSDK V15 (strange because I could download HCL Informix 15 server package last day)
Seb
------------------------------
Sebastien FLAESCH
Original Message:
Sent: Mon November 18, 2024 08:41 AM
From: Andreas Legner
Subject: Informix 15 is out! Well sort of...
Hi Seb,
you obviously hit a scenario that slipped all our testing ...
But first let me try and clarify few things:
- yes, BYTE/TEXT columns consume 68 bytes within the row now instead of previously 56, well observed
- this is true for every SQL operation within the database server
- it further is true for any true v15 "big rowid" table - the size increase simply is a consequence of the embedded address now consuming more space, for storing either such big rowid, for partition blobs, or a potentially much bigger location within a blobspace
- where it is not true, i.e. the old 56 bytes size still is used, is with older, pre-existing tables or with new tables created in "non-big rowid" mode, as far as space consumption within data pages is concerned
- a non-v15/v5 client, not having any clue about big rowids, will be allowed to access "non-big rowid" tables only, and any table created by such client implicitly will be such "non-big rowid" table too (so to get to the real fun, with real big tables that v15 now allows for, you'd have to use v15 dbaccess or compile your client with v5 CSDK.)
Now neither of the two sizes really is relevant between the server and a client, the structure making up those 56 or 68 bytes, afaik, should never even go outside of the server.
The SQLI protocol violation (SQL errno 408), between v15 server and pre-v15 client, apparently is caused by this BOOLEAN <-> TEXT/BYTE combination; since it also reproduces when replacing the BOOLEAN with e.g. LVARCHAR, yet not when using simple CHAR or VARCHAR, I'm assuming the UDTish-ness of e.g. BOOLEAN and LVARCHAR is playing a role.
-> a defect is being entered in this moment.
BR,
Andreas
------------------------------
Andreas Legner
Dev Engineer
HCL Software
Original Message:
Sent: Mon November 18, 2024 06:26 AM
From: Sebastien FLAESCH
Subject: Informix 15 is out! Well sort of...
Hello all,
I can reproduce the bug with pure SQL:
$ cat xx.sql-- When using a BOOLEAN column before TEXT-- => Error 408: Invalid message type received from the sqlexec process.CREATE TEMP TABLE tt1( pkey INTEGER NOT NULL PRIMARY KEY, cbl BOOLEAN, ctx TEXT);INSERT INTO tt1 VALUES ( 101, 't', NULL );SELECT * FROM tt1;-- When using a CHAR(1) instead of BOOLEAN for second column, no issue.-- CREATE TEMP TABLE tt1( pkey INTEGER NOT NULL PRIMARY KEY, cbl CHAR(1), ctx TEXT);$ type dbaccessdbaccess is hashed (/opt3/dbs/ifx/HCL-CSDK-4.50.FC11W1/bin/dbaccess)$ dbaccess -VDB-Access Version 14.10.FC11W1$ dbaccess test1 xx.sqlDatabase selected.Temporary table created.1 row(s) inserted. 408: Invalid message type received from the sqlexec process.Error in line 6Near character position 1
Tested on Linux Debian 12, with following packages:
hcl.server.15.0.0.0.Linux.64.x86_64-TE.tar
hcl.csdk.4.50.FC11W1.LNX.tar
CLIENT_LOCALE=DB_LOCALE=en_us.utf8
Is there somewhere else where I should report this issue?
Assuming HCL and IBM work hand by hand in such case?
Note also the wrong dbaccess version showing 14.10.* ...
Seb
------------------------------
Sebastien FLAESCH
Original Message:
Sent: Mon November 18, 2024 02:56 AM
From: Sebastien FLAESCH
Subject: Informix 15 is out! Well sort of...
Hello Markus and thanks for the tip!
In fact we are using (ifx)loc_t locator structures, and I did already check diffs between esql/locator.h of IBM Informix CSDK 4.50.FC10 and HCL Informix CSDK 4.50.FC11W1:
No difference found.
It was a bit annoying because I had to edit all cosmetic changes HCL did in the header files, but the structures are the same.
I will also look at blob.h as you suggest.
But we do not include this header in our ESQL/C code: we use esql/locator.h.
BTW we experience a failure when using TEXT/BYTE types in one of our QA tests: A simple FETCH produces this error:
-408.
Invalid message type received from the sqlexec process.
This is with our Genero BDL runtime system and our Informix driver.
I will try to reproduce with a pure ESQL/C sample.
Seb
------------------------------
Sebastien FLAESCH
Original Message:
Sent: Mon November 18, 2024 02:39 AM
From: Markus Holzbauer
Subject: Informix 15 is out! Well sort of...
Hello Sebastien,
I think you can find the description / changes to that tblob structure in $INFORMIXDIR/incl/public/blob.h .
Maybe some int4 fields are added or some are changed to int8....
Cheers,
Markus
------------------------------
Markus Holzbauer
Original Message:
Sent: Sat November 16, 2024 12:15 PM
From: Sebastien FLAESCH
Subject: Informix 15 is out! Well sort of...
Hello,
I have started some tests with HCL Informix 15 + HCL Client SDK 4.50.F11W1 and thought it's worth sharing my results, assuming that we will get the same changes/issues with the IBM branded version:
The size (collength) of TEXT/BYTE has changed:
create table tab1 ( pk integer, col_text text, col_byte byte );
select colname[1,20], coltype, collength
from syscolumns where colname in ('col_text','col_byte');
Shows:
colname coltype collength
col_text 12 68
col_byte 11 68
Used to be 56 bytes in earlier versions...
Is this new size expected in V15 or is it a bug?
If it's not a bug, where can we find V15 upgrade notes with such changes listed?
Tools relying on collength=56 for TEXT/BYTE may complain...
Seb
------------------------------
Sebastien FLAESCH
Original Message:
Sent: Thu November 14, 2024 06:26 PM
From: David Williams
Subject: Informix 15 is out! Well sort of...
Hi,
Well Informix 15 is out..sort of!
https://www.actian.com/blog/databases/hcl-informix-15/
"We are thrilled to unveil HCL Informix® 15"
https://en.wikipedia.org/wiki/Informix
So we have
- IBM Informix
- HCL Informix
- HCL OneDB
So where is IBM Informix 15 then? HCL had their's out 2 days ago!
And what about OneDB? Where is the Version 15 for that?
You are having a giraffe...
David.
------------------------------
David Williams
------------------------------