-
Bug
-
Resolution: Won't Do
-
Blocker
-
None
-
9.0.3
-
None
Running the following query:
UPDATE test_int.contacttest SET test_int.contacttest.salutation = ( select test_int.updatetest.prefix from test_int.updatetest where test_int.updatetest.id = test_int.contacttest.id );
works correctly changing salutation field value according to where condition (note that contacttest and updatetest table are in the same test_int data source). But the following query:
UPDATE test.contacttest SET test.contacttest.salutation = ( select test_int.updatetest.prefix from test_int.updatetest where test_int.updatetest.id = test.contacttest.id );
will fail as we try to update "contacttest" table of "test" data source from another "test_int" data source using "updatetest" table in where condition. The query fails showing the following error message:
Error: TEIID30253 Remote org.teiid.api.exception.query.QueryPlannerException: TEIID30253 Source UPDATE or DELETE command "UPDATE test.contacttest SET salutation = (SELECT test_int.updatetest.prefix FROM test_int.updatetest WHERE test_int.updatetest.id = test.contacttest.id LIMIT 2)" contains non-pushdown constructs and no compensating action can be taken as the table lacks a unique key or the source does not support equality predicates.
SQLState: 50000
ErrorCode: 30253