[
https://issues.jboss.org/browse/TEIID-5060?page=com.atlassian.jira.plugin...
]
Ramesh Reddy commented on TEIID-5060:
-------------------------------------
[~jstastny] Yes, you are right, I was missing that part. Since with Infinispan the PK
column also used as the cache entry key, updating the cache value without changing the key
can lead to orphaned entries in the cache with wrong data. so, basically, one can not
update the PK. They can do delete and re-insert to achieve the same effect, but currently,
that will be two operations we will lose atomicity. So, for now, I changed to not support
the update of the PK, the system will just throw an exception.
Infinispan Hotrod Translator UPDATE on primary key column
---------------------------------------------------------
Key: TEIID-5060
URL:
https://issues.jboss.org/browse/TEIID-5060
Project: Teiid
Issue Type: Bug
Components: JDG Connector, Misc. Connectors
Reporter: Jan Stastny
Assignee: Ramesh Reddy
Priority: Blocker
Fix For: 10.0
UPDATE query where the PRIMARY KEY of the table is being changed succeeds, returns update
count of corresponding rows, but the changes don't get promoted to actual cache.
Consider
{code:sql|title=UPDATE query}
UPDATE SmallA SET StringKey = 100 WHERE IntKey > 25
{code}
where StringKey is set as PRIMARY KEY and 6 rows fulfill the filter on IntKey>25.
When this UPDATE is performed, returned number of rows update is 6, but the contents of
the cache don't change.
There are several applicable resolutions:
# There should be error thrown by Teiid, that this is not allowed operation
# There should be update count 0 returned
# There should be change in JDG cache, effectively squashing the 6 rows into single one
# There should be error thrown by Teiid, that there is duplicate PK value (this is not
something Teiid usually enforces)
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)