Finished database detail documentation

git-svn-id: https://svn.apache.org/repos/asf/db/ddlutils/trunk@1135031 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/site/sphinx/databases/axion.rst b/src/site/sphinx/databases/axion.rst
new file mode 100644
index 0000000..3694273
--- /dev/null
+++ b/src/site/sphinx/databases/axion.rst
@@ -0,0 +1,145 @@
+.. Licensed to the Apache Software Foundation (ASF) under one

+   or more contributor license agreements.  See the NOTICE file

+   distributed with this work for additional information

+   regarding copyright ownership.  The ASF licenses this file

+   to you under the Apache License, Version 2.0 (the

+   "License"); you may not use this file except in compliance

+   with the License.  You may obtain a copy of the License at

+

+    http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing,

+   software distributed under the License is distributed on an

+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+   KIND, either express or implied.  See the License for the

+   specific language governing permissions and limitations

+   under the License.

+

+.. _`Axion`: http://axion.tigris.org/

+.. _`Axion datatypes documentation`: http://axion.tigris.org/datatypes.html

+

+Axion

+=====

+

+Database support for Axion is legacy in DdlUtils because Axion does not appear to

+be actively developed anymore. Also, support for fundamential JDBC functionality necessary

+for DdlUtils (such as database metadata) is lacking to a certain degree in Axion.

+

+Info about the datatypes supported by `Axion`_ can be found in the

+`Axion datatypes documentation`_.

+

+Constraints

+-----------

+

+Platform identifier

+  ``Axion``

+

+Recognized JDBC drivers

+  ``org.axiondb.jdbc.AxionDriver``

+

+Recognized JDBC sub protocols

+  ``jdbc:axiondb``

+

+Supports SQL comments

+  no

+

+Supports delimited identifiers

+  no

+

+Maximum identifier length

+  unlimited

+

+Supports default values for ``LONG`` types

+  yes

+

+Supports non-unique indices

+  yes

+

+Supports non-primary key columns as identity columns

+  yes

+

+Allows ``INSERT``/``UPDATE`` statements to set values for identity columns

+  yes

+

+DdlUtils uses sequences for identity columns

+  no

+

+DdlUtils can read back the auto-generated value of an identity column

+  no

+

+DdlUtils can create a database via JDBC

+  no

+

+DdlUtils can drop a database via JDBC

+  no

+

+Datatypes

+---------

+

++-----------------+-----------------+----------------------------------------------+

+|JDBC Type        |Database Type    |Additional comments                           |

++=================+=================+==============================================+

+|``ARRAY``        |``BLOB``         |Will be read back as ``BLOB``                 |

++-----------------+-----------------+----------------------------------------------+

+|``BIGINT``       |``BIGINT``       |Requires a recent version                     |

++-----------------+-----------------+----------------------------------------------+

+|``BINARY``       |``BINARY``       |                                              |

++-----------------+-----------------+----------------------------------------------+

+|``BIT``          |``BOOLEAN``      |                                              |

++-----------------+-----------------+----------------------------------------------+

+|``BLOB``         |``BLOB``         |                                              |

++-----------------+-----------------+----------------------------------------------+

+|``BOOLEAN``      |``BOOLEAN``      |                                              |

++-----------------+-----------------+----------------------------------------------+

+|``CHAR``         |``CHAR``         |                                              |

++-----------------+-----------------+----------------------------------------------+

+|``CLOB``         |``CLOB``         |                                              |

++-----------------+-----------------+----------------------------------------------+

+|``DATALINK``     |``VARBINARY``    |Will be read back as ``VARBINARY``            |

++-----------------+-----------------+----------------------------------------------+

+|``DATE``         |``DATE``         |Axion handles ``DATE``, ``TIME`` the same as  |

+|                 |                 |``TIMESTAMP``                                 |

++-----------------+-----------------+----------------------------------------------+

+|``DECIMAL``      |``DECIMAL``      |``scale`` is currently fixed to 2 in Axion    |

+|                 |                 |(though a different one can be specified)     |

++-----------------+-----------------+----------------------------------------------+

+|``DISTINCT``     |``VARBINARY``    |Will be read back as ``VARBINARY``            |

++-----------------+-----------------+----------------------------------------------+

+|``DOUBLE``       |``DOUBLE``       |                                              |

++-----------------+-----------------+----------------------------------------------+

+|``FLOAT``        |``FLOAT``        |                                              |

++-----------------+-----------------+----------------------------------------------+

+|``INTEGER``      |``INTEGER``      |                                              |

++-----------------+-----------------+----------------------------------------------+

+|``JAVA_OBJECT``  |``JAVA_OBJECT``  |                                              |

++-----------------+-----------------+----------------------------------------------+

+|``LONGVARBINARY``|``LONGVARBINARY``|                                              |

++-----------------+-----------------+----------------------------------------------+

+|``LONGVARCHAR``  |``LONGVARCHAR``  |                                              |

++-----------------+-----------------+----------------------------------------------+

+|``NULL``         |``VARBINARY``    |Will be read back as ``VARBINARY``            |

++-----------------+-----------------+----------------------------------------------+

+|``NUMERIC``      |``NUMERIC``      |``scale`` is currently fixed to 2             |

+|                 |                 |(though a different one can be specified)     |

++-----------------+-----------------+----------------------------------------------+

+|``OTHER``        |``BLOB``         |Will be read back as ``BLOB``                 |

++-----------------+-----------------+----------------------------------------------+

+|``REAL``         |``REAL``         |Will be read back as ``FLOAT``                |

++-----------------+-----------------+----------------------------------------------+

+|``REF``          |``VARBINARY``    |Will be read back as ``VARBINARY``            |

++-----------------+-----------------+----------------------------------------------+

+|``SMALLINT``     |``SMALLINT``     |                                              |

++-----------------+-----------------+----------------------------------------------+

+|``STRUCT``       |``VARBINARY``    |Will be read back as ``VARBINARY``            |

++-----------------+-----------------+----------------------------------------------+

+|``TIME``         |``TIME``         |Axion handles ``DATE``, ``TIME`` the same as  |

+|                 |                 |``TIMESTAMP``                                 |

++-----------------+-----------------+----------------------------------------------+

+|``TIMESTAMP``    |``TIMESTAMP``    |                                              |

++-----------------+-----------------+----------------------------------------------+

+|``TINYINT``      |``SMALLINT``     |Will be read back as ``SMALLINT``             |

++-----------------+-----------------+----------------------------------------------+

+|``VARBINARY``    |``VARBINARY``    |                                              |

++-----------------+-----------------+----------------------------------------------+

+|``VARCHAR``      |`VARCHAR``       |                                              |

++-----------------+-----------------+----------------------------------------------+

diff --git a/src/site/sphinx/databases/db2.rst b/src/site/sphinx/databases/db2.rst
new file mode 100644
index 0000000..94785b0
--- /dev/null
+++ b/src/site/sphinx/databases/db2.rst
@@ -0,0 +1,151 @@
+.. Licensed to the Apache Software Foundation (ASF) under one

+   or more contributor license agreements.  See the NOTICE file

+   distributed with this work for additional information

+   regarding copyright ownership.  The ASF licenses this file

+   to you under the Apache License, Version 2.0 (the

+   "License"); you may not use this file except in compliance

+   with the License.  You may obtain a copy of the License at

+

+    http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing,

+   software distributed under the License is distributed on an

+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+   KIND, either express or implied.  See the License for the

+   specific language governing permissions and limitations

+   under the License.

+

+.. _`IBM DB2`: http://www-130.ibm.com/developerworks/db2/

+.. _`DB2 SQL Reference V7`: ftp://ftp.software.ibm.com/ps/products/db2/info/vr7/pdf/letter/db2s0e70.pdf

+.. _`DB2 JDBC datatypes documentation`: http://publib.boulder.ibm.com/infocenter/db2luw/v8/topic/com.ibm.db2.udb.doc/ad/rjvjdata.htm

+

+DB 2

+====

+

+The DdlUtils support for `IBM DB2`_ is based upon version *7*. The datatypes and

+SQL elements in DB2 are described in the `DB2 SQL Reference V7`_. Some specifics

+related to the JDBC driver and suggested typemappings can also be found in the

+`DB2 JDBC datatypes documentation`_.

+

+DdlUtils provides two platforms for DB2, one for version 7 and one for version 8 and above, which

+mainly differ in the maximum identifier lengths (see below for details.) Note that you have to

+specify the v8 platform manually as the auto detection currently always selects the v7 platform.

+

+Constraints

+-----------

+

+Platform identifier

+  | ``DB2`` for the v7 platform

+  | ``DB2v8`` for the v8 platform

+

+Recognized JDBC driver

+  | ``com.ibm.db2.jcc.DB2Driver``

+  | ``COM.ibm.db2.jdbc.app.DB2Driver``

+  | ``COM.ibm.db2os390.sqlj.jdbc.DB2SQLJDriver``

+  | ``com.ibm.as400.access.AS400JDBCDriver``

+

+Recognized JDBC sub protocols

+  | ``jdbc:db2``

+  | ``jdbc:db2os390``

+  | ``jdbc:2os390sqlj``

+  | ``jdbc:as400``

+

+Supports SQL comments

+  yes

+

+Supports delimited identifiers

+  yes

+

+Maximum identifier length

+  | 18 for the v7 platform

+  | The v8 platform supports 128 characters for identifiers (e.g. table names), 30 characters for column names, and 18 for constraints and foreign keys

+

+Supports default values for ``LONG`` types

+  yes

+

+Supports non-unique indices

+  yes

+

+Supports non-primary key columns as identity columns

+  yes

+

+Allows ``INSERT``/``UPDATE`` statements to set values for identity columns

+  yes

+

+DdlUtils uses sequences for identity columns

+  no

+

+DdlUtils can read back the auto-generated value of an identity column

+  yes

+

+DdlUtils can create a database via JDBC

+  no

+

+DdlUtils can drop a database via JDBC

+  no

+

++-----------------+-----------------------------+--------------------------------------+

+|JDBC Type        |Database Type                |Additional comments                   |

++=================+=============================+======================================+

+|``ARRAY``        |``BLOB``                     |Will be read back as ``BLOB``         |

++-----------------+-----------------------------+--------------------------------------+

+|``BIGINT``       |``BIGINT``                   |                                      |

++-----------------+-----------------------------+--------------------------------------+

+|``BINARY``       |``CHAR(n) FOR BIT DATA``     |                                      |

++-----------------+-----------------------------+--------------------------------------+

+|``BIT``          |``SMALLINT``                 |DB2 has no native boolean type.       |

+|                 |                             |Will be read back as ``SMALLINT``     |

++-----------------+-----------------------------+--------------------------------------+

+|``BLOB``         |``BLOB``                     |                                      |

++-----------------+-----------------------------+--------------------------------------+

+|``BOOLEAN``      |``SMALLINT``                 |DB2 has no native boolean type.       |

+|                 |                             |Will be read back as ``SMALLINT``     |

++-----------------+-----------------------------+--------------------------------------+

+|``CHAR``         |``CHAR``                     |                                      |

++-----------------+-----------------------------+--------------------------------------+

+|``CLOB``         |``CLOB``                     |                                      |

++-----------------+-----------------------------+--------------------------------------+

+|``DATALINK``     |``DATALINK``                 |                                      |

++-----------------+-----------------------------+--------------------------------------+

+|``DATE``         |``DATE``                     |                                      |

++-----------------+-----------------------------+--------------------------------------+

+|``DECIMAL``      |``DECIMAL``                  |                                      |

++-----------------+-----------------------------+--------------------------------------+

+|``DISTINCT``     |``DISTINCT``                 |                                      |

++-----------------+-----------------------------+--------------------------------------+

+|``DOUBLE``       |``DOUBLE``                   |                                      |

++-----------------+-----------------------------+--------------------------------------+

+|``FLOAT``        |``DOUBLE``                   |                                      |

++-----------------+-----------------------------+--------------------------------------+

+|``INTEGER``      |``INTEGER``                  |                                      |

++-----------------+-----------------------------+--------------------------------------+

+|``JAVA_OBJECT``  |``BLOB``                     |Will be read back as ``BLOB``         |

++-----------------+-----------------------------+--------------------------------------+

+|``LONGVARBINARY``|``LONG VARCHAR FOR BIT DATA``|                                      |

++-----------------+-----------------------------+--------------------------------------+

+|``LONGVARCHAR``  |``LONG VARCHAR``             |                                      |

++-----------------+-----------------------------+--------------------------------------+

+|``NULL``         |``LONG VARCHAR FOR BIT DATA``|Will be read back as ``LONGVARBINARY``|

++-----------------+-----------------------------+--------------------------------------+

+|``NUMERIC``      |``DECIMAL``                  |Will be read back as ``DECIMAL``      |

++-----------------+-----------------------------+--------------------------------------+

+|``OTHER``        |``BLOB``                     |Will be read back as ``BLOB``         |

++-----------------+-----------------------------+--------------------------------------+

+|``REAL``         |``REAL``                     |                                      |

++-----------------+-----------------------------+--------------------------------------+

+|``REF``          |``REF``                      |                                      |

++-----------------+-----------------------------+--------------------------------------+

+|``SMALLINT``     |``SMALLINT``                 |                                      |

++-----------------+-----------------------------+--------------------------------------+

+|``STRUCT``       |``BLOB``                     |Will be read back as ``BLOB``         |

++-----------------+-----------------------------+--------------------------------------+

+|``TIME``         |``TIME``                     |                                      |

++-----------------+-----------------------------+--------------------------------------+

+|``TIMESTAMP``    |``TIMESTAMP``                |                                      |

++-----------------+-----------------------------+--------------------------------------+

+|``TINYINT``      |``SMALLINT``                 |Will be read back as ``SMALLINT``     |

++-----------------+-----------------------------+--------------------------------------+

+|``VARBINARY``    |``VARCHAR(n) FOR BIT DATA``  |                                      |

++-----------------+-----------------------------+--------------------------------------+

+|``VARCHAR``      |``VARCHAR``                  |                                      |

++-----------------+-----------------------------+--------------------------------------+

diff --git a/src/site/sphinx/databases/derby.rst b/src/site/sphinx/databases/derby.rst
new file mode 100644
index 0000000..7834dbf
--- /dev/null
+++ b/src/site/sphinx/databases/derby.rst
@@ -0,0 +1,154 @@
+.. Licensed to the Apache Software Foundation (ASF) under one

+   or more contributor license agreements.  See the NOTICE file

+   distributed with this work for additional information

+   regarding copyright ownership.  The ASF licenses this file

+   to you under the Apache License, Version 2.0 (the

+   "License"); you may not use this file except in compliance

+   with the License.  You may obtain a copy of the License at

+

+    http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing,

+   software distributed under the License is distributed on an

+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+   KIND, either express or implied.  See the License for the

+   specific language governing permissions and limitations

+   under the License.

+

+.. _`Cloudscape`: http://www-306.ibm.com/software/data/cloudscape/

+.. _`Cloudscape Reference Manual`: ftp://publib.boulder.ibm.com/epubs/pdf/c1892480.pdf

+.. _`Apache Derby`: http://db.apache.org/derby/

+.. _`Reference Manual`: http://db.apache.org/derby/manuals/index.html

+

+Derby/Java DB/Cloudscape

+========================

+

+The `Apache Derby`_ project is based upon `Cloudscape`_ version 10, which IBM

+contributed to Apache in 2004. The SQL syntax and datatypes supported by Derby are described in

+the Datatypes section in the `Reference Manual`_.

+

+DdlUtils currently supports Cloudscape version 10.0. Information about the SQL elements and

+datatypes of Cloudscape is found in the `Cloudscape Reference Manual`_. Because development and

+support of Cloudscape has ended in favor of Derby, the DdlUtils support for Cloudscape is legacy

+and will likely be removed in future versions. If you use Cloudscape we strongly suggest that you

+update to Derby.

+

+Constraints

+-----------

+

+Platform identifier

+  | ``Derby`` for the Derby platform

+  | ``Cloudscape`` for the Cloudscape platform

+

+Recognized JDBC drivers

+  | ``org.apache.derby.jdbc.ClientDriver`` (Derby)

+  | ``org.apache.derby.jdbc.EmbeddedDriver`` (Derby)

+

+Recognized JDBC sub protocols

+  | ``jdbc:derby`` (Derby)

+  | ``jdbc:db2j:net`` (Cloudscape)

+  | ``jdbc:cloudscape:net`` (Cloudscape)

+

+Supports SQL comments

+  yes

+

+Supports delimited identifiers

+  yes

+

+Maximum identifier length

+  128

+

+Supports default values for ``LONG`` types

+  yes

+

+Supports non-unique indices

+  yes

+

+Supports non-primary key columns as identity columns

+  yes

+

+Allows ``INSERT``/``UPDATE`` statements to set values for identity columns

+  yes

+

+DdlUtils uses sequences for identity columns

+  yes

+

+DdlUtils can read back the auto-generated value of an identity column

+  no

+

+DdlUtils can create a database via JDBC

+  yes

+

+DdlUtils can drop a database via JDBC

+  no

+

+Datatypes

+---------

+

++-----------------+--------------------------------+---------------------------------------------+

+|JDBC Type        |Database Type                   |Additional comments                          |

++=================+================================+=============================================+

+|``ARRAY``        |``BLOB``                        |Will be read back as ``BLOB``                |

++-----------------+--------------------------------+---------------------------------------------+

+|``BIGINT``       |``BIGINT``                      |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``BINARY``       |``CHAR(n) FOR BIT DATA``        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``BIT``          |``SMALLINT``                    |Cloudscape/Derby have no native boolean type.|

+|                 |                                |Will be read back as ``SMALLINT``            |

++-----------------+--------------------------------+---------------------------------------------+

+|``BLOB``         |``BLOB``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``BOOLEAN``      |``SMALLINT``                    |Cloudscape/Derby have no native boolean type.|

+|                 |                                |Will be read back as ``SMALLINT``            |

++-----------------+--------------------------------+---------------------------------------------+

+|``CHAR``         |``CHAR``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``CLOB``         |``CLOB``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``DATALINK``     |``LONG VARCHAR FOR BIT DATA``   |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``DATE``         |``DATE``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``DECIMAL``      |``DECIMAL``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``DISTINCT``     |``BLOB``                        |Will be read back as ``BLOB``                |

++-----------------+--------------------------------+---------------------------------------------+

+|``DOUBLE``       |Cloudscape: ``DOUBLE PRECISION``|                                             |

+|                 |Derby: ``DOUBLE``               |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``FLOAT``        |Cloudscape: ``DOUBLE PRECISION``|Will be read back as ``DOUBLE``              |

+|                 |Derby: ``DOUBLE``               |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``INTEGER``      |``INTEGER``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``JAVA_OBJECT``  |``BLOB``                        |Will be read back as ``BLOB``                |

++-----------------+--------------------------------+---------------------------------------------+

+|``LONGVARBINARY``|``LONG VARCHAR FOR BIT DATA``   |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``LONGVARCHAR``  |``LONG VARCHAR``                |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``NULL``         |``LONG VARCHAR FOR BIT DATA``   |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``NUMERIC``      |``NUMERIC``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``OTHER``        |``BLOB``                        |Will be read back as ``BLOB``                |

++-----------------+--------------------------------+---------------------------------------------+

+|``REAL``         |``REAL``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``REF``          |``LONG VARCHAR FOR BIT DATA``   |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``SMALLINT``     |``SMALLINT``                    |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``STRUCT``       |``BLOB``                        |Will be read back as ``BLOB``                |

++-----------------+--------------------------------+---------------------------------------------+

+|``TIME``         |``TIME``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``TIMESTAMP``    |``TIMESTAMP``                   |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``TINYINT``      |``SMALLINT``                    |Will be read back as ``SMALLINT``            |

++-----------------+--------------------------------+---------------------------------------------+

+|``VARBINARY``    |``VARCHAR(n) FOR BIT DATA``     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``VARCHAR``      |``VARCHAR``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

diff --git a/src/site/sphinx/databases/firebird.rst b/src/site/sphinx/databases/firebird.rst
new file mode 100644
index 0000000..2fcb919
--- /dev/null
+++ b/src/site/sphinx/databases/firebird.rst
@@ -0,0 +1,137 @@
+.. Licensed to the Apache Software Foundation (ASF) under one

+   or more contributor license agreements.  See the NOTICE file

+   distributed with this work for additional information

+   regarding copyright ownership.  The ASF licenses this file

+   to you under the Apache License, Version 2.0 (the

+   "License"); you may not use this file except in compliance

+   with the License.  You may obtain a copy of the License at

+

+    http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing,

+   software distributed under the License is distributed on an

+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+   KIND, either express or implied.  See the License for the

+   specific language governing permissions and limitations

+   under the License.

+

+.. _`Firebird`: http://www.firebirdsql.org/

+

+Firebird

+========

+

+DdlUtils supports `Firebird`_, version 1 and above.

+

+Constraints

+-----------

+

+Platform identifier

+  ``Firebird``

+

+Recognized JDBC drivers

+  ``org.firebirdsql.jdbc.FBDriver``

+

+Recognized JDBC sub protocols

+  ``jdbc:firebirdsql``

+

+Supports SQL comments

+  yes

+

+Supports delimited identifiers

+  yes

+

+Maximum identifier length

+  31

+

+Supports default values for ``LONG`` types

+  yes

+

+Supports non-unique indices

+  yes

+

+Supports non-primary key columns as identity columns

+  yes

+

+Allows ``INSERT``/``UPDATE`` statements to set values for identity columns

+  yes

+

+DdlUtils uses sequences for identity columns

+  yes

+

+DdlUtils can read back the auto-generated value of an identity column

+  yes

+

+DdlUtils can create a database via JDBC

+  no

+

+DdlUtils can drop a database via JDBC

+  no

+

+Datatypes

+---------

+

++-----------------+--------------------------------+---------------------------------------------+

+|JDBC Type        |Database Type                   |Additional comments                          |

++=================+================================+=============================================+

+|``ARRAY``        |``BLOB``                        |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``BIGINT``       |``BIGINT``                      |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``BINARY``       |``BLOB``                        |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``BIT``          |``SMALLINT``                    |Firebird has no native boolean type.         |

+|                 |                                |Will be read back as ``SMALLINT``            |

++-----------------+--------------------------------+---------------------------------------------+

+|``BLOB``         |``BLOB``                        |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``BOOLEAN``      |``SMALLINT``                    |Firebird has no native boolean type.         |

+|                 |                                |Will be read back as ``SMALLINT``            |

++-----------------+--------------------------------+---------------------------------------------+

+|``CHAR``         |``CHAR``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``CLOB``         |``BLOB SUB_TYPE TEXT``          |Will be read back as ``LONGVARCHAR``         |

++-----------------+--------------------------------+---------------------------------------------+

+|``DATALINK``     |``BLOB``                        |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``DATE``         |``DATE``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``DECIMAL``      |``DECIMAL``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``DISTINCT``     |``BLOB``                        |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``DOUBLE``       |``DOUBLE PRECISION``            |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``FLOAT``        |``DOUBLE PRECISION``            |Will be read back as ``DOUBLE``              |

++-----------------+--------------------------------+---------------------------------------------+

+|``INTEGER``      |``INTEGER``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``JAVA_OBJECT``  |``BLOB``                        |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``LONGVARBINARY``|``BLOB``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``LONGVARCHAR``  |``BLOB SUB_TYPE TEXT``          |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``NULL``         |``BLOB``                        |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``NUMERIC``      |``NUMERIC``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``OTHER``        |``BLOB``                        |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``REAL``         |``FLOAT``                       |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``REF``          |``BLOB``                        |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``SMALLINT``     |``SMALLINT``                    |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``STRUCT``       |``BLOB``                        |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``TIME``         |``TIME``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``TIMESTAMP``    |``TIMESTAMP``                   |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``TINYINT``      |``SMALLINT``                    |Will be read back as ``SMALLINT``            |

++-----------------+--------------------------------+---------------------------------------------+

+|``VARBINARY``    |``BLOB``                        |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``VARCHAR``      |``VARCHAR``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

diff --git a/src/site/sphinx/databases/hsqldb.rst b/src/site/sphinx/databases/hsqldb.rst
new file mode 100644
index 0000000..f516231
--- /dev/null
+++ b/src/site/sphinx/databases/hsqldb.rst
@@ -0,0 +1,145 @@
+.. Licensed to the Apache Software Foundation (ASF) under one

+   or more contributor license agreements.  See the NOTICE file

+   distributed with this work for additional information

+   regarding copyright ownership.  The ASF licenses this file

+   to you under the Apache License, Version 2.0 (the

+   "License"); you may not use this file except in compliance

+   with the License.  You may obtain a copy of the License at

+

+    http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing,

+   software distributed under the License is distributed on an

+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+   KIND, either express or implied.  See the License for the

+   specific language governing permissions and limitations

+   under the License.

+

+.. _`HSQLDB`: http://www.hsqldb.org/

+.. _`HSQLDB SQL manual`: http://www.hsqldb.org/doc/guide/ch09.html

+

+HsqlDB

+======

+

+DdlUtils supports the `HSQLDB`_ database, version 1.7.2 or newer. SQL Documentation for

+HSQLDB can be found in the distribution, and for the newest version in the

+`HSQLDB SQL manual`_.

+

+Constraints

+-----------

+

+Platform identifier

+  ``HsqlDb``

+

+Recognized JDBC drivers

+  ``org.hsqldb.jdbcDriver``

+

+Recognized JDBC sub protocols

+  ``jdbc:hsqldb``

+

+Supports SQL comments

+  yes

+

+Supports delimited identifiers

+  yes

+

+Maximum identifier length

+  unlimited

+

+Supports default values for ``LONG`` types

+  yes

+

+Supports non-unique indices

+  yes

+

+Supports non-primary key columns as identity columns

+  no

+

+Allows ``INSERT``/``UPDATE`` statements to set values for identity columns

+  yes

+

+DdlUtils uses sequences for identity columns

+  no

+

+DdlUtils can read back the auto-generated value of an identity column

+  yes

+

+DdlUtils can create a database via JDBC

+  no

+

+DdlUtils can drop a database via JDBC

+  no

+

+Datatypes

+---------

+

++-----------------+--------------------------------+---------------------------------------------+

+|JDBC Type        |Database Type                   |Additional comments                          |

++=================+================================+=============================================+

+|``ARRAY``        |``LONGVARBINARY``               |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``BIGINT``       |``BIGINT``                      |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``BINARY``       |``BINARY``                      |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``BIT``          |``BOOLEAN``                     |Will be read back as ``BOOLEAN``             |

++-----------------+--------------------------------+---------------------------------------------+

+|``BLOB``         |``LONGVARBINARY``               |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``BOOLEAN``      |``BOOLEAN``                     |``BOOLEAN`` is supported natively by Hsqldb  |

+|                 |                                |only since version 1.7.2                     |

++-----------------+--------------------------------+---------------------------------------------+

+|``CHAR``         |``CHAR``                        |The size is optional, by default Hsqldb does |

+|                 |                                |not enforce it                               |

++-----------------+--------------------------------+---------------------------------------------+

+|``CLOB``         |``LONGVARCHAR``                 |Will be read back as ``LONGVARCHAR``         |

++-----------------+--------------------------------+---------------------------------------------+

+|``DATALINK``     |``LONGVARBINARY``               |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``DATE``         |``DATE``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``DECIMAL``      |``DECIMAL``                     |Precision and scale are ignored by Hsqldb, as|

+|                 |                                |it uses unlimited precision and scale        |

++-----------------+--------------------------------+---------------------------------------------+

+|``DISTINCT``     |``LONGVARBINARY``               |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``DOUBLE``       |``DOUBLE``                      |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``FLOAT``        |``DOUBLE``                      |Will be read back as ``DOUBLE``              |

++-----------------+--------------------------------+---------------------------------------------+

+|``INTEGER``      |``INTEGER``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``JAVA_OBJECT``  |``OBJECT``                      |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``LONGVARBINARY``|``LONGVARBINARY``               |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``LONGVARCHAR``  |``LONGVARCHAR``                 |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``NULL``         |``LONGVARBINARY``               |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``NUMERIC``      |``NUMERIC``                     |Precision and scale are ignored by Hsqldb, as|

+|                 |                                |it uses unlimited precision and scale        |

++-----------------+--------------------------------+---------------------------------------------+

+|``OTHER``        |``OTHER``                       |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``REAL``         |``REAL``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``REF``          |``LONGVARBINARY``               |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``SMALLINT``     |``SMALLINT``                    |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``STRUCT``       |``LONGVARBINARY``               |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``TIME``         |``TIME``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``TIMESTAMP``    |``TIMESTAMP``                   |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``TINYINT``      |``SMALLINT``                    |JDBC's ``TINYINT`` requires a value range of |

+|                 |                                |-255 to 255, but HsqlDb's is only -128 to    |

+|                 |                                |127. Will be read back as ``SMALLINT``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``VARBINARY``    |``VARBINARY``                   |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``VARCHAR``      |``VARCHAR``                     |The size is optional, by default Hsqldb does |

+|                 |                                |not enforce it                               |

++-----------------+--------------------------------+---------------------------------------------+

diff --git a/src/site/sphinx/databases/index.rst b/src/site/sphinx/databases/index.rst
new file mode 100644
index 0000000..b092393
--- /dev/null
+++ b/src/site/sphinx/databases/index.rst
@@ -0,0 +1,36 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied.  See the License for the
+   specific language governing permissions and limitations
+   under the License.
+
+Database details
+================
+
+.. toctree::
+   :maxdepth: 2
+
+   axion
+   db2
+   derby
+   firebird
+   hsqldb
+   interbase
+   maxdb
+   mckoi
+   mysql
+   oracle
+   postgresql
+   sqlserver
+   sybase
\ No newline at end of file
diff --git a/src/site/sphinx/databases/interbase.rst b/src/site/sphinx/databases/interbase.rst
new file mode 100644
index 0000000..5c87910
--- /dev/null
+++ b/src/site/sphinx/databases/interbase.rst
@@ -0,0 +1,143 @@
+.. Licensed to the Apache Software Foundation (ASF) under one

+   or more contributor license agreements.  See the NOTICE file

+   distributed with this work for additional information

+   regarding copyright ownership.  The ASF licenses this file

+   to you under the Apache License, Version 2.0 (the

+   "License"); you may not use this file except in compliance

+   with the License.  You may obtain a copy of the License at

+

+    http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing,

+   software distributed under the License is distributed on an

+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+   KIND, either express or implied.  See the License for the

+   specific language governing permissions and limitations

+   under the License.

+

+.. _`Interbase`: http://www.codegear.com/tabid/125/Default.aspx

+

+Interbase

+=========

+

+DdlUtils supports `Interbase`_ version 7.0 and above.

+

+Constraints

+-----------

+

+Platform identifier

+  ``Interbase``

+

+Recognized JDBC drivers

+  ``interbase.interclient.Driver``

+

+Recognized JDBC sub protocols

+  ``jdbc:interbase``

+

+Supports SQL comments

+  yes

+

+Supports delimited identifiers

+  yes

+

+Maximum identifier length

+  31

+

+Supports default values for ``LONG`` types

+  yes

+

+Supports non-unique indices

+  yes

+

+Supports non-primary key columns as identity columns

+  yes

+

+Allows ``INSERT``/``UPDATE`` statements to set values for identity columns

+  yes

+

+DdlUtils uses sequences for identity columns

+  DdlUtils uses a ``GENERATOR``

+

+DdlUtils can read back the auto-generated value of an identity column

+  yes

+

+DdlUtils can create a database via JDBC

+  no

+

+DdlUtils can drop a database via JDBC

+  no

+

+Datatypes

+---------

+

++-----------------+--------------------------------+---------------------------------------------+

+|JDBC Type        |Database Type                   |Additional comments                          |

++=================+================================+=============================================+

+|``ARRAY``        |``BLOB``                        |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``BIGINT``       |``NUMERIC(18,0)``               |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``BINARY``       |``BLOB``                        |We could use ``CHAR(n) CHARACTER SET OCTETS``|

+|                 |                                |but the JDBC driver cannot handle these types|

+|                 |                                |properly. Will be read back as               |

+|                 |                                |``LONGVARBINARY``                            |

++-----------------+--------------------------------+---------------------------------------------+

+|``BIT``          |``SMALLINT``                    |Interbase has no native boolean type.        |

+|                 |                                |Will be read back as ``SMALLINT``            |

++-----------------+--------------------------------+---------------------------------------------+

+|``BLOB``         |``BLOB``                        |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``BOOLEAN``      |``SMALLINT``                    |Interbase has no native boolean type.        |

+|                 |                                |Will be read back as ``SMALLINT``            |

++-----------------+--------------------------------+---------------------------------------------+

+|``CHAR``         |``CHAR``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``CLOB``         |``BLOB SUB_TYPE TEXT``          |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``DATALINK``     |``BLOB``                        |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``DATE``         |``DATE``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``DECIMAL``      |``DECIMAL``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``DISTINCT``     |``BLOB``                        |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``DOUBLE``       |``DOUBLE PRECISION``            |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``FLOAT``        |``DOUBLE PRECISION``            |Will be read back as ``DOUBLE``              |

++-----------------+--------------------------------+---------------------------------------------+

+|``INTEGER``      |``INTEGER``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``JAVA_OBJECT``  |``BLOB``                        |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``LONGVARBINARY``|``BLOB``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``LONGVARCHAR``  |``BLOB SUB_TYPE TEXT``          |Will be read back as ``CLOB``                |

++-----------------+--------------------------------+---------------------------------------------+

+|``NULL``         |``BLOB``                        |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``NUMERIC``      |``NUMERIC``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``OTHER``        |``BLOB``                        |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``REAL``         |``FLOAT``                       |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``REF``          |``BLOB``                        |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``SMALLINT``     |``SMALLINT``                    |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``STRUCT``       |``BLOB``                        |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``TIME``         |``TIME``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``TIMESTAMP``    |``TIMESTAMP``                   |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``TINYINT``      |``SMALLINT``                    |Will be read back as ``SMALLINT``            |

++-----------------+--------------------------------+---------------------------------------------+

+|``VARBINARY``    |``BLOB``                        |We could use ``VARCHAR(n) CHARACTER SET      |

+|                 |                                |OCTETS`` but the JDBC driver cannot handle   |

+|                 |                                |these types properly. Will be read back as   |

+|                 |                                |``LONGVARBINARY``                            |

++-----------------+--------------------------------+---------------------------------------------+

+|``VARCHAR``      |``VARCHAR``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

diff --git a/src/site/sphinx/databases/maxdb.rst b/src/site/sphinx/databases/maxdb.rst
new file mode 100644
index 0000000..bd90004
--- /dev/null
+++ b/src/site/sphinx/databases/maxdb.rst
@@ -0,0 +1,142 @@
+.. Licensed to the Apache Software Foundation (ASF) under one

+   or more contributor license agreements.  See the NOTICE file

+   distributed with this work for additional information

+   regarding copyright ownership.  The ASF licenses this file

+   to you under the Apache License, Version 2.0 (the

+   "License"); you may not use this file except in compliance

+   with the License.  You may obtain a copy of the License at

+

+    http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing,

+   software distributed under the License is distributed on an

+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+   KIND, either express or implied.  See the License for the

+   specific language governing permissions and limitations

+   under the License.

+

+.. _`SapDB`: http://www.sapdb.org/

+.. _`SapDB Reference manual`: http://www.sapdb.org/pdf/reference_72_73eng.pdf

+.. _`MaxDB`: http://www.mysql.com/products/maxdb/

+.. _`MaxDB documentation`: http://dev.mysql.com/get/Downloads/MaxDB/7.5.00/maxdb-chmdoc-75.chm/from/pick

+

+MaxDB/SapDB

+===========

+

+The `SapDB`_ database had been open-sourced and rebranded as `MaxDB`_ in version 7.4. DdlUtils supports

+SapDB version 7.2 and newer, and MaxDB version 7.5, and newer. Documentation of the SQL supported by

+SapDB can be found in the `SapDB Reference manual`_. Documentation for MaxDB is found in the

+`MaxDB documentation`_.

+

+Constraints

+-----------

+

+Platform identifier

+  | ``MaxDB``

+  | ``SapDB``

+

+Recognized JDBC drivers

+  ``com.sap.dbtech.jdbc.DriverSapDB``

+

+Recognized JDBC sub protocols

+  ``jdbc:sapdb``

+

+Supports SQL comments

+  yes

+

+Supports delimited identifiers

+  yes

+

+Maximum identifier length

+  32

+

+Supports default values for ``LONG`` types

+  yes

+

+Supports non-unique indices

+  yes

+

+Supports non-primary key columns as identity columns

+  yes

+

+Allows ``INSERT``/``UPDATE`` statements to set values for identity columns

+  yes

+

+DdlUtils uses sequences for identity columns

+  no

+

+DdlUtils can read back the auto-generated value of an identity column

+  yes

+

+DdlUtils can create a database via JDBC

+  no

+

+DdlUtils can drop a database via JDBC

+  no

+

+Datatypes

+---------

+

++-----------------+--------------------------------+---------------------------------------------+

+|JDBC Type        |Database Type                   |Additional comments                          |

++=================+================================+=============================================+

+|``ARRAY``        |``LONG BYTE``                   |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``BIGINT``       |``FIXED(38,0)``                 |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``BINARY``       |``CHAR(n) BYTE``                |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``BIT``          |``BOOLEAN``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``BLOB``         |``LONG BYTE``                   |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``BOOLEAN``      |``BOOLEAN``                     |Will be read back as ``BIT``                 |

++-----------------+--------------------------------+---------------------------------------------+

+|``CHAR``         |``CHAR``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``CLOB``         |``LONG``                        |Will be read back as ``LONGVARCHAR``         |

++-----------------+--------------------------------+---------------------------------------------+

+|``DATALINK``     |``LONG BYTE``                   |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``DATE``         |``DATE``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``DECIMAL``      |``FIXED``                       |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``DISTINCT``     |``LONG BYTE``                   |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``DOUBLE``       |``FLOAT(38)``                   |Will be read back as ``FLOAT``               |

++-----------------+--------------------------------+---------------------------------------------+

+|``FLOAT``        |``FLOAT(38)``                   |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``INTEGER``      |``INTEGER``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``JAVA_OBJECT``  |``LONG BYTE``                   |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``LONGVARBINARY``|``LONG BYTE``                   |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``LONGVARCHAR``  |``LONG``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``NULL``         |``LONG BYTE``                   |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``NUMERIC``      |``FIXED``                       |Will be read back as ``DECIMAL``             |

++-----------------+--------------------------------+---------------------------------------------+

+|``OTHER``        |``LONG BYTE``                   |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``REAL``         |``FLOAT(16)``                   |Will be read back as ``FLOAT``               |

++-----------------+--------------------------------+---------------------------------------------+

+|``REF``          |``LONG BYTE``                   |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``SMALLINT``     |``SMALLINT``                    |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``STRUCT``       |``LONG BYTE``                   |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``TIME``         |``TIME``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``TIMESTAMP``    |``TIMESTAMP``                   |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``TINYINT``      |``SMALLINT``                    |Will be read back as ``SMALLINT``            |

++-----------------+--------------------------------+---------------------------------------------+

+|``VARBINARY``    |``VARCHAR(n) BYTE``             |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``VARCHAR``      |``VARCHAR``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

diff --git a/src/site/sphinx/databases/mckoi.rst b/src/site/sphinx/databases/mckoi.rst
new file mode 100644
index 0000000..afebd10
--- /dev/null
+++ b/src/site/sphinx/databases/mckoi.rst
@@ -0,0 +1,138 @@
+.. Licensed to the Apache Software Foundation (ASF) under one

+   or more contributor license agreements.  See the NOTICE file

+   distributed with this work for additional information

+   regarding copyright ownership.  The ASF licenses this file

+   to you under the Apache License, Version 2.0 (the

+   "License"); you may not use this file except in compliance

+   with the License.  You may obtain a copy of the License at

+

+    http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing,

+   software distributed under the License is distributed on an

+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+   KIND, either express or implied.  See the License for the

+   specific language governing permissions and limitations

+   under the License.

+

+.. _`McKoi`: http://www.mckoi.com/database/

+.. _`Database manual`: http://www.mckoi.com/database/docindex.html

+

+McKoi

+=====

+

+The open source database `McKoi`_ is supported beginning with version 1.0.3.

+Details on the supported SQL and datatypes can be found in Chapter 2 of the

+`Database Manual`_.

+

+Constraints

+-----------

+

+Platform identifier

+  ``McKoi``

+

+Recognized JDBC drivers

+  ``com.mckoi.JDBCDriver``

+

+Recognized JDBC sub protocols

+  ``jdbc:mckoi``

+

+Supports SQL comments

+  yes

+

+Supports delimited identifiers

+  yes

+

+Maximum identifier length

+  unlimited

+

+Supports default values for ``LONG`` types

+  yes

+

+Supports non-unique indices

+  no

+

+Supports non-primary key columns as identity columns

+  yes

+

+Allows ``INSERT``/``UPDATE`` statements to set values for identity columns

+  yes

+

+DdlUtils uses sequences for identity columns

+  yes

+

+DdlUtils can read back the auto-generated value of an identity column

+  yes

+

+DdlUtils can create a database via JDBC

+  yes

+

+DdlUtils can drop a database via JDBC

+  no

+

+Datatypes

+---------

+

++-----------------+--------------------------------+---------------------------------------------+

+|JDBC Type        |Database Type                   |Additional comments                          |

++=================+================================+=============================================+

+|``ARRAY``        |``BLOB``                        |Will be read back as ``BLOB``                |

++-----------------+--------------------------------+---------------------------------------------+

+|``BIGINT``       |``BIGINT``                      |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``BINARY``       |``BINARY``                      |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``BIT``          |``BOOLEAN``                     |Will be read back as ``BOOLEAN``             |

++-----------------+--------------------------------+---------------------------------------------+

+|``BLOB``         |``BLOB``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``BOOLEAN``      |``BOOLEAN``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``CHAR``         |``CHAR``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``CLOB``         |``CLOB``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``DATALINK``     |``BLOB``                        |Will be read back as ``BLOB``                |

++-----------------+--------------------------------+---------------------------------------------+

+|``DATE``         |``DATE``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``DECIMAL``      |``DECIMAL``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``DISTINCT``     |``BLOB``                        |Will be read back as ``BLOB``                |

++-----------------+--------------------------------+---------------------------------------------+

+|``DOUBLE``       |``DOUBLE``                      |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``FLOAT``        |``DOUBLE``                      |Will be read back as ``DOUBLE``              |

++-----------------+--------------------------------+---------------------------------------------+

+|``INTEGER``      |``INTEGER``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``JAVA_OBJECT``  |``JAVA_OBJECT``                 |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``LONGVARBINARY``|``LONGVARBINARY``               |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``LONGVARCHAR``  |``LONGVARCHAR``                 |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``NULL``         |``BLOB``                        |Will be read back as ``BLOB``                |

++-----------------+--------------------------------+---------------------------------------------+

+|``NUMERIC``      |``NUMERIC``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``OTHER``        |``BLOB``                        |Will be read back as ``BLOB``                |

++-----------------+--------------------------------+---------------------------------------------+

+|``REAL``         |``REAL``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``REF``          |``BLOB``                        |Will be read back as ``BLOB``                |

++-----------------+--------------------------------+---------------------------------------------+

+|``SMALLINT``     |``SMALLINT``                    |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``STRUCT``       |``BLOB``                        |Will be read back as ``BLOB``                |

++-----------------+--------------------------------+---------------------------------------------+

+|``TIME``         |``TIME``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``TIMESTAMP``    |``TIMESTAMP``                   |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``TINYINT``      |``TINYINT``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``VARBINARY``    |``VARBINARY``                   |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``VARCHAR``      |``VARCHAR``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

diff --git a/src/site/sphinx/databases/mysql.rst b/src/site/sphinx/databases/mysql.rst
new file mode 100644
index 0000000..9616292
--- /dev/null
+++ b/src/site/sphinx/databases/mysql.rst
@@ -0,0 +1,156 @@
+.. Licensed to the Apache Software Foundation (ASF) under one

+   or more contributor license agreements.  See the NOTICE file

+   distributed with this work for additional information

+   regarding copyright ownership.  The ASF licenses this file

+   to you under the Apache License, Version 2.0 (the

+   "License"); you may not use this file except in compliance

+   with the License.  You may obtain a copy of the License at

+

+    http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing,

+   software distributed under the License is distributed on an

+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+   KIND, either express or implied.  See the License for the

+   specific language governing permissions and limitations

+   under the License.

+

+.. _`MySQL`: http://www.mysql.com/products/mysql/

+.. _`MySQL Reference Manual`: http://dev.mysql.com/doc/mysql/en/index.html

+

+MySQL

+=====

+

+`MySQL`_ is supported from version 3.23 onwards. Note that the major versions

+(3, 4, 5) differ in their datatype support. The supported SQL syntax and datatypes

+can be found in the `MySQL Reference Manual`_.

+

+DdlUtils provides two platforms, one for MySql versions 3 and 4, and one for MySql version 5 and above.

+The latter implements some aspects of reading back a model from the database differently to address

+some changes in MySql 5.

+

+Constraints

+-----------

+

+Platform identifier

+  | ``MySQL`` for MySql 3 and 4

+  | ``MySQL5`` for MySql 5

+

+Recognized JDBC drivers

+  | ``com.mysql.jdbc.Driver``

+  | ``org.gjt.mm.mysql.Driver``

+

+Recognized JDBC sub protocols

+  ``jdbc:mysql``

+

+Supports SQL comments

+  yes

+

+Supports delimited identifiers

+  yes

+

+Maximum identifier length

+  64

+

+Supports default values for ``LONG`` types

+  no

+

+Supports non-unique indices

+  yes

+

+Supports non-primary key columns as identity columns

+  no

+

+Allows ``INSERT``/``UPDATE`` statements to set values for identity columns

+  yes

+

+DdlUtils uses sequences for identity columns

+  no

+

+DdlUtils can read back the auto-generated value of an identity column

+  yes

+

+DdlUtils can create a database via JDBC

+  no

+

+DdlUtils can drop a database via JDBC

+  no

+

+Datatypes

+---------

+

++-----------------+--------------------------------+---------------------------------------------+

+|JDBC Type        |Database Type                   |Additional comments                          |

++=================+================================+=============================================+

+|``ARRAY``        |``LONGBLOB``                    |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``BIGINT``       |``BIGINT``                      |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``BINARY``       |``BINARY``                      |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``BIT``          |``TINYINT(1)``                  |MySql has no native boolean type.            |

++-----------------+--------------------------------+---------------------------------------------+

+|``BLOB``         |``LONGBLOB``                    |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``BOOLEAN``      |``TINYINT(1)``                  |MySql has no native boolean type.            |

+|                 |                                |Will be read back as ``BIT``                 |

++-----------------+--------------------------------+---------------------------------------------+

+|``CHAR``         |``CHAR``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``CLOB``         |``LONGTEXT``                    |Will be read back as ``LONGVARCHAR``         |

++-----------------+--------------------------------+---------------------------------------------+

+|``DATALINK``     |``MEDIUMBLOB``                  |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``DATE``         |``DATE``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``DECIMAL``      |``DECIMAL``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``DISTINCT``     |``LONGBLOB``                    |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``DOUBLE``       |``DOUBLE``                      |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``FLOAT``        |``DOUBLE``                      |Will be read back as ``DOUBLE``              |

++-----------------+--------------------------------+---------------------------------------------+

+|``INTEGER``      |``INTEGER``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``JAVA_OBJECT``  |``LONGBLOB``                    |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``LONGVARBINARY``|``MEDIUMBLOB``                  |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``LONGVARCHAR``  |``MEDIUMTEXT``                  |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``NULL``         |``MEDIUMTEXT``                  |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``NUMERIC``      |``DECIMAL``                     |Will be read back as ``DECIMAL``             |

++-----------------+--------------------------------+---------------------------------------------+

+|``OTHER``        |``LONGBLOB``                    |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``REAL``         |``FLOAT``                       |MySQL has a ``REAL`` datatype that is by     |

+|                 |                                |default an alias for ``DOUBLE``, though it   |

+|                 |                                |might be mapped to ``FLOAT`` via server      |

+|                 |                                |configuration. Therefore, DdlUtils explicitly|

+|                 |                                |uses ``FLOAT``. Will be read back as         |

+|                 |                                |``FLOAT``                                    |

++-----------------+--------------------------------+---------------------------------------------+

+|``REF``          |``MEDIUMBLOB``                  |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``SMALLINT``     |``SMALLINT``                    |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``STRUCT``       |``LONGBLOB``                    |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``TIME``         |``TIME``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``TIMESTAMP``    |``DATETIME``                    |``TIMESTAMP`` is not a stable MySQL datatype |

+|                 |                                |yet, and it does not support a higher        |

+|                 |                                |precision than ``DATETIME`` (year - seconds) |

+|                 |                                |as of MySQL 5. DdlUtils thus maps the JDBC   |

+|                 |                                |type to ``DATETIME`` instead.                |

++-----------------+--------------------------------+---------------------------------------------+

+|``TINYINT``      |``SMALLINT``                    |In MySQL, ``TINYINT`` only has a range of    |

+|                 |                                |-128 to +127. Thus DdlUtils uses ``SMALLINT``|

+|                 |                                |instead. Will be read back as ``SMALLINT``   |

++-----------------+--------------------------------+---------------------------------------------+

+|``VARBINARY``    |``VARBINARY``                   |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``VARCHAR``      |``VARCHAR``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

diff --git a/src/site/sphinx/databases/oracle.rst b/src/site/sphinx/databases/oracle.rst
new file mode 100644
index 0000000..ede82e1
--- /dev/null
+++ b/src/site/sphinx/databases/oracle.rst
@@ -0,0 +1,158 @@
+.. Licensed to the Apache Software Foundation (ASF) under one

+   or more contributor license agreements.  See the NOTICE file

+   distributed with this work for additional information

+   regarding copyright ownership.  The ASF licenses this file

+   to you under the Apache License, Version 2.0 (the

+   "License"); you may not use this file except in compliance

+   with the License.  You may obtain a copy of the License at

+

+    http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing,

+   software distributed under the License is distributed on an

+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+   KIND, either express or implied.  See the License for the

+   specific language governing permissions and limitations

+   under the License.

+

+.. _`Oracle database`: http://www.oracle.com/us/products/database/index.html

+.. _`Oracle database documentation`: http://www.oracle.com/technetwork/indexes/documentation/index.html#database

+

+Oracle

+======

+

+DdlUtils has support for the `Oracle database`_ for versions 8.1.7 and above.

+

+Info about the datatypes and SQL elements supported in the individual versions can be found in the

+Oracle SQL Reference which can be accessed via the `Oracle database documentation`_.

+

+DdlUtils provides different platforms for Oracle v8, v9, and v10. The v9 platform adds support for

+the native ``TIMESTAMP`` type, and the v10 platform handles the recycle bin that was introduced in

+version 10 of the Oracle database.

+

+Note that DdlUtils currently does not automatically detect the database version, so it will always

+choose the v8 version. If you want to make use of the additional features, then you have to

+specify the platform identifier manually.

+

+Constraints

+-----------

+

+Platform identifier

+  | ``Oracle``

+  | ``Oracle9``

+  | ``Oracle10``

+

+Recognized JDBC drivers

+  | ``oracle.jdbc.driver.OracleDriver``

+  | ``oracle.jdbc.dnlddriver.OracleDriver``

+

+Recognized JDBC sub protocols

+  | ``jdbc:oracle:thin``

+  | ``jdbc:oracle:oci8``

+  | ``jdbc:oracle:dnldthin``

+

+Supports SQL comments

+  yes

+

+Supports delimited identifiers

+  yes

+

+Maximum identifier length

+  30

+

+Supports default values for ``LONG`` types

+  yes

+

+Supports non-unique indices

+  yes

+

+Supports non-primary key columns as identity columns

+  yes

+

+Allows ``INSERT``/``UPDATE`` statements to set values for identity columns

+  yes

+

+DdlUtils uses sequences for identity columns

+  yes

+

+DdlUtils can read back the auto-generated value of an identity column

+  yes

+

+DdlUtils can create a database via JDBC

+  no

+

+DdlUtils can drop a database via JDBC

+  no

+

+Datatypes

+---------

+

++-----------------+--------------------------------+---------------------------------------------+

+|JDBC Type        |Database Type                   |Additional comments                          |

++=================+================================+=============================================+

+|``ARRAY``        |``BLOB``                        |Will be read back as ``BLOB``                |

++-----------------+--------------------------------+---------------------------------------------+

+|``BIGINT``       |``NUMBER(38)``                  |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``BINARY``       |``RAW``                         |Oracle requires the specification of the size|

+|                 |                                |for ``RAW`` columns. If no size was          |

+|                 |                                |specified, then 254 is used. Will be read    |

+|                 |                                |back as ``VARBINARY``                        |

++-----------------+--------------------------------+---------------------------------------------+

+|``BIT``          |``NUMBER(1)``                   |Oracle has no native boolean type.           |

++-----------------+--------------------------------+---------------------------------------------+

+|``BLOB``         |``BLOB``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``BOOLEAN``      |``NUMBER(1)``                   |Oracle has no native boolean type.           |

++-----------------+--------------------------------+---------------------------------------------+

+|``CHAR``         |``CHAR``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``CLOB``         |``CLOB``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``DATALINK``     |``BLOB``                        |Will be read back as ``BLOB``                |

++-----------------+--------------------------------+---------------------------------------------+

+|``DATE``         |``DATE``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``DECIMAL``      |``NUMBER``                      |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``DISTINCT``     |``BLOB``                        |Will be read back as ``BLOB``                |

++-----------------+--------------------------------+---------------------------------------------+

+|``DOUBLE``       |``DOUBLE PRECISION``            |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``FLOAT``        |``FLOAT``                       |Will be read back as ``DOUBLE``              |

++-----------------+--------------------------------+---------------------------------------------+

+|``INTEGER``      |``INTEGER``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``JAVA_OBJECT``  |``BLOB``                        |Will be read back as ``BLOB``                |

++-----------------+--------------------------------+---------------------------------------------+

+|``LONGVARBINARY``|``BLOB``                        |Will be read back as ``BLOB``                |

++-----------------+--------------------------------+---------------------------------------------+

+|``LONGVARCHAR``  |``CLOB``                        |Will be read back as ``CLOB``                |

++-----------------+--------------------------------+---------------------------------------------+

+|``NULL``         |``BLOB``                        |Will be read back as ``BLOB``                |

++-----------------+--------------------------------+---------------------------------------------+

+|``NUMERIC``      |``NUMBER``                      |Will be read back as ``DECIMAL``             |

++-----------------+--------------------------------+---------------------------------------------+

+|``OTHER``        |``BLOB``                        |Will be read back as ``BLOB``                |

++-----------------+--------------------------------+---------------------------------------------+

+|``REAL``         |``REAL``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``REF``          |``BLOB``                        |Will be read back as ``BLOB``                |

++-----------------+--------------------------------+---------------------------------------------+

+|``SMALLINT``     |``NUMBER(5)``                   |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``STRUCT``       |``BLOB``                        |Will be read back as ``BLOB``                |

++-----------------+--------------------------------+---------------------------------------------+

+|``TIME``         |``DATE``                        |Will be read back as ``TIMESTAMP``           |

++-----------------+--------------------------------+---------------------------------------------+

+|``TIMESTAMP``    |Oracle8: ``DATE``               |The TIMESTAMP native type is only supported  |

+|                 |Oracle9/10: ``TIMESTAMP``       |in Oracle 9 and above.                       |

++-----------------+--------------------------------+---------------------------------------------+

+|``TINYINT``      |``NUMBER(3)``                   |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``VARBINARY``    |``RAW``                         |Oracle requires the specification of the size|

+|                 |                                |for ``RAW`` columns. If no size was          |

+|                 |                                |specified, then 254 is used.                 |

++-----------------+--------------------------------+---------------------------------------------+

+|``VARCHAR``      |``VARCHAR2``                    |                                             |

++-----------------+--------------------------------+---------------------------------------------+

diff --git a/src/site/sphinx/databases/postgresql.rst b/src/site/sphinx/databases/postgresql.rst
new file mode 100644
index 0000000..511e3bb
--- /dev/null
+++ b/src/site/sphinx/databases/postgresql.rst
@@ -0,0 +1,137 @@
+.. Licensed to the Apache Software Foundation (ASF) under one

+   or more contributor license agreements.  See the NOTICE file

+   distributed with this work for additional information

+   regarding copyright ownership.  The ASF licenses this file

+   to you under the Apache License, Version 2.0 (the

+   "License"); you may not use this file except in compliance

+   with the License.  You may obtain a copy of the License at

+

+    http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing,

+   software distributed under the License is distributed on an

+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+   KIND, either express or implied.  See the License for the

+   specific language governing permissions and limitations

+   under the License.

+

+.. _`PostgreSQL`: http://www.postgresql.org/

+.. _`Manual`: http://www.postgresql.org/docs/7.4/interactive/index.html

+

+PostgreSQL

+==========

+

+DdlUtils supports `PostgreSQL`_ version 7.2.8 and newer. SQL syntax details and supported

+datatypes are described in the `Manual`_.

+

+Constraints

+-----------

+

+Platform identifier

+  ``PostgreSql``

+

+Recognized JDBC drivers

+  ``org.postgresql.Driver``

+

+Recognized JDBC sub protocols

+  ``jdbc:oracle:postgresql``

+

+Supports SQL comments

+  yes

+

+Supports delimited identifiers

+  yes

+

+Maximum identifier length

+  31

+

+Supports default values for ``LONG`` types

+  yes

+

+Supports non-unique indices

+  yes

+

+Supports non-primary key columns as identity columns

+  yes

+

+Allows ``INSERT``/``UPDATE`` statements to set values for identity columns

+  yes

+

+DdlUtils uses sequences for identity columns

+  yes

+

+DdlUtils can read back the auto-generated value of an identity column

+  yes

+

+DdlUtils can create a database via JDBC

+  yes

+

+DdlUtils can drop a database via JDBC

+  yes

+

+Datatypes

+---------

+

++-----------------+--------------------------------+---------------------------------------------+

+|JDBC Type        |Database Type                   |Additional comments                          |

++=================+================================+=============================================+

+|``ARRAY``        |``BYTEA``                       |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``BIGINT``       |``BIGINT``                      |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``BINARY``       |``BYTEA``                       |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``BIT``          |``BOOLEAN``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``BLOB``         |``BYTEA``                       |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``BOOLEAN``      |``BOOLEAN``                     |Will be read back as ``BIT``                 |

++-----------------+--------------------------------+---------------------------------------------+

+|``CHAR``         |``CHAR``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``CLOB``         |``TEXT``                        |Will be read back as ``LONGVARCHAR``         |

++-----------------+--------------------------------+---------------------------------------------+

+|``DATALINK``     |``BYTEA``                       |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``DATE``         |``DATE``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``DECIMAL``      |``NUMERIC``                     |Will be read back as ``NUMERIC``             |

++-----------------+--------------------------------+---------------------------------------------+

+|``DISTINCT``     |``BYTEA``                       |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``DOUBLE``       |``DOUBLE PRECISION``            |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``FLOAT``        |``DOUBLE PRECISION``            |Will be read back as ``DOUBLE``              |

++-----------------+--------------------------------+---------------------------------------------+

+|``INTEGER``      |``INTEGER``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``JAVA_OBJECT``  |``BYTEA``                       |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``LONGVARBINARY``|``BYTEA``                       |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``LONGVARCHAR``  |``TEXT``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``NULL``         |``BYTEA``                       |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``NUMERIC``      |``NUMERIC``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``OTHER``        |``BYTEA``                       |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``REAL``         |``REAL``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``REF``          |``BYTEA``                       |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``SMALLINT``     |``SMALLINT``                    |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``STRUCT``       |``BYTEA``                       |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``TIME``         |``TIME``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``TIMESTAMP``    |``TIMESTAMP``                   |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``TINYINT``      |``SMALLINT``                    |Will be read back as ``SMALLINT``            |

++-----------------+--------------------------------+---------------------------------------------+

+|``VARBINARY``    |``BYTEA``                       |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``VARCHAR``      |``VARCHAR``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

diff --git a/src/site/sphinx/databases/sqlserver.rst b/src/site/sphinx/databases/sqlserver.rst
new file mode 100644
index 0000000..2f755ef
--- /dev/null
+++ b/src/site/sphinx/databases/sqlserver.rst
@@ -0,0 +1,152 @@
+.. Licensed to the Apache Software Foundation (ASF) under one

+   or more contributor license agreements.  See the NOTICE file

+   distributed with this work for additional information

+   regarding copyright ownership.  The ASF licenses this file

+   to you under the Apache License, Version 2.0 (the

+   "License"); you may not use this file except in compliance

+   with the License.  You may obtain a copy of the License at

+

+    http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing,

+   software distributed under the License is distributed on an

+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+   KIND, either express or implied.  See the License for the

+   specific language governing permissions and limitations

+   under the License.

+

+.. _`Microsoft SQL Server`: http://msdn2.microsoft.com/en-us/sql/default.aspx

+.. _`Transact-SQL manual`: http://msdn.microsoft.com/en-us/library/Aa260642

+

+SQL Server

+==========

+

+The `Microsoft SQL Server`_ is supported form version 6.5 onwards. Information about the

+versions prior to SQL Server 2000 however is difficult to find online, you'll have to resort

+to the documentation accompanying the database. Information for version 2000 can be found

+in the `Transact-SQL manual`_.

+

+If possible, you should use the newest driver available. The older JDBC drivers (for SQL Server 2000 and

+older) provided my Microsoft, are known to be buggy and slow. The newer SQL Server drivers (2005 and newer)

+are preferred and can also work with SQL Server 2000.

+

+Constraints

+-----------

+

+Platform identifier

+  ``MsSql``

+

+Recognized JDBC drivers

+  | ``com.microsoft.jdbc.sqlserver.SQLServerDriver``

+  | ``com.microsoft.sqlserver.jdbc.SQLServerDriver``

+

+Recognized JDBC sub protocols

+  | ``jdbc:microsoft:sqlserver``

+  | ``jdbc:sqlserver``

+  | ``jdbc:sqljdbc``

+

+Supports SQL comments

+  yes

+

+Supports delimited identifiers

+  yes

+

+Maximum identifier length

+  128

+

+Supports default values for ``LONG`` types

+  yes

+

+Supports non-unique indices

+  yes

+

+Supports non-primary key columns as identity columns

+  yes

+

+Allows ``INSERT``/``UPDATE`` statements to set values for identity columns

+  yes

+

+DdlUtils uses sequences for identity columns

+  yes

+

+DdlUtils can read back the auto-generated value of an identity column

+  yes

+

+DdlUtils can create a database via JDBC

+  no

+

+DdlUtils can drop a database via JDBC

+  no

+

+Datatypes

+---------

+

++-----------------+--------------------------------+---------------------------------------------+

+|JDBC Type        |Database Type                   |Additional comments                          |

++=================+================================+=============================================+

+|``ARRAY``        |``IMAGE``                       |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``BIGINT``       |``DECIMAL(19,0)``               |A native BIGINT type is supported only since |

+|                 |                                |SQL Server 2000                              |

++-----------------+--------------------------------+---------------------------------------------+

+|``BINARY``       |``BINARY``                      |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``BIT``          |``BIT``                         |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``BLOB``         |``IMAGE``                       |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``BOOLEAN``      |``BIT``                         |Will be read back as ``BIT``                 |

++-----------------+--------------------------------+---------------------------------------------+

+|``CHAR``         |``CHAR``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``CLOB``         |``TEXT``                        |Will be read back as ``LONGVARCHAR``         |

++-----------------+--------------------------------+---------------------------------------------+

+|``DATALINK``     |``IMAGE``                       |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``DATE``         |``DATETIME``                    |Will be read back as ``TIMESTAMP``           |

++-----------------+--------------------------------+---------------------------------------------+

+|``DECIMAL``      |``DECIMAL``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``DISTINCT``     |``IMAGE``                       |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``DOUBLE``       |``FLOAT``                       |Will be read back as ``FLOAT``               |

++-----------------+--------------------------------+---------------------------------------------+

+|``FLOAT``        |``FLOAT``                       |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``INTEGER``      |``INT``                         |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``JAVA_OBJECT``  |``IMAGE``                       |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``LONGVARBINARY``|``IMAGE``                       |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``LONGVARCHAR``  |``TEXT``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``NULL``         |``IMAGE``                       |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``NUMERIC``      |``NUMERIC``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``OTHER``        |``IMAGE``                       |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``REAL``         |``REAL``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``REF``          |``IMAGE``                       |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``SMALLINT``     |``SMALLINT``                    |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``STRUCT``       |``IMAGE``                       |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``TIME``         |``DATETIME``                    |Will be read back as ``TIMESTAMP``           |

++-----------------+--------------------------------+---------------------------------------------+

+|``TIMESTAMP``    |``DATETIME``                    |The native ``TIMESTAMP`` type of SQL Server  |

+|                 |                                |serves a different purpose: it provides a    |

+|                 |                                |counter that automatically increments upon   |

+|                 |                                |each insertion or update of the table.       |

++-----------------+--------------------------------+---------------------------------------------+

+|``TINYINT``      |``SMALLINT``                    |The native ``TINYINT`` type only supports    |

+|                 |                                |values between 0 and 255.  Will be read back |

+|                 |                                |as ``SMALLINT``                              |

++-----------------+--------------------------------+---------------------------------------------+

+|``VARBINARY``    |``VARBINARY``                   |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``VARCHAR``      |``VARCHAR``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

diff --git a/src/site/sphinx/databases/sybase.rst b/src/site/sphinx/databases/sybase.rst
new file mode 100644
index 0000000..26f0a2a
--- /dev/null
+++ b/src/site/sphinx/databases/sybase.rst
@@ -0,0 +1,150 @@
+.. Licensed to the Apache Software Foundation (ASF) under one

+   or more contributor license agreements.  See the NOTICE file

+   distributed with this work for additional information

+   regarding copyright ownership.  The ASF licenses this file

+   to you under the Apache License, Version 2.0 (the

+   "License"); you may not use this file except in compliance

+   with the License.  You may obtain a copy of the License at

+

+    http://www.apache.org/licenses/LICENSE-2.0

+

+   Unless required by applicable law or agreed to in writing,

+   software distributed under the License is distributed on an

+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+   KIND, either express or implied.  See the License for the

+   specific language governing permissions and limitations

+   under the License.

+

+.. _`SQL Server`: http://www.sybase.com/products/archivedproducts/sqlserver

+.. _`Adaptive Server Enterprise`: http://www.sybase.com/products/databasemanagement/adaptiveserverenterprise

+.. _`Documentation search`: http://sybooks.sybase.com/nav/base.do

+.. _`Documentation archive`: http://sybooks.sybase.com/nav/base.do?archive=1

+

+Sybase

+======

+

+DdlUtils supports the Sybase products `SQL Server`_ from version 10.0 on, and

+`Adaptive Server Enterprise`_ from version 11.5 on. The Sybase documentation for old versions

+can be found in the `Documentation archive`_. The manuals for the current versions can be

+found via the `Documentation search`_.

+

+Constraints

+-----------

+

+Platform identifier

+  ``Sybase``

+

+Recognized JDBC drivers

+  | ``com.sybase.jdbc2.jdbc.SybDriver``

+  | ``com.sybase.jdbc.SybDriver``

+

+Recognized JDBC sub protocols

+  ``jdbc:sybase:Tds``

+

+Supports SQL comments

+  yes

+

+Supports delimited identifiers

+  yes

+

+Maximum identifier length

+  28

+

+Supports default values for ``LONG`` types

+  yes

+

+Supports non-unique indices

+  yes

+

+Supports non-primary key columns as identity columns

+  yes

+

+Allows ``INSERT``/``UPDATE`` statements to set values for identity columns

+  yes

+

+DdlUtils uses sequences for identity columns

+  no

+

+DdlUtils can read back the auto-generated value of an identity column

+  yes

+

+DdlUtils can create a database via JDBC

+  no

+

+DdlUtils can drop a database via JDBC

+  no

+

+Datatypes

+---------

+

++-----------------+--------------------------------+---------------------------------------------+

+|JDBC Type        |Database Type                   |Additional comments                          |

++=================+================================+=============================================+

+|``ARRAY``        |``IMAGE``                       |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``BIGINT``       |``DECIMAL(19,0)``               |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``BINARY``       |``BINARY``                      |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``BIT``          |``SMALLINT``                    |The native ``BIT`` type is rather limited    |

+|                 |                                |(cannot be NULL, cannot be indexed), hence   |

+|                 |                                |DdlUtils uses ``SMALLINT`` instead. Will be  |

+|                 |                                |read back as ``SMALLINT``                    |

++-----------------+--------------------------------+---------------------------------------------+

+|``BLOB``         |``IMAGE``                       |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``BOOLEAN``      |``SMALLINT``                    |The native ``BIT`` type is rather limited    |

+|                 |                                |(cannot be NULL, cannot be indexed), hence   |

+|                 |                                |DdlUtils uses ``SMALLINT`` instead. Will be  |

+|                 |                                |read back as ``SMALLINT``                    |

++-----------------+--------------------------------+---------------------------------------------+

+|``CHAR``         |``CHAR``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``CLOB``         |``TEXT``                        |Will be read back as ``LONGVARCHAR``         |

++-----------------+--------------------------------+---------------------------------------------+

+|``DATALINK``     |``IMAGE``                       |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``DATE``         |``DATETIME``                    |Will be read back as ``TIMESTAMP``           |

++-----------------+--------------------------------+---------------------------------------------+

+|``DECIMAL``      |``DECIMAL``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``DISTINCT``     |``IMAGE``                       |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``DOUBLE``       |``DOUBLE PRECISION``            |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``FLOAT``        |``DOUBLE PRECISION``            |Will be read back as ``FLOAT``               |

++-----------------+--------------------------------+---------------------------------------------+

+|``INTEGER``      |``INT``                         |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``JAVA_OBJECT``  |``IMAGE``                       |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``LONGVARBINARY``|``IMAGE``                       |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``LONGVARCHAR``  |``TEXT``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``NULL``         |``IMAGE``                       |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``NUMERIC``      |``NUMERIC``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``OTHER``        |``IMAGE``                       |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``REAL``         |``REAL``                        |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``REF``          |``IMAGE``                       |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``SMALLINT``     |``SMALLINT``                    |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``STRUCT``       |``IMAGE``                       |Will be read back as ``LONGVARBINARY``       |

++-----------------+--------------------------------+---------------------------------------------+

+|``TIME``         |``DATETIME``                    |Will be read back as ``TIMESTAMP``           |

++-----------------+--------------------------------+---------------------------------------------+

+|``TIMESTAMP``    |``DATETIME``                    |Will be read back as ``TIMESTAMP``           |

++-----------------+--------------------------------+---------------------------------------------+

+|``TINYINT``      |``SMALLINT``                    |The native ``TINYINT`` type only supports    |

+|                 |                                |values between 0 and 255.  Will be read back |

+|                 |                                |as ``SMALLINT``                              |

++-----------------+--------------------------------+---------------------------------------------+

+|``VARBINARY``    |``VARBINARY``                   |                                             |

++-----------------+--------------------------------+---------------------------------------------+

+|``VARCHAR``      |``VARCHAR``                     |                                             |

++-----------------+--------------------------------+---------------------------------------------+

diff --git a/src/site/sphinx/index.rst b/src/site/sphinx/index.rst
index 582d330..333ee82 100644
--- a/src/site/sphinx/index.rst
+++ b/src/site/sphinx/index.rst
@@ -26,4 +26,5 @@
    api-usage
    ant-tasks
    database-support
+   databases/index
    schema
\ No newline at end of file