Art's Utilities Download Page
Latest Gamma Level Releases
Utils2_ak is my primary package of utilities. This is the September 27, 2024 release.
Included:
dbping.ec - Tests connections and reports connection time as well as the actual host and servername connected as well as which alias was used for
the connection. These reports are important for testing DBPATH, connection groups, and Connection Manager behavior as well as verifying
server failover.
dbcopy.ec - Copy data from table to table directly across databases, servers, instances, versions, even between databases at different logging levels
without worrying about long transaction rollbacks.
dbdelete.ec - Delete large amounts of data from a table FAST without risking long transaction rollbacks.
dbmove.ec - Another data copy utility using the methods the dbdelete uses. Can copy some data that dbcopy cannot.
dbsavail.ec - Summary dbspace report. Reports used and free space in pages, KB, and percent. Optional chunk detail.
dbscript.ec - Generate SQL, scripts, or OS commands to run against all or some of the tables in your database.
dbstruct.ec - Generate data structures from your database for C, C++, ESQL/C, Structured FORTRAN, or x4GL.
dostats_ng.ec - The original and still the best way to automate your update statistics runs. The original dostats.ec source is included for servers older than
10.00.
drive_dostats - Divide and conquer. Runs multiple copies of dostats updating a subset list of your tables. If you have the cores to spare, get the job done
faster.
listdb7.ec - Displays details about your databases and tables and indexes.
mydbdiff - Script to compare two schema files or a schema file to a live schema.
myschema - My dbschema replacement utility. Does everything that dbschema does except display data distributions (dbschema -hd) and much more.
Many many options to tune its behavior
printfreeB.ec - Print out a table detail report similar to oncheck -pT
sqlstruct.ec - Generate data structures from SQL statements including input and output structures for SELECT, INSERT, DELETE, and UPDATE statements.
Options to generate C, C++, ESQL/C, 4GL, or SQL DDL (for SELECT).
ul.ec - A binary file unload/load utility. File format is compatible with external table "INFORMIX" format and portable between processor
architectures.
README.1st - Reports what features and fixes are included in each utility.
BUILDING - Describes how to build utils2_ak on each platform and compiler environment. Tells what changes need to be made to the makefiles for
each.
Myexport is my replacement for dbexport and dbimport. These scripts optionally use external tables or the Informix High Performance Loader to unload and load data much faster than dbexport/dbimport without locking the database. Options include parallel export and import, NOVALIDATE data loading, constraint filtering, user selected isolation level, running dostats after the load, compressed unload files, dbexport & dbimport compatibility, dbspace mapping binary export and import (not compatible with dbimport).
The package includes:
myexport - Drop in replacement for dbexport
myimport - Drop in replacement for dbimport
ak_launcher.c - Used by myimport
from_external.awk - Used by myimport to pre-process a dbexport data set for loading via external tables.
Sample dbspace mapping files.
ratios.shr_ak is a package of metric calculations that I use to quickly evaluate the health of a running Informix system. It includes a stored procedure, ratios(), that is installed in sysmaster and a script, newratios.ksh, that retrieves the data calculated by the ratios proc and formats a report.
Scripts_ak: This package contains 17 scripts that I have found to be particularly useful. The package includes a file, scripts_doc.txt, describing each script.
This is a tar file.
ar2: This is a portable archiver that writes and reads multiple formats of ar archives. It can read and write Posix/Linux/System V format, AIX extended format, and BSD format archives. If you are using AIX or some older HP/UX systems you will need ar2 in order to extract the source for myschema from its Posix format ar archive. Note: Currently utils2_ak is being distributed in zip format so ar2 is no longer required.
Included:
dbping.ec - Tests connections and reports connection time as well as the actual host and servername connected as well as which alias was used for
the connection. These reports are important for testing DBPATH, connection groups, and Connection Manager behavior as well as verifying
server failover.
dbcopy.ec - Copy data from table to table directly across databases, servers, instances, versions, even between databases at different logging levels
without worrying about long transaction rollbacks.
dbdelete.ec - Delete large amounts of data from a table FAST without risking long transaction rollbacks.
dbmove.ec - Another data copy utility using the methods the dbdelete uses. Can copy some data that dbcopy cannot.
dbsavail.ec - Summary dbspace report. Reports used and free space in pages, KB, and percent. Optional chunk detail.
dbscript.ec - Generate SQL, scripts, or OS commands to run against all or some of the tables in your database.
dbstruct.ec - Generate data structures from your database for C, C++, ESQL/C, Structured FORTRAN, or x4GL.
dostats_ng.ec - The original and still the best way to automate your update statistics runs. The original dostats.ec source is included for servers older than
10.00.
drive_dostats - Divide and conquer. Runs multiple copies of dostats updating a subset list of your tables. If you have the cores to spare, get the job done
faster.
listdb7.ec - Displays details about your databases and tables and indexes.
mydbdiff - Script to compare two schema files or a schema file to a live schema.
myschema - My dbschema replacement utility. Does everything that dbschema does except display data distributions (dbschema -hd) and much more.
Many many options to tune its behavior
printfreeB.ec - Print out a table detail report similar to oncheck -pT
sqlstruct.ec - Generate data structures from SQL statements including input and output structures for SELECT, INSERT, DELETE, and UPDATE statements.
Options to generate C, C++, ESQL/C, 4GL, or SQL DDL (for SELECT).
ul.ec - A binary file unload/load utility. File format is compatible with external table "INFORMIX" format and portable between processor
architectures.
README.1st - Reports what features and fixes are included in each utility.
BUILDING - Describes how to build utils2_ak on each platform and compiler environment. Tells what changes need to be made to the makefiles for
each.
Myexport is my replacement for dbexport and dbimport. These scripts optionally use external tables or the Informix High Performance Loader to unload and load data much faster than dbexport/dbimport without locking the database. Options include parallel export and import, NOVALIDATE data loading, constraint filtering, user selected isolation level, running dostats after the load, compressed unload files, dbexport & dbimport compatibility, dbspace mapping binary export and import (not compatible with dbimport).
The package includes:
myexport - Drop in replacement for dbexport
myimport - Drop in replacement for dbimport
ak_launcher.c - Used by myimport
from_external.awk - Used by myimport to pre-process a dbexport data set for loading via external tables.
Sample dbspace mapping files.
ratios.shr_ak is a package of metric calculations that I use to quickly evaluate the health of a running Informix system. It includes a stored procedure, ratios(), that is installed in sysmaster and a script, newratios.ksh, that retrieves the data calculated by the ratios proc and formats a report.
Scripts_ak: This package contains 17 scripts that I have found to be particularly useful. The package includes a file, scripts_doc.txt, describing each script.
This is a tar file.
ar2: This is a portable archiver that writes and reads multiple formats of ar archives. It can read and write Posix/Linux/System V format, AIX extended format, and BSD format archives. If you are using AIX or some older HP/UX systems you will need ar2 in order to extract the source for myschema from its Posix format ar archive. Note: Currently utils2_ak is being distributed in zip format so ar2 is no longer required.
News:
September 27, 2024
I added some notes about how to produce a static link of the utilities in utils2_ak to the Makefile and myschema.mk.norcs
files when using versions of GCC later than v7.xx. The CSDK libraries are compiled with GCC v4.3x and so the static libraries
included with the CSDK are not compatible with the code produced by default by GCC v8 and later (the current release is GCC v13).
Also the basename() function (used by the ul.ec utility) was moved from libgen.a to libc.a requiring a change to the compile
line for that utility. The suggested changes to the two make files will resolve the issue.
June 3, 2024
Dbdelete: New option -Q to suppress only the running count messages. Fixed the -I option to work properly.
Dbstruct: New option -L to only generate a list of column names with their types.
May 24, 2024
Myschema: Added new feature. Option --flag-functional to print out a comment following indexes that contain functional keys.
May 8, 2024
A typo in the usage message from dbdelete was corrected and all compiler warnings corrected.
Myschema includes some bug fixes and new features:
- Fixed LOB locator option printout.
- Removed -u/"unencrypted" from additional chunks in --infrastructure output.
- Stripped trailing spaces from the end of procedure/function definitions. Thanks to Doug Lawry for the suggestion.
- New option --no-sequence-init to suppress the ALTER statement that sets a sequence to its current value. Thanks to Doug Lawry for the suggestion.
- New option --no-er-columns to suppress printing ER related special columns such as ERKEY, REPLCHECK, VERCOLS, & CRCOLS. Thanks to Paul Watson for this suggestion.
- New option --suppress-audit to suppress the WITH AUDIT option in CREATE TABLE statements for audited tables. Thanks to Paul Watson for this suggestion.
- Fixed --infrastructure output to correctly display the metadata sizing (-Ms) for Smart BLOBSpaces. Was displaying the same incorrect values that dbschema -c displays. Thanks to Tom Beebe for discovering the issue, reporting it to me and opening a PMR to get it fixed in dbschema.
December 5, 2023
Patched several bugs in different versions of the ratios() procedure. Updated the default procedure
installation file, ratios.sql, to support a new RAU calculation that depends on new sysmaster tables
that first appear in Informix v14.10.FC8 (and will presumably appear in OneDB v3.0). If you are using
Informix v14.10.FC7 or earlier, Informix v12.10, or OneDB v2.x install the ratios.1410.preFC8.sql instead.
Thanks to Dennis Melnikov for pointing out the most of the bugs and providing a fix.
December 1, 2023
Fixed the ratios.11.70.sql script. The stored procedure name was incorrect. Also fixed the auto-extract
installer to offer the correct README file.
November 23, 2023
Added version & copyright to the verbose 2+ output in dostats. Thanks to Chris Karsten for the suggestion.
November 16, 2023
Myschema: Fixed the reported length of LVARCHAR type columns when the multibyte flag is set.
Fixed routine parameter lists in GRANT and REVOKE statements for stored routines that contain complex
parameters. Thanks to Davorin Kremenjas for reporting these issues.
October 26, 2023
Added more diagnostics to dostats_ng.ec.
Thank you to David Williams for adding a missing error check and enhancing all error messages in dbdelete.ec.
August 30, 2023
Added support for default attributes (logging/non-logged, tracking access time/no tracking) for smart
blobspaces when using --infrastructure to generate an infrastructure script.
March 29, 2023
Updated getopt.c and dbdelete.ec to better support compiling on Windows. Also, repackaged utils2_ak in a
.zip file instead of using an ar archive for the myschema source.
February 22, 2023
Fixed an issue in myschema causing incorrect PUT clauses for tables with BLOB and CLOB type columns that
have CRCOLS defined on them. Fixed a bug in the myschema makefiles. Also I have added the source package
for my portable ar utility, ar2, here for download. You will need it to extract the myschema source on AIX.
January 18, 2023
Updated the Usage description of --include-owner option to document that this option affects
both tables and procedures/functions.
January 10, 2023
Fixed a issue with VIEWs under user name filtering options (-O, --set-owner,--use-table-owner,
& --use-database-owner) stripping commas from the SELECT statement that follow closing
quotes. Thanks to Øyvind Gjerstad for reporting the issue.
!! Older change news deleted !!