We are in the process of creating 64-bit versions of our ETL software. This requires an enormous amount of testing. Plus some of the data sources are not supported for example BDE.
Here is a small example of what we are doing now:
For every database, our ETL software is working with we are creating tables with all possible fields types, Than we run data extraction tests using ODBC, OleDB and native connections. Once data extraction is working as expected we test loading data.
SQL Server ALL_FIELDS Table
CREATE TABLE [dbo].[ALL_FIELDS]([F_BIGINT] [bigint] NULL,
[F_BIT] [bit] NULL,
[F_CHAR] [char](10) NULL,
[F_DATE] [date] NULL,
[F_DATETIME] [datetime] NULL,
[F_DATETIME2] [datetime2](7) NULL,
[F_DATETIMEOFFSET] [datetimeoffset](7) NULL,
[F_DECIMAL1] [decimal](18, 0) NULL,
[F_DECIMAL2] [decimal](18, 2) NULL,
[F_FLOAT] [float] NULL,
[F_GEOGRAPHY] [geography] NULL,
[F_GEOMETRY] [geometry] NULL,
[F_HIERARCHYID] [hierarchyid] NULL,
[F_INT] [int] NULL,
[F_MONEY] [money] NULL,
[F_NCHAR] [nchar](10) NULL,
[F_NUMERIC1] [numeric](18, 0) NULL,
[F_NUMERIC2] [numeric](18, 2) NULL,
[F_NVARCHAR] [nvarchar](50) NULL,
[F_REAL] [real] NULL,
[F_SMALLDATE] [smalldatetime] NULL,
[F_SMALLINT] [smallint] NULL,
[F_SMALLMONEY] [smallmoney] NULL,
[F_TIME] [time](7) NULL,
[F_TINYINT] [tinyint] NULL,
[F_UNIQUEIDENTIFIER] [uniqueidentifier] NULL,
[F_VARCHAR] [varchar](50) NULL,
[F_VARBINARY] [varbinary](50) NULL,
[F_SQL_VARIANT] [sql_variant] NULL,
[F_VARCHAR_MAX] [varchar](max) NULL,
[F_XML] [xml] NULL,
[F_TIMESTAMP] [timestamp] NULL,
[F_BINARY] [binary](50) NULL,
[F_VARBINARY_MAX] [varbinary](max) NULL,
[F_IMAGE] [image] NULL,
[F_NTEXT] [ntext] NULL,
[F_NVARCHAR_MAX] [nvarchar](max) NULL,
[F_TEXT] [text] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
MySQL ALL_FIELDS Table
CREATE TABLE `all_fields` (`f_int1` int(11) NOT NULL,
`f_varchar` varchar(50) DEFAULT NULL,
`f_decimal1` decimal(10,0) DEFAULT NULL,
`f_decimal2` decimal(10,2) DEFAULT NULL,
`f_datetime1` datetime DEFAULT NULL,
`f_blob1` blob,
`f_binary` binary(50) DEFAULT NULL,
`f_blob2` tinyblob,
`f_longblob` longblob,
`f_mediumblob` mediumblob,
`f_tinyblob` tinyblob,
`f_varibinary` varbinary(50) DEFAULT NULL,
`f_date` date DEFAULT NULL,
`f_datetime2` datetime(6) DEFAULT NULL,
`f_time` time(5) DEFAULT NULL,
`f_timestamp` timestamp(6) NULL DEFAULT NULL,
`f_year` year(4) DEFAULT NULL,
`f_geometry` geometry DEFAULT NULL,
`f_geometrycollection` geometrycollection DEFAULT NULL,
`f_linestring` linestring DEFAULT NULL,
`f_multilinestring` multilinestring DEFAULT NULL,
`f_multypoint` multipoint DEFAULT NULL,
`f_multipolygon` multipolygon DEFAULT NULL,
`f_point` point DEFAULT NULL,
`f_polygon` polygon DEFAULT NULL,
`f_bigint` bigint(10) DEFAULT NULL,
`f_decimal` decimal(10,0) DEFAULT NULL,
`f_float` float DEFAULT NULL,
`f_int2` int(10) DEFAULT NULL,
`f_mediumint` mediumint(10) DEFAULT NULL,
`f_real` double DEFAULT NULL,
`f_smallint` smallint(10) DEFAULT NULL,
`f_tinyint` tinyint(10) DEFAULT NULL,
`f_char` char(10) DEFAULT NULL,
`f_json` json DEFAULT NULL,
`f_nvarchar` varchar(10) DEFAULT NULL,
`f_varchar2` varchar(10) DEFAULT NULL,
`f_longtext` longtext,
`f_mediumtext` mediumtext,
`f_text` tinytext,
`f_tinytext` tinytext,
`f_bit` bit(10) DEFAULT NULL,
`f_enum` enum('YES','NO') DEFAULT NULL,
`f_set` set('YES','NO','PROBABLY') DEFAULT NULL,
PRIMARY KEY (`f_int1`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
PostgreSQL ALL_FIELDS Table
CREATE TABLE public."ALL_FIELDS"(
f_char "char",
f_char2 "char"[],
f_abstime1 abstime,
f_abstime2 abstime[],
f_aclitem1 aclitem,
f_aclitem2 aclitem[],
f_bigint1 bigint,
f_bigint2 bigint[],
f_big_serial1 bigserial,
f_bit1 bit,
f_bit2 bit[],
f_boolean1 boolean,
f_boolean2 boolean[],
f_box1 box,
f_box2 box[],
f_bytea1 bytea,
f_bytea2 bytea[],
f_character1 character,
f_character2 character[],
f_character_varying1 character varying,
f_character_varying2 character varying[],
f_bit_varying1 bit varying,
f_bit_varying2 bit varying[],
f_cid1 cid,
f_cid2 cid[],
f_cidr cidr,
f_cidr2 cidr[],
f_circle1 circle,
f_circle2 circle[],
-- f_cstring2 cstring[],
c_date1 date,
c_date2 date[],
f_daterange daterange,
f_daterange2 daterange[],
f_double_precision1 double precision,
f_double_precision2 double precision[],
f_gtsvector1 gtsvector,
f_gtsvector2 gtsvector[],
f_inet1 inet,
f_inet2 inet[],
f_int2vector1 int2vector,
f_int2vector2 int2vector[],
f_int4range1 int4range,
f_int4range2 int4range[],
f_int8range1 int8range,
f_int8range2 int8range[],
f_integer1 integer,
f_integer2 integer[],
f_interval1 interval,
f_interval2 interval[],
f_json1 json,
f_json2 json[],
j_jsonb1 jsonb,
j_jsonb2 jsonb[],
f_line1 line,
f_line2 line[],
f_lseg1 lseg,
f_lseg2 lseg[],
f_macaddr1 macaddr,
f_macaddr2 macaddr[],
f_money1 money,
f_money2 money[],
f_name1 name,
f_name2 name[],
f_numeric1 numeric,
f_numeric2 numeric[],
f_numrange1 numrange,
f_numrange2 numrange[],
f_oid1 oid,
f_oid2 oid[],
f_oidvector1 oidvector,
f_oidvector2 oidvector[],
f_path1 path,
f_path2 path[],
f_pg_lsn1 pg_lsn,
f_pg_lsn2 pg_lsn[],
f_pg_node_tree1 pg_node_tree,
f_point1 point,
f_point2 point[],
f_polygon1 polygon,
f_polygon2 polygon[],
f_real1 real,
f_real2 real[],
f_refcursor1 refcursor,
f_refcursor2 refcursor[],
f_regclass1 regclass,
f_regclass2 regconfig,
f_regconfig1 regconfig,
f_regconfig2 regconfig[],
f_regdictionary1 regdictionary,
f_regdictionary2 regdictionary[],
f_regoper1 regoper,
f_regoper2 regoper[],
f_regoperator1 regoperator,
f_regoperator2 regoperator[],
f_regproc1 regproc,
f_regproc2 regproc[],
f_regprocedure1 regprocedure,
f_regprocedure2 regprocedure[],
f_regtype1 regtype,
f_regtype2 regtype[],
f_reltime1 reltime,
f_reltime2 reltime[],
f_serial1 serial,
f_smallint1 smallint,
f_smallint2 smallint[],
f_smallserial1 smallserial,
f_smgr1 smgr,
f_text1 text,
f_text2 text[],
f_tid1 tid,
f_tid2 tid[],
f_time_with_time_zone1 time with time zone,
f_time_with_time_zone2 time with time zone[],
f_time_without_time_zone1 time without time zone,
f_time_without_time_zone2 time without time zone[],
f_timestamp_with_time_zone1 timestamp with time zone,
f_timestamp_with_time_zone2 timestamp with time zone[],
f_timestamp_without_time_zone1 timestamp without time zone,
f_timestamp_without_time_zone2 timestamp without time zone[],
f_tinterval1 tinterval,
f_tinterval2 tinterval[],
f_tsquery1 tsquery,
f_tsquery2 tsquery[],
f_tsrange1 tsrange,
f_tsrange2 tstzrange[],
f_tstzrange1 tstzrange,
f_tstzrange2 tstzrange[],
f_tsvector1 tsvector,
f_tsvector2 tsvector[],
f_txid_snapshot1 txid_snapshot,
f_txid_snapshot2 txid_snapshot[],
f_uuid1 uuid,
f_uuid2 uuid[],
f_xid1 xid,
f_xid2 xid[],
f_xml1 xml,
f_xml2 xml[]
)
WITH (OIDS = FALSE);
We are looking for people willing to assist us with testing