SELECT trim(A.owner) AS parentCatalog, trim(A.owner) AS parentSchema, A.tabname AS objectName , tabType AS tableType
FROM informix.systables A
WHERE A.tabType IN ('T', 'V')
ORDER BY parentCatalog, parentSchema, objectName
SELECT trim(A.owner) AS parentCatalog, trim(A.owner) AS parentSchema, A.tabname AS objectName , tabType AS tableType
FROM informix.systables A
WHERE A.tabType IN ('T')
ORDER BY parentCatalog, parentSchema, objectName
SELECT trim(A.owner) AS parentCatalog, trim(A.owner) AS parentSchema, A.tabname AS objectName , tabType AS tableType
FROM informix.systables A
WHERE A.tabType IN ('V')
ORDER BY parentCatalog, parentSchema, objectName
SELECT parentCatalog, parentSchema, parentObject, columnName
, TO_CHAR(CASE
WHEN datatype = 0 THEN 'char'
WHEN datatype = 1 THEN 'smallint'
WHEN datatype = 2 THEN 'integer'
WHEN datatype = 3 THEN 'float'
WHEN datatype = 4 THEN 'smallfloat'
WHEN datatype = 5 THEN 'decimal'
WHEN datatype = 6 THEN 'serial'
WHEN datatype = 7 THEN 'date'
WHEN datatype = 8 THEN 'money'
WHEN datatype = 9 THEN 'null'
WHEN datatype = 10 THEN 'datetime'
WHEN datatype = 11 THEN 'byte'
WHEN datatype = 12 THEN 'text'
WHEN datatype = 13 THEN 'varchar'
WHEN datatype = 14 THEN 'interval'
WHEN datatype = 15 THEN 'nchar'
WHEN datatype = 16 THEN 'nvarchar'
WHEN datatype = 17 THEN 'int8'
WHEN datatype = 18 THEN 'serial8'
WHEN datatype = 19 THEN 'set'
WHEN datatype = 20 THEN 'multiset'
WHEN datatype = 21 THEN 'list'
WHEN datatype = 22 THEN 'row'
WHEN datatype = 23 THEN 'collection'
WHEN datatype = 24 THEN 'rowref'
WHEN datatype = 40 THEN 'variable-length opaque type'
WHEN datatype = 41 THEN 'fixed-length opaque type'
WHEN datatype = 4118 THEN 'named row type'
ELSE 'unknown'
END ) AS datatype
, colLength
, CASE WHEN datatype IN('5', '8') THEN colPrecision ELSE 0 END AS colPrecision
, CASE WHEN datatype IN('5', '8') THEN colScale ELSE 0 END as colScale, isNullable
, defaultValue, collationSequence, description
FROM (
SELECT trim(A.owner) AS parentCatalog, trim(A.owner) AS parentSchema, A.tabname AS parentObject, B.colname columnName
, CASE WHEN B.coltype >= 256 THEN B.coltype - 256 ELSE B.coltype END AS datatype, B.collength AS colLength
, round(B.collength / 256) AS colPrecision, mod(B.collength, 256) AS colScale
, CASE WHEN B.coltype >= 256 THEN '0' ELSE '1' END AS isNullable, '' AS defaultValue, '' AS characterSet, '' AS collationSequence, '' AS description
FROM informix.syscolumns B, informix.systables A
WHERE A.tabid > 99 AND tabType IN ('T', 'V')
AND A.tabid = B.tabid
ORDER BY parentCatalog, parentSchema, parentObject, B.colno)
SELECT parentCatalog, parentSchema, parentObject, objectName, columnRef, description FROM
(SELECT trim(A.owner) AS parentCatalog, trim(A.owner) AS parentSchema, C.tabname AS parentObject, A.constrname AS objectName, D.colname AS columnRef, '' description, d.colno colsequence
FROM informix.sysconstraints A, informix.sysindexes B, informix.systables C, informix.syscolumns D
WHERE A.constrtype in ('U', 'P')
AND A.idxname = B.idxname AND B.part1 > 0
AND B.tabid = C.tabid
AND B.tabid = D.tabid
AND B.part1 = D.colno
UNION
SELECT trim(A.owner) AS parentCatalog, trim(A.owner) AS parentSchema, C.tabname AS parentObject, A.constrname AS objectName, D.colname AS columnRef, '' description, d.colno colsequence
FROM informix.sysconstraints A, informix.sysindexes B, informix.systables C, informix.syscolumns D
WHERE A.constrtype in ('U', 'P')
AND A.idxname = B.idxname AND B.part2 > 0
AND B.tabid = C.tabid
AND B.tabid = D.tabid
AND B.part2 = D.colno
UNION
SELECT trim(A.owner) AS parentCatalog, trim(A.owner) AS parentSchema, C.tabname AS parentObject, A.constrname AS objectName, D.colname AS columnRef, '' description, d.colno colsequence
FROM informix.sysconstraints A, informix.sysindexes B, informix.systables C, informix.syscolumns D
WHERE A.constrtype in ('U', 'P')
AND A.idxname = B.idxname AND B.part3 > 0
AND B.tabid = C.tabid
AND B.tabid = D.tabid
AND B.part3 = D.colno
UNION
SELECT trim(A.owner) AS parentCatalog, trim(A.owner) AS parentSchema, C.tabname AS parentObject, A.constrname AS objectName, D.colname AS columnRef, '' description, d.colno colsequence
FROM informix.sysconstraints A, informix.sysindexes B, informix.systables C, informix.syscolumns D
WHERE A.constrtype in ('U', 'P')
AND A.idxname = B.idxname AND B.part4 > 0
AND B.tabid = C.tabid
AND B.tabid = D.tabid
AND B.part4 = D.colno
UNION
SELECT trim(A.owner) AS parentCatalog, trim(A.owner) AS parentSchema, C.tabname AS parentObject, A.constrname AS objectName, D.colname AS columnRef, '' description, d.colno colsequence
FROM informix.sysconstraints A, informix.sysindexes B, informix.systables C, informix.syscolumns D
WHERE A.constrtype in ('U', 'P')
AND A.idxname = B.idxname AND B.part5 > 0
AND B.tabid = C.tabid
AND B.tabid = D.tabid
AND B.part5 = D.colno
UNION
SELECT trim(A.owner) AS parentCatalog, trim(A.owner) AS parentSchema, C.tabname AS parentObject, A.constrname AS objectName, D.colname AS columnRef, '' description, d.colno colsequence
FROM informix.sysconstraints A, informix.sysindexes B, informix.systables C, informix.syscolumns D
WHERE A.constrtype in ('U', 'P')
AND A.idxname = B.idxname AND B.part6 > 0
AND B.tabid = C.tabid
AND B.tabid = D.tabid
AND B.part6 = D.colno
UNION
SELECT trim(A.owner) AS parentCatalog, trim(A.owner) AS parentSchema, C.tabname AS parentObject, A.constrname AS objectName, D.colname AS columnRef, '' description, d.colno colsequence
FROM informix.sysconstraints A, informix.sysindexes B, informix.systables C, informix.syscolumns D
WHERE A.constrtype in ('U', 'P')
AND A.idxname = B.idxname AND B.part7 > 0
AND B.tabid = C.tabid
AND B.tabid = D.tabid
AND B.part7 = D.colno
UNION
SELECT trim(A.owner) AS parentCatalog, trim(A.owner) AS parentSchema, C.tabname AS parentObject, A.constrname AS objectName, D.colname AS columnRef, '' description, d.colno colsequence
FROM informix.sysconstraints A, informix.sysindexes B, informix.systables C, informix.syscolumns D
WHERE A.constrtype in ('U', 'P')
AND A.idxname = B.idxname AND B.part8 > 0
AND B.tabid = C.tabid
AND B.tabid = D.tabid
AND B.part8 = D.colno
UNION
SELECT trim(A.owner) AS parentCatalog, trim(A.owner) AS parentSchema, C.tabname AS parentObject, A.constrname AS objectName, D.colname AS columnRef, '' description, d.colno colsequence
FROM informix.sysconstraints A, informix.sysindexes B, informix.systables C, informix.syscolumns D
WHERE A.constrtype in ('U', 'P')
AND A.idxname = B.idxname AND B.part9 > 0
AND B.tabid = C.tabid
AND B.tabid = D.tabid
AND B.part9 = D.colno
UNION
SELECT trim(A.owner) AS parentCatalog, trim(A.owner) AS parentSchema, C.tabname AS parentObject, A.constrname AS objectName, D.colname AS columnRef, '' description, d.colno colsequence
FROM informix.sysconstraints A, informix.sysindexes B, informix.systables C, informix.syscolumns D
WHERE A.constrtype in ('U', 'P')
AND A.idxname = B.idxname AND B.part10 > 0
AND B.tabid = C.tabid
AND B.tabid = D.tabid
AND B.part10 = D.colno
UNION
SELECT trim(A.owner) AS parentCatalog, trim(A.owner) AS parentSchema, C.tabname AS parentObject, A.constrname AS objectName, D.colname AS columnRef, '' description, d.colno colsequence
FROM informix.sysconstraints A, informix.sysindexes B, informix.systables C, informix.syscolumns D
WHERE A.constrtype in ('U', 'P')
AND A.idxname = B.idxname AND B.part11 > 0
AND B.tabid = C.tabid
AND B.tabid = D.tabid
AND B.part11 = D.colno
UNION
SELECT trim(A.owner) AS parentCatalog, trim(A.owner) AS parentSchema, C.tabname AS parentObject, A.constrname AS objectName, D.colname AS columnRef, '' description, d.colno colsequence
FROM informix.sysconstraints A, informix.sysindexes B, informix.systables C, informix.syscolumns D
WHERE A.constrtype in ('U', 'P')
AND A.idxname = B.idxname AND B.part12 > 0
AND B.tabid = C.tabid
AND B.tabid = D.tabid
AND B.part12 = D.colno
UNION
SELECT trim(A.owner) AS parentCatalog, trim(A.owner) AS parentSchema, C.tabname AS parentObject, A.constrname AS objectName, D.colname AS columnRef, '' description, d.colno colsequence
FROM informix.sysconstraints A, informix.sysindexes B, informix.systables C, informix.syscolumns D
WHERE A.constrtype in ('U', 'P')
AND A.idxname = B.idxname AND B.part13 > 0
AND B.tabid = C.tabid
AND B.tabid = D.tabid
AND B.part13 = D.colno
UNION
SELECT trim(A.owner) AS parentCatalog, trim(A.owner) AS parentSchema, C.tabname AS parentObject, A.constrname AS objectName, D.colname AS columnRef, '' description, d.colno colsequence
FROM informix.sysconstraints A, informix.sysindexes B, informix.systables C, informix.syscolumns D
WHERE A.constrtype in ('U', 'P')
AND A.idxname = B.idxname AND B.part14 > 0
AND B.tabid = C.tabid
AND B.tabid = D.tabid
AND B.part14 = D.colno
UNION
SELECT trim(A.owner) AS parentCatalog, trim(A.owner) AS parentSchema, C.tabname AS parentObject, A.constrname AS objectName, D.colname AS columnRef, '' description, d.colno colsequence
FROM informix.sysconstraints A, informix.sysindexes B, informix.systables C, informix.syscolumns D
WHERE A.constrtype in ('U', 'P')
AND A.idxname = B.idxname AND B.part15 > 0
AND B.tabid = C.tabid
AND B.tabid = D.tabid
AND B.part15 = D.colno
UNION
SELECT trim(A.owner) AS parentCatalog, trim(A.owner) AS parentSchema, C.tabname AS parentObject, A.constrname AS objectName, D.colname AS columnRef, '' description, d.colno colsequence
FROM informix.sysconstraints A, informix.sysindexes B, informix.systables C, informix.syscolumns D
WHERE A.constrtype in ('U', 'P')
AND A.idxname = B.idxname AND B.part16 > 0
AND B.tabid = C.tabid
AND B.tabid = D.tabid
AND B.part16 = D.colno
ORDER BY parentCatalog, parentSchema, parentObject, objectName, colsequence)
SELECT foreignKeyCatalog AS parentCatalog, foreignKeySchema AS parentSchema, parentObject, foreignKeyName, exportedColumnRef, colSequence, foreignKeyCatalog AS importedCatalog, foreignKeySchema AS importedSchema, importedTable, importedKey, '' importedColumn, description
FROM
( SELECT '' AS foreignKeyCatalog, trim(XA.owner) AS foreignKeySchema, XC.tabname AS parentObject, XA.constrname AS foreignKeyName, PKTAB.tabname importedTable, PKC.constrname importedKey
, XD.colname AS exportedColumnRef, '' description, XD.colno colsequence
FROM informix.sysconstraints XA, informix.sysindexes XB, informix.systables XC, informix.syscolumns XD, informix.sysreferences XE, informix.sysconstraints PKC, informix.systables PKTAB
WHERE XA.constrtype in ('R')
AND XA.idxname = XB.idxname AND XB.part1 > 0
AND XB.tabid = XC.tabid
AND XB.tabid = XD.tabid
AND XB.part1 = XD.colno
AND XA.constrid = XE.constrid
AND PKC.constrid = XE.primary AND XE.ptabid = PKTAB.tabid
UNION
SELECT '' AS foreignKeyCatalog, trim(XA.owner) AS foreignKeySchema, XC.tabname AS parentObject, XA.constrname AS foreignKeyName, PKTAB.tabname importedTable, PKC.constrname importedKey
, XD.colname AS exportedColumnRef, '' description, XD.colno colsequence
FROM informix.sysconstraints XA, informix.sysindexes XB, informix.systables XC, informix.syscolumns XD, informix.sysreferences XE, informix.sysconstraints PKC, informix.systables PKTAB
WHERE XA.constrtype in ('R')
AND XA.idxname = XB.idxname AND XB.part2 > 0
AND XB.tabid = XC.tabid
AND XB.tabid = XD.tabid
AND XB.part2 = XD.colno
AND XA.constrid = XE.constrid
AND PKC.constrid = XE.primary AND XE.ptabid = PKTAB.tabid
UNION
SELECT '' AS foreignKeyCatalog, trim(XA.owner) AS foreignKeySchema, XC.tabname AS parentObject, XA.constrname AS foreignKeyName, PKTAB.tabname importedTable, PKC.constrname importedKey
, XD.colname AS exportedColumnRef, '' description, XD.colno colsequence
FROM informix.sysconstraints XA, informix.sysindexes XB, informix.systables XC, informix.syscolumns XD, informix.sysreferences XE, informix.sysconstraints PKC, informix.systables PKTAB
WHERE XA.constrtype in ('R')
AND XA.idxname = XB.idxname AND XB.part3 > 0
AND XB.tabid = XC.tabid
AND XB.tabid = XD.tabid
AND XB.part3 = XD.colno
AND XA.constrid = XE.constrid
AND PKC.constrid = XE.primary AND XE.ptabid = PKTAB.tabid
UNION
SELECT '' AS foreignKeyCatalog, trim(XA.owner) AS foreignKeySchema, XC.tabname AS parentObject, XA.constrname AS foreignKeyName, PKTAB.tabname importedTable, PKC.constrname importedKey
, XD.colname AS exportedColumnRef, '' description, XD.colno colsequence
FROM informix.sysconstraints XA, informix.sysindexes XB, informix.systables XC, informix.syscolumns XD, informix.sysreferences XE, informix.sysconstraints PKC, informix.systables PKTAB
WHERE XA.constrtype in ('R')
AND XA.idxname = XB.idxname AND XB.part4 > 0
AND XB.tabid = XC.tabid
AND XB.tabid = XD.tabid
AND XB.part4 = XD.colno
AND XA.constrid = XE.constrid
AND PKC.constrid = XE.primary AND XE.ptabid = PKTAB.tabid
UNION
SELECT '' AS foreignKeyCatalog, trim(XA.owner) AS foreignKeySchema, XC.tabname AS parentObject, XA.constrname AS foreignKeyName, PKTAB.tabname importedTable, PKC.constrname importedKey
, XD.colname AS exportedColumnRef, '' description, XD.colno colsequence
FROM informix.sysconstraints XA, informix.sysindexes XB, informix.systables XC, informix.syscolumns XD, informix.sysreferences XE, informix.sysconstraints PKC, informix.systables PKTAB
WHERE XA.constrtype in ('R')
AND XA.idxname = XB.idxname AND XB.part5 > 0
AND XB.tabid = XC.tabid
AND XB.tabid = XD.tabid
AND XB.part5 = XD.colno
AND XA.constrid = XE.constrid
AND PKC.constrid = XE.primary AND XE.ptabid = PKTAB.tabid
UNION
SELECT '' AS foreignKeyCatalog, trim(XA.owner) AS foreignKeySchema, XC.tabname AS parentObject, XA.constrname AS foreignKeyName, PKTAB.tabname importedTable, PKC.constrname importedKey
, XD.colname AS exportedColumnRef, '' description, XD.colno colsequence
FROM informix.sysconstraints XA, informix.sysindexes XB, informix.systables XC, informix.syscolumns XD, informix.sysreferences XE, informix.sysconstraints PKC, informix.systables PKTAB
WHERE XA.constrtype in ('R')
AND XA.idxname = XB.idxname AND XB.part6 > 0
AND XB.tabid = XC.tabid
AND XB.tabid = XD.tabid
AND XB.part6 = XD.colno
AND XA.constrid = XE.constrid
AND PKC.constrid = XE.primary AND XE.ptabid = PKTAB.tabid
UNION
SELECT '' AS foreignKeyCatalog, trim(XA.owner) AS foreignKeySchema, XC.tabname AS parentObject, XA.constrname AS foreignKeyName, PKTAB.tabname importedTable, PKC.constrname importedKey
, XD.colname AS exportedColumnRef, '' description, XD.colno colsequence
FROM informix.sysconstraints XA, informix.sysindexes XB, informix.systables XC, informix.syscolumns XD, informix.sysreferences XE, informix.sysconstraints PKC, informix.systables PKTAB
WHERE XA.constrtype in ('R')
AND XA.idxname = XB.idxname AND XB.part7 > 0
AND XB.tabid = XC.tabid
AND XB.tabid = XD.tabid
AND XB.part7 = XD.colno
AND XA.constrid = XE.constrid
AND PKC.constrid = XE.primary AND XE.ptabid = PKTAB.tabid
UNION
SELECT '' AS foreignKeyCatalog, trim(XA.owner) AS foreignKeySchema, XC.tabname AS parentObject, XA.constrname AS foreignKeyName, PKTAB.tabname importedTable, PKC.constrname importedKey
, XD.colname AS exportedColumnRef, '' description, XD.colno colsequence
FROM informix.sysconstraints XA, informix.sysindexes XB, informix.systables XC, informix.syscolumns XD, informix.sysreferences XE, informix.sysconstraints PKC, informix.systables PKTAB
WHERE XA.constrtype in ('R')
AND XA.idxname = XB.idxname AND XB.part8 > 0
AND XB.tabid = XC.tabid
AND XB.tabid = XD.tabid
AND XB.part8 = XD.colno
AND XA.constrid = XE.constrid
AND PKC.constrid = XE.primary AND XE.ptabid = PKTAB.tabid
UNION
SELECT '' AS foreignKeyCatalog, trim(XA.owner) AS foreignKeySchema, XC.tabname AS parentObject, XA.constrname AS foreignKeyName, PKTAB.tabname importedTable, PKC.constrname importedKey
, XD.colname AS exportedColumnRef, '' description, XD.colno colsequence
FROM informix.sysconstraints XA, informix.sysindexes XB, informix.systables XC, informix.syscolumns XD, informix.sysreferences XE, informix.sysconstraints PKC, informix.systables PKTAB
WHERE XA.constrtype in ('R')
AND XA.idxname = XB.idxname AND XB.part9 > 0
AND XB.tabid = XC.tabid
AND XB.tabid = XD.tabid
AND XB.part9 = XD.colno
AND XA.constrid = XE.constrid
AND PKC.constrid = XE.primary AND XE.ptabid = PKTAB.tabid
UNION
SELECT '' AS foreignKeyCatalog, trim(XA.owner) AS foreignKeySchema, XC.tabname AS parentObject, XA.constrname AS foreignKeyName, PKTAB.tabname importedTable, PKC.constrname importedKey
, XD.colname AS exportedColumnRef, '' description, XD.colno colsequence
FROM informix.sysconstraints XA, informix.sysindexes XB, informix.systables XC, informix.syscolumns XD, informix.sysreferences XE, informix.sysconstraints PKC, informix.systables PKTAB
WHERE XA.constrtype in ('R')
AND XA.idxname = XB.idxname AND XB.part10 > 0
AND XB.tabid = XC.tabid
AND XB.tabid = XD.tabid
AND XB.part10 = XD.colno
AND XA.constrid = XE.constrid
AND PKC.constrid = XE.primary AND XE.ptabid = PKTAB.tabid
UNION
SELECT '' AS foreignKeyCatalog, trim(XA.owner) AS foreignKeySchema, XC.tabname AS parentObject, XA.constrname AS foreignKeyName, PKTAB.tabname importedTable, PKC.constrname importedKey
, XD.colname AS exportedColumnRef, '' description, XD.colno colsequence
FROM informix.sysconstraints XA, informix.sysindexes XB, informix.systables XC, informix.syscolumns XD, informix.sysreferences XE, informix.sysconstraints PKC, informix.systables PKTAB
WHERE XA.constrtype in ('R')
AND XA.idxname = XB.idxname AND XB.part11 > 0
AND XB.tabid = XC.tabid
AND XB.tabid = XD.tabid
AND XB.part11 = XD.colno
AND XA.constrid = XE.constrid
AND PKC.constrid = XE.primary AND XE.ptabid = PKTAB.tabid
UNION
SELECT '' AS foreignKeyCatalog, trim(XA.owner) AS foreignKeySchema, XC.tabname AS parentObject, XA.constrname AS foreignKeyName, PKTAB.tabname importedTable, PKC.constrname importedKey
, XD.colname AS exportedColumnRef, '' description, XD.colno colsequence
FROM informix.sysconstraints XA, informix.sysindexes XB, informix.systables XC, informix.syscolumns XD, informix.sysreferences XE, informix.sysconstraints PKC, informix.systables PKTAB
WHERE XA.constrtype in ('R')
AND XA.idxname = XB.idxname AND XB.part12 > 0
AND XB.tabid = XC.tabid
AND XB.tabid = XD.tabid
AND XB.part12 = XD.colno
AND XA.constrid = XE.constrid
AND PKC.constrid = XE.primary AND XE.ptabid = PKTAB.tabid
UNION
SELECT '' AS foreignKeyCatalog, trim(XA.owner) AS foreignKeySchema, XC.tabname AS parentObject, XA.constrname AS foreignKeyName, PKTAB.tabname importedTable, PKC.constrname importedKey
, XD.colname AS exportedColumnRef, '' description, XD.colno colsequence
FROM informix.sysconstraints XA, informix.sysindexes XB, informix.systables XC, informix.syscolumns XD, informix.sysreferences XE, informix.sysconstraints PKC, informix.systables PKTAB
WHERE XA.constrtype in ('R')
AND XA.idxname = XB.idxname AND XB.part13 > 0
AND XB.tabid = XC.tabid
AND XB.tabid = XD.tabid
AND XB.part13 = XD.colno
AND XA.constrid = XE.constrid
AND PKC.constrid = XE.primary AND XE.ptabid = PKTAB.tabid
UNION
SELECT '' AS foreignKeyCatalog, trim(XA.owner) AS foreignKeySchema, XC.tabname AS parentObject, XA.constrname AS foreignKeyName, PKTAB.tabname importedTable, PKC.constrname importedKey
, XD.colname AS exportedColumnRef, '' description, XD.colno colsequence
FROM informix.sysconstraints XA, informix.sysindexes XB, informix.systables XC, informix.syscolumns XD, informix.sysreferences XE, informix.sysconstraints PKC, informix.systables PKTAB
WHERE XA.constrtype in ('R')
AND XA.idxname = XB.idxname AND XB.part14 > 0
AND XB.tabid = XC.tabid
AND XB.tabid = XD.tabid
AND XB.part14 = XD.colno
AND XA.constrid = XE.constrid
AND PKC.constrid = XE.primary AND XE.ptabid = PKTAB.tabid
UNION
SELECT '' AS foreignKeyCatalog, trim(XA.owner) AS foreignKeySchema, XC.tabname AS parentObject, XA.constrname AS foreignKeyName, PKTAB.tabname importedTable, PKC.constrname importedKey
, XD.colname AS exportedColumnRef, '' description, XD.colno colsequence
FROM informix.sysconstraints XA, informix.sysindexes XB, informix.systables XC, informix.syscolumns XD, informix.sysreferences XE, informix.sysconstraints PKC, informix.systables PKTAB
WHERE XA.constrtype in ('R')
AND XA.idxname = XB.idxname AND XB.part15 > 0
AND XB.tabid = XC.tabid
AND XB.tabid = XD.tabid
AND XB.part5 = XD.colno
AND XA.constrid = XE.constrid
AND PKC.constrid = XE.primary AND XE.ptabid = PKTAB.tabid
UNION
SELECT '' AS foreignKeyCatalog, trim(XA.owner) AS foreignKeySchema, XC.tabname AS parentObject, XA.constrname AS foreignKeyName, PKTAB.tabname importedTable, PKC.constrname importedKey
, XD.colname AS exportedColumnRef, '' description, XD.colno colsequence
FROM informix.sysconstraints XA, informix.sysindexes XB, informix.systables XC, informix.syscolumns XD, informix.sysreferences XE, informix.sysconstraints PKC, informix.systables PKTAB
WHERE XA.constrtype in ('R')
AND XA.idxname = XB.idxname AND XB.part16 > 0
AND XB.tabid = XC.tabid
AND XB.tabid = XD.tabid
AND XB.part16 = XD.colno
AND XA.constrid = XE.constrid
AND PKC.constrid = XE.primary AND XE.ptabid = PKTAB.tabid
)
ORDER BY parentCatalog, parentSchema, parentObject, foreignKeyName, importedKey, colSequence
SELECT parentCatalog, parentSchema, parentObject, indexName, CASE indexType WHEN 'U' THEN '1' ELSE '0' END isUnique, CASE clustered WHEN 'C' THEN '2' ELSE '0' END storageType, parentCatalog, parentSchema, parentObject, colsequence, columnRef, description FROM
(SELECT trim(I.owner) AS parentCatalog, trim(I.owner) AS parentSchema, C.tabname AS parentObject, I.idxname AS indexName, I.idxtype AS indexType, I.clustered AS clustered, D.colname AS columnRef, '' description, d.colno colsequence
FROM informix.sysconstraints A, informix.sysindices I, informix.sysindexes B, informix.systables C, informix.syscolumns D
WHERE A.constrtype NOT IN ('U', 'P')
AND A.idxname = B.idxname AND B.part1 > 0
AND B.tabid = C.tabid
AND B.tabid = D.tabid
AND B.part1 = D.colno AND B.owner = trim(I.owner) AND B.idxname = I.idxname
UNION
SELECT trim(I.owner) AS parentCatalog, trim(I.owner) AS parentSchema, C.tabname AS parentObject, I.idxname AS indexName, I.idxtype AS indexType, I.clustered AS clustered, D.colname AS columnRef, '' description, d.colno colsequence
FROM informix.sysconstraints A, informix.sysindices I, informix.sysindexes B, informix.systables C, informix.syscolumns D
WHERE A.constrtype NOT IN ('U', 'P')
AND A.idxname = B.idxname AND B.part2 > 0
AND B.tabid = C.tabid
AND B.tabid = D.tabid
AND B.part2 = D.colno AND B.owner = trim(I.owner) AND B.idxname = I.idxname
UNION
SELECT trim(I.owner) AS parentCatalog, trim(I.owner) AS parentSchema, C.tabname AS parentObject, I.idxname AS indexName, I.idxtype AS indexType, I.clustered AS clustered, D.colname AS columnRef, '' description, d.colno colsequence
FROM informix.sysconstraints A, informix.sysindices I, informix.sysindexes B, informix.systables C, informix.syscolumns D
WHERE A.constrtype NOT IN ('U', 'P')
AND A.idxname = B.idxname AND B.part3 > 0
AND B.tabid = C.tabid
AND B.tabid = D.tabid
AND B.part3 = D.colno AND B.owner = trim(I.owner) AND B.idxname = I.idxname
UNION
SELECT trim(I.owner) AS parentCatalog, trim(I.owner) AS parentSchema, C.tabname AS parentObject, I.idxname AS indexName, I.idxtype AS indexType, I.clustered AS clustered, D.colname AS columnRef, '' description, d.colno colsequence
FROM informix.sysconstraints A, informix.sysindices I, informix.sysindexes B, informix.systables C, informix.syscolumns D
WHERE A.constrtype NOT IN ('U', 'P')
AND A.idxname = B.idxname AND B.part4 > 0
AND B.tabid = C.tabid
AND B.tabid = D.tabid
AND B.part4 = D.colno AND B.owner = trim(I.owner) AND B.idxname = I.idxname
UNION
SELECT trim(I.owner) AS parentCatalog, trim(I.owner) AS parentSchema, C.tabname AS parentObject, I.idxname AS indexName, I.idxtype AS indexType, I.clustered AS clustered, D.colname AS columnRef, '' description, d.colno colsequence
FROM informix.sysconstraints A, informix.sysindices I, informix.sysindexes B, informix.systables C, informix.syscolumns D
WHERE A.constrtype NOT IN ('U', 'P')
AND A.idxname = B.idxname AND B.part5 > 0
AND B.tabid = C.tabid
AND B.tabid = D.tabid
AND B.part5 = D.colno AND B.owner = trim(I.owner) AND B.idxname = I.idxname
UNION
SELECT trim(I.owner) AS parentCatalog, trim(I.owner) AS parentSchema, C.tabname AS parentObject, I.idxname AS indexName, I.idxtype AS indexType, I.clustered AS clustered, D.colname AS columnRef, '' description, d.colno colsequence
FROM informix.sysconstraints A, informix.sysindices I, informix.sysindexes B, informix.systables C, informix.syscolumns D
WHERE A.constrtype NOT IN ('U', 'P')
AND A.idxname = B.idxname AND B.part6 > 0
AND B.tabid = C.tabid
AND B.tabid = D.tabid
AND B.part6 = D.colno AND B.owner = trim(I.owner) AND B.idxname = I.idxname
UNION
SELECT trim(I.owner) AS parentCatalog, trim(I.owner) AS parentSchema, C.tabname AS parentObject, I.idxname AS indexName, I.idxtype AS indexType, I.clustered AS clustered, D.colname AS columnRef, '' description, d.colno colsequence
FROM informix.sysconstraints A, informix.sysindices I, informix.sysindexes B, informix.systables C, informix.syscolumns D
WHERE A.constrtype NOT IN ('U', 'P')
AND A.idxname = B.idxname AND B.part7 > 0
AND B.tabid = C.tabid
AND B.tabid = D.tabid
AND B.part7 = D.colno AND B.owner = trim(I.owner) AND B.idxname = I.idxname
UNION
SELECT trim(I.owner) AS parentCatalog, trim(I.owner) AS parentSchema, C.tabname AS parentObject, I.idxname AS indexName, I.idxtype AS indexType, I.clustered AS clustered, D.colname AS columnRef, '' description, d.colno colsequence
FROM informix.sysconstraints A, informix.sysindices I, informix.sysindexes B, informix.systables C, informix.syscolumns D
WHERE A.constrtype NOT IN ('U', 'P')
AND A.idxname = B.idxname AND B.part8 > 0
AND B.tabid = C.tabid
AND B.tabid = D.tabid
AND B.part8 = D.colno AND B.owner = trim(I.owner) AND B.idxname = I.idxname
UNION
SELECT trim(I.owner) AS parentCatalog, trim(I.owner) AS parentSchema, C.tabname AS parentObject, I.idxname AS indexName, I.idxtype AS indexType, I.clustered AS clustered, D.colname AS columnRef, '' description, d.colno colsequence
FROM informix.sysconstraints A, informix.sysindices I, informix.sysindexes B, informix.systables C, informix.syscolumns D
WHERE A.constrtype NOT IN ('U', 'P')
AND A.idxname = B.idxname AND B.part9 > 0
AND B.tabid = C.tabid
AND B.tabid = D.tabid
AND B.part9 = D.colno AND B.owner = trim(I.owner) AND B.idxname = I.idxname
UNION
SELECT trim(I.owner) AS parentCatalog, trim(I.owner) AS parentSchema, C.tabname AS parentObject, I.idxname AS indexName, I.idxtype AS indexType, I.clustered AS clustered, D.colname AS columnRef, '' description, d.colno colsequence
FROM informix.sysconstraints A, informix.sysindices I, informix.sysindexes B, informix.systables C, informix.syscolumns D
WHERE A.constrtype NOT IN ('U', 'P')
AND A.idxname = B.idxname AND B.part10 > 0
AND B.tabid = C.tabid
AND B.tabid = D.tabid
AND B.part10 = D.colno AND B.owner = trim(I.owner) AND B.idxname = I.idxname
UNION
SELECT trim(I.owner) AS parentCatalog, trim(I.owner) AS parentSchema, C.tabname AS parentObject, I.idxname AS indexName, I.idxtype AS indexType, I.clustered AS clustered, D.colname AS columnRef, '' description, d.colno colsequence
FROM informix.sysconstraints A, informix.sysindices I, informix.sysindexes B, informix.systables C, informix.syscolumns D
WHERE A.constrtype NOT IN ('U', 'P')
AND A.idxname = B.idxname AND B.part11 > 0
AND B.tabid = C.tabid
AND B.tabid = D.tabid
AND B.part11 = D.colno AND B.owner = trim(I.owner) AND B.idxname = I.idxname
UNION
SELECT trim(I.owner) AS parentCatalog, trim(I.owner) AS parentSchema, C.tabname AS parentObject, I.idxname AS indexName, I.idxtype AS indexType, I.clustered AS clustered, D.colname AS columnRef, '' description, d.colno colsequence
FROM informix.sysconstraints A, informix.sysindices I, informix.sysindexes B, informix.systables C, informix.syscolumns D
WHERE A.constrtype NOT IN ('U', 'P')
AND A.idxname = B.idxname AND B.part12 > 0
AND B.tabid = C.tabid
AND B.tabid = D.tabid
AND B.part12 = D.colno AND B.owner = trim(I.owner) AND B.idxname = I.idxname
UNION
SELECT trim(I.owner) AS parentCatalog, trim(I.owner) AS parentSchema, C.tabname AS parentObject, I.idxname AS indexName, I.idxtype AS indexType, I.clustered AS clustered, D.colname AS columnRef, '' description, d.colno colsequence
FROM informix.sysconstraints A, informix.sysindices I, informix.sysindexes B, informix.systables C, informix.syscolumns D
WHERE A.constrtype NOT IN ('U', 'P')
AND A.idxname = B.idxname AND B.part13 > 0
AND B.tabid = C.tabid
AND B.tabid = D.tabid
AND B.part13 = D.colno AND B.owner = trim(I.owner) AND B.idxname = I.idxname
UNION
SELECT trim(I.owner) AS parentCatalog, trim(I.owner) AS parentSchema, C.tabname AS parentObject, I.idxname AS indexName, I.idxtype AS indexType, I.clustered AS clustered, D.colname AS columnRef, '' description, d.colno colsequence
FROM informix.sysconstraints A, informix.sysindices I, informix.sysindexes B, informix.systables C, informix.syscolumns D
WHERE A.constrtype NOT IN ('U', 'P')
AND A.idxname = B.idxname AND B.part14 > 0
AND B.tabid = C.tabid
AND B.tabid = D.tabid
AND B.part14 = D.colno AND B.owner = trim(I.owner) AND B.idxname = I.idxname
UNION
SELECT trim(I.owner) AS parentCatalog, trim(I.owner) AS parentSchema, C.tabname AS parentObject, I.idxname AS indexName, I.idxtype AS indexType, I.clustered AS clustered, D.colname AS columnRef, '' description, d.colno colsequence
FROM informix.sysconstraints A, informix.sysindices I, informix.sysindexes B, informix.systables C, informix.syscolumns D
WHERE A.constrtype NOT IN ('U', 'P')
AND A.idxname = B.idxname AND B.part15 > 0
AND B.tabid = C.tabid
AND B.tabid = D.tabid
AND B.part15 = D.colno AND B.owner = trim(I.owner) AND B.idxname = I.idxname
UNION
SELECT trim(I.owner) AS parentCatalog, trim(I.owner) AS parentSchema, C.tabname AS parentObject, I.idxname AS indexName, I.idxtype AS indexType, I.clustered AS clustered, D.colname AS columnRef, '' description, d.colno colsequence
FROM informix.sysconstraints A, informix.sysindices I, informix.sysindexes B, informix.systables C, informix.syscolumns D
WHERE A.constrtype NOT IN ('U', 'P')
AND A.idxname = B.idxname AND B.part16 > 0
AND B.tabid = C.tabid
AND B.tabid = D.tabid
AND B.part16 = D.colno AND B.owner = trim(I.owner) AND B.idxname = I.idxname
ORDER BY parentCatalog, parentSchema, parentObject, indexName, colsequence)
SELECT trim(B.owner) AS parentCatalog, trim(B.owner) AS parentSchema, B.tabname AS synonymName, '' externalHostRef, trim(C.owner) AS targetRefCatalog, trim(C.owner) AS targetRefSchema, C.tabname AS targetName, '' description
FROM informix.syssyntable A, informix.systables B, informix.systables C
WHERE A.tabid = B.tabid
AND A.btabid = C.tabid
ORDER BY parentCatalog, parentSchema, synonymName
SELECT trim(A.owner) AS parentCatalog, trim(A.owner) AS parentSchema, A.procname AS procedureName, '' AS description, CASE internal WHEN 'f' then 'function' ELSE 'procedure' END AS invocationType
FROM informix.sysprocedures A
ORDER BY parentCatalog, parentSchema, procedureName
TBD
TBD
SELECT trim(A.owner) AS parentCatalog, trim(A.owner) AS parentSchema, A.tabname AS objectName , tabType AS tableType
FROM informix.systables A
WHERE A.tabType IN ('T','V')
ORDER BY parentCatalog, parentSchema, objectName
SELECT trim(A.name) AS objectName, '' AS description
FROM sysmaster:informix.sysdatabases A
GROUP BY A.name
ORDER BY objectName
SELECT trim(A.owner) AS objectName, '' AS description
FROM sysmaster:informix.sysdatabases A
WHERE A.name = ''
GROUP BY A.owner
ORDER BY objectName
SELECT A.tabname AS objectName, '' AS description
FROM informix.systables A
WHERE A.tabType = 'T'
AND A.owner = ''
GROUP BY A.tabname
ORDER BY objectName
SELECT A.tabname AS objectName, '' AS description
FROM informix.systables A
WHERE A.tabType = 'V'
AND A.owner = ''
GROUP BY A.tabname
ORDER BY objectName
SELECT trim(B.colname) AS objectName, '' AS description
FROM informix.syscolumns B, informix.systables A
WHERE A.tabid > 99
AND A.tabType IN ('T', 'V')
AND A.tabid = B.tabid
AND A.owner = ''
AND A.tabname = ''
ORDER BY B.colno
SELECT B.tabname AS objectName, '' description
FROM informix.syssyntable A, informix.systables B
WHERE A.tabid = B.tabid
AND B.owner = ''
ORDER BY objectName
SELECT A.procname AS objectName, '' AS description
FROM informix.sysprocedures A
WHERE internal != 'f'
AND A.owner = ''
ORDER BY A.procname
SELECT A.procname AS objectName, '' AS description
FROM informix.sysprocedures A
WHERE internal = 'f'
AND A.owner = ''
ORDER BY A.procname
TBD