JDBC Driver Database Meta Data - FK_NAME - Mailing list pgsql-patches

From Kris Jurka
Subject JDBC Driver Database Meta Data - FK_NAME
Date
Msg-id 3D7D0239.2040700@ejurka.com
Whole thread Raw
List pgsql-patches
For the FK_NAME field in various DatabaseMetaData methods that rely on
getImportedExportedKeys use the actual constraint name (tgconstrname)
not the trigger arguments (tgargs).

Update the DatabaseMetaDataTest because 7.3 returns $n instead of
<unnamed> for unnamed constraints.

Also add a missing drop table in UpdateableResultTest.

Kris Jurka
Index: src/interfaces/jdbc/org/postgresql/test/jdbc2/DatabaseMetaDataTest.java
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/interfaces/jdbc/org/postgresql/test/jdbc2/DatabaseMetaDataTest.java,v
retrieving revision 1.13
diff -c -r1.13 DatabaseMetaDataTest.java
*** src/interfaces/jdbc/org/postgresql/test/jdbc2/DatabaseMetaDataTest.java    2002/09/06 21:23:06    1.13
--- src/interfaces/jdbc/org/postgresql/test/jdbc2/DatabaseMetaDataTest.java    2002/09/09 20:05:19
***************
*** 264,270 ****
                  assertTrue( fkColumnName.equals( "m" ) || fkColumnName.equals( "n" ) ) ;

                  String fkName = rs.getString( "FK_NAME" );
!                 assertTrue( fkName.equals( "<unnamed>") );

                  String pkName = rs.getString( "PK_NAME" );
                  assertTrue( pkName.equals("vv_pkey") );
--- 264,274 ----
                  assertTrue( fkColumnName.equals( "m" ) || fkColumnName.equals( "n" ) ) ;

                  String fkName = rs.getString( "FK_NAME" );
!                 if (((org.postgresql.jdbc1.AbstractJdbc1Connection)con1).haveMinimumServerVersion("7.3")) {
!                     assertTrue(fkName.equals("$1"));
!                 } else {
!                     assertTrue( fkName.equals( "<unnamed>") );
!                 }

                  String pkName = rs.getString( "PK_NAME" );
                  assertTrue( pkName.equals("vv_pkey") );
Index: src/interfaces/jdbc/org/postgresql/test/jdbc2/UpdateableResultTest.java
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/interfaces/jdbc/org/postgresql/test/jdbc2/UpdateableResultTest.java,v
retrieving revision 1.6
diff -c -r1.6 UpdateableResultTest.java
*** src/interfaces/jdbc/org/postgresql/test/jdbc2/UpdateableResultTest.java    2002/09/06 21:23:06    1.6
--- src/interfaces/jdbc/org/postgresql/test/jdbc2/UpdateableResultTest.java    2002/09/09 20:05:19
***************
*** 124,129 ****
--- 124,130 ----
              st.close();

              TestUtil.dropTable( con, "updateable" );
+             TestUtil.dropTable( con, "second" );
              TestUtil.closeDB( con );
          }
          catch (Exception ex)
Index: src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1DatabaseMetaData.java
===================================================================
RCS file: /projects/cvsroot/pgsql-server/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1DatabaseMetaData.java,v
retrieving revision 1.5
diff -c -r1.5 AbstractJdbc1DatabaseMetaData.java
*** src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1DatabaseMetaData.java    2002/09/08 00:15:28    1.5
--- src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1DatabaseMetaData.java    2002/09/09 20:05:20
***************
*** 2630,2636 ****

              tuple[2] = rs.getBytes(1); //PKTABLE_NAME
              tuple[6] = rs.getBytes(2); //FKTABLE_NAME
-             String fKeyName = rs.getString(3);
              String updateRule = rs.getString(10);

              if (updateRule != null )
--- 2630,2635 ----
***************
*** 2712,2718 ****
              tuple[7] = fkeyColumn.getBytes(); //FKCOLUMN_NAME

              tuple[8] = rs.getBytes(4); //KEY_SEQ
!             tuple[11] = targs.getBytes(); //FK_NAME this will give us a unique name for the foreign key
              tuple[12] = rs.getBytes(5); //PK_NAME

              // DEFERRABILITY
--- 2711,2717 ----
              tuple[7] = fkeyColumn.getBytes(); //FKCOLUMN_NAME

              tuple[8] = rs.getBytes(4); //KEY_SEQ
!             tuple[11] = rs.getBytes(3); //FK_NAME
              tuple[12] = rs.getBytes(5); //PK_NAME

              // DEFERRABILITY

pgsql-patches by date:

Previous
From: "Ross J. Reedstrom"
Date:
Subject: Re: Patch to support ordering of tid
Next
From: Kris Jurka
Date:
Subject: JDBC Driver - Connection.getTransactionIsolationLevel