mirror of https://github.com/apache/openjpa.git
Merge pull request #75 from eolivelli/fix/OPENJPA-2832
OPENJPA-2832 DROP COLUMN does not use delimiters and always add double quotes
This commit is contained in:
commit
758b866706
|
@ -3840,7 +3840,7 @@ public class DBDictionary
|
||||||
return new String[0];
|
return new String[0];
|
||||||
return new String[]{ "ALTER TABLE "
|
return new String[]{ "ALTER TABLE "
|
||||||
+ getFullName(column.getTable(), false)
|
+ getFullName(column.getTable(), false)
|
||||||
+ " DROP COLUMN " + column };
|
+ " DROP COLUMN " + toDBName(column.getIdentifier()) };
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -25,6 +25,7 @@ import static org.junit.Assert.fail;
|
||||||
import org.apache.openjpa.jdbc.conf.JDBCConfiguration;
|
import org.apache.openjpa.jdbc.conf.JDBCConfiguration;
|
||||||
import org.apache.openjpa.jdbc.identifier.DBIdentifier;
|
import org.apache.openjpa.jdbc.identifier.DBIdentifier;
|
||||||
import org.apache.openjpa.jdbc.identifier.DBIdentifierUtilImpl;
|
import org.apache.openjpa.jdbc.identifier.DBIdentifierUtilImpl;
|
||||||
|
import org.apache.openjpa.jdbc.schema.Column;
|
||||||
import org.apache.openjpa.jdbc.schema.Table;
|
import org.apache.openjpa.jdbc.schema.Table;
|
||||||
import org.apache.openjpa.util.UserException;
|
import org.apache.openjpa.util.UserException;
|
||||||
import org.jmock.Expectations;
|
import org.jmock.Expectations;
|
||||||
|
@ -192,4 +193,35 @@ public class TestDBDictionaryGeneratedSQL {
|
||||||
assertTrue(sqls[0].contains("NameIsRight"));
|
assertTrue(sqls[0].contains("NameIsRight"));
|
||||||
assertTrue(sqls[0].contains("schema"));
|
assertTrue(sqls[0].contains("schema"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDropColumnWithDelimiters() {
|
||||||
|
final JDBCConfiguration mockConfiguration = context.mock(JDBCConfiguration.class);
|
||||||
|
final DBIdentifierUtilImpl idImpl = new DBIdentifierUtilImpl();
|
||||||
|
|
||||||
|
context.checking(new Expectations()
|
||||||
|
{
|
||||||
|
{
|
||||||
|
allowing(mockConfiguration).getIdentifierUtilInstance();
|
||||||
|
will(returnValue(idImpl));
|
||||||
|
|
||||||
|
allowing(mockConfiguration);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
DBDictionary dict = new DBDictionary();
|
||||||
|
dict.setDelimitIdentifiers(true);
|
||||||
|
dict.setSupportsDelimitedIdentifiers(true);
|
||||||
|
dict.setLeadingDelimiter("`");
|
||||||
|
dict.setTrailingDelimiter("`");
|
||||||
|
dict.setConfiguration(mockConfiguration);
|
||||||
|
Table table = new Table();
|
||||||
|
table.setIdentifier(dict.fromDBName("NameIsRight", DBIdentifier.DBIdentifierType.TABLE));
|
||||||
|
|
||||||
|
Column column = new Column(dict.fromDBName("MyColumn", DBIdentifier.DBIdentifierType.COLUMN), table);
|
||||||
|
|
||||||
|
String[] sqls = dict.getDropColumnSQL(column);
|
||||||
|
assertEquals(1, sqls.length);
|
||||||
|
assertEquals(sqls[0], "ALTER TABLE `NameIsRight` DROP COLUMN `MyColumn`");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue