WL#1203 NDB Cluster Table Handler Filters handler::cond_push() IBM DB2 Federated (now called InfoSphere Information Intergrator, previously called Websphere Information Intergrator) has already solved the same problem we are trying to solve. 1. "Develop a customized wrapper for WebSphere Information Integrator" http://www.ibm.com/developerworks/db2/library/techarticle/dm-0608li2/index.html This is a short article describing the basics. 2. IBM DB2 Information Integrator Wrapper Developer's Guide Attached to this email. Must read - this is the core thing. 3. IBM Information Integrator Wrapper Development C++ API http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.ii.doc/ad/rwrreq07.htm This is the C++ API reference, useful as a reference when reading (2) above. 4a. WebSphere Federation Server Version 9.5 product documentation http://www-01.ibm.com/support/docview.wss?rs=845&uid=swg27011375 Top-level link to all related DB2 documentation in PDF. The attached one is from this page. 4b. Developing connections to custom data sources. http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp?topic=/com.ibm.swg.im.iis.found.conn.fw.dev.doc/topics/iiynddev-process.html This is a link to the first Web article in this section. Look at all articles in the same sub-tree. List Of DB2 Data Types Supported. As per sql.h of db2 sqllib : /* SQLDA Constants */ /* Increment for type with null indicator */ #define SQL_TYP_NULINC 1 /* Variable Types */ #define SQL_TYP_DATE 384 /* DATE */ #define SQL_TYP_NDATE (SQL_TYP_DATE+SQL_TYP_NULINC) #define SQL_TYP_TIME 388 /* TIME */ #define SQL_TYP_NTIME (SQL_TYP_TIME+SQL_TYP_NULINC) #define SQL_TYP_STAMP 392 /* TIMESTAMP */ #define SQL_TYP_NSTAMP (SQL_TYP_STAMP+SQL_TYP_NULINC) #define SQL_TYP_DATALINK 396 /* DATALINK */ #define SQL_TYP_NDATALINK (SQL_TYP_DATALINK+SQL_TYP_NULINC) #define SQL_TYP_CGSTR 400 /* C NUL-terminated graphic str */ #define SQL_TYP_NCGSTR (SQL_TYP_CGSTR+SQL_TYP_NULINC) #define SQL_TYP_BLOB 404 /* BLOB - varying length string */ #define SQL_TYP_NBLOB (SQL_TYP_BLOB+SQL_TYP_NULINC) #define SQL_TYP_CLOB 408 /* CLOB - varying length string */ #define SQL_TYP_NCLOB (SQL_TYP_CLOB+SQL_TYP_NULINC) #define SQL_TYP_DBCLOB 412 /* DBCLOB - varying length string */ #define SQL_TYP_NDBCLOB (SQL_TYP_DBCLOB+SQL_TYP_NULINC) #define SQL_TYP_VARCHAR 448 /* VARCHAR(i) - varying length string */ /* (2 byte length) */ #define SQL_TYP_NVARCHAR (SQL_TYP_VARCHAR+SQL_TYP_NULINC) #define SQL_TYP_CHAR 452 /* CHAR(i) - fixed length string */ #define SQL_TYP_NCHAR (SQL_TYP_CHAR+SQL_TYP_NULINC) #define SQL_TYP_LONG 456 /* LONG VARCHAR - varying length */ /* string */ #define SQL_TYP_NLONG (SQL_TYP_LONG+SQL_TYP_NULINC) #define SQL_TYP_CSTR 460 /* varying length string for C (null */ /* terminated) */ #define SQL_TYP_NCSTR (SQL_TYP_CSTR+SQL_TYP_NULINC) #define SQL_TYP_VARGRAPH 464 /* VARGRAPHIC(i) - varying length */ /* graphic string (2 byte length) */ #define SQL_TYP_NVARGRAPH (SQL_TYP_VARGRAPH+SQL_TYP_NULINC) #define SQL_TYP_GRAPHIC 468 /* GRAPHIC(i) - fixed length graphic */ /* string */ #define SQL_TYP_NGRAPHIC (SQL_TYP_GRAPHIC+SQL_TYP_NULINC) #define SQL_TYP_LONGRAPH 472 /* LONG VARGRAPHIC(i) - varying */ /* length graphic string */ #define SQL_TYP_NLONGRAPH (SQL_TYP_LONGRAPH+SQL_TYP_NULINC) #define SQL_TYP_LSTR 476 /* varying length string for Pascal */ /* (1-byte length) */ #define SQL_TYP_NLSTR (SQL_TYP_LSTR+SQL_TYP_NULINC) #define SQL_TYP_FLOAT 480 /* FLOAT - 4 or 8 byte floating point */ #define SQL_TYP_NFLOAT (SQL_TYP_FLOAT+SQL_TYP_NULINC) #define SQL_TYP_DECIMAL 484 /* DECIMAL (m,n) */ #define SQL_TYP_NDECIMAL (SQL_TYP_DECIMAL+SQL_TYP_NULINC) #define SQL_TYP_ZONED 488 /* Zoned Decimal -> DECIMAL (m,n) */ #define SQL_TYP_NZONED (SQL_TYP_ZONED+SQL_TYP_NULINC) #define SQL_TYP_BIGINT 492 /* BIGINT - 8-byte signed integer */ #define SQL_TYP_NBIGINT (SQL_TYP_BIGINT+SQL_TYP_NULINC) #define SQL_TYP_INTEGER 496 /* INTEGER - 4-byte signed integer */ #define SQL_TYP_NINTEGER (SQL_TYP_INTEGER+SQL_TYP_NULINC) #define SQL_TYP_SMALL 500 /* SMALLINT - 2-byte signed integer */ #define SQL_TYP_NSMALL (SQL_TYP_SMALL+SQL_TYP_NULINC) #define SQL_TYP_NUMERIC 504 /* NUMERIC -> DECIMAL (m,n) */ #define SQL_TYP_NNUMERIC (SQL_TYP_NUMERIC+SQL_TYP_NULINC) #define SQL_TYP_BLOB_FILE_OBSOLETE 804 /* Obsolete Value */ #define SQL_TYP_NBLOB_FILE_OBSOLETE (SQL_TYP_BLOB_FILE_OBSOLETE+SQL_TYP_NULINC) #define SQL_TYP_CLOB_FILE_OBSOLETE 808 /* Obsolete Value */ #define SQL_TYP_NCLOB_FILE_OBSOLETE (SQL_TYP_CLOB_FILE_OBSOLETE+SQL_TYP_NULINC) #define SQL_TYP_DBCLOB_FILE_OBSOLETE 812 /* Obsolete Value */ #define SQL_TYP_NDBCLOB_FILE_OBSOLETE (SQL_TYP_DBCLOB_FILE_OBSOLETE+SQL_TYP_NULINC) #define SQL_TYP_VARBINARY 908 /* Variable Binary */ #define SQL_TYP_NVARBINARY (SQL_TYP_VARBINARY+SQL_TYP_NULINC) #define SQL_TYP_BINARY 912 /* Fixed Binary */ #define SQL_TYP_NBINARY (SQL_TYP_BINARY+SQL_TYP_NULINC) #define SQL_TYP_BLOB_FILE 916 /* BLOB File - Binary Large Object */ /* File */ #define SQL_TYP_NBLOB_FILE (SQL_TYP_BLOB_FILE+SQL_TYP_NULINC) #define SQL_TYP_CLOB_FILE 920 /* CLOB File - Char Large Object File */ #define SQL_TYP_NCLOB_FILE (SQL_TYP_CLOB_FILE+SQL_TYP_NULINC) #define SQL_TYP_DBCLOB_FILE 924 /* DBCLOB File - Double Byte Char */ /* Large Object File */ #define SQL_TYP_NDBCLOB_FILE (SQL_TYP_DBCLOB_FILE+SQL_TYP_NULINC) #define SQL_TYP_BLOB_LOCATOR 960 /* BLOB locator */ #define SQL_TYP_NBLOB_LOCATOR (SQL_TYP_BLOB_LOCATOR+SQL_TYP_NULINC) #define SQL_TYP_CLOB_LOCATOR 964 /* CLOB locator */ #define SQL_TYP_NCLOB_LOCATOR (SQL_TYP_CLOB_LOCATOR+SQL_TYP_NULINC) #define SQL_TYP_DBCLOB_LOCATOR 968 /* DBCLOB locator */ #define SQL_TYP_NDBCLOB_LOCATOR (SQL_TYP_DBCLOB_LOCATOR+SQL_TYP_NULINC) #define SQL_TYP_XML 988 /* XML */ #define SQL_TYP_NXML (SQL_TYP_XML+SQL_TYP_NULINC) #define SQL_TYP_DECFLOAT 996 /* Decimal Float (16/34) */ #define SQL_TYP_NDECFLOAT (SQL_TYP_DECFLOAT+SQL_TYP_NULINC) #define SQL_LOBTOKEN_LEN SQL_LOBLOCATOR_LEN #define SQL_TYP_BLOB_TOKEN SQL_TYP_BLOB_LOCATOR #define SQL_TYP_NBLOB_TOKEN SQL_TYP_NBLOB_LOCATOR #define SQL_TYP_CLOB_TOKEN SQL_TYP_CLOB_LOCATOR #define SQL_TYP_NCLOB_TOKEN SQL_TYP_NCLOB_LOCATOR #define SQL_TYP_DBCLOB_TOKEN SQL_TYP_DBCLOB_LOCATOR #define SQL_TYP_NDBCLOB_TOKEN SQL_TYP_NDBCLOB_LOCATOR #define SQL_NCLOB_MAXLEN SQL_DBCLOB_MAXLEN #define SQL_LOBHANDLE_LEN SQL_LOBTOKEN_LEN #define SQL_TYP_BLOB_HANDLE SQL_TYP_BLOB_TOKEN #define SQL_TYP_NBLOB_HANDLE SQL_TYP_NBLOB_TOKEN #define SQL_TYP_CLOB_HANDLE SQL_TYP_CLOB_TOKEN #define SQL_TYP_NCLOB_HANDLE SQL_TYP_NCLOB_TOKEN #define SQL_TYP_DBCLOB_HANDLE SQL_TYP_DBCLOB_TOKEN #define SQL_TYP_NDBCLOB_HANDLE SQL_TYP_NDBCLOB_TOKEN ====== SQL Supports 3 sorts of data types: predefined, constructed (e.g. Array, multiset, ref, and row) and user-defined. MySQL supports only predefined ones, so we will stick to it. SQL defines predefined data types named by the following s: CHARACTER, CHARACTER VARYING, CHARACTER LARGE OBJECT, BINARY LARGE OBJECT, NUMERIC, DECIMAL, SMALLINT, INTEGER, BIGINT, FLOAT, REAL, DOUBLE PRECISION, BOOLEAN, DATE, TIME, TIMESTAMP, and INTERVAL.