Thread: JDBC getImortedKeys() getExportedKeys() incorrect ON DELETE property

JDBC getImortedKeys() getExportedKeys() incorrect ON DELETE property

From
"Richard Froud"
Date:
============================================================================
                         POSTGRESQL BUG REPORT TEMPLATE
============================================================================


Your name        : Richard Froud
Your email address    : richard@hospitalityis.co.uk


System Configuration
---------------------
   Architecture (example: Intel Pentium) : All - Present on Linux, Windows,
Unix

   Operating System (example: Linux 2.0.26 ELF) :
            Windows, Linux and Unix

   PostgreSQL version (example: PostgreSQL-7.3.4):   7.3 all versions

   Compiler used (example:  gcc 2.95.2)        :


Please enter a FULL description of your problem:
------------------------------------------------
When reading database metadata for foreign keys using the JDBC
DatabaseMetaData.getImportedKeys() and DatabaseMetaData.getExportedKeys()
methods the ON UPDATE rule is returned as the ON DELETE rule.  It is also
correctly returned as the ON UPDATE rule.  Therefore there is no way to
access the ON DELETE rule.  Consequenntly innaccurate representations of the
database structure are obtained.




Please describe a way to repeat the problem.   Please try to provide a
concise reproducible example, if at all possible:
----------------------------------------------------------------------
Create a foreign key referencing the primary key of another table.  Use: ON
UPDATE NO ACTION, ON DELETE CASCADE.   Use JDBC
DatabaseMetaData.getImportedKeys() to read from the first table.  Both the
ON UPDATE and ON DELETE values returned are the same.




If you know how this problem might be fixed, list the solution below:
---------------------------------------------------------------------





---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org

Re: JDBC getImortedKeys() getExportedKeys() incorrect ON

From
Kris Jurka
Date:

On Fri, 15 Aug 2003, Richard Froud wrote:

> Please enter a FULL description of your problem:
> ------------------------------------------------
> When reading database metadata for foreign keys using the JDBC
> DatabaseMetaData.getImportedKeys() and DatabaseMetaData.getExportedKeys()
> methods the ON UPDATE rule is returned as the ON DELETE rule.  It is also
> correctly returned as the ON UPDATE rule.  Therefore there is no way to
> access the ON DELETE rule.  Consequenntly innaccurate representations of the
> database structure are obtained.

Here is a patch for this.  Additionally the on delete rule would not
return importedKeyRestrict because of a missing if statement.  Also an
addition to the test suite is attached.

Kris Jurka


Attachment

Re: [JDBC] JDBC getImortedKeys() getExportedKeys()

From
Dave Cramer
Date:
Patch Applied,

Thanks,

Dave
On Mon, 2003-11-03 at 05:25, Kris Jurka wrote:
> On Fri, 15 Aug 2003, Richard Froud wrote:
>
> > Please enter a FULL description of your problem:
> > ------------------------------------------------
> > When reading database metadata for foreign keys using the JDBC
> > DatabaseMetaData.getImportedKeys() and DatabaseMetaData.getExportedKeys()
> > methods the ON UPDATE rule is returned as the ON DELETE rule.  It is also
> > correctly returned as the ON UPDATE rule.  Therefore there is no way to
> > access the ON DELETE rule.  Consequenntly innaccurate representations of the
> > database structure are obtained.
>
> Here is a patch for this.  Additionally the on delete rule would not
> return importedKeyRestrict because of a missing if statement.  Also an
> addition to the test suite is attached.
>
> Kris Jurka
>
>
> ______________________________________________________________________
>
> ---------------------------(end of broadcast)---------------------------
> TIP 7: don't forget to increase your free space map settings