mirror of
https://github.com/apache/openjpa.git
synced 2025-03-06 08:29:08 +00:00
OPENJPA-2816 had to revert dd9bce0cc9 due to side effect
Changing the delimitedFromDb handling had a negative side effect on PostgreSQL. Postgres uses all lower internally, thus comparing those from the db to the generated columns does not get detected as equal, which leads to wrong metadata. We have to come back to HerdDB and also need to re-evaluate DBDict#delimitAll.
This commit is contained in:
parent
813154a570
commit
cb4e47b82c
@ -116,9 +116,7 @@ public class ClassTableJDBCSeq
|
||||
@Override
|
||||
protected Column addPrimaryKeyColumn(Table table) {
|
||||
DBDictionary dict = getConfiguration().getDBDictionaryInstance();
|
||||
DBIdentifier delimitedColumnName = dict.fromDBName(getPrimaryKeyColumn(), DBIdentifier.DBIdentifierType.COLUMN);
|
||||
Column pkColumn = table.addColumn(dict.getValidColumnName
|
||||
(delimitedColumnName, table));
|
||||
Column pkColumn = table.addColumn(dict.getValidColumnName(getPrimaryKeyColumnIdentifier(), table));
|
||||
pkColumn.setType(dict.getPreferredType(Types.VARCHAR));
|
||||
pkColumn.setJavaType(JavaTypes.STRING);
|
||||
pkColumn.setSize(dict.characterColumnSize);
|
||||
|
@ -167,7 +167,7 @@ public class TableJDBCSeq extends AbstractJDBCSeq implements Configurable {
|
||||
* <code>ID</code>.
|
||||
*/
|
||||
public void setPrimaryKeyColumn(String primaryKeyColumn) {
|
||||
_pkColumnName = DBIdentifier.newColumn(primaryKeyColumn);
|
||||
_pkColumnName = DBIdentifier.newColumn(primaryKeyColumn, _conf.getDBDictionaryInstance().delimitAll());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -375,9 +375,7 @@ public class TableJDBCSeq extends AbstractJDBCSeq implements Configurable {
|
||||
*/
|
||||
protected Column addPrimaryKeyColumn(Table table) {
|
||||
DBDictionary dict = _conf.getDBDictionaryInstance();
|
||||
DBIdentifier delimitedColumnName = dict.fromDBName(getPrimaryKeyColumn(), DBIdentifier.DBIdentifierType.COLUMN);
|
||||
Column pkColumn = table.addColumn(dict.getValidColumnName
|
||||
(delimitedColumnName, table));
|
||||
Column pkColumn = table.addColumn(dict.getValidColumnName(getPrimaryKeyColumnIdentifier(), table));
|
||||
pkColumn.setType(dict.getPreferredType(Types.TINYINT));
|
||||
pkColumn.setJavaType(JavaTypes.INT);
|
||||
return pkColumn;
|
||||
|
@ -18,13 +18,12 @@
|
||||
*/
|
||||
package org.apache.openjpa.jdbc.kernel;
|
||||
|
||||
import static org.jmock.AbstractExpectations.returnValue;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import java.sql.Connection;
|
||||
import java.sql.DatabaseMetaData;
|
||||
import java.sql.ResultSet;
|
||||
import java.util.function.Supplier;
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
import org.apache.openjpa.jdbc.conf.JDBCConfiguration;
|
||||
import org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl;
|
||||
@ -41,13 +40,12 @@ import org.junit.Rule;
|
||||
/**
|
||||
* Unit tests for TableJDBCSeq and subclasses.
|
||||
*/
|
||||
@Ignore // column delimitAll needs a complete overhault.
|
||||
public class TableJDBCSeqTest {
|
||||
|
||||
@Rule
|
||||
public JUnitRuleMockery context = new JUnitRuleMockery();
|
||||
final Connection mockConnection = context.mock(Connection.class);
|
||||
final ResultSet mockRS = context.mock(ResultSet.class);
|
||||
final DataSource mockDS = context.mock(DataSource.class);
|
||||
final DatabaseMetaData mockMetaData = context.mock(DatabaseMetaData.class);
|
||||
|
||||
@Test
|
||||
@ -151,7 +149,8 @@ public class TableJDBCSeqTest {
|
||||
Column result = instance.addPrimaryKeyColumn(table);
|
||||
|
||||
if (dict.delimitAll()) {
|
||||
assertEquals("\"ID\"", result.getIdentifier().getName());
|
||||
final DBIdentifier identifier = result.getIdentifier();
|
||||
assertEquals("\"ID\"", identifier.getName());
|
||||
} else {
|
||||
assertEquals("ID", result.getIdentifier().getName());
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user