Ok that's good news, and thank you for sharing the conclusion!
Sorry for the inconvenience.
As you can see the SELECT to find out if a table has a sequence trigger is not that simple and subject of mistakes.
FYI, the other bug FGL-4825 about temp tables + serial will be fixed in next 3.10 maintenance release.
I take the opportunity the remember all readers how important it is to provide the context of your application, with software version information.
If you don't tell us, we assume that you are using the very latest versions of Genero products.
Always try to provide logs (FGLSQLDEBUG for SQL issues, FGLGUIDEBUG for GUI issues, etc...) see:
http://4js.com/online_documentation/fjs-fgl-manual-html/#fgl-topics/c_fgl_logging.htmlAnd if your problem cannot be solved quickly in this forum, you will get better assistance through the regular support channel.
About Informix SERIAL emulation:
Keep in mind that SERIAL/BIGSERIAL emulation is provided to ease migration from Informix to PostgreSQL or other DB brands.
At some point, for simplification and better performances, you should consider using portable SQL features.
For auto-generated primary keys, you can for ex use SEQUENCEs as described here:
http://4js.com/online_documentation/fjs-fgl-manual-html/#fgl-topics/c_fgl_sql_programming_076.htmlTo mimic Informix SERIALs, we have to do more as normally required:
After each INSERT in a given program instance, we have to execute the SELECT to check if a trigger/sequence exists for the table, in order to fill SQLCA.SQLERRD[2].
This is optimized: If no serial is found we consider that the table has no serial column and no SELECT will be done after the next INSERT for this table.
But to be 100% Informix compatible with SQLCA.SQLERRD[2] we have no other way...
We could eventually use the .sch schema file to identify what tables have serials but then you would need to ship the .sch file in your application program files.
And that introduces another dependency and complexity.
Compared to a little SELECT after first INSERT it's really not a big cost.
Understand how it works under the cover, and consider suggestions we provide in the SQL Portability chapter.
Once you are using portable SQL, you can disable the corresponding Informix emulation with dbi.database.* FGLPROFILE entries:
http://4js.com/online_documentation/fjs-fgl-manual-html/#fgl-topics/c_fgl_Connections_015.htmlCheers!
Seb