Art's Utilities Download Page
Latest Releases
- Utils2_ak is my primary package of utilities. This is the February 28, 2025 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, simplified SQL DDL, 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
version 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.
listdb5.ec - My original listdb utility. Takes advantage of an undocumented internal function inside Informix.
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 simple SQL DDL (for SELECT results).
ul.ec - A binary file unload/load utility. File format is compatible with the 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.
fix_ipa
The fix_ipa utility will automatically identify and fix outstanding in place alters in all databases by default when run with no options.
Unlike using a simple "UPDATE mytable SET col_1 = col_1;" fix_ipa only physically updates a single row on each page that has a version number
that is not the current schema version. Pages that are already in the latest schema version format are not touched so fix_ipa tends to be
faster than such an update. By only updating one row on each affected page, fix_ipa tends to use less logical log space even compared to an
update statement issued with a WHERE clause that limits rows by key to those created before the table's schema was altered. Also, fix_ipa
avoids long transaction rollbacks by committing updated pages in relatively small blocks (default 10,000 updates).
News:
February 28, 2025
ul.ec:
Fixed compile-time warnings about byte order functions ntoh* and hton* for AIX compiles.
Listdb7.ec:
Fixed compile time complaint about malloc() definition compiling on AIX w/gcc.
dostats_ng.ec:
Fixed a missing header file, stdlib.h, that affected compiles on AIX. Fixed compile time
complaint about malloc() definition compiling on AIX w/gcc
dbmove.ec: Copyright notice update.
dbping.ec:
Added option -S to report the connected server's mode and return the mode number. Updated
the Copyright notice. Fixed include for getopt.h. Platforms other than Linux do not include
getopt.h, so need to include the getopt.h that is included in utils2_ak
February 10, 2025
ul.ec:
Fixed a compile time issue due to changes in the Linux header files. Updated the Copyright notice.
January 30, 2025
fix_ipa:
Completed implementation of the -S "Silent mode" flag.
January 28, 2025:
dbcopy.ec
Remove left over diagnostic trace. Thanks to Øyvind Gjerstad for reporting this one.
January 19, 2025:
fix_ipa:
Fixed a bug in the main driver query.
dostats:
Added reporting of requesting SAMPLING SIZE to the verbose output. Fixed a warning. Updated the Copyright notice.
December 26, 2024:
Fixed the --infrastructure output for PLOG type dbspaces to eliminate free space within the PLOG space that is an
artifact of having moved the physical log within that dbspace at some point in the past. A new server built from the
myschema infrastructure output does not need that storage wasted.
November 21, 2024:
Added fix_ipa package download. Updated myschema with full V15.0 support!
November 6, 2024
Fixed handling of floating scale decimal types and a compile time warning in sqlstruct.
Myschema: Redirected CREATE ROLE and GRANT DEFAULT ROLE statements to the grant file rather than the main DDL file.
November 5, 2024
Fixed the handling of NOT NULL constraints that are marked as FILTERING in myschema.
November 1, 2024
Fixed a bug in myschema affecting disabled foreign key constraints if the constraint index is also disabled. Thanks to Øyvind Gjerstad
for bring it to my attention.
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.
!! Older change news deleted !!