Oninit® SQLMorph — Overview
Oninit® SQLMorph converts Informix SPL into compiled C UDRs that drop in under the same procedure name as the source SPL — your applications never know the difference. The same SPL source also converts to MSSQL T-SQL, MySQL stored routines, and Oracle PL/SQL, so a single canonical SPL becomes the input for every target dialect at build time. Generated output is plain source files (.c / .sql) that check into your repository alongside the SPL itself.
It provides:
| Feature | Detail |
|---|---|
| Compiled C UDRs | Registered via EXTERNAL NAME 'sqlmorph.so(<name>)' LANGUAGE C. The generated install SQL drops the SPL of the same name and registers the C UDR transparently; existing callers stay unchanged. |
| Multi-vendor SQL output | From one SPL source. Six backends (informix-udr / java / mssql / mysql / oracle / db2) consume the same parsed IR — switch target with a CLI flag, no source rewrite. |
| Iterator UDR support | WITH RESUME, FOREACH streaming cursors. Generated UDRs are reentrant per the DataBlade SET_INIT / SET_RETONE / SET_END contract, with per-procedure state allocated PER_COMMAND. |
| Per-procedure REPORT.md | For every construct that needs manual review. Anything the converter can't auto-translate is flagged with file:line and a one-line note — no silent drops. |
| Canonical Makefile | Links every emitted .c in a directory into one shared object (default sqlmorph.so). Drop the bundle into any build dir, run make, then make IFXDB=mydb install — ready to call. |
SPL in.
Native compiled C UDRs out — under the same procedure names.