<?xml version="1.0" encoding="iso-8859-1"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:lang="http://www.springframework.org/schema/lang"
	xmlns:util="http://www.springframework.org/schema/util"
	xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-2.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd">
	
	<!--
	For DBUnit flat XML files, null columns can carry a placeholder value
	which can later be replaced using a ReplacementDataSet.
	In Flat XML files the first row of a table defines the metadata. If a null
	column is omitted, none of the following rows can have this column! This is the
	default behaviour of Jailer.
	Thus, define a null placeholder and replace it with a null value when you load
	the data set with DBUnit.     
	 -->
	<!--
	<bean name="null-column-placeholder" class="java.lang.String">
		<constructor-arg value="[NULL]" />
	</bean>
	-->
	
	<!--
		If minimize-UPK is true, the UPK don't preserve order. This minimizes
		the size of the UPK.
	-->
	<bean name="minimize-UPK" class="java.lang.Boolean">
		<!--
			set value="true" if you use MySQL and get the following exception:
			"java.sql.SQLException: Too many key parts specified; max 16 parts
			allowed"
		-->
		<constructor-arg value="false" />
	</bean>
	
	<!-- Configuration of the local database holding the entity graph -->
	<bean name="local-entity-graph" class="net.sf.jailer.entitygraph.local.LocalConfiguration">
		<!-- for H2 -->
		<property name="localPKType" value="VARCHAR" />
		<property name="localNPKType" value="NVARCHAR" />
		<property name="localPKLength" value="10000" />
		<property name="databasesFolder" value="local" />
		<property name="urlPattern" value="jdbc:h2:%s" />
		<property name="driver" value="org.h2.Driver" />
		<property name="user" value="" />
		<property name="password" value="" />
		<property name="lib" value="lib/h2-1.3.160.jar" />

		<!-- for SQLite -->
		<!-- (doesn't work with more than 1 thread)
		<property name="localPKType" value="VARCHAR" />
		<property name="localNPKType" value="NVARCHAR" />
		<property name="localPKLength" value="10000" />
		<property name="databasesFolder" value="local" />
		<property name="urlPattern" value="jdbc:sqlite:%s" />
		<property name="driver" value="org.sqlite.JDBC" />
		<property name="user" value="" />
		<property name="password" value="" />
		<property name="lib" value="lib/sqlite-jdbc-3.8.11.2.jar" />
		-->
	</bean>

	<!--
		Script-enhancer adds application specific extensions to generated
		SQL-scripts
	-->
	<util:list id="script-enhancer">
		<!--
			Inserts the content of the files - prolog/[INSERT|DELETE]/<TABLE>.sql
			- epilog/[INSERT|DELETE]/<TABLE>.sql at top/bottom of the generated
			script for each table <TABLE> for which at least one row is
			inserted/deleted.
		-->
		<bean class="net.sf.jailer.enhancer.FileBasedScriptEnhancer" />
		<bean class="net.sf.jailer.enhancer.HelperTableEnhancer" />
	</util:list>
	
	<!--
		Model-finder reads table- and association definitions from meta-data
		sources
	-->
	<util:list id="model-finder">
		<!--
			<bean
			class="net.sf.jailer.modelbuilder.DBMetaDataBasedModelElementFinder">
			<constructor-arg value="script/db2/selectTables.sql"/>
			<constructor-arg value="script/db2/selectAssociations.sql"/>
			<constructor-arg value="script/db2/selectColumns.sql"/> </bean>
		-->
		<bean class="net.sf.jailer.modelbuilder.JDBCMetaDataBasedModelElementFinder" />
	</util:list>
	<bean name="renderer" class="net.sf.jailer.render.HtmlDataModelRenderer">
		<constructor-arg value="render" />
		<constructor-arg value="0" />
	</bean>

	<!--
	    DBMS configuration
	-->
	<util:list id="dbms-configuration">
		
		<!-- for Informix -->
		<bean class="net.sf.jailer.Configuration">
			<property name="urlPattern" value="jdbc:informix.*" />

			<property name="dbms" value="Informix"/>
			
			<!-- NOLOGGING, TABLESPACE-spec., etc. -->
			<property name="tableProperties" value="" />
			
			<property name="sqlDialect">
				<bean class="net.sf.jailer.database.SQLDialect">
					<property name="supportsMultiRowInserts" value="true"/>
					<property name="needsValuesKeywordForDeletes" value="true"/>
					<property name="supportsInClauseForDeletes" value="true"/>
					<property name="upsertMode" value="DB2"/>
				</bean>
			</property>
			<property name="timestampPattern" value="cast(%s as datetime year to fraction)" />
			<property name="varcharLengthLimit"	value="255" />
			<property name="typeReplacement">
				<map>
					<entry key="datetime" value="datetime year to fraction"/>
					<entry key="serial" value="int"/>
					<entry key="serial8" value="int8"/>
					<entry key="bigserial" value="bigint"/>
        		</map>
			</property>
	        <property name="sqlLimitSuffix" value="FIRST %s" />
			<property name="statisticRenovator">
                <bean class="net.sf.jailer.database.SqlScriptBasedStatisticRenovator">
                    <constructor-arg value="script/informix/update_statistics.sql" />
                </bean>
            </property>
            <property name="sessionTemporaryTableManager">
	            <bean class="net.sf.jailer.database.DefaultTemporaryTableManager">
	                <property name="dmlTableReferencePrefix" value="" />
                    <property name="createTablePrefix" value="CREATE TEMP TABLE " />
                    <property name="createTableSuffix" value=" WITH NO LOG" />
                    <property name="createIndexPrefix" value="CREATE INDEX " />
                    <property name="createIndexSuffix" value="" />
                    <property name="indexTablePrefix" value="" />
                    <property name="dropTablePrefix" value="DROP TABLE " />
                <!-- 
	                <property name="dmlTableReferencePrefix" value="" />
	                <property name="createTablePrefix" value="CREATE RAW TABLE " />
	                <property name="createTableSuffix" value=" extent size 51200 next size 25000" />
	                <property name="createIndexPrefix" value="CREATE INDEX " />
	                <property name="createIndexSuffix" value="" />
	                <property name="indexTablePrefix" value="" />
	                <property name="dropTablePrefix" value="DROP TABLE " />
	            -->
	            </bean>
	        </property>
		</bean>
		
		<!-- for IBM DB2 -->
		<bean class="net.sf.jailer.Configuration">
			<property name="urlPattern" value="jdbc:db2.*" />

			<property name="dbms" value="IBM DB2"/>
			
			<!-- NOLOGGING, TABLESPACE-spec., etc. -->
			<property name="tableProperties" value="NOT LOGGED INITIALLY" />
			
			<property name="sqlDialect">
				<bean class="net.sf.jailer.database.SQLDialect">
					<property name="supportsMultiRowInserts" value="true"/>
					<property name="needsValuesKeywordForDeletes" value="true"/>
					<property name="supportsInClauseForDeletes" value="true"/>
					<property name="upsertMode" value="DB2"/>
				</bean>
			</property>
			<property name="typeReplacement">
				<map>
					<entry key="graphic" value="varchar"/>
					<entry key="GRAPHIC" value="VARCHAR"/>
				</map>
			</property>
            <property name="stringLiteralEscapeSequences">
                <map>
                    <entry key="'" value="''"/>
                    <entry key="\n" value="' || chr(10) || '"/>
                    <entry key="\r" value="' || chr(13) || '"/>
               </map>
            </property>
			<property name="sqlLimitSuffix" value="fetch first %s rows only" />
			<property name="statisticRenovator">
				<bean class="net.sf.jailer.database.SqlScriptBasedStatisticRenovator">
					<constructor-arg value="script/db2/update_statistics.sql" />
				</bean>
			</property>
			<property name="emptyCLOBValue" value="clob('')" />
			<property name="emptyBLOBValue" value="blob('')" />
			<property name="sessionTemporaryTableManager">
				<bean class="net.sf.jailer.database.DefaultTemporaryTableManager">
					<property name="dmlTableReferencePrefix" value="SESSION." />
					<property name="createTablePrefix" value="DECLARE GLOBAL TEMPORARY TABLE " />
					<property name="createTableSuffix" value="ON COMMIT PRESERVE ROWS NOT LOGGED" />
					<property name="createIndexPrefix" value="CREATE INDEX SESSION." />
					<property name="createIndexSuffix" value="" />
					<property name="indexTablePrefix" value="SESSION." />
					<property name="dropTablePrefix" value="DROP TABLE SESSION." />
				</bean>
			</property>
		</bean>

		<!-- for Oracle -->
		<bean class="net.sf.jailer.Configuration">
			<property name="urlPattern" value="jdbc:oracle.*" />

			<property name="dbms" value="Oracle"/>
			<property name="sqlDialect">
				<bean class="net.sf.jailer.database.SQLDialect">
					<property name="supportsMultiRowInserts" value="false"/>
					<property name="needsValuesKeywordForDeletes" value="false"/>
					<property name="supportsInClauseForDeletes" value="true"/>
					<property name="upsertMode" value="MERGE"/>
				</bean>
			</property>
			
			<property name="rowidName" value="ROWID"/>
			<property name="rowidType" value="ROWID"/>
			
			<property name="avoidLeftJoin" value="true" />
			<property name="statisticRenovator">
				<bean class="net.sf.jailer.database.SqlScriptBasedStatisticRenovator">
					<constructor-arg value="script/oracle/gatherStatistics.sql" />
				</bean>
			</property>
            <property name="stringLiteralEscapeSequences">
                <map>
                    <entry key="'" value="''"/>
                    <entry key="\n" value="' || chr(10) || '"/>
                    <entry key="\r" value="' || chr(13) || '"/>
               </map>
            </property>
			<property name="emptyCLOBValue" value="empty_clob()" />
			<property name="emptyBLOBValue" value="empty_blob()" />
			<property name="binaryPattern" value="hextoraw('%s')" />
			<property name="useToTimestampFunction" value="true" />
			
			<!-- NOLOGGING, TABLESPACE-spec., etc. -->
			<property name="tableProperties" value="NOLOGGING" />
			
			<property name="sessionTemporaryTableManager">
				<bean class="net.sf.jailer.database.DefaultTemporaryTableManager">
					<property name="dmlTableReferencePrefix" value="" />
					<property name="createTablePrefix" value="CREATE GLOBAL TEMPORARY TABLE " />
					<property name="createTableSuffix" value="ON COMMIT PRESERVE ROWS" />
					<property name="createIndexPrefix" value="CREATE INDEX " />
					<property name="createIndexSuffix" value="" />
					<property name="indexTablePrefix" value="" />
					<property name="dropTablePrefix" value="DROP TABLE " />
				</bean>
			</property>
		</bean>
		
		<!-- for PostgreSQL -->
		<bean class="net.sf.jailer.Configuration">
			<property name="urlPattern" value="jdbc:postgres.*" />

			<property name="dbms" value="PostgreSQL"/>
			
			<property name="supportsSchemasInIndexDefinitions" value="false"/>
			
			<!-- NOLOGGING, TABLESPACE-spec., etc. -->
			<property name="tableProperties" value="" />
			
			<property name="sqlDialect">
				<bean class="net.sf.jailer.database.SQLDialect">
					<property name="supportsMultiRowInserts" value="true"/>
					<property name="needsValuesKeywordForDeletes" value="true"/>
					<property name="supportsInClauseForDeletes" value="true"/>
					<property name="upsertMode" value="DB2"/>
				</bean>
			</property>
			<property name="typeReplacement">
				<map>
					<entry key="DOUBLE" value="DOUBLE PRECISION"/>
					<entry key="double" value="double precision"/>
					<entry key="bigserial" value="int8"/>
					<entry key="serial8" value="int8"/>
					<entry key="serial" value="int4"/>
					<entry key="serial4" value="int4"/>
					<entry key="NVARCHAR" value="VARCHAR" />
					<entry key="nvarchar" value="varchar" />
				</map>
			</property>
			<property name="binaryPattern" value="E'\\x%s'" />
			<property name="statisticRenovator">
				<bean class="net.sf.jailer.database.SqlScriptBasedStatisticRenovator">
					<constructor-arg value="script/postgres/update_statistics.sql" />
				</bean>
			</property>
			<property name="sqlLimitSuffix" value="LIMIT %s" />

			<property name="sessionTemporaryTableManager">
				<bean class="net.sf.jailer.database.DefaultTemporaryTableManager">
					<property name="dmlTableReferencePrefix" value="" />
					<property name="createTablePrefix" value="CREATE TEMPORARY TABLE " />
					<property name="createTableSuffix" value="" />
					<property name="createIndexPrefix" value="CREATE INDEX " />
					<property name="createIndexSuffix" value="" />
					<property name="indexTablePrefix" value="" />
					<property name="dropTablePrefix" value="-- DROP TABLE " />
				</bean>
			</property>
		</bean>
		
		<!-- for Cloudscape -->
		<bean class="net.sf.jailer.Configuration">
			<property name="urlPattern" value="jdbc:cloudscape.*" />

			<property name="dbms" value="Cloudscape"/>
			
			<!-- NOLOGGING, TABLESPACE-spec., etc. -->
			<property name="tableProperties" value="" />
			
			<property name="sqlDialect">
				<bean class="net.sf.jailer.database.SQLDialect">
					<property name="supportsMultiRowInserts" value="false"/>
					<property name="needsValuesKeywordForDeletes" value="false"/>
					<property name="supportsInClauseForDeletes" value="false"/>
					<property name="upsertMode" value="FROM_JL_DUAL"/>
				</bean>
			</property>
			<property name="statisticRenovator">
				<bean class="net.sf.jailer.database.SqlScriptBasedStatisticRenovator">
					<constructor-arg value="script/cloudscape/update_statistics.sql" />
				</bean>
			</property>
		</bean>
		
		<!-- for Firebird -->
		<bean class="net.sf.jailer.Configuration">
			<property name="urlPattern" value="jdbc:firebirdsql.*" />

			<property name="dbms" value="Firebird"/>
			
			<!-- NOLOGGING, TABLESPACE-spec., etc. -->
			<property name="tableProperties" value="" />
			
			<property name="sqlDialect">
				<bean class="net.sf.jailer.database.SQLDialect">
					<property name="supportsMultiRowInserts" value="false"/>
					<property name="needsValuesKeywordForDeletes" value="false"/>
					<property name="supportsInClauseForDeletes" value="false"/>
					<property name="upsertMode" value="FROM_JL_DUAL"/>
				</bean>
			</property>
			<property name="typeReplacement">
				<map>
					<entry key="DOUBLE" value="DOUBLE PRECISION"/>
				</map>
			</property>
			<property name="statisticRenovator">
				<bean class="net.sf.jailer.database.SqlScriptBasedStatisticRenovator">
					<constructor-arg value="script/firebird/update_statistics.sql" />
				</bean>
			</property>
		</bean>
		
		<!-- for MS SQL -->
		<bean class="net.sf.jailer.Configuration">
			<property name="urlPattern"
				value="jdbc:sqlserver.*|jdbc:inetdae.*|jdbc:JTurbo.*|jdbc:weblogic:mssqlserver.*|jdbc:jtds:sqlserver.*" />

			<property name="dbms" value="Microsoft SQL Server"/>
			
			<property name="supportsSchemasInIndexDefinitions" value="false"/>
			
			<!-- NOLOGGING, TABLESPACE-spec., etc. -->
			<property name="tableProperties" value="" />
			
			<property name="sqlDialect">
				<bean class="net.sf.jailer.database.SQLDialect">
					<property name="supportsMultiRowInserts" value="true"/>
					<property name="needsValuesKeywordForDeletes" value="false"/>
					<property name="supportsInClauseForDeletes" value="false"/>
					<property name="upsertMode" value="DB2"/>
				</bean>
			</property>
			<property name="emptyCLOBValue" value="''" />
			<property name="emptyBLOBValue" value="0x" />
            <property name="stringLiteralEscapeSequences">
                <map>
                    <entry key="'" value="''"/>
                    <entry key="\n" value="' + char(10) + '"/>
                    <entry key="\r" value="' + char(13) + '"/>
               </map>
            </property>
            <property name="ncharPrefix" value="N" />
            <property name="exportBlocks">
				<set>
				   <value>timestamp</value>
				   <value>TIMESTAMP</value>
				</set>
			</property>
			<property name="sqlLimitSuffix" value="TOP %s" />
			<property name="statisticRenovator">
				<bean class="net.sf.jailer.database.SqlScriptBasedStatisticRenovator">
					<constructor-arg value="script/mssql/update_statistics.sql" />
				</bean>
			</property>
			<property name="identityInserts" value="true"/>
			<property name="binaryPattern" value="0x%s" />
			
			<!-- unsolved problem with temp table and collations
			<property name="sessionTemporaryTableManager">
				<bean class="net.sf.jailer.database.DefaultTemporaryTableManager">
					<property name="dmlTableReferencePrefix" value="#" />
					<property name="createTablePrefix" value="CREATE TABLE #" />
					<property name="createTableSuffix" value="" />
					<property name="createIndexPrefix" value="CREATE INDEX " />
					<property name="createIndexSuffix" value="" />
					<property name="indexTablePrefix" value="#" />
					<property name="dropTablePrefix" value="DROP TABLE #" />
				</bean>
			</property>
			-->
			
		</bean>
		
		<!-- for MySQL -->
		<bean class="net.sf.jailer.Configuration">
			<property name="urlPattern" value="jdbc:mysql.*" />

			<property name="dbms" value="MySQL"/>
			
			<!-- NOLOGGING, TABLESPACE-spec., etc. -->
			<property name="tableProperties" value="" />
			
			<property name="jdbcProperties">
				<map>
					<entry key="noDatetimeStringSync" value="true"/>
        		</map>
			</property>
			
			<property name="sqlDialect">
				<bean class="net.sf.jailer.database.SQLDialect">
					<property name="supportsMultiRowInserts" value="true"/>
					<property name="needsValuesKeywordForDeletes" value="false"/>
					<property name="supportsInClauseForDeletes" value="true"/>
					<property name="upsertMode" value="FROM_DUAL"/>
				</bean>
			</property>
			<property name="stringLiteralEscapeSequences">
				<map>
					<entry key="\0" value="\0"/>
					<entry key="'" value="\'"/>
					<entry key="&quot;" value="\&quot;"/>
					<entry key="\n" value="\n"/>
					<entry key="\r" value="\r"/>
					<entry key="\t" value="\t"/>
					<entry key="\b" value="\b"/>
					<entry key="\26" value="\Z"/>
					<entry key="\\" value="\\"/>
				</map>
			</property>
			<property name="typeReplacement">
				<map>
					<entry key="TINYINT" value="INT"/>
					<entry key="SMALLINT" value="INT"/>
					<entry key="MEDIUMINT" value="INT"/>
					<entry key="INT" value="BIGINT"/>
					<entry key="INTEGER" value="BIGINT"/>
					<entry key="tinyint" value="int"/>
					<entry key="smallint" value="int"/>
					<entry key="mediumint" value="int"/>
					<entry key="int" value="bigint"/>
					<entry key="integer" value="bigint"/>
				</map>
			</property>
			<property name="sqlLimitSuffix" value="LIMIT 0, %s" />
			<property name="statisticRenovator">
				<bean class="net.sf.jailer.database.SqlScriptBasedStatisticRenovator">
					<constructor-arg value="script/mysql/update_statistics.sql" />
				</bean>
			</property>
		</bean>
		
		<!-- for Derby -->
		<bean class="net.sf.jailer.Configuration">
			<property name="urlPattern" value="jdbc:derby.*" />

			<property name="dbms" value="Derby"/>
			
			<!-- NOLOGGING, TABLESPACE-spec., etc. -->
			<property name="tableProperties" value="" />
			
			<property name="sqlDialect">
				<bean class="net.sf.jailer.database.SQLDialect">
					<property name="supportsMultiRowInserts" value="false"/>
					<property name="needsValuesKeywordForDeletes" value="false"/>
					<property name="supportsInClauseForDeletes" value="false"/>
					<property name="upsertMode" value="FROM_JL_DUAL"/>
				</bean>
			</property>
			<property name="statisticRenovator">
				<bean class="net.sf.jailer.database.SqlScriptBasedStatisticRenovator">
					<constructor-arg value="script/derby/update_statistics.sql" />
				</bean>
			</property>
		</bean>
		
		<!-- for Sybase -->
		<bean class="net.sf.jailer.Configuration">
			<property name="urlPattern" value="jdbc:sybase.*|jdbc:jtds:sybase.*" />

			<property name="dbms" value="Sybase"/>
			<property name="sqlDialect">
				<bean class="net.sf.jailer.database.SQLDialect">
					<property name="supportsMultiRowInserts" value="true"/>
					<property name="needsValuesKeywordForDeletes" value="false"/>
					<property name="supportsInClauseForDeletes" value="false"/>
					<property name="upsertMode" value="DB2"/>
				</bean>
			</property>
			<property name="exportBlocks">
				<set>
				   <value>timestamp</value>
				   <value>TIMESTAMP</value>
				</set>
			</property>
			<property name="sqlLimitSuffix" value="TOP %s" />
			<property name="statisticRenovator">
				<bean class="net.sf.jailer.database.SqlScriptBasedStatisticRenovator">
					<constructor-arg value="script/sybase/update_statistics.sql" />
				</bean>
			</property>
			
			<!-- NOLOGGING, TABLESPACE-spec., etc. -->
			<property name="tableProperties" value="" />
			
			<property name="identityInserts" value="true"/>
			<property name="binaryPattern" value="0x%s" />
			<property name="sessionTemporaryTableManager">
				<bean class="net.sf.jailer.database.DefaultTemporaryTableManager">
					<property name="dmlTableReferencePrefix" value="#" />
					<property name="createTablePrefix" value="CREATE TABLE #" />
					<property name="createTableSuffix" value="" />
					<property name="createIndexPrefix" value="CREATE INDEX " />
					<property name="createIndexSuffix" value="" />
					<property name="indexTablePrefix" value="#" />
					<property name="dropTablePrefix" value="DROP TABLE #" />
				</bean>
			</property>
		</bean>

    	<!-- for SQlite -->
		<bean class="net.sf.jailer.Configuration">
			<property name="urlPattern" value="jdbc:sqlite.*" />
			
			<property name="dbms" value="SQLite"/>
			<property name="sqlDialect">
				<bean class="net.sf.jailer.database.SQLDialect">
					<property name="supportsMultiRowInserts" value="false"/>
					<property name="needsValuesKeywordForDeletes" value="false"/>
					<property name="supportsInClauseForDeletes" value="false"/>
					<property name="upsertMode" value="FROM_JL_DUAL"/>
				</bean>
			</property>
			
			<!-- NOLOGGING, TABLESPACE-spec., etc. -->
			<property name="tableProperties" value="" />
			
			<property name="sqlLimitSuffix" value="LIMIT %s" />
			<property name="typeReplacement">
				<map>
					<entry key="NVARCHAR" value="VARCHAR" />
					<entry key="nvarchar" value="varchar" />
				</map>
			</property>
			<property name="sessionTemporaryTableManager">
				<bean class="net.sf.jailer.database.DefaultTemporaryTableManager">
					<property name="dmlTableReferencePrefix" value="" />
					<property name="createTablePrefix" value="CREATE TEMPORARY TABLE " />
					<property name="createTableSuffix" value="" />
					<property name="createIndexPrefix" value="CREATE INDEX " />
					<property name="createIndexSuffix" value="" />
					<property name="indexTablePrefix" value="" />
					<property name="dropTablePrefix" value="DROP TABLE " />
				</bean>
			</property>
		</bean>

    	<!-- for HSQL -->
		<bean class="net.sf.jailer.Configuration">
			<property name="urlPattern" value="jdbc:hsqldb.*" />

			<property name="dbms" value="HSQL"/>
			
			<!-- NOLOGGING, TABLESPACE-spec., etc. -->
			<property name="tableProperties" value="NOLOGGING" />
			
			<property name="sqlDialect">
				<bean class="net.sf.jailer.database.SQLDialect">
					<property name="supportsMultiRowInserts" value="false"/>
					<property name="needsValuesKeywordForDeletes" value="false"/>
					<property name="supportsInClauseForDeletes" value="false"/>
					<property name="upsertMode" value="FROM_JL_DUAL"/>
				</bean>
			</property>
			<property name="sqlLimitSuffix" value="LIMIT %s" />
		</bean>

        <!-- for H2 -->
        <bean class="net.sf.jailer.Configuration">
            <property name="urlPattern" value="jdbc:h2.*" />

			<property name="jdbcProperties">
				<map>
					<entry key="MODE" value="DB2"/>
        		</map>
			</property>
			
			<property name="dbms" value="H2"/>
			<property name="sqlDialect">
				<bean class="net.sf.jailer.database.SQLDialect">
					<property name="supportsMultiRowInserts" value="true"/>
					<property name="needsValuesKeywordForDeletes" value="false"/>
					<property name="supportsInClauseForDeletes" value="true"/>
					<property name="upsertMode" value="FROM_DUAL"/>
				</bean>
			</property>
			
			<!-- NOLOGGING, TABLESPACE-spec., etc. -->
			<property name="tableProperties" value="" />
            
            <property name="sqlLimitSuffix" value="LIMIT %s" />
			<property name="typeReplacement">
				<map>
					<entry key="NVARCHAR" value="VARCHAR" />
				</map>
			</property>
            <property name="stringLiteralEscapeSequences">
                <map>
                    <entry key="'" value="''"/>
                    <entry key="\n" value="' || char(10) || '"/>
                    <entry key="\r" value="' || char(13) || '"/>
               </map>
            </property>
        </bean>
	</util:list>
	
</beans>
