org.jumpmind.symmetric.db.hsqldb.xml Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of symmetric-ds Show documentation
Show all versions of symmetric-ds Show documentation
SymmetricDS is an open source database synchronization solution. It is platform-independent,
web-enabled, and database-agnostic. SymmetricDS was first built to replicate changes between 'retail store'
databases and ad centralized 'corporate' database.
The newest version!
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd" default-lazy-init="true"> <bean id="hsqldbStringTemplate" class="java.lang.String"> <constructor-arg> <value> <![CDATA[ case when $(tableAlias)"$(columnName)" is null then '''' else concat(concat(''"'',replace(replace($(tableAlias)"$(columnName)",''\'',''\\''),''"'',''\"'')),''"'') end ||'',''||]]> </value> </constructor-arg> </bean> <bean id="hsqldbDialect" class="org.jumpmind.symmetric.db.hsqldb.HsqlDbDialect" scope="prototype"> <property name="tablePrefix" value="$[sym.sync.table.prefix]" /> <property name="parameterService" ref="parameterService" /> <property name="defaultSchema" value="$[sym.db.default.schema]" /> <property name="streamingResultsFetchSize" value="$[sym.db.jdbc.streaming.results.fetch.size]" /> <property name="sqlTemplate"> <bean class="org.jumpmind.symmetric.db.SqlTemplate"> <property name="functionInstalledSql" value="select count(*) from INFORMATION_SCHEMA.SYSTEM_ALIASES where ALIAS='$(functionName)'"/> <property name="functionTemplatesToInstall"> <map> <entry key="base_64_encode"> <value> <![CDATA[CREATE ALIAS $(functionName) for "org.jumpmind.symmetric.db.hsqldb.HsqlDbFunctions.encodeBase64";]]> </value> </entry> <entry key="set_session"> <value> <![CDATA[CREATE ALIAS $(functionName) for "org.jumpmind.symmetric.db.hsqldb.HsqlDbFunctions.setSession";]]> </value> </entry> <entry key="get_session"> <value> <![CDATA[CREATE ALIAS $(functionName) for "org.jumpmind.symmetric.db.hsqldb.HsqlDbFunctions.getSession";]]> </value> </entry> </map> </property> <property name="stringColumnTemplate" ref="hsqldbStringTemplate" /> <property name="clobColumnTemplate" ref="hsqldbStringTemplate" /> <property name="blobColumnTemplate" ref="hsqldbStringTemplate" /> <property name="numberColumnTemplate"> <value> <![CDATA[ case when $(tableAlias)"$(columnName)" is null then '''' else concat(concat(''"'',cast($(tableAlias)"$(columnName)" as varchar(50))),''"'') end ||'',''||]]> </value> </property> <property name="datetimeColumnTemplate" ref="hsqldbStringTemplate" /> <property name="booleanColumnTemplate"> <value> <![CDATA[case when $(tableAlias)"$(columnName)" is null then '''' when $(tableAlias)"$(columnName)" then ''"1"'' else ''"0"'' end||'',''||]]> </value> </property> <property name="oldColumnPrefix" value="OLD_" /> <property name="newColumnPrefix" value="NEW_" /> <property name="oldTriggerValue" value="" /> <property name="newTriggerValue" value="" /> <property name="triggerConcatCharacter" value="||" /> <property name="sqlTemplates"> <map> <entry key="insertTriggerTemplate"> <value> <![CDATA[ CREATE TABLE $(triggerName)_CONFIG (CONDITION_SQL LONGVARCHAR, INSERT_DATA_SQL LONGVARCHAR); INSERT INTO $(triggerName)_CONFIG values( 'select count(*) from $(virtualOldNewTable) where $(syncOnInsertCondition) and $(syncOnIncomingBatchCondition)', 'insert into $(defaultSchema)$(prefixName)_data (table_name, event_type, trigger_hist_id, row_data, channel_id, transaction_id, source_node_id, external_data, create_time) (select ''$(targetTableName)'',''I'',$(triggerHistoryId),$(columns), ''$(channelName)'', $(txIdExpression), $[sym.sync.table.prefix]_get_session(''node_value''), $(externalSelect), CURRENT_TIMESTAMP from $(virtualOldNewTable))' ); CREATE TRIGGER $(triggerName) AFTER INSERT ON $(tableName) FOR EACH ROW QUEUE 0 CALL "org.jumpmind.symmetric.db.hsqldb.HsqlDbTrigger"; ]]> </value> </entry> <entry key="updateTriggerTemplate"> <value> <![CDATA[ CREATE TABLE $(triggerName)_CONFIG (CONDITION_SQL LONGVARCHAR, INSERT_DATA_SQL LONGVARCHAR); INSERT INTO $(triggerName)_CONFIG values( 'select count(*) from $(virtualOldNewTable) where $(syncOnUpdateCondition) and $(syncOnIncomingBatchCondition)', 'insert into $(defaultSchema)$(prefixName)_data (table_name, event_type, trigger_hist_id, pk_data, row_data, old_data, channel_id, transaction_id, source_node_id, external_data, create_time) (select ''$(targetTableName)'',''U'',$(triggerHistoryId),$(oldKeys),$(columns),$(oldColumns), ''$(channelName)'', $(txIdExpression), $[sym.sync.table.prefix]_get_session(''node_value''), $(externalSelect), CURRENT_TIMESTAMP from $(virtualOldNewTable))' ); CREATE TRIGGER $(triggerName) AFTER UPDATE ON $(tableName) FOR EACH ROW QUEUE 0 CALL "org.jumpmind.symmetric.db.hsqldb.HsqlDbTrigger"; ]]> </value> </entry> <entry key="deleteTriggerTemplate"> <value> <![CDATA[ CREATE TABLE $(triggerName)_CONFIG (CONDITION_SQL LONGVARCHAR, INSERT_DATA_SQL LONGVARCHAR); INSERT INTO $(triggerName)_CONFIG values( 'select count(*) from $(virtualOldNewTable) where $(syncOnDeleteCondition) and $(syncOnIncomingBatchCondition)', 'insert into $(defaultSchema)$(prefixName)_data (table_name, event_type, trigger_hist_id, pk_data, old_data, channel_id, transaction_id, source_node_id, external_data, create_time) (select ''$(targetTableName)'',''D'',$(triggerHistoryId),$(oldKeys),$(oldColumns),''$(channelName)'', $(txIdExpression), $[sym.sync.table.prefix]_get_session(''node_value''), $(externalSelect), CURRENT_TIMESTAMP from $(virtualOldNewTable))' ); CREATE TRIGGER $(triggerName) AFTER DELETE ON $(tableName) FOR EACH ROW QUEUE 0 CALL "org.jumpmind.symmetric.db.hsqldb.HsqlDbTrigger"; ]]> </value> </entry> <entry key="initialLoadSqlTemplate"> <value> <![CDATA[select $(columns) from $(schemaName)$(tableName) t where $(whereClause)]]> </value> </entry> </map> </property> </bean> </property> </bean> </beans>