• Barry Lind's avatar
    Patch from Kris Jurka to improve the performance of getImportedKeys(). · 88e52406
    Barry Lind authored
    Use explicit joins to avoid using the genetic query optimizer.  Also fixed
    a regression test that was failing to compile.  This change also cleans up
    how key names are reported as per:
    A change to the value of the FK_NAME column.  Currently the returned value
    is the triggers arguments which look like
    
    "<unnamed>\000t2\000t1\000UNSPECIFIED\000a\000a\000"
    
    This was required for server versions < 7.3 when a user did not supply
    constraint names.  Every constraint was named "<unnamed>"
    .  7.3 has enforced unique constraint names per table so unnamed foreign
    keys will have different names "$1", "$2" and so on.  I've used logic
    along the lines of the following to preserve the unique names in the
    original scheme, but allow people who go to the trouble of naming their
    constraints to see them:
    
    if (triggerargs.startsWith("<unnamed>")) {
    	fkname = [the whole ugly trigger args name originally used];
    } else {
    	fkname = [the actual fk name];
    }
    
     Modified Files:
     	jdbc/org/postgresql/jdbc1/AbstractJdbc1DatabaseMetaData.java
     	jdbc/org/postgresql/test/jdbc2/optional/ConnectionPoolTest.java
    88e52406
AbstractJdbc1DatabaseMetaData.java 120 KB