Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/CoreTypeMappings.java38
-rw-r--r--plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/TypeMappingRegistry.java1
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AttributeTest.java6
-rw-r--r--plugins/org.eclipse.net4j.db.postgresql/src/org/eclipse/net4j/db/postgresql/PostgreSQLAdapter.java1
4 files changed, 40 insertions, 6 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/CoreTypeMappings.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/CoreTypeMappings.java
index c0551e63a6..e2ebb06e9d 100644
--- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/CoreTypeMappings.java
+++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/CoreTypeMappings.java
@@ -173,7 +173,7 @@ public class CoreTypeMappings
{
return null;
}
-
+
int pos = str.indexOf('-');
byte[] id = HexUtil.hexToBytes(str.substring(0, pos));
@@ -225,7 +225,7 @@ public class CoreTypeMappings
{
return null;
}
-
+
int pos = str.indexOf('-');
byte[] id = HexUtil.hexToBytes(str.substring(0, pos));
@@ -689,6 +689,38 @@ public class CoreTypeMappings
/**
* @author Eike Stepper
*/
+ public static class TMBytesVarbinary extends AbstractTypeMapping
+ {
+ public static final Factory FACTORY = new Factory(TypeMappingUtil.createDescriptor(ID_PREFIX
+ + ".ByteArrayVarbinary", EcorePackage.eINSTANCE.getEByteArray(), DBType.VARBINARY));
+
+ @Override
+ public Object getResultSetValue(ResultSet resultSet) throws SQLException
+ {
+ return resultSet.getBytes(getField().getName());
+ }
+
+ /**
+ * @author Eike Stepper
+ */
+ public static class Factory extends AbstractTypeMappingFactory
+ {
+ public Factory(Descriptor descriptor)
+ {
+ super(descriptor);
+ }
+
+ @Override
+ public ITypeMapping create(String description) throws ProductCreationException
+ {
+ return new TMBytesVarbinary();
+ }
+ }
+ }
+
+ /**
+ * @author Eike Stepper
+ */
public static class TMBoolean extends AbstractTypeMapping
{
public static final Factory FACTORY = new Factory(TypeMappingUtil.createDescriptor(ID_PREFIX + ".Boolean",
@@ -857,7 +889,7 @@ public class CoreTypeMappings
{
return null;
}
-
+
EFactory factory = getFeature().getEType().getEPackage().getEFactoryInstance();
return factory.convertToString((EDataType)getFeature().getEType(), defaultValue);
}
diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/TypeMappingRegistry.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/TypeMappingRegistry.java
index ccf5f6dbe5..5a3f859440 100644
--- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/TypeMappingRegistry.java
+++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/TypeMappingRegistry.java
@@ -127,6 +127,7 @@ public class TypeMappingRegistry implements ITypeMapping.Registry, ITypeMapping.
container.registerFactory(CoreTypeMappings.TMByte.FACTORY);
container.registerFactory(CoreTypeMappings.TMByte.FACTORY_OBJECT);
container.registerFactory(CoreTypeMappings.TMBytes.FACTORY);
+ container.registerFactory(CoreTypeMappings.TMBytesVarbinary.FACTORY);
container.registerFactory(CoreTypeMappings.TMCharacter.FACTORY);
container.registerFactory(CoreTypeMappings.TMCharacter.FACTORY_OBJECT);
container.registerFactory(CoreTypeMappings.TMCustom.FACTORY_VARCHAR);
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AttributeTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AttributeTest.java
index 7d57cba6ab..802dfc7c7f 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AttributeTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AttributeTest.java
@@ -100,7 +100,7 @@ public class AttributeTest extends AbstractCDOTest
}
// XXX disabled because of Bug 289445
- @Skips("Postgresql")
+ // @Skips("Postgresql")
@CleanRepositoriesBefore
public void testByteArray() throws Exception
{
@@ -144,7 +144,7 @@ public class AttributeTest extends AbstractCDOTest
}
// XXX disabled because of Bug 289445
- @Skips("Postgresql")
+ // @Skips("Postgresql")
@CleanRepositoriesBefore
public void testByteArrayEmpty() throws Exception
{
@@ -182,7 +182,7 @@ public class AttributeTest extends AbstractCDOTest
}
// XXX disabled because of Bug 289445
- @Skips("Postgresql")
+ // @Skips("Postgresql")
@CleanRepositoriesBefore
public void testByteArrayNull() throws Exception
{
diff --git a/plugins/org.eclipse.net4j.db.postgresql/src/org/eclipse/net4j/db/postgresql/PostgreSQLAdapter.java b/plugins/org.eclipse.net4j.db.postgresql/src/org/eclipse/net4j/db/postgresql/PostgreSQLAdapter.java
index 8f70a4eb5d..524698581a 100644
--- a/plugins/org.eclipse.net4j.db.postgresql/src/org/eclipse/net4j/db/postgresql/PostgreSQLAdapter.java
+++ b/plugins/org.eclipse.net4j.db.postgresql/src/org/eclipse/net4j/db/postgresql/PostgreSQLAdapter.java
@@ -99,6 +99,7 @@ public class PostgreSQLAdapter extends DBAdapter
case VARCHAR:
case CLOB:
return "text"; //$NON-NLS-1$
+ case VARBINARY:
case BLOB:
return "bytea"; //$NON-NLS-1$
case DOUBLE:

Back to the top