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());
+            }
+
+        };
+    }
 }


Reply via email to