svn commit: r677901 [2/2] - /openjpa/trunk/openjpa-project/src/doc/manual/ref_guide_dbsetup.xml

1 message Options
Embed this post
Permalink
dezzio

svn commit: r677901 [2/2] - /openjpa/trunk/openjpa-project/src/doc/manual/ref_guide_dbsetup.xml

Reply Threaded More More options
Print post
Permalink

Modified: openjpa/trunk/openjpa-project/src/doc/manual/ref_guide_dbsetup.xml
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-project/src/doc/manual/ref_guide_dbsetup.xml?rev=677901&r1=677900&r2=677901&view=diff
==============================================================================
--- openjpa/trunk/openjpa-project/src/doc/manual/ref_guide_dbsetup.xml (original)
+++ openjpa/trunk/openjpa-project/src/doc/manual/ref_guide_dbsetup.xml Fri Jul 18 06:28:57 2008
@@ -114,8 +114,8 @@
                         ConnectionProperties
                     </primary>
                 </indexterm>
-<link linkend="openjpa.ConnectionProperties"><literal>
-openjpa.ConnectionProperties</literal></link>: If the listed driver is an
+<link linkend="openjpa.ConnectionProperties">
+<literal>openjpa.ConnectionProperties</literal></link>: If the listed driver is an
 instance of <classname>java.sql.Driver</classname>, this string will be parsed
 into a <classname>Properties</classname> instance, which will then be used to
 obtain database connections through the <methodname>Driver.connect(String url,
@@ -132,8 +132,8 @@
                         ConnectionFactoryProperties
                     </primary>
                 </indexterm>
-<link linkend="openjpa.ConnectionFactoryProperties"><literal>
-openjpa.ConnectionFactoryProperties</literal></link>: OpenJPA's built-in
+<link linkend="openjpa.ConnectionFactoryProperties">
+<literal>openjpa.ConnectionFactoryProperties</literal></link>: OpenJPA's built-in
 <classname>DataSource</classname> allows you to set the following options via
 this plugin string:
                 </para>
@@ -236,12 +236,12 @@
                     </primary>
                 </indexterm>
 Bind the <classname>DataSource</classname> into JNDI, and then specify its
-location in the <literal>jta-data-source</literal> or <literal>
-non-jta-data-source</literal> element of the
+location in the <literal>jta-data-source</literal> or
+<literal>non-jta-data-source</literal> element of the
 <link linkend="jpa_overview_persistence_xml">JPA XML format</link> (depending on
 whether the <classname>DataSource</classname> is managed by JTA), or in the
-<link linkend="openjpa.ConnectionFactoryName"><literal>
-openjpa.ConnectionFactoryName</literal></link> property.
+<link linkend="openjpa.ConnectionFactoryName">
+<literal>openjpa.ConnectionFactoryName</literal></link> property.
                 </para>
             </listitem>
             <listitem>
@@ -252,13 +252,13 @@
                     </primary>
                 </indexterm>
 Specify the full class name of the <classname>DataSource</classname>
-implementation in the <link linkend="openjpa.ConnectionDriverName"><literal>
-openjpa.ConnectionDriverName</literal></link> property in place of a JDBC
+implementation in the <link linkend="openjpa.ConnectionDriverName">
+<literal>openjpa.ConnectionDriverName</literal></link> property in place of a JDBC
 driver. In this configuration OpenJPA will instantiate an instance of the named
 class via reflection. It will then configure the <classname>DataSource
 </classname> with the properties in the
-<link linkend="openjpa.ConnectionProperties"><literal>
-openjpa.ConnectionProperties</literal></link> setting.
+<link linkend="openjpa.ConnectionProperties">
+<literal>openjpa.ConnectionProperties</literal></link> setting.
                 </para>
             </listitem>
         </itemizedlist>
@@ -315,9 +315,9 @@
 DataSource</classname> is managed by the application server, use the
 <literal>jta-data-source</literal> element of your <filename>
 persistence.xml</filename> file or set the
-<link linkend="openjpa.ConnectionFactoryMode"><literal>
-openjpa.ConnectionFactoryMode</literal></link> property to <literal>
-managed</literal>.
+<link linkend="openjpa.ConnectionFactoryMode">
+<literal>openjpa.ConnectionFactoryMode</literal></link> property to
+<literal>managed</literal>.
             </para>
             <para>
 Note that OpenJPA can only use managed <classname>DataSource</classname>s when
@@ -701,572 +701,599 @@
 <classname>DBDictionary</classname> for an unsupported database.
             </para>
             <itemizedlist>
-                <listitem id="DBDictionary.DriverVendor">
+            <!-- Please keep the list of dictionary properties
+                 in alphabetical order -->
+                <listitem id="DBDictionary.AllowsAliasInBulkClause">
                     <para>
                     <indexterm>
                         <primary>
-                            JDBC
+                            SQL
                         </primary>
                         <secondary>
-                            DriverVendor
+                            AllowsAliasInBulkClause
                         </secondary>
                     </indexterm>
-<literal>DriverVendor</literal>: The vendor of the particular JDBC driver you
-are using. Some dictionaries must alter their behavior depending on the driver
-vendor. See the <literal>VENDOR_XXX</literal> constants defined in your
-dictionary's Javadoc for available options.
+<literal>AllowsAliasInBulkClause</literal>:
+When true, SQL delete and update statements may use table aliases.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.CatalogSeparator">
+                <listitem id="DBDictionary.ArrayTypeName">
                     <para>
                     <indexterm>
                         <primary>
-                            SQL
+                            DDL
                         </primary>
                         <secondary>
-                            CatalogSeparator
+                            ArrayTypeName
                         </secondary>
                     </indexterm>
-<literal>CatalogSeparator</literal>: The string the database uses to delimit
-between the schema name and the table name. This is typically <literal>"."
-</literal>, which is the default.
+<literal>ArrayTypeName</literal>: The overridden default column type for
+<literal>java.sql.Types.ARRAY</literal>. This is used only when the schema is
+generated by the <literal>mappingtool</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.CreatePrimaryKeys">
+                <listitem id="DBDictionary.AutoAssignClause">
                     <para>
                     <indexterm>
                         <primary>
-                            DDL
+                            persistent fields
                         </primary>
                         <secondary>
-                            CreatePrimaryKeys
+                            automatic field values
                         </secondary>
+                        <tertiary>
+                            AutoAssignClause
+                        </tertiary>
                     </indexterm>
-<literal>CreatePrimaryKeys</literal>: If <literal>false</literal>, then do not
-create database primary keys for identifiers. Defaults to <literal>true
-</literal>.
+<literal>AutoAssignClause</literal>: The column definition clause to append to
+a creation statement. For example, <literal>"AUTO_INCREMENT"</literal> for
+MySQL. This property is set automatically in the dictionary, and should not need
+to be overridden, and is only used when the schema is generated using the
+<literal>mappingtool</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.ConstraintNameMode">
+                <listitem id="DBDictionary.AutoAssignTypeName">
                     <para>
                     <indexterm>
                         <primary>
                             DDL
                         </primary>
                         <secondary>
-                            ConstraintNameMode
+                            AutoAssignTypeName
                         </secondary>
                     </indexterm>
-<literal>ConstraintNameMode</literal>: When creating constraints, whether to
-put the constraint name before the definition (<literal>before</literal>),
-just after the constraint type name (<literal>mid</literal>), or after the
-constraint definition (<literal>after</literal>). Defaults to <literal>before
-</literal>.
-                    </para>
-                </listitem>
-                <listitem id="DBDictionary.MaxTableNameLength">
-                    <para>
                     <indexterm>
                         <primary>
-                            DDL
+                            persistent fields
                         </primary>
                         <secondary>
-                            MaxTableNameLength
+                            automatic field values
                         </secondary>
+                        <tertiary>
+                            AutoAssignTypeName
+                        </tertiary>
                     </indexterm>
-<literal>MaxTableNameLength</literal>: The maximum number of characters in a
-table name. Defaults to 128.
+<literal>AutoAssignTypeName</literal>:
+The column type name for auto-increment
+columns. For example, <literal>"BIGSERIAL"</literal> for PostgreSQL. This
+property is set automatically in the dictionary and should not need to be
+overridden.  It is used only when the schema is generated using the
+<literal>mappingtool</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.MaxColumnNameLength">
+                <listitem id="DBDictionary.BatchLimit">
                     <para>
                     <indexterm>
                         <primary>
-                            DDL
+                            JDBC
                         </primary>
                         <secondary>
-                            MaxColumnNameLength
+                            BatchLimit
                         </secondary>
                     </indexterm>
-<literal>MaxColumnNameLength</literal>: The maximum number of characters in a
-column name. Defaults to 128.
+<literal>BatchLimit</literal>:
+The default batch limit for sending multiple SQL statements at once to the
+database.  A value of -1 indicates unlimited batching, and any positive integer
+indicates the maximum number of SQL statements to batch together.  
+Defaults to 0 which disables batching.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.MaxConstraintNameLength">
+                <listitem id="DBDictionary.BigintTypeName">
                     <para>
                     <indexterm>
                         <primary>
                             DDL
                         </primary>
                         <secondary>
-                            MaxConstraintNameLength
+                            BigintTypeName
                         </secondary>
                     </indexterm>
-<literal>MaxConstraintNameLength</literal>: The maximum number of characters in
-a constraint name. Defaults to 128.
+<literal>BigintTypeName</literal>: The overridden default column type for
+<literal>java.sql.Types.BIGINT</literal>. This is used only when the schema is
+generated by the <literal>mappingtool</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.MaxIndexNameLength">
+                <listitem id="DBDictionary.BinaryTypeName">
                     <para>
                     <indexterm>
                         <primary>
                             DDL
                         </primary>
                         <secondary>
-                            MaxIndexNameLength
-                        </secondary>
-                    </indexterm>
-                    <indexterm>
-                        <primary>
-                            indexes
-                        </primary>
-                        <secondary>
-                            MaxIndexNameLength
+                            BinaryTypeName
                         </secondary>
                     </indexterm>
-<literal>MaxIndexNameLength</literal>: The maximum number of characters in an
-index name. Defaults to 128.
+<literal>BinaryTypeName</literal>: The overridden default column type for
+<literal>java.sql.Types.BINARY</literal>. This is used only when the schema is
+generated by the <literal>mappingtool</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.MaxAutoAssignNameLength">
+                <listitem id="DBDictionary.BitTypeName">
                     <para>
                     <indexterm>
                         <primary>
                             DDL
                         </primary>
                         <secondary>
-                            MaxAutoAssignNameLength
+                            BitTypeName
                         </secondary>
                     </indexterm>
-<literal>MaxAutoAssignNameLength</literal>: Set this property to the maximum
-length of name for sequences used for auto-increment columns. Names longer than
-this value are truncated. Defaults to <literal>31</literal>.
+<literal>BitTypeName</literal>: The overridden default column type for
+<literal>java.sql.Types.BIT</literal>. This is used only when the schema is generated by
+the <literal>mappingtool</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.MaxIndexesPerTable">
+                <listitem id="DBDictionary.BlobBufferSize">
                     <para>
                     <indexterm>
                         <primary>
-                            indexes
+                            BLOB
                         </primary>
                         <secondary>
-                            MaxIndexesPerTable
+                            BlobBufferSize
                         </secondary>
                     </indexterm>
-<literal>MaxIndexesPerTable</literal>: The maximum number of indexes that can
-be placed on a single table. Defaults to no limit.
+<literal>BlobBufferSize</literal>: This property establishes the buffer size in
+the <literal>INSERT/UPDATE</literal> operations with an
+<literal>java.io.InputStream</literal>This is only used with OpenJPA's
+<xref linkend="ref_guide_streamsupport"/>. Defaults to 50000.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.SupportsForeignKeys">
+                <listitem id="DBDictionary.BlobTypeName">
                     <para>
                     <indexterm>
                         <primary>
-                            foreign keys
+                            DDL
                         </primary>
                         <secondary>
-                            SupportsForeignKeys
+                            BlobTypeName
                         </secondary>
                     </indexterm>
-<literal>SupportsForeignKeys</literal>: Whether the database supports foreign
-keys. Defaults to true.
-                    </para>
-                </listitem>
-                <listitem id="DBDictionary.SupportsTimestampNanos">
-                    <para>
                     <indexterm>
                         <primary>
-                            SupportsTimestampNanos
+                            BLOB
                         </primary>
+                        <secondary>
+                            BlobTypeName
+                        </secondary>
                     </indexterm>
-<literal>SupportsTimestampNanos</literal>: Whether the database supports nanoseconds with TIMESTAMP columns.  Defaults to true.
+<literal>BlobTypeName</literal>: The overridden default column type for
+<literal>java.sql.Types.BLOB</literal>. This is used only when the schema is
+generated by the <literal>mappingtool</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.SupportsUniqueConstraints">
+                <listitem id="DBDictionary.BooleanTypeName">
                     <para>
                     <indexterm>
                         <primary>
-                            unique constraints
+                            DDL
                         </primary>
                         <secondary>
-                            SupportsUniqueConstraints
+                            BooleanTypeName
                         </secondary>
                     </indexterm>
-<literal>SupportsUniqueConstraints</literal>: Whether the database supports
-unique constraints. Defaults to true.
+<literal>BooleanTypeName</literal>:
+The overridden default column type for
+<literal>java.sql.Types.BOOLEAN</literal>. This is used only when the schema
+is generated by the <literal>mappingtool</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.SupportsDeferredConstraints">
+                <listitem id="DBDictionary.CastFunction">
                     <para>
                     <indexterm>
                         <primary>
-                            foreign keys
+                            SQL
                         </primary>
                         <secondary>
-                            SupportsDeferredConstraints
+                            CastFunction
                         </secondary>
                     </indexterm>
-<literal>SupportsDeferredConstraints</literal>: Whether the database supports
-deferred constraints. Defaults to true.
+<literal>CastFunction</literal>:
+The SQL function call to cast a value to another SQL type.
+Use the tokens <literal>{0}</literal> and <literal>{1}</literal> to represent
+the two arguments.  The result of the function is convert the
+<literal>{0}</literal> value to a <literal>{1}</literal> type.
+The default is <literal>"CAST({0} AS {1})"</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.SupportsRestrictDeleteAction">
+                <listitem id="DBDictionary.CatalogSeparator">
                     <para>
                     <indexterm>
                         <primary>
-                            foreign keys
+                            SQL
                         </primary>
                         <secondary>
-                            SupportsRestrictDeleteAction
+                            CatalogSeparator
                         </secondary>
                     </indexterm>
-<literal>SupportsRestrictDeleteAction</literal>: Whether the database supports
-the RESTRICT foreign key delete action. Defaults to <literal>true</literal>.
+<literal>CatalogSeparator</literal>: The string the database uses to delimit
+between the schema name and the table name. This is typically <literal>"."
+</literal>, which is the default.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.SupportsCascadeDeleteAction">
+                <listitem id="DBDictionary.CharTypeName">
                     <para>
                     <indexterm>
                         <primary>
-                            foreign keys
+                            DDL
                         </primary>
                         <secondary>
-                            SupportsCascadeDeleteAction
+                            CharTypeName
                         </secondary>
                     </indexterm>
-<literal>SupportsCascadeDeleteAction</literal>: Whether the database supports
-the CASCADE foreign key delete action. Defaults to <literal>true</literal>.
+<literal>CharTypeName</literal>: The overridden default column type for
+<literal>java.sql.Types.CHAR</literal>. This is used only when the schema is
+generated by the <literal>mappingtool</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.SupportsNullDeleteAction">
+                <listitem id="DBDictionary.CharacterColumnSize">
                     <para>
                     <indexterm>
                         <primary>
-                            foreign keys
+                            DDL
                         </primary>
                         <secondary>
-                            SupportsNullDeleteAction
+                            CharacterColumnSize
                         </secondary>
                     </indexterm>
-<literal>SupportsNullDeleteAction</literal>: Whether the database supports the
-SET NULL foreign key delete action. Defaults to <literal>true</literal>.
+<literal>CharacterColumnSize</literal>: The default size of <literal>varchar
+</literal> and <literal>char</literal> columns. Typically 255.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.SupportsDefaultDeleteAction">
+                <listitem id="DBDictionary.ClobBufferSize">
                     <para>
                     <indexterm>
                         <primary>
-                            foreign keys
+                            CLOB
                         </primary>
                         <secondary>
-                            SupportsDefaultDeleteAction
+                            ClobBufferSize
                         </secondary>
                     </indexterm>
-<literal>SupportsDefaultDeleteAction</literal>: Whether the database supports
-the SET DEFAULT foreign key delete action. Defaults to <literal>true</literal>.
+<literal>ClobBufferSize</literal>: This property establish the buffer size in
+the <literal>INSERT/UPDATE</literal> operations with a
+<literal>java.io.Reader</literal>This is only used with OpenJPA's
+<xref linkend="ref_guide_streamsupport"/>. Defaults to 50000.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.SupportsAlterTableWithAddColumn">
+                <listitem id="DBDictionary.ClobTypeName">
                     <para>
                     <indexterm>
                         <primary>
                             DDL
                         </primary>
                         <secondary>
-                            SupportsAlterTableWithAddColumn
+                            ClobTypeName
                         </secondary>
                     </indexterm>
-<literal>SupportsAlterTableWithAddColumn</literal>: Whether the database
-supports adding a new column in an ALTER TABLE statement. Defaults to <literal>
-true</literal>.
-                    </para>
-                </listitem>
-                <listitem id="DBDictionary.SupportsAlterTableWithDropColumn">
-                    <para>
                     <indexterm>
                         <primary>
-                            DDL
+                            CLOB
                         </primary>
                         <secondary>
-                            SupportsAlterTableWithDropColumn
+                            ClobTypeName
                         </secondary>
                     </indexterm>
-<literal>SupportsAlterTableWithDropColumn</literal>: Whether the database
-supports dropping a column in an ALTER TABLE statement. Defaults to <literal>
-true</literal>.
+<literal>ClobTypeName</literal>: The overridden default column type for
+<literal>java.sql.Types.CLOB</literal>. This is used only when the schema is
+generated by the <literal>mappingtool</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.ReservedWords">
+                <listitem id="DBDictionary.ClosePoolSQL">
                     <para>
                     <indexterm>
                         <primary>
-                            SQL
+                            JDBC
                         </primary>
                         <secondary>
-                            ReservedWords
+                            ClosePoolSQL
                         </secondary>
                     </indexterm>
-<literal>ReservedWords</literal>: A comma-separated list of reserved words for
-this database, beyond the standard SQL92 keywords.
+<literal>ClosePoolSQL</literal>:
+A special command to issue to the database when shutting down the pool.
+Usually the pool of connections to the database is closed when the
+application is ending.  For embedded databases, whose lifecycle is
+coterminous with the application, there may be a special
+command, usually <literal>"SHUTDOWN"</literal>,
+that will cause the embedded database to close cleanly.  
+Defaults to <literal>null</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.SelectWords">
+                <listitem id="DBDictionary.ConcatenateFunction">
                     <para>
                     <indexterm>
                         <primary>
                             SQL
                         </primary>
                         <secondary>
-                            SelectWords
+                            ConcatenateFunction
                         </secondary>
                     </indexterm>
-<literal>SelectWords</literal>: A comma-separated list of keywords which may be
-used to start a SELECT statement for this database. If an application executes
-a native SQL statement which begins with SelectWords OpenJPA will treat the
-statement as a SELECT statement rather than an UPDATE statement.
+<literal>ConcatenateFunction</literal>:
+The SQL function call or operation to concatenate two strings.
+Use the tokens <literal>{0}</literal> and <literal>{1}</literal> to represent
+the two arguments.  The result of the function or operation is to concatenate
+the <literal>{1}</literal> string to the end of the <literal>{0}</literal>
+string.  Defaults to <literal>"({0}||{1})"</literal>.  
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.SystemTables">
+                <listitem id="DBDictionary.ConstraintNameMode">
                     <para>
                     <indexterm>
                         <primary>
-                            schema
+                            DDL
                         </primary>
                         <secondary>
-                            reflection
+                            ConstraintNameMode
                         </secondary>
-                        <tertiary>
-                            SystemTables
-                        </tertiary>
                     </indexterm>
-<literal>SystemTables</literal>: A comma-separated list of table names that
-should be ignored.
+<literal>ConstraintNameMode</literal>: When creating constraints, whether to
+put the constraint name before the definition (<literal>"before"</literal>),
+just after the constraint type name (<literal>"mid"</literal>), or after the
+constraint definition (<literal>"after"</literal>).
+Defaults to <literal>"before"</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.SystemSchemas">
+                <listitem id="DBDictionary.CreatePrimaryKeys">
                     <para>
                     <indexterm>
                         <primary>
-                            schema
+                            DDL
                         </primary>
                         <secondary>
-                            reflection
+                            CreatePrimaryKeys
                         </secondary>
-                        <tertiary>
-                            SystemSchemas
-                        </tertiary>
                     </indexterm>
-<literal>SystemSchemas</literal>: A comma-separated list of schema names that
-should be ignored.
+<literal>CreatePrimaryKeys</literal>: When false, do not
+create database primary keys for identifiers. Defaults to <literal>true
+</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.SchemaCase">
+                <listitem id="DBDictionary.CrossJoinClause">
                     <para>
                     <indexterm>
                         <primary>
-                            schema
+                            joins
                         </primary>
                         <secondary>
-                            reflection
+                            CrossJoinClause
                         </secondary>
-                        <tertiary>
-                            SchemaCase
-                        </tertiary>
                     </indexterm>
-<literal>SchemaCase</literal>: The case to use when querying the database
-metadata about schema components. Defaults to making all names upper case.
-Available values are: <literal>upper, lower, preserve</literal>.
+<literal>CrossJoinClause</literal>: The clause to use for a cross join
+(cartesian product). Defaults to <literal>"CROSS JOIN"</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.ValidationSQL">
+                <listitem id="DBDictionary.CurrentDateFunction">
                     <para>
                     <indexterm>
                         <primary>
-                            connections
+                            SQL
                         </primary>
                         <secondary>
-                            ValidationSQL
+                            CurrentDateFunction
                         </secondary>
                     </indexterm>
+<literal>CurrentDateFunction</literal>:
+The SQL function call to obtain the current date from the database.
+Defaults to <literal>"CURRENT_DATE"</literal>.
+                    </para>
+                </listitem>
+                <listitem id="DBDictionary.CurrentTimeFunction">
+                    <para>
                     <indexterm>
                         <primary>
                             SQL
                         </primary>
                         <secondary>
-                            ValidationSQL
+                            CurrentTimeFunction
                         </secondary>
                     </indexterm>
-<literal>ValidationSQL</literal>: The SQL used to validate that a connection is
-still in a valid state. For example, " <literal>SELECT SYSDATE FROM DUAL
-</literal> " for Oracle.
+<literal>CurrentTimeFunction</literal>:
+The SQL function call to obtain the current time from the database.
+Defaults to <literal>"CURRENT_TIME"</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.InitializationSQL">
+                <listitem id="DBDictionary.CurrentTimestampFunction">
                     <para>
                     <indexterm>
                         <primary>
-                            connections
+                            SQL
                         </primary>
                         <secondary>
-                            InitializationSQL
+                            CurrentTimestampFunction
                         </secondary>
                     </indexterm>
+<literal>CurrentTimestampFunction</literal>:
+The SQL function call to obtain the current timestamp from the database.
+Defaults to <literal>"CURRENT_TIMESTAMP"</literal>.
+                    </para>
+                </listitem>
+                <listitem id="DBDictionary.DatePrecision">
+                    <para>
                     <indexterm>
                         <primary>
-                            SQL
+                            JDBC
                         </primary>
                         <secondary>
-                            InitializationSQL
+                            DatePrecision
                         </secondary>
                     </indexterm>
-<literal>InitializationSQL</literal>: A piece of SQL to issue against the
-database whenever a connection is retrieved from the <classname>DataSource
-</classname>.
+<literal>DatePrecision</literal>:
+The database is able to store time values to this degree of precision,
+which is expressed in nanoseconds.
+This value is usually one million, meaning that the database is able
+to store time values with a precision of one millisecond.  Particular
+databases may have more or less precision.
+OpenJPA will round all time values to this degree of precision
+before storing them in the database.
+Defaults to 1000000.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.JoinSyntax">
+                <listitem id="DBDictionary.DateTypeName">
                     <para>
                     <indexterm>
                         <primary>
-                            joins
+                            DDL
                         </primary>
                         <secondary>
-                            JoinSyntax
+                            DateTypeName
                         </secondary>
                     </indexterm>
-<literal>JoinSyntax</literal>: The SQL join syntax to use in select statements.
-See <xref linkend="ref_guide_dbsetup_sql92"/>.
-                    </para>
-                </listitem>
-                <listitem id="DBDictionary.CrossJoinClause">
-                    <para>
-                    <indexterm>
-                        <primary>
-                            joins
-                        </primary>
-                        <secondary>
-                            CrossJoinClause
-                        </secondary>
-                    </indexterm>
-<literal>CrossJoinClause</literal>: The clause to use for a cross join
-(cartesian product). Defaults to <literal>CROSS JOIN</literal>.
+<literal>DateTypeName</literal>: The overridden default column type for
+<literal>java.sql.Types.DATE</literal>. This is used only when the schema is
+generated by the <literal>mappingtool</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.InnerJoinClause">
+                <listitem id="DBDictionary.DecimalTypeName">
                     <para>
                     <indexterm>
                         <primary>
-                            joins
+                            DDL
                         </primary>
                         <secondary>
-                            InnerJoinClause
+                            DecimalTypeName
                         </secondary>
                     </indexterm>
-<literal>InnerJoinClause</literal>: The clause to use for an inner join.
-Defaults to <literal>INNER JOIN</literal>.
+<literal>DecimalTypeName</literal>: The overridden default column type for
+<literal>java.sql.Types.DECIMAL</literal>. This is used only when the schema is
+generated by the <literal>mappingtool</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.OuterJoinClause">
+                <listitem id="DBDictionary.DistinctCountColumnSeparator">
                     <para>
                     <indexterm>
                         <primary>
-                            joins
+                            SQL
                         </primary>
                         <secondary>
-                            OuterJoinClause
+                            DistinctCountColumnSeparator
                         </secondary>
                     </indexterm>
-<literal>OuterJoinClause</literal>: The clause to use for an left outer join.
-Defaults to <literal>LEFT OUTER JOIN</literal>.
+<literal>DistinctCountColumnSeparator</literal>: The string the database uses
+to delimit between column expressions in a <literal>SELECT COUNT(DISTINCT
+column-list)</literal> clause. Defaults to <literal>null</literal>
+for most databases, meaning that
+multiple columns in a distinct COUNT clause are not supported.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.RequiresConditionForCrossJoin">
+                <listitem id="DBDictionary.DistinctTypeName">
                     <para>
                     <indexterm>
                         <primary>
-                            joins
+                            DDL
                         </primary>
                         <secondary>
-                            RequiresConditionForCrossJoin
+                            DistinctTypeName
                         </secondary>
                     </indexterm>
-<literal>RequiresConditionForCrossJoin</literal>: Some databases require that
-there always be a conditional statement for a cross join. If set, this parameter
-ensures that there will always be some condition to the join clause.
+<literal>DistinctTypeName</literal>: The overridden default column type for
+<literal>java.sql.Types.DISTINCT</literal>. This is used only when the schema
+is generated by the <literal>mappingtool</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.ToUpperCaseFunction">
+                <listitem id="DBDictionary.DoubleTypeName">
                     <para>
                     <indexterm>
                         <primary>
-                            SQL
+                            DDL
                         </primary>
                         <secondary>
-                            ToUpperCaseFunction
+                            DoubleTypeName
                         </secondary>
                     </indexterm>
-<literal>ToUpperCaseFunction</literal>: SQL function call for for converting a
-string to upper case. Use the token <literal>{0}</literal> to represent the
-argument.
+<literal>DoubleTypeName</literal>: The overridden default column type for
+<literal>java.sql.Types.DOUBLE</literal>. This is used only when the schema is
+generated by the <literal>mappingtool</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.ToLowerCaseFunction">
+                <listitem id="DBDictionary.DriverVendor">
                     <para>
                     <indexterm>
                         <primary>
-                            SQL
+                            JDBC
                         </primary>
                         <secondary>
-                            ToLowerCaseFunction
+                            DriverVendor
                         </secondary>
                     </indexterm>
-<literal>ToLowerCaseFunction</literal>: Name of the SQL function for converting
-a string to lower case. Use the token <literal>{0}</literal> to represent the
-argument.
+<literal>DriverVendor</literal>: The vendor of the particular JDBC driver you
+are using. Some dictionaries must alter their behavior depending on the driver
+vendor. Dictionaries usually detect the driver vendor and set this property
+themselves.  See the <literal>VENDOR_XXX</literal> constants defined in the
+<classname>DBDictionary</classname> Javadoc for available options.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.StringLengthFunction">
+                <listitem id="DBDictionary.DropTableSQL">
                     <para>
                     <indexterm>
                         <primary>
                             SQL
                         </primary>
                         <secondary>
-                            StringLengthFunction
+                            DropTableSQL
                         </secondary>
                     </indexterm>
-<literal>StringLengthFunction</literal>: Name of the SQL function for getting
-the length of a string. Use the token <literal>{0}</literal> to represent the
-argument.
+<literal>DropTableSQL</literal>:
+The SQL statement used to drop a table.  Use the token <literal>{0}</literal>
+as the argument for the table name.  
+Defaults to <literal>"DROP TABLE {0}"</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.SubstringFunctionName">
+                <listitem id="DBDictionary.FixedSizeTypeNames">
                     <para>
                     <indexterm>
                         <primary>
                             SQL
                         </primary>
                         <secondary>
-                            SubstringFunctionName
+                            FixedSizeTypeNames
                         </secondary>
                     </indexterm>
-<literal>SubstringFunctionName</literal>: Name of the SQL function for getting
-the substring of a string.
+<literal>FixedSizeTypeNames</literal>:
+A comma separated list of additional database types that have a size
+defined by the database.  In other words, when a column of a fixed
+size type is declared, its size cannot be defined by the user.  Common
+examples would be <literal>DATE</literal>, <literal>FLOAT</literal>,
+and <literal>INTEGER</literal>.
+Each database dictionary has its own internal set of fixed size type names
+that include the names mentioned here and many others.
+Names added to this property are added to the dictionary's internal set.
+Defaults to <literal>null</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.DistinctCountColumnSeparator">
+                <listitem id="DBDictionary.FloatTypeName">
                     <para>
                     <indexterm>
                         <primary>
-                            SQL
+                            DDL
                         </primary>
                         <secondary>
-                            DistinctCountColumnSeparator
+                            FloatTypeName
                         </secondary>
                     </indexterm>
-<literal>DistinctCountColumnSeparator</literal>: The string the database uses
-to delimit between column expressions in a <literal>SELECT COUNT(DISTINCT
-column-list)</literal> clause. Defaults to null for most databases, meaning that
-multiple columns in a distinct COUNT clause are not supported.
+<literal>FloatTypeName</literal>: The overridden default column type for
+<literal>java.sql.Types.FLOAT</literal>. This is used only when the schema is
+generated by the <literal>mappingtool</literal>.
                     </para>
                 </listitem>
                 <listitem id="DBDictionary.ForUpdateClause">
@@ -1289,775 +1316,1502 @@
                     </indexterm>
 <literal>ForUpdateClause</literal>: The clause to append to <literal>SELECT
 </literal> statements to issue queries that obtain pessimistic locks. Defaults
-to <literal>FOR UPDATE</literal>.
+to <literal>"FOR UPDATE"</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.TableForUpdateClause">
+                <listitem id="DBDictionary.GetStringVal">
                     <para>
                     <indexterm>
                         <primary>
-                            SQL
+                            Oracle
                         </primary>
                         <secondary>
-                            TableForUpdateClause
+                            GetStringVal
                         </secondary>
                     </indexterm>
                     <indexterm>
                         <primary>
-                            locking
+                            JDBC
                         </primary>
                         <secondary>
-                            TableForUpdateClause
+                            GetStringVal
                         </secondary>
                     </indexterm>
-<literal>TableForUpdateClause</literal>: The clause to append to the end of
-each table alias in queries that obtain pessimistic locks. Defaults to null.
+<literal>GetStringVal</literal>:
+A special function to return the value of an XML
+column in a select statement.  For example, Oracle uses
+<literal>".getStringVal()"</literal>, as in,
+<literal>"select t0.xmlcol.getStringVal() from xmltab t0"</literal>.
+Defaults to the empty string.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.SupportsSelectForUpdate">
+                <listitem id="DBDictionary.InClauseLimit">
                     <para>
                     <indexterm>
                         <primary>
-                            locking
+                            Oracle
                         </primary>
                         <secondary>
-                            SupportsSelectForUpdate
+                            InClauseLimit
                         </secondary>
                     </indexterm>
-<literal>SupportsSelectForUpdate</literal>: If true, then the database supports
-<literal>SELECT</literal> statements with a pessimistic locking clause. Defaults
-to true.
-                    </para>
-                </listitem>
-                <listitem id="DBDictionary.SupportsLockingWithDistinctClause">
-                    <para>
                     <indexterm>
                         <primary>
-                            locking
+                            JDBC
                         </primary>
                         <secondary>
-                            SupportsLockingWithDistinctClause
+                            GetStringVal
                         </secondary>
                     </indexterm>
-<literal>SupportsLockingWithDistinctClause</literal>: If true, then the
-database supports <literal>FOR UPDATE</literal> select clauses with <literal>
-DISTINCT</literal> clauses.
+<literal>InClauseLimit</literal>:
+The maximum number of elements in an <literal>IN</literal> clause.  OpenJPA
+works around cases where the limit is exceeded.  Defaults to -1 meaning
+no limit.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.SupportsLockingWithOuterJoin">
+                <listitem id="DBDictionary.InitializationSQL">
                     <para>
                     <indexterm>
                         <primary>
-                            locking
+                            connections
                         </primary>
                         <secondary>
-                            SupportsLockingWithOuterJoin
+                            InitializationSQL
                         </secondary>
                     </indexterm>
-<literal>SupportsLockingWithOuterJoin</literal>: If true, then the database
-supports <literal>FOR UPDATE</literal> select clauses with outer join queries.
-                    </para>
-                </listitem>
-                <listitem id="DBDictionary.SupportsLockingWithInnerJoin">
-                    <para>
                     <indexterm>
                         <primary>
-                            locking
+                            SQL
                         </primary>
                         <secondary>
-                            SupportsLockingWithInnerJoin
+                            InitializationSQL
                         </secondary>
                     </indexterm>
-<literal>SupportsLockingWithInnerJoin</literal>: If true, then the database
-supports <literal>FOR UPDATE</literal> select clauses with inner join queries.
+<literal>InitializationSQL</literal>: A piece of SQL to issue against the
+database whenever a connection is retrieved from the <classname>DataSource
+</classname>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.SupportsLockingWithMultipleTables">
+                <listitem id="DBDictionary.InnerJoinClause">
                     <para>
                     <indexterm>
                         <primary>
-                            locking
+                            joins
                         </primary>
                         <secondary>
-                            SupportsLockingWithMultipleTables
+                            InnerJoinClause
                         </secondary>
                     </indexterm>
-<literal>SupportsLockingWithMultipleTables</literal>: If true, then the
-database supports <literal>FOR UPDATE</literal> select clauses that select from
-multiple tables.
+<literal>InnerJoinClause</literal>: The clause to use for an inner join.
+Defaults to <literal>"INNER JOIN"</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.SupportsLockingWithOrderClause">
+                <listitem id="DBDictionary.IntegerTypeName">
                     <para>
                     <indexterm>
                         <primary>
-                            locking
+                            DDL
                         </primary>
                         <secondary>
-                            SupportsLockingWithOrderClause
+                            IntegerTypeName
                         </secondary>
                     </indexterm>
-<literal>SupportsLockingWithOrderClause</literal>: If true, then the database
-supports <literal>FOR UPDATE</literal> select clauses with <literal>ORDER BY
-</literal> clauses.
+<literal>IntegerTypeName</literal>: The overridden default column type for
+<literal>java.sql.Types.INTEGER</literal>. This is used only when the schema is
+generated by the <literal>mappingtool</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.SupportsLockingWithSelectRange">
+                <listitem id="DBDictionary.JavaObjectTypeName">
                     <para>
                     <indexterm>
                         <primary>
-                            locking
+                            DDL
                         </primary>
                         <secondary>
-                            SupportsLockingWithSelectRange
+                            JavaObjectTypeName
                         </secondary>
                     </indexterm>
-<literal>SupportsLockingWithSelectRange</literal>: If true, then the database
-supports <literal>FOR UPDATE</literal> select clauses with queries that select a
-range of data using <literal>LIMIT</literal>, <literal>TOP</literal> or the
-database equivalent. Defaults to true.
+<literal>JavaObjectTypeName</literal>: The overridden default column type for
+<literal>java.sql.Types.JAVAOBJECT</literal>. This is used only when the schema
+is generated by the <literal>mappingtool</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.SimulateLocking">
+                <listitem id="DBDictionary.JoinSyntax">
                     <para>
                     <indexterm>
                         <primary>
-                            locking
+                            joins
                         </primary>
                         <secondary>
-                            SimulateLocking
+                            JoinSyntax
                         </secondary>
                     </indexterm>
-<literal>SimulateLocking</literal>: Some databases do not support pessimistic
-locking, which will result in an exception when you attempt a pessimistic
-transaction. Setting this property to <literal>true</literal> bypasses the
-locking check to allow pessimistic transactions even on databases that do not
-support locking. Defaults to <literal>false</literal>.
+<literal>JoinSyntax</literal>: The SQL join syntax to use in select statements.
+See <xref linkend="ref_guide_dbsetup_sql92"/>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.SupportsQueryTimeout">
+                <listitem id="DBDictionary.LastGeneratedKeyQuery">
                     <para>
                     <indexterm>
                         <primary>
-                            JDBC
+                            persistent fields
                         </primary>
                         <secondary>
-                            QueryTimeout
+                            automatic field values
                         </secondary>
                         <tertiary>
-                            SupportsQueryTimeout
+                            LastGeneratedKeyQuery
                         </tertiary>
                     </indexterm>
-<literal>SupportsQueryTimeout</literal>: If true, then the JDBC driver supports
-calls to <methodname> java.sql.Statement.setQueryTimeout</methodname>.
+<literal>LastGeneratedKeyQuery</literal>: The query to issue to obtain the last
+automatically generated key for an auto-increment column. For example,
+<literal>"SELECT LAST_INSERT_ID()"</literal> for MySQL. This property is set
+automatically in the dictionary, and should not need to be overridden.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.SupportsHaving">
+                <listitem id="DBDictionary.LongVarbinaryTypeName">
                     <para>
                     <indexterm>
                         <primary>
-                            aggregates
+                            DDL
                         </primary>
                         <secondary>
-                            having
+                            LongVarbinaryTypeName
                         </secondary>
-                        <tertiary>
-                            SupportsHaving
-                        </tertiary>
                     </indexterm>
-<literal>SupportsHaving</literal>: Whether this database supports HAVING
-clauses in selects.
+<literal>LongVarbinaryTypeName</literal>: The overridden default column type
+for <literal>java.sql.Types.LONGVARBINARY</literal>. This is used only when the
+schema is generated by the <literal>mappingtool</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.SupportsSelectStartIndex">
+                <listitem id="DBDictionary.LongVarcharTypeName">
                     <para>
                     <indexterm>
                         <primary>
-                            Query
+                            DDL
                         </primary>
                         <secondary>
-                            result range
+                            LongVarcharTypeName
                         </secondary>
-                        <tertiary>
-                            SupportsSelectStartIndex
-                        </tertiary>
                     </indexterm>
-<literal>SupportsSelectStartIndex</literal>: Whether this database can create a
-select that skips the first N results.
+<literal>LongVarcharTypeName</literal>: The overridden default column type for
+<literal>java.sql.Types.LONGVARCHAR</literal>. This is used only when the
+schema is generated by the <literal>mappingtool</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.SupportsSelectEndIndex">
+                <listitem id="DBDictionary.MaxAutoAssignNameLength">
                     <para>
                     <indexterm>
                         <primary>
-                            Query
+                            DDL
                         </primary>
                         <secondary>
-                            result range
+                            MaxAutoAssignNameLength
                         </secondary>
-                        <tertiary>
-                            SupportsSelectEndIndex
-                        </tertiary>
                     </indexterm>
-<literal>SupportsSelectEndIndex</literal>: Whether this database can create a
-select that is limited to the first N results.
+<literal>MaxAutoAssignNameLength</literal>: Set this property to the maximum
+length of the sequence name used for auto-increment columns. Names longer than
+this value are truncated. Defaults to 31.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.SupportsSubselect">
+                <listitem id="DBDictionary.MaxColumnNameLength">
                     <para>
                     <indexterm>
                         <primary>
-                            SQL
+                            DDL
                         </primary>
                         <secondary>
-                            SupportsSubselect
+                            MaxColumnNameLength
                         </secondary>
                     </indexterm>
+<literal>MaxColumnNameLength</literal>: The maximum number of characters in a
+column name. Defaults to 128.
+                    </para>
+                </listitem>
+                <listitem id="DBDictionary.MaxConstraintNameLength">
+                    <para>
                     <indexterm>
                         <primary>
-                            JPQL
+                            DDL
                         </primary>
                         <secondary>
-                            subselects
+                            MaxConstraintNameLength
                         </secondary>
-                        <tertiary>
-                            SupportsSubselect
-                        </tertiary>
                     </indexterm>
-<literal>SupportsSubselect</literal>: Whether this database supports subselects
-in queries.
+<literal>MaxConstraintNameLength</literal>: The maximum number of characters in
+a constraint name. Defaults to 128.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.RequiresAliasForSubselect">
+                <listitem id="DBDictionary.MaxEmbeddedBlobSize">
                     <para>
                     <indexterm>
                         <primary>
                             SQL
                         </primary>
                         <secondary>
-                            RequiresAliasForSubselect
+                            MaxEmbeddedBlobSize
                         </secondary>
                     </indexterm>
+<literal>MaxEmbeddedBlobSize</literal>:
+When greater than -1, the maximum size of a <literal>BLOB</literal> value
+that can be sent directly to the database within an insert or update statement.  
+Values whose size is greater than <literal>MaxEmbeddedBlobSize</literal> force
+OpenJPA to work around this limitation.  A value of -1 means that there is
+no limitation. Defaults to -1.
+                    </para>
+                </listitem>
+                <listitem id="DBDictionary.MaxEmbeddedClobSize">
+                    <para>
                     <indexterm>
                         <primary>
-                            JPQL
+                            SQL
                         </primary>
                         <secondary>
-                            subselects
+                            MaxEmbeddedClobSize
                         </secondary>
-                        <tertiary>
-                            RequiresAliasForSubselect
-                        </tertiary>
                     </indexterm>
-<literal>RequiresAliasForSubselect</literal>: If true, then the database
-requires that subselects in a FROM clause be assigned an alias.
-                    </para>
-                </listitem>
-                <listitem id="DBDictionary.SupportsMultipleNontransactionalResultSets">
-                    <para>
-<literal>SupportsMultipleNontransactionalResultSets</literal>: If true, then a
-nontransactional connection is capable of having multiple open <classname>
-ResultSet</classname> instances.
+<literal>MaxEmbeddedClobSize</literal>:
+When greater than -1, the maximum size of a <literal>CLOB</literal> value
+that can be sent directly to the database within an insert or update statement.  
+Values whose size is greater than <literal>MaxEmbeddedClobSize</literal> force
+OpenJPA to work around this limitation.  A value of -1 means that there is
+no limitation. Defaults to -1.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.StorageLimitationsFatal">
+                <listitem id="DBDictionary.MaxIndexNameLength">
                     <para>
                     <indexterm>
                         <primary>
-                            persistent fields
+                            DDL
                         </primary>
                         <secondary>
-                            StorageLimitationsFatal
+                            MaxIndexNameLength
                         </secondary>
                     </indexterm>
-<literal>StorageLimitationsFatal</literal>: If true, then any data
-truncation/rounding that is performed by the dictionary in order to store a
-value in the database will be treated as a fatal error, rather than just issuing
-a warning.
-                    </para>
-                </listitem>
-                <listitem id="DBDictionary.StoreLargeNumbersAsStrings">
-                    <para>
                     <indexterm>
                         <primary>
-                            persistent fields
+                            indexes
                         </primary>
                         <secondary>
-                            StoreLargeNumbersAsStrings
+                            MaxIndexNameLength
                         </secondary>
                     </indexterm>
-<literal>StoreLargeNumbersAsStrings</literal>: Many databases have limitations
-on the number of digits that can be stored in a numeric field (for example,
-Oracle can only store 38 digits). For applications that operate on very large
-<classname>BigInteger</classname> and <classname>BigDecimal</classname> values,
-it may be necessary to store these objects as string fields rather than the
-database's numeric type. Note that this may prevent meaningful numeric queries
-from being executed against the database. Defaults to <literal>false</literal>.
+<literal>MaxIndexNameLength</literal>: The maximum number of characters in an
+index name. Defaults to 128.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.StoreCharsAsNumbers">
+                <listitem id="DBDictionary.MaxIndexesPerTable">
                     <para>
                     <indexterm>
                         <primary>
-                            persistent fields
+                            indexes
                         </primary>
                         <secondary>
-                            StoreCharsAsNumbers
+                            MaxIndexesPerTable
                         </secondary>
                     </indexterm>
-<literal>StoreCharsAsNumbers</literal>: Set this property to <literal>false
-</literal> to store Java <literal>char</literal> fields as <literal>CHAR
-</literal> values rather than numbers. Defaults to <literal>true</literal>.
+<literal>MaxIndexesPerTable</literal>: The maximum number of indexes that can
+be placed on a single table. Defaults to no limit.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.UseGetBytesForBlobs">
+                <listitem id="DBDictionary.MaxTableNameLength">
                     <para>
                     <indexterm>
                         <primary>
-                            BLOB
+                            DDL
                         </primary>
                         <secondary>
-                            UseGetBytesForBlobs
+                            MaxTableNameLength
                         </secondary>
                     </indexterm>
-<literal>UseGetBytesForBlobs</literal>: If true, then <methodname>
-ResultSet.getBytes</methodname> will be used to obtain blob data rather than
-<methodname>ResultSet.getBinaryStream</methodname>.
+<literal>MaxTableNameLength</literal>: The maximum number of characters in a
+table name. Defaults to 128.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.UseGetObjectForBlobs">
+                <listitem id="DBDictionary.NextSequenceQuery">
                     <para>
                     <indexterm>
                         <primary>
-                            BLOB
+                            Sequence
                         </primary>
                         <secondary>
-                            UseGetObjectForBlobs
+                            NextSequenceQuery
                         </secondary>
                     </indexterm>
-<literal>UseGetObjectForBlobs</literal>: If true, then <methodname>
-ResultSet.getObject</methodname> will be used to obtain blob data rather than
-<methodname>ResultSet.getBinaryStream</methodname>.
+<literal>NextSequenceQuery</literal>: A SQL string for obtaining a native
+sequence value. May use a placeholder of <literal>{0}</literal> for the variable
+sequence name. Defaults to a database-appropriate value.  For example,
+<literal>"SELECT {0}.NEXTVAL FROM DUAL"</literal> for Oracle.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.UseSetBytesForBlobs">
+                <listitem id="DBDictionary.NullTypeName">
                     <para>
                     <indexterm>
                         <primary>
-                            BLOB
+                            DDL
                         </primary>
                         <secondary>
-                            UseSetBytesForBlobs
+                            NullTypeName
                         </secondary>
                     </indexterm>
-<literal>UseSetBytesForBlobs</literal>: If true, then <methodname>
-PreparedStatement.setBytes</methodname> will be used to set blob data, rather
-than <methodname>PreparedStatement.setBinaryStream</methodname>.
+<literal>NullTypeName</literal>: The overridden default column type for
+<literal>java.sql.Types.NULL</literal>. This is used only when the schema is
+generated by the <literal>mappingtool</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.UseGetStringForClobs">
+                <listitem id="DBDictionary.NumericTypeName">
                     <para>
                     <indexterm>
                         <primary>
-                            CLOB
+                            DDL
                         </primary>
                         <secondary>
-                            UseGetStringForClobs
+                            NumericTypeName
                         </secondary>
                     </indexterm>
-<literal>UseGetStringForClobs</literal>: If true, then <methodname>
-ResultSet.getString</methodname> will be used to obtain clob data rather than
-<methodname>ResultSet.getCharacterStream</methodname>.
+<literal>NumericTypeName</literal>: The overridden default column type for
+<literal>java.sql.Types.NUMERIC</literal>. This is used only when the schema is
+generated by the <literal>mappingtool</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.UseSetStringForClobs">
+                <listitem id="DBDictionary.OtherTypeName">
                     <para>
                     <indexterm>
                         <primary>
-                            CLOB
+                            DDL
                         </primary>
                         <secondary>
-                            UseSetStringForClobs
+                            OtherTypeName
                         </secondary>
                     </indexterm>
-<literal>UseSetStringForClobs</literal>: If true, then <methodname>
-PreparedStatement.setString</methodname> will be used to set clob data, rather
-than <methodname>PreparedStatement.setCharacterStream</methodname>.
+<literal>OtherTypeName</literal>: The overridden default column type for
+<literal>java.sql.Types.OTHER</literal>. This is used only when the schema is
+generated by the <literal>mappingtool</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.CharacterColumnSize">
+                <listitem id="DBDictionary.OuterJoinClause">
                     <para>
                     <indexterm>
                         <primary>
-                            DDL
+                            joins
                         </primary>
                         <secondary>
-                            CharacterColumnSize
+                            OuterJoinClause
                         </secondary>
                     </indexterm>
-<literal>CharacterColumnSize</literal>: The default size of <literal>varchar
-</literal> and <literal>char</literal> columns. Typically 255.
+<literal>OuterJoinClause</literal>: The clause to use for an left outer join.
+Defaults to <literal>"LEFT OUTER JOIN"</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.ArrayTypeName">
+                <listitem id="DBDictionary.Platform">
                     <para>
                     <indexterm>
                         <primary>
-                            DDL
+                            JDBC
                         </primary>
                         <secondary>
-                            ArrayTypeName
+                            Platform
                         </secondary>
                     </indexterm>
-<literal>ArrayTypeName</literal>: The overridden default column type for
-<literal>java.sql.Types.ARRAY</literal>. This is only used when the schema is
-generated by the <literal>mappingtool</literal>.
+<literal>Platform</literal>:
+The name of the database that this dictionary targets.
+Defaults to <literal>"Generic"</literal>, but all dictionaries override this
+value.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.BigintTypeName">
+                <listitem id="DBDictionary.RangePosition">
                     <para>
                     <indexterm>
                         <primary>
-                            DDL
+                            SQL
                         </primary>
                         <secondary>
-                            BigintTypeName
+                            RangePosition
                         </secondary>
                     </indexterm>
-<literal>BigintTypeName</literal>: The overridden default column type for
-<literal>java.sql.Types.BIGINT</literal>. This is only used when the schema is
-generated by the <literal>mappingtool</literal>.
+<literal>RangePosition</literal>:
+Indicates where to specify in the SQL select statement the range, if any,
+of the result rows to be returned.  
+When limiting the number of returned result rows to a subset of all those
+that satisfy the query's conditions, the position of the range clause
+varies by database.
+Defaults to 0, meaning that the range
+is expressed at the end of the select statement but before any locking clause.
+See the RANGE_XXX constants defined in <classname>DBDictionary</classname>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.BinaryTypeName">
+                <listitem id="DBDictionary.RealTypeName">
                     <para>
                     <indexterm>
                         <primary>
                             DDL
                         </primary>
                         <secondary>
-                            BinaryTypeName
+                            RealTypeName
                         </secondary>
                     </indexterm>
-<literal>BinaryTypeName</literal>: The overridden default column type for
-<literal>java.sql.Types.BINARY</literal>. This is only used when the schema is
+<literal>RealTypeName</literal>: The overridden default column type for
+<literal>java.sql.Types.REAL</literal>. This is used only when the schema is
 generated by the <literal>mappingtool</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.BitTypeName">
+                <listitem id="DBDictionary.RefTypeName">
                     <para>
                     <indexterm>
                         <primary>
                             DDL
                         </primary>
                         <secondary>
-                            BitTypeName
+                            RefTypeName
                         </secondary>
                     </indexterm>
-<literal>BitTypeName</literal>: The overridden default column type for <literal>
-java.sql.Types.BIT</literal>. This is only used when the schema is generated by
+<literal>RefTypeName</literal>: The overridden default column type for
+<literal>java.sql.Types.REF</literal>. This is used only when the schema is generated by
 the <literal>mappingtool</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.BlobTypeName">
+                <listitem id="DBDictionary.RequiresAliasForSubselect">
                     <para>
                     <indexterm>
                         <primary>
-                            DDL
+                            SQL
                         </primary>
                         <secondary>
-                            BlobTypeName
+                            RequiresAliasForSubselect
                         </secondary>
                     </indexterm>
                     <indexterm>
                         <primary>
-                            BLOB
+                            JPQL
                         </primary>
                         <secondary>
-                            BlobTypeName
+                            subselects
                         </secondary>
+                        <tertiary>
+                            RequiresAliasForSubselect
+                        </tertiary>
                     </indexterm>
-<literal>BlobTypeName</literal>: The overridden default column type for
-<literal>java.sql.Types.BLOB</literal>. This is only used when the schema is
-generated by the <literal>mappingtool</literal>.
+<literal>RequiresAliasForSubselect</literal>: When true, the database
+requires that subselects in a FROM clause be assigned an alias.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.CharTypeName">
+                <listitem id="DBDictionary.RequiresAutoCommitForMetadata">
                     <para>
                     <indexterm>
                         <primary>
-                            DDL
+                            schema
                         </primary>
                         <secondary>
-                            CharTypeName
+                            reflection
                         </secondary>
+                        <tertiary>
+                            RequiresAutoCommitForMetaData
+                        </tertiary>
                     </indexterm>
-<literal>CharTypeName</literal>: The overridden default column type for
-<literal>java.sql.Types.CHAR</literal>. This is only used when the schema is
-generated by the <literal>mappingtool</literal>.
+<literal>RequiresAutoCommitForMetadata</literal>: When true, the JDBC driver
+requires that autocommit be enabled before any schema interrogation operations
+can take place.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.ClobTypeName">
+                <listitem id="DBDictionary.RequiresCastForComparisons">
                     <para>
                     <indexterm>
                         <primary>
-                            DDL
+                            SQL
                         </primary>
                         <secondary>
-                            ClobTypeName
+                            RequiresCastForComparisons
                         </secondary>
                     </indexterm>
+<literal>RequiresCastForComparisons</literal>:
+When true, comparisons of two values of different types or
+of two literals requires a cast in the generated SQL.  
+Defaults to <literal>false</literal>.
+                    </para>
+                </listitem>
+                <listitem id="DBDictionary.RequiresCastForMathFunctions">
+                    <para>
                     <indexterm>
                         <primary>
-                            CLOB
+                            SQL
                         </primary>
                         <secondary>
-                            ClobTypeName
+                            RequiresCastForMathFunctions
                         </secondary>
                     </indexterm>
-<literal>ClobTypeName</literal>: The overridden default column type for
-<literal>java.sql.Types.CLOB</literal>. This is only used when the schema is
-generated by the <literal>mappingtool</literal>.
+<literal>RequiresCastForMathFunctions</literal>:
+When true, math operations on two values of different types or
+on two literals requires a cast in the generated SQL.  
+Defaults to <literal>false</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.DateTypeName">
+                <listitem id="DBDictionary.RequiresConditionForCrossJoin">
                     <para>
                     <indexterm>
                         <primary>
-                            DDL
+                            joins
                         </primary>
                         <secondary>
-                            DateTypeName
+                            RequiresConditionForCrossJoin
                         </secondary>
                     </indexterm>
-<literal>DateTypeName</literal>: The overridden default column type for
-<literal>java.sql.Types.DATE</literal>. This is only used when the schema is
-generated by the <literal>mappingtool</literal>.
+<literal>RequiresConditionForCrossJoin</literal>: Some databases require that
+there always be a conditional statement for a cross join. If set, this parameter
+ensures that there will always be some condition to the join clause.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.DecimalTypeName">
+                <listitem id="DBDictionary.RequiresTargetForDelete">
                     <para>
                     <indexterm>
                         <primary>
-                            DDL
+                            SQL
                         </primary>
                         <secondary>
-                            DecimalTypeName
+                            RequiresTargetForDelete
                         </secondary>
                     </indexterm>
-<literal>DecimalTypeName</literal>: The overridden default column type for
-<literal>java.sql.Types.DECIMAL</literal>. This is only used when the schema is
-generated by the <literal>mappingtool</literal>.
+<literal>RequiresTargetForDelete</literal>:
+When true, the database requires a target for delete statements.  Defaults
+to <literal>false</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.DistinctTypeName">
+                <listitem id="DBDictionary.ReservedWords">
                     <para>
                     <indexterm>
                         <primary>
-                            DDL
+                            SQL
                         </primary>
                         <secondary>
-                            DistinctTypeName
+                            ReservedWords
                         </secondary>
                     </indexterm>
-<literal>DistinctTypeName</literal>: The overridden default column type for
-<literal>java.sql.Types.DISTINCT</literal>. This is only used when the schema
-is generated by the <literal>mappingtool</literal>.
+<literal>ReservedWords</literal>: A comma-separated list of reserved words for
+this database, beyond the standard SQL92 keywords.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.DoubleTypeName">
+                <listitem id="DBDictionary.SchemaCase">
                     <para>
                     <indexterm>
                         <primary>
-                            DDL
+                            schema
                         </primary>
                         <secondary>
-                            DoubleTypeName
+                            reflection
                         </secondary>
+                        <tertiary>
+                            SchemaCase
+                        </tertiary>
                     </indexterm>
-<literal>DoubleTypeName</literal>: The overridden default column type for
-<literal>java.sql.Types.DOUBLE</literal>. This is only used when the schema is
-generated by the <literal>mappingtool</literal>.
+<literal>SchemaCase</literal>: The case to use when querying the database
+metadata about schema components. Defaults to making all names upper case.
+Available values are: <literal>upper, lower, preserve</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.FloatTypeName">
+                <listitem id="DBDictionary.SearchStringEscape">
                     <para>
                     <indexterm>
                         <primary>
-                            DDL
+                            SQL
                         </primary>
                         <secondary>
-                            FloatTypeName
+                            SearchStringEscape
                         </secondary>
                     </indexterm>
-<literal>FloatTypeName</literal>: The overridden default column type for
-<literal>java.sql.Types.FLOAT</literal>. This is only used when the schema is
-generated by the <literal>mappingtool</literal>.
+<literal>SearchStringEscape</literal>:
+The default escape character used when generating SQL <literal>LIKE</literal>
+clauses.  The escape character is used to escape the wildcard meaning of the
+<literal>_</literal> and <literal>%</literal> characters.
+Note: since JPQL provides the ability to define the escape character in
+the query, this setting is primarily used when translating other query
+languages, such as JDOQL.  Defaults to <literal>"\\"</literal>
+(a single backslash in Java speak).
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.IntegerTypeName">
+                <listitem id="DBDictionary.SelectWords">
                     <para>
                     <indexterm>
                         <primary>
-                            DDL
+                            SQL
                         </primary>
                         <secondary>
-                            IntegerTypeName
+                            SelectWords
                         </secondary>
                     </indexterm>
-<literal>IntegerTypeName</literal>: The overridden default column type for
-<literal>java.sql.Types.INTEGER</literal>. This is only used when the schema is
-generated by the <literal>mappingtool</literal>.
+<literal>SelectWords</literal>: A comma-separated list of keywords which may be
+used to start a SELECT statement for this database. If an application executes
+a native SQL statement which begins with SelectWords OpenJPA will treat the
+statement as a SELECT statement rather than an UPDATE statement.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.JavaObjectTypeName">
+                <listitem id="DBDictionary.SequenceNameSQL">
                     <para>
                     <indexterm>
                         <primary>
-                            DDL
+                            schema
                         </primary>
                         <secondary>
-                            JavaObjectTypeName
+                            reflection
                         </secondary>
+                        <tertiary>
+                            SequenceNameSQL
+                        </tertiary>
                     </indexterm>
-<literal>JavaObjectTypeName</literal>: The overridden default column type for
-<literal>java.sql.Types.JAVAOBJECT</literal>. This is only used when the schema
-is generated by the <literal>mappingtool</literal>.
+<literal>SequenceNameSQL</literal>:
+Additional phrasing to use with <literal>SequenceSQL</literal>.  
+Defaults to <literal>null</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.LongVarbinaryTypeName">
+                <listitem id="DBDictionary.SequenceSQL">
                     <para>
                     <indexterm>
                         <primary>
-                            DDL
+                            schema
                         </primary>
                         <secondary>
-                            LongVarbinaryTypeName
+                            reflection
                         </secondary>
+                        <tertiary>
+                            SequenceSQL
+                        </tertiary>
                     </indexterm>
-<literal>LongVarbinaryTypeName</literal>: The overridden default column type
-for <literal>java.sql.Types.LONGVARBINARY</literal>. This is only used when the
-schema is generated by the <literal>mappingtool</literal>.
+<literal>SequenceSQL</literal>:
+General structure of the SQL query to use when interrogating the database
+for sequence names.
+As there is no standard way to obtain sequence names,
+it defaults to <literal>null</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.LongVarcharTypeName">
+                
+                <listitem id="DBDictionary.SequenceSchemaSQL">
                     <para>
                     <indexterm>
                         <primary>
-                            DDL
+                            schema
                         </primary>
                         <secondary>
-                            LongVarcharTypeName
+                            reflection
                         </secondary>
+                        <tertiary>
+                            SequenceSchemaSQL
+                        </tertiary>
                     </indexterm>
-<literal>LongVarcharTypeName</literal>: The overridden default column type for
-<literal>java.sql.Types.LONGVARCHAR</literal>. This is only used when the
-schema is generated by the <literal>mappingtool</literal>.
+<literal>SequenceSchemaSQL</literal>:
+Additional phrasing to use with <literal>SequenceSQL</literal>.  
+Defaults to <literal>null</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.NullTypeName">
+                <listitem id="DBDictionary.SimulateLocking">
                     <para>
                     <indexterm>
                         <primary>
-                            DDL
+                            locking
                         </primary>
                         <secondary>
-                            NullTypeName
+                            SimulateLocking
                         </secondary>
                     </indexterm>
-<literal>NullTypeName</literal>: The overridden default column type for
-<literal>java.sql.Types.NULL</literal>. This is only used when the schema is
-generated by the <literal>mappingtool</literal>.
+<literal>SimulateLocking</literal>: Some databases do not support pessimistic
+locking, which will result in an exception when you attempt a
+transaction while using the pessimistic lock manager.
+Setting this property to <literal>true</literal> suppresses the
+locking of rows in the database, thereby allowing pessimistic transactions
+even on databases that do not support locking. At the same time, setting this
+property to <literal>true</literal> means that you do not obtain the semantics
+of a pessimistic
+transaction with the database. Defaults to <literal>false</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.NumericTypeName">
+                <listitem id="DBDictionary.SmallintTypeName">
                     <para>
                     <indexterm>
                         <primary>
                             DDL
                         </primary>
                         <secondary>
-                            NumericTypeName
+                            SmallintTypeName
                         </secondary>
                     </indexterm>
-<literal>NumericTypeName</literal>: The overridden default column type for
-<literal>java.sql.Types.NUMERIC</literal>. This is only used when the schema is
-generated by the <literal>mappingtool</literal>.
+<literal>SmallintTypeName</literal>: The overridden default column type for
+<literal>java.sql.Types.SMALLINT</literal>. This is used only when the schema
+is generated by the <literal>mappingtool</literal>.
                     </para>
                 </listitem>
-                <listitem id="DBDictionary.OtherTypeName">
+                <listitem id="DBDictionary.StorageLimitationsFatal">
                     <para>
                     <indexterm>
                         <primary>
-                            DDL
+                            persistent fields
                         </primary>
                         <secondary>
-                            OtherTypeName
+                            StorageLimitationsFatal
                         </secondary>
                     </indexterm>
-<literal>OtherTypeName</literal>: The overridden default column type for

[... 1331 lines stripped ...]