Base Version: 4.4.3.2. OS Linux Mint 17.2.
This is the relevant section of the query:
FROM "Futures_Orders"
INNER JOIN "Contract_Details"
ON "Contract_Details"."Symbol" = "Futures_Orders"."Symbol"
INNER JOIN "Broker"
ON "Broker"."Broker" = "Futures_Orders"."Broker"
INNER JOIN "FX_Rates"
ON "FX_Rates"."Code" = "Contract_Details"."Currency"
LEFT JOIN "Broker_Commissions"
ON "Broker_Commissions"."Broker" = "Broker"."Broker" AND
"Broker_Commissions"."Symbol" = "Contract_Details"."Symbol"
When I delete a row (Futures_Orders), if the row from the left join exists (Broker_Commissions) it is also deleted. If Broker_Commissions doesn’t exist the following error message pops up:
“error deleting the specified records. Invalid argument in JDBC call: parameter index out of range: 1”.
This is the code after base manipulates it:
FROM { oj "Contract_Details"
LEFT OUTER JOIN "Broker_Commissions"
ON "Contract_Details"."Symbol" = "Broker_Commissions"."Symbol"
RIGHT OUTER JOIN "Broker"
ON "Broker"."Broker" = "Broker_Commissions"."Broker" },
"Futures_Orders", "FX_Rates"
WHERE "Futures_Orders"."Symbol" = "Contract_Details"."Symbol" AND "Futures_Orders"."Broker" = "Broker"."Broker" AND
"Contract_Details"."Currency" = "FX_Rates"."Code"
I am not sure if it is relevant but these are the indexes on Broker_Commissions: The 1st is a unique autovalue field. The 2nd is also unique comprised of two fields - broker and symbol. The 3rd and forth are foreign fields - Symbol and Broker.