Ul
Utility: ul.ec Synopsis: Unload a select set to a disk file(s) in a portable binary file format or load such a file into an insert statement. BLOB support incomplete (unload side only and not debugged yet) to be completed in future version. CLOB support also needs to be done along with UDT, collections, multisets, etc. Author(s): Art S. Kagel & Art Taylor Version(s) supported: 5.xx, 6.0x, 7.xx Revision: 1.38 File(s): ul.ec Comments: Revision 1.38 fixed the platform detection for HPUX systems. Revisions 1.36 & 1.37 fix large file support on HP platforms. Revision 1.35 contains some minor fixes to allow compilation on new HPUX/ia64 systems. Revision 1.34 restores the source compatibility with ESQL/C 7.xx and C4GL 7.xx! The code now uses a parallel array of qualifiers to hold qualifiers for DATETIME and INTERVAL fields. Revision 1.33 just improves portability. Seems HP places the NBO functions in a different header than every other UNIX. Probably some sad BSD leftover. Ahh well. Revisions 1.24-1.32 FINALLY fix the binary loading and unloading of DATETIME and INTERVAL columns! Also swabbed the three binary fields in the dec_t structure on output/input so the output of DECIMAL and MONEY columns is portable. Also Rev 1.31 should have fixed the problem compiling on AIX with newer SDK versions. This broke ESQL 7.xx and c4gl 7.xx compatibility. Revisions 1.17-1.23 fix a few bugs and implement a portable file format. You can now unload data on LittleEndian platforms like Intel and reload on BigEndian platforms like Sparc, PARisc, & PowerPC. Disabled binary DATETIME unloading, I still cannot get this to work reliably and the text unload only takes one extra byte for YEAR TO FRACTION(5). Also somewhere in here BLOB support was quietly completed. Known problems: The compatibility mode supports an old bug in the original version and is only interesting for Bloomberg users needing to emulate that version's input/output files. There is a UNIX Text Utilities filter, ul, that underlines a text stream so the naming of this utility is unfortunate. Maybe bload is a better name. If typing 'man ...' gets you ul's help text you need to rename it. When linking ul.ec on most System V derived UNIX systems you will need to include libgen.a (-lgen). This is not true on most BSD derived UNIX versions such as AIX, FreeBSD, and Linux as the contents of System V's libgen are in libc instead on these systems. Future: Maybe support for UDTs and complex types.