Details
-
Bug
-
Status: Resolved
-
Blocker
-
Resolution: Fixed
-
1.0
-
None
-
None
-
DB: psql 8.2.3, JDBC: postgresql-8.2-504.jdbc3.jar, OS: Windows XP Pro, DdlUtils: 1.0
Description
Consider the following example:
CREATE TABLE product (
product_class_id integer NOT NULL,
product_id integer NOT NULL,
brand_name character varying(60),
product_name character varying(60) NOT NULL,
"SKU" bigint NOT NULL,
"SRP" numeric(10,4),
gross_weight real,
net_weight real,
recyclable_package boolean,
low_fat boolean,
units_per_case smallint,
cases_per_pallet smallint,
shelf_width real,
shelf_height real,
shelf_depth real
);
CREATE INDEX "i_product_SKU" ON product USING btree ("SKU");
—
When such DB gets read by calling readModelFromDatabase(.), the following exception happens:
org.apache.ddlutils.model.ModelException: The index i_product_SKU in table product references the undefined column "SKU"
at org.apache.ddlutils.model.Database.initialize(Database.java:393)
at org.apache.ddlutils.platform.JdbcModelReader.getDatabase(JdbcModelReader.java:484)
at org.apache.ddlutils.platform.PlatformImplBase.readModelFromDatabase(PlatformImplBase.java:1920)
at DdlUtilsExample.main(DdlUtilsExample.java:66)
While table gets the column name as [SKU], index gets it as ["SKU"]. On checkup in Database.initialize(), indexed column cannot be found by name under given table, and Exception gets thrown.
It looks like a postgresql bug in JDBC driver that needs a special care in this project.