This is an automated email from the git hooks/post-receive script. ebourg-guest pushed a commit to annotated tag REL9_3_1100 in repository libpostgresql-jdbc-java.
commit 2d1327b28418b5e22f428d84d21ed110db1f3c42 Author: tminglei <[email protected]> Date: Sat Aug 24 16:28:21 2013 +0800 add uuid array support --- org/postgresql/jdbc4/Jdbc4Array.java | 8 ++++++++ .../jdbc4/array/UUIDArrayElementBuilder.java | 23 ++++++++++++++++++++++ org/postgresql/test/jdbc4/ArrayTest.java | 2 +- 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/org/postgresql/jdbc4/Jdbc4Array.java b/org/postgresql/jdbc4/Jdbc4Array.java index 130b663..0289f15 100644 --- a/org/postgresql/jdbc4/Jdbc4Array.java +++ b/org/postgresql/jdbc4/Jdbc4Array.java @@ -9,11 +9,19 @@ package org.postgresql.jdbc4; import java.util.Map; import org.postgresql.core.*; +import org.postgresql.jdbc2.ArrayElementBuilderFactory; +import org.postgresql.jdbc4.array.UUIDArrayElementBuilder; + import java.sql.SQLException; import java.sql.ResultSet; public class Jdbc4Array extends org.postgresql.jdbc2.AbstractJdbc2Array implements java.sql.Array { + static { + ArrayElementBuilderFactory.setArrayElementBuilder(Oid.UUID, new UUIDArrayElementBuilder()); + ArrayElementBuilderFactory.setArrayElementBuilder(Oid.UUID_ARRAY, new UUIDArrayElementBuilder()); + } + public Jdbc4Array(BaseConnection conn, int oid, String fieldString) throws SQLException { super(conn, oid, fieldString); diff --git a/org/postgresql/jdbc4/array/UUIDArrayElementBuilder.java b/org/postgresql/jdbc4/array/UUIDArrayElementBuilder.java new file mode 100644 index 0000000..6080c03 --- /dev/null +++ b/org/postgresql/jdbc4/array/UUIDArrayElementBuilder.java @@ -0,0 +1,23 @@ +package org.postgresql.jdbc4.array; + +import org.postgresql.jdbc2.ArrayElementBuilder; +import org.postgresql.util.ByteConverter; + +import java.util.UUID; + +public class UUIDArrayElementBuilder implements ArrayElementBuilder { + @Override + public Class getElementClass() { + return UUID.class; + } + + @Override + public Object buildElement(byte[] bytes, int pos, int len) { + return new UUID(ByteConverter.int8(bytes, pos + 0), ByteConverter.int8(bytes, pos + 8)); + } + + @Override + public Object buildElement(String literal) { + return UUID.fromString(literal); + } +} diff --git a/org/postgresql/test/jdbc4/ArrayTest.java b/org/postgresql/test/jdbc4/ArrayTest.java index 827df87..9eec6af 100644 --- a/org/postgresql/test/jdbc4/ArrayTest.java +++ b/org/postgresql/test/jdbc4/ArrayTest.java @@ -24,7 +24,7 @@ public class ArrayTest extends TestCase { protected void setUp() throws Exception { _conn = TestUtil.openDB(); - TestUtil.createTable(_conn, "arrtest", "intarr int[], decarr decimal(2,1)[], strarr text[]"); + TestUtil.createTable(_conn, "arrtest", "intarr int[], decarr decimal(2,1)[], strarr text[], uuidarr uuid[]"); } protected void tearDown() throws SQLException { -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/libpostgresql-jdbc-java.git _______________________________________________ pkg-java-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits

