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 a7d80750d712e776d9aac6479215bf81816aef27
Author: Valentine Gogichashvili <[email protected]>
Date:   Mon Apr 15 11:16:23 2013 +0200

    Added another test case for searching objects using search_path
---
 .../test/jdbc2/SearchPathLookupTest.java           | 39 ++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/org/postgresql/test/jdbc2/SearchPathLookupTest.java 
b/org/postgresql/test/jdbc2/SearchPathLookupTest.java
index 2de7acb..56f8d65 100644
--- a/org/postgresql/test/jdbc2/SearchPathLookupTest.java
+++ b/org/postgresql/test/jdbc2/SearchPathLookupTest.java
@@ -33,6 +33,10 @@ public class SearchPathLookupTest extends TestCase
 
     // TODO: make @getMetaData() consider search_path as well
 
+    /**
+     * This usecase is most common, here the object we are searching for is 
+     * in the current_schema (the first schema in the search_path)
+     */
     public void testSearchPathNormalLookup() throws Exception
     {
         con = (BaseConnection) TestUtil.openDB();
@@ -63,6 +67,41 @@ public class SearchPathLookupTest extends TestCase
         }
     }
     
+    /**
+     * This usecase is for the situations, when an object is located in a 
schema,
+     * that is in the search_path, but not in the current_schema, for example
+     * a public schema or some kind of schema, that is used for keeping 
utility objects.
+     */
+    public void testSearchPathHiddenLookup() throws Exception
+    {
+        con = (BaseConnection) TestUtil.openDB();
+        Statement stmt = con.createStatement();
+        try {
+            TestUtil.createSchema( con, "first_schema" );
+            TestUtil.createTable( con, "first_schema.x", "first_schema_field_n 
int4");
+            TestUtil.createSchema( con, "second_schema" );
+            TestUtil.createTable( con, "second_schema.y", 
"second_schema_field_n text");
+            TestUtil.createSchema( con, "third_schema" );
+            TestUtil.createTable( con, "third_schema.x", "third_schema_field_n 
float");
+            TestUtil.createSchema( con, "last_schema" );
+            TestUtil.createTable( con, "last_schema.y", "last_schema_field_n 
text");
+            stmt.execute("SET search_path TO first_schema, second_schema, 
last_schema, public;");
+            TypeInfo typeInfo = con.getTypeInfo();
+            int OID = typeInfo.getPGType("y");
+            ResultSet rs = stmt.executeQuery("SELECT 
'second_schema.y'::regtype::oid");
+            assertTrue(rs.next());
+            assertEquals(OID, rs.getInt(1));
+            assertTrue(!rs.next());
+            TestUtil.dropSchema( con, "first_schema" );
+            TestUtil.dropSchema( con, "second_schema" );
+            TestUtil.dropSchema( con, "third_schema" );
+            TestUtil.dropSchema( con, "last_schema" );
+        } finally {
+            if ( stmt != null ) stmt.close();
+            TestUtil.closeDB( con );
+        }
+    }
+    
     public void testSearchPathBackwardsCompatibleLookup() throws Exception
     {
         con = (BaseConnection) TestUtil.openDB();

-- 
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

Reply via email to