Author: aadamchik
Date: Wed Feb 18 16:13:35 2009
New Revision: 745555
URL: http://svn.apache.org/viewvc?rev=745555&view=rev
Log:
CAY-289 Implement Quoting of identifiers
patch by Olga Tkachova - adding merger support for H2. not directly related to
CAY-289
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/h2/H2MergerFactory.java
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/h2/H2MergerFactory.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/h2/H2MergerFactory.java?rev=745555&r1=745554&r2=745555&view=diff
==============================================================================
---
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/h2/H2MergerFactory.java
(original)
+++
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/h2/H2MergerFactory.java
Wed Feb 18 16:13:35 2009
@@ -19,23 +19,29 @@
package org.apache.cayenne.dba.h2;
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.cayenne.dba.DbAdapter;
import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.merge.MergerFactory;
import org.apache.cayenne.merge.MergerToken;
+import org.apache.cayenne.merge.SetAllowNullToDb;
import org.apache.cayenne.merge.SetColumnTypeToDb;
/**
* @since 3.0
*/
public class H2MergerFactory extends MergerFactory {
-
+
@Override
public MergerToken createSetColumnTypeToDb(
final DbEntity entity,
DbAttribute columnOriginal,
final DbAttribute columnNew) {
return new SetColumnTypeToDb(entity, columnOriginal, columnNew) {
+
@Override
protected void appendPrefix(StringBuffer sqlBuffer) {
sqlBuffer.append("ALTER TABLE ");
@@ -47,4 +53,23 @@
};
}
+ @Override
+ public MergerToken createSetAllowNullToDb(DbEntity entity, DbAttribute
column) {
+ return new SetAllowNullToDb(entity, column) {
+
+ @Override
+ public List<String> createSql(DbAdapter adapter) {
+ StringBuilder sqlBuffer = new StringBuilder();
+
+ sqlBuffer.append("ALTER TABLE ");
+ sqlBuffer.append(getEntity().getFullyQualifiedName());
+ sqlBuffer.append(" ALTER COLUMN ");
+ sqlBuffer.append(getColumn().getName());
+ sqlBuffer.append(" SET NULL");
+
+ return Collections.singletonList(sqlBuffer.toString());
+ }
+
+ };
+ }
}