sapdb

CREATE DATABASE KUTU;
DROP TABLE KUTU.testtable;
CREATE TABLE KUTU.testtable (
ID                       INTEGER NOT NULL DEFAULT SERIAL,
FIRSTNAME                VARCHAR(30) DEFAULT 'Joan',
LASTNAME                 VARCHAR(28) NOT NULL DEFAULT 'Chen',
averylonglongfieldname   LONG,
price                    FIXED(7,2) DEFAULT 0.00,
MYDATE                   DATE DEFAULT DATE,
BIGFELLOW                LONG,
TS_SECS                  TIMESTAMP DEFAULT TIMESTAMP,
TS_SUBSEC                TIMESTAMP DEFAULT TIMESTAMP,
                 PRIMARY KEY (ID, LASTNAME)
);
CREATE INDEX idx_name ON KUTU."KUTU.testtable" (FIRSTNAME);
CREATE INDEX idx_lastname ON KUTU."KUTU.testtable" (LASTNAME);
CREATE INDEX idx_date ON KUTU."KUTU.testtable" (MYDATE);
CREATE INDEX idx ON KUTU.testtable (price, firstname, lastname);
CREATE INDEX idx2 ON KUTU.testtable (price, lastname);
ALTER TABLE KUTU.testtable ADD (height FLOAT(38), weight FLOAT(38));
ALTER TABLE KUTU.testtable MODIFY (height FLOAT(38) NOT NULL, weight FLOAT(38) NOT NULL);

sapdb
ALTER TABLE KUTU.table DROP ("my col", "col2_with_Quotes", A_col3, "col3(10)");

CREATE TABLE KUTU.adoxyz (
LASTNAME                 VARCHAR(32)
);

sybase

CREATE DATABASE KUTU;
DROP TABLE KUTU.testtable;
CREATE TABLE KUTU.testtable (
ID                       INT DEFAULT AUTOINCREMENT NOT NULL,
FIRSTNAME                VARCHAR(30) DEFAULT 'Joan',
LASTNAME                 VARCHAR(28) DEFAULT 'Chen' NOT NULL,
averylonglongfieldname   TEXT NULL,
price                    NUMERIC(7,2) DEFAULT 0.00,
MYDATE                   DATETIME DEFAULT GetDate(),
BIGFELLOW                TEXT NULL,
TS_SECS                  DATETIME NULL,
TS_SUBSEC                DATETIME NULL,
                 PRIMARY KEY (ID, LASTNAME)
);
CREATE INDEX idx_name ON KUTU."KUTU.testtable" (FIRSTNAME);
CREATE INDEX idx_lastname ON KUTU."KUTU.testtable" (LASTNAME);
CREATE INDEX idx_date ON KUTU."KUTU.testtable" (MYDATE);
CREATE CLUSTERED INDEX idx ON KUTU.testtable (price, firstname, lastname);
CREATE INDEX idx2 ON KUTU.testtable (price, lastname);
ALTER TABLE KUTU.testtable  ADD
 height REAL NULL, 
 weight REAL NULL;
ALTER TABLE KUTU.testtable  ALTER COLUMN height REAL NOT NULL;
ALTER TABLE KUTU.testtable  ALTER COLUMN weight REAL NOT NULL;

sybase
ALTER TABLE KUTU.table
 DROP COLUMN "my col", 
 DROP COLUMN "col2_with_Quotes", 
 DROP COLUMN A_col3, 
 DROP COLUMN "col3(10)";

CREATE TABLE KUTU.adoxyz (
LASTNAME                 VARCHAR(32) NULL
);

mysql

CREATE DATABASE KUTU;
DROP TABLE IF EXISTS KUTU.testtable;
CREATE TABLE KUTU.testtable (
ID                       INTEGER NOT NULL AUTO_INCREMENT,
FIRSTNAME                VARCHAR(30) DEFAULT 'Joan',
LASTNAME                 VARCHAR(28) NOT NULL DEFAULT 'Chen',
averylonglongfieldname   TEXT,
price                    NUMERIC(7,2) DEFAULT 0.00,
MYDATE                   TIMESTAMP,
BIGFELLOW                TEXT,
TS_SECS                  TIMESTAMP,
TS_SUBSEC                TIMESTAMP,
                 PRIMARY KEY (ID, LASTNAME)
)ENGINE=INNODB;
ALTER TABLE KUTU.`KUTU.testtable` ADD  INDEX idx_name  (FIRSTNAME);
ALTER TABLE KUTU.`KUTU.testtable` ADD  INDEX idx_lastname  (LASTNAME);
ALTER TABLE KUTU.`KUTU.testtable` ADD  INDEX idx_date  (MYDATE);
ALTER TABLE KUTU.testtable ADD  FULLTEXT INDEX idx  (price, firstname, lastname);
ALTER TABLE KUTU.testtable ADD  INDEX idx2  (price, lastname);
ALTER TABLE KUTU.testtable ADD height DOUBLE;
ALTER TABLE KUTU.testtable ADD weight DOUBLE;
ALTER TABLE KUTU.testtable MODIFY COLUMN height DOUBLE NOT NULL;
ALTER TABLE KUTU.testtable MODIFY COLUMN weight DOUBLE NOT NULL;

mysql
ALTER TABLE KUTU.table DROP COLUMN `my col`;
ALTER TABLE KUTU.table DROP COLUMN `col2_with_Quotes`;
ALTER TABLE KUTU.table DROP COLUMN A_col3;
ALTER TABLE KUTU.table DROP COLUMN `col3(10)`;

CREATE TABLE KUTU.adoxyz (
LASTNAME                 VARCHAR(32)
);

access

Warning: Access does not supported DEFAULT values (field FIRSTNAME)
Warning: Access does not supported DEFAULT values (field LASTNAME)
Warning: Access does not supported DEFAULT values (field price)
Warning: Access does not supported DEFAULT values (field MYDATE)
Warning: Access does not supported DEFAULT values (field TS_SECS)
Warning: Access does not supported DEFAULT values (field TS_SUBSEC)
AlterColumnSQL not supported

DROP TABLE testtable;
CREATE TABLE testtable (
ID                       COUNTER,
FIRSTNAME                VARCHAR(30),
LASTNAME                 VARCHAR(28) NOT NULL,
averylonglongfieldname   MEMO,
price                    NUMERIC(7,2),
MYDATE                   DATETIME,
BIGFELLOW                MEMO,
TS_SECS                  DATETIME,
TS_SUBSEC                DATETIME,
                 PRIMARY KEY (ID, LASTNAME)
);
CREATE INDEX idx_name ON testtable (FIRSTNAME);
CREATE INDEX idx_lastname ON testtable (LASTNAME);
CREATE INDEX idx_date ON testtable (MYDATE);
CREATE INDEX idx ON testtable (price, firstname, lastname);
CREATE INDEX idx2 ON testtable (price, lastname);
ALTER TABLE testtable ADD height DOUBLE;
ALTER TABLE testtable ADD weight DOUBLE;

access
DropColumnSQL not supported

CREATE TABLE adoxyz (
LASTNAME                 VARCHAR(32)
);

oci8po

CREATE USER KUTU IDENTIFIED BY tiger;
GRANT CREATE SESSION, CREATE TABLE,UNLIMITED TABLESPACE,CREATE SEQUENCE TO KUTU;
DROP TABLE KUTU.testtable CASCADE CONSTRAINTS;
drop sequence KUTU.seq_testtable;
CREATE TABLE KUTU.testtable (
ID                       NUMBER(10) NOT NULL,
FIRSTNAME                VARCHAR(30) DEFAULT 'Joan',
LASTNAME                 VARCHAR(28) DEFAULT 'Chen' NOT NULL,
averylonglongfieldname   VARCHAR(4000),
price                    NUMBER(7,2) DEFAULT 0.00,
MYDATE                   DATE DEFAULT TRUNC(SYSDATE),
BIGFELLOW                VARCHAR(4000),
TS_SECS                  DATE DEFAULT SYSDATE,
TS_SUBSEC                TIMESTAMP DEFAULT SYSDATE,
                 PRIMARY KEY (ID, LASTNAME)
)TABLESPACE USERS;
CREATE SEQUENCE KUTU.SEQ_testtable   ;
CREATE OR REPLACE TRIGGER KUTU.TRIG_SEQ_testtable BEFORE insert ON KUTU.testtable FOR EACH ROW WHEN (NEW.ID IS NULL OR NEW.ID = 0) BEGIN select KUTU.SEQ_testtable.nextval into :new.ID from dual; END;;
CREATE INDEX idx_name ON KUTU."KUTU.testtable" (FIRSTNAME);
CREATE INDEX idx_lastname ON KUTU."KUTU.testtable" (LASTNAME);
CREATE INDEX idx_date ON KUTU."KUTU.testtable" (MYDATE);
CREATE BITMAP INDEX idx ON KUTU.testtable (price, firstname, lastname);
CREATE INDEX idx2 ON KUTU.testtable (price, lastname);
ALTER TABLE KUTU.testtable ADD (
 height NUMBER, 
 weight NUMBER);
ALTER TABLE KUTU.testtable MODIFY(
 height NUMBER NOT NULL, 
 weight NUMBER NOT NULL);

oci8
ALTER TABLE table DROP("my col", "col2_with_Quotes", A_col3, "col3(10)") CASCADE CONSTRAINTS;

CREATE TABLE KUTU.adoxyz (
LASTNAME                 VARCHAR(32)
);

odbc_mssql

CREATE DATABASE KUTU;
DROP TABLE KUTU.testtable;
CREATE TABLE KUTU.testtable (
ID                       INT IDENTITY(1,1) NOT NULL,
FIRSTNAME                VARCHAR(30) DEFAULT 'Joan',
LASTNAME                 VARCHAR(28) DEFAULT 'Chen' NOT NULL,
averylonglongfieldname   TEXT NULL,
price                    NUMERIC(7,2) DEFAULT 0.00,
MYDATE                   DATETIME DEFAULT GetDate(),
BIGFELLOW                TEXT NULL,
TS_SECS                  DATETIME DEFAULT GetDate(),
TS_SUBSEC                DATETIME DEFAULT GetDate(),
                 PRIMARY KEY (ID, LASTNAME)
);
CREATE INDEX idx_name ON KUTU."KUTU.testtable" (FIRSTNAME);
CREATE INDEX idx_lastname ON KUTU."KUTU.testtable" (LASTNAME);
CREATE INDEX idx_date ON KUTU."KUTU.testtable" (MYDATE);
CREATE CLUSTERED INDEX idx ON KUTU.testtable (price, firstname, lastname);
CREATE INDEX idx2 ON KUTU.testtable (price, lastname);
ALTER TABLE KUTU.testtable  ADD
 height REAL NULL, 
 weight REAL NULL;
ALTER TABLE KUTU.testtable ALTER COLUMN height REAL NOT NULL;
ALTER TABLE KUTU.testtable ALTER COLUMN weight REAL NOT NULL;

CREATE TABLE adoxyz (
ID                       INT IDENTITY(1,1) NOT NULL,
FIRSTNAME                VARCHAR(30) DEFAULT 'Joan',
LASTNAME                 VARCHAR(28) DEFAULT 'Chen' NOT NULL,
averylonglongfieldname   TEXT NULL,
price                    NUMERIC(7,2) DEFAULT 0.00,
MYDATE                   DATETIME DEFAULT GetDate(),
BIGFELLOW                TEXT NULL,
TS_SECS                  DATETIME DEFAULT GetDate(),
TS_SUBSEC                DATETIME DEFAULT GetDate(),
                 PRIMARY KEY (ID, LASTNAME)
);
CREATE INDEX idx_name ON adoxyz (FIRSTNAME);
CREATE INDEX idx_lastname ON adoxyz (LASTNAME);
CREATE INDEX idx_date ON adoxyz (MYDATE);

mssql
ALTER TABLE table
 DROP COLUMN "my col", 
 DROP COLUMN "col2_with_Quotes", 
 DROP COLUMN A_col3, 
 DROP COLUMN "col3(10)";

CREATE TABLE adoxyz (
LASTNAME                 VARCHAR(32) NULL
);

odbc

AlterColumnSQL not supported

CREATE DATABASE KUTU;
DROP TABLE KUTU.testtable;
CREATE TABLE KUTU.testtable (
ID                       DECIMAL(10) NOT NULL,
FIRSTNAME                VARCHAR(30) DEFAULT 'Joan',
LASTNAME                 VARCHAR(28) DEFAULT 'Chen' NOT NULL,
averylonglongfieldname   VARCHAR(250),
price                    DECIMAL(7,2) DEFAULT 0.00,
MYDATE                   DATE,
BIGFELLOW                VARCHAR(250),
TS_SECS                  DATE,
TS_SUBSEC                DATE,
                 PRIMARY KEY (ID, LASTNAME)
);
CREATE INDEX idx_name ON KUTU."KUTU.testtable" (FIRSTNAME);
CREATE INDEX idx_lastname ON KUTU."KUTU.testtable" (LASTNAME);
CREATE INDEX idx_date ON KUTU."KUTU.testtable" (MYDATE);
CREATE INDEX idx ON KUTU.testtable (price, firstname, lastname);
CREATE INDEX idx2 ON KUTU.testtable (price, lastname);
ALTER TABLE KUTU.testtable ADD height DECIMAL(32,8);
ALTER TABLE KUTU.testtable ADD weight DECIMAL(32,8);

generic
DropColumnSQL not supported

CREATE TABLE KUTU.adoxyz (
LASTNAME                 VARCHAR(32)
);

db2

AlterColumnSQL not supported

CREATE DATABASE KUTU;
DROP TABLE KUTU.testtable;
CREATE TABLE KUTU.testtable (
ID                       INTEGER GENERATED ALWAYS AS IDENTITY,
FIRSTNAME                VARCHAR(30) DEFAULT 'Joan',
LASTNAME                 VARCHAR(28) DEFAULT 'Chen' NOT NULL,
averylonglongfieldname   VARCHAR(3600),
price                    DECIMAL(7,2) DEFAULT 0.00,
MYDATE                   DATE DEFAULT CURRENT DATE,
BIGFELLOW                VARCHAR(3600),
TS_SECS                  TIMESTAMP DEFAULT CURRENT TIMESTAMP,
TS_SUBSEC                TIMESTAMP DEFAULT CURRENT TIMESTAMP,
                 PRIMARY KEY (ID, LASTNAME)
);
CREATE INDEX idx_name ON KUTU."KUTU.testtable" (FIRSTNAME);
CREATE INDEX idx_lastname ON KUTU."KUTU.testtable" (LASTNAME);
CREATE INDEX idx_date ON KUTU."KUTU.testtable" (MYDATE);
CREATE INDEX idx ON KUTU.testtable (price, firstname, lastname);
CREATE INDEX idx2 ON KUTU.testtable (price, lastname);
ALTER TABLE KUTU.testtable ADD height DOUBLE;
ALTER TABLE KUTU.testtable ADD weight DOUBLE;

db2
DropColumnSQL not supported

CREATE TABLE KUTU.adoxyz (
LASTNAME                 VARCHAR(32)
);

firebird

AlterColumnSQL not supported

CREATE DATABASE KUTU;
DROP TABLE KUTU.testtable;
CREATE TABLE KUTU.testtable (
ID                       INTEGER NOT NULL,
FIRSTNAME                VARCHAR(30) DEFAULT 'Joan',
LASTNAME                 VARCHAR(28) DEFAULT 'Chen' NOT NULL,
averylonglongfieldname   VARCHAR(4000),
price                    DECIMAL(7,2) DEFAULT 0.00,
MYDATE                   DATE DEFAULT cast('TODAY' as timestamp),
BIGFELLOW                VARCHAR(4000),
TS_SECS                  TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
TS_SUBSEC                TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
                 PRIMARY KEY (ID, LASTNAME)
);
CREATE INDEX idx_name ON KUTU."KUTU.testtable" (FIRSTNAME);
CREATE INDEX idx_lastname ON KUTU."KUTU.testtable" (LASTNAME);
CREATE INDEX idx_date ON KUTU."KUTU.testtable" (MYDATE);
CREATE INDEX idx ON KUTU.testtable (price, firstname, lastname);
CREATE INDEX idx2 ON KUTU.testtable (price, lastname);
ALTER TABLE KUTU.testtable ADD height DOUBLE PRECISION;
ALTER TABLE KUTU.testtable ADD weight DOUBLE PRECISION;

ibase
DropColumnSQL not supported

CREATE TABLE KUTU.adoxyz (
LASTNAME                 VARCHAR(32)
);

postgres

AlterColumnSQL needs a complete table-definiton for PostgreSQL

CREATE DATABASE KUTU LOCATION='/u01/postdata';
DROP TABLE KUTU.testtable CASCADE;
CREATE TABLE KUTU.testtable (
ID                       SERIAL,
FIRSTNAME                VARCHAR(30) DEFAULT 'Joan',
LASTNAME                 VARCHAR(28) DEFAULT 'Chen' NOT NULL,
averylonglongfieldname   TEXT,
price                    NUMERIC(7,2) DEFAULT 0.00,
MYDATE                   DATE DEFAULT CURRENT_DATE,
BIGFELLOW                TEXT,
TS_SECS                  TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
TS_SUBSEC                TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
                 PRIMARY KEY (ID, LASTNAME)
);
CREATE INDEX idx_name ON KUTU."KUTU.testtable" (FIRSTNAME);
CREATE INDEX idx_lastname ON KUTU."KUTU.testtable" (LASTNAME);
CREATE INDEX idx_date ON KUTU."KUTU.testtable" (MYDATE);
CREATE INDEX idx ON KUTU.testtable USING HASH (price, firstname, lastname);
CREATE INDEX idx2 ON KUTU.testtable (price, lastname);
ALTER TABLE KUTU.testtable ADD COLUMN height FLOAT8;
ALTER TABLE KUTU.testtable ADD COLUMN weight FLOAT8;

CREATE TABLE adoxyz (
ID                       SERIAL,
FIRSTNAME                VARCHAR(30) DEFAULT 'Joan',
LASTNAME                 VARCHAR(28) DEFAULT 'Chen' NOT NULL,
averylonglongfieldname   TEXT,
price                    NUMERIC(7,2) DEFAULT 0.00,
MYDATE                   DATE DEFAULT CURRENT_DATE,
BIGFELLOW                TEXT,
TS_SECS                  TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
TS_SUBSEC                TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
                 PRIMARY KEY (ID, LASTNAME)
);
CREATE INDEX idx_name ON adoxyz (FIRSTNAME);
CREATE INDEX idx_lastname ON adoxyz (LASTNAME);
CREATE INDEX idx_date ON adoxyz (MYDATE);

postgres
DropColumnSQL needs complete table-definiton for PostgreSQL < 7.3

CREATE TABLE adoxyz (
LASTNAME                 VARCHAR(32)
);

informix

AlterColumnSQL not supported

CREATE DATABASE KUTU;
DROP TABLE KUTU.testtable;
CREATE TABLE KUTU.testtable (
ID                       SERIAL,
FIRSTNAME                VARCHAR(30) DEFAULT 'Joan',
LASTNAME                 VARCHAR(28) DEFAULT 'Chen' NOT NULL,
averylonglongfieldname   TEXT,
price                    DECIMAL(7,2) DEFAULT 0.00,
MYDATE                   DATE DEFAULT TODAY,
BIGFELLOW                TEXT,
TS_SECS                  DATETIME YEAR TO SECOND DEFAULT CURRENT,
TS_SUBSEC                DATETIME YEAR TO SECOND DEFAULT CURRENT,
                 PRIMARY KEY (ID, LASTNAME)
);
CREATE INDEX idx_name ON KUTU."KUTU.testtable" (FIRSTNAME);
CREATE INDEX idx_lastname ON KUTU."KUTU.testtable" (LASTNAME);
CREATE INDEX idx_date ON KUTU."KUTU.testtable" (MYDATE);
CREATE INDEX idx ON KUTU.testtable (price, firstname, lastname);
CREATE INDEX idx2 ON KUTU.testtable (price, lastname);
ALTER TABLE KUTU.testtable ADD height FLOAT;
ALTER TABLE KUTU.testtable ADD weight FLOAT;

informix
DropColumnSQL not supported

CREATE TABLE KUTU.adoxyz (
LASTNAME                 VARCHAR(32)
);

Test XML Schema

<?xml version="1.0"?>
<schema version="0.3">
  <table name="mytable">
    <field name="row1" type="I">
      <descr>An integer row that's a primary key and autoincrements</descr>
      <KEY/>
      <AUTOINCREMENT/>
    </field>
    <field name="row2" type="C" size="16">
      <descr>A 16 character varchar row that can't be null</descr>
      <NOTNULL/>
    </field>
    <index name="myindex">
      <col>row1</col>
      <col>row2</col>
    </index>
  </table>
  <sql>
    <descr>SQL to be executed only on specific platforms</descr>
    <query platform="postgres|postgres7">
      insert into mytable ( row1, row2 ) values ( 12, 'postgres stuff' )
    </query>
    <query platform="mysql">
      insert into mytable ( row1, row2 ) values ( 12, 'mysql stuff' )
    </query>
	<query platform="mssql">
      insert into mytable ( row1, row2 ) values ( 12, 'Microsoft stuff' )
    </query>
  </sql>
  <table name="obsoletetable">
    <DROP/>
  </table>
</schema>