Thread: JDBC getImortedKeys() getExportedKeys() incorrect ON DELETE property
============================================================================ 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
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
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