[ 
https://issues.apache.org/jira/browse/DERBY-6781?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jacques Le Roux closed DERBY-6781.
----------------------------------
    Resolution: Abandoned

> ErrorCode: 30000 when creating Foreign Keys
> -------------------------------------------
>
>                 Key: DERBY-6781
>                 URL: https://issues.apache.org/jira/browse/DERBY-6781
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.11.1.1
>         Environment: Windows 7-64 or Centos 6.4-64 on AWS running Apache 
> OFBiz modified on Java 1.7
>            Reporter: Jacques Le Roux
>            Priority: Major
>              Labels: engine, entity, ofbiz
>         Attachments: FinAccountTrans.png, FinAccountTransColumns.png, 
> FinAccountTransIndexes.png, OrderItem.png, OrderItemIndex.png
>
>
> I'm an Apache OFBiz committer. While working on a custom project I 
> encountered an issue I don't have with Postgres using the same data model 
> (schema). This issue appears only in a specific case where I use a new 
> feature I recently introduced in OFBiz.
> This feature allows to extend the size of a column part of a primary key. By 
> extend I mean extend the out of the box OFBiz data model. For instance in 
> OFBiz the size of the orderId column, that we find in many related tables (we 
> call tables, entities in OFBiz), is 20 chars (VARCHAR(20)) by default, but I 
> needed something larger (VARCHAR(60)). Also extend means here that it 
> redefines the size of the column, it does not change the in the out of the 
> box OFBiz data model. This means, for instance, that I create what we call an 
> hot-deploy component which is actually a mean to dynamically 
> redefine/override things, like here the size of the column, without having to 
> patch the original source where the original data model is defined.
> This works fine with Postgres but not with Derby. In Derby the indexes are 
> created (see FIN_ACT_TX_ODITM FinAccountTransIndexes.png) but not the Foreign 
> Keys (see FinAccountTrans.png)
> The OFBiz Entity Engine (the one which is still used in Jira), generates 
> approximately the same code for the Foreign Keys creation for Postgres and 
> Derby
> Postgres shows no error when generating the Foreign Keys, it uses (generated 
> by the OFBiz Entity Engine)
> {code}
> ALTER TABLE fin_account_trans ADD CONSTRAINT fin_act_tx_oditm FOREIGN KEY 
> (order_id, order_item_seq_id) REFERENCES order_item (order_id, 
> order_item_seq_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION;
> {code}
> Derby shows an error, it uses (for easier comparison I removed the "OFBIZ." 
> schema prefix that Derby uses)
> {code}
> ALTER TABLE FIN_ACCOUNT_TRANS ADD CONSTRAINT FIN_ACT_TX_ODITM FOREIGN KEY 
> (ORDER_ID, ORDER_ITEM_SEQ_ID) REFERENCES ORDER_ITEM (ORDER_ID, 
> ORDER_ITEM_SEQ_ID);
> Error: Constraint 'FIN_ACT_TX_ODITM' is invalid: there is no unique or 
> primary key constraint on table '"OFBIZ"."ORDER_ITEM"' that matches the 
> number and types of the columns in the foreign key.
> SQLState:  X0Y44
> ErrorCode: 30000
> {code}
> As I said, only the foreign keys miss in Derby DB; the indexes related to the 
> (Constraint 'FIN_ACT_TX_ODITM') are generated. 
> I also tried to remove the last part of the SQL request, but got the same 
> kind of error:
> {code}
> ALTER TABLE FIN_ACCOUNT_TRANS ADD CONSTRAINT FIN_ACT_TX_ODITM FOREIGN KEY 
> (ORDER_ID, ORDER_ITEM_SEQ_ID) REFERENCES ORDER_ITEM;
> Error: Constraint 'FIN_ACT_TX_ODITM' is invalid: the types of the foreign key 
> columns do not match the types of the referenced columns.
> SQLState:  X0Y42
> ErrorCode: 30000
> {code}
> I tried to understant the issue, but I'm puzzled because I'm sure it's not an 
> Entity Engine SQL generation issue, since Postgres works w/o issues. Could it 
> be related with how and when Derby generate its specific "SQL-data-time" 
> indexes?
> Since I can't help much for now, I attach also 2 other snapshots which show 
> ORDER_ITEM table columns (OrderItem.png) and indexes (OrderItemIndex.png). 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to