[ https://issues.apache.org/jira/browse/IGNITE-7911?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Igor Seliverstov updated IGNITE-7911: ------------------------------------- Fix Version/s: (was: 2.5) 2.6 > TX SQL: restrict usages of unsupported APIs and configuration parameters > ------------------------------------------------------------------------ > > Key: IGNITE-7911 > URL: https://issues.apache.org/jira/browse/IGNITE-7911 > Project: Ignite > Issue Type: Task > Components: cache, sql > Reporter: Vladimir Ozerov > Assignee: Alexander Paschenko > Priority: Major > Fix For: 2.6 > > > We need to make sure that when MVCC flag is enabled, users get correct > exception in case of invalid configurations and/or API usages. Two general > rules should apply > 1) SQL and cache operations cannot be mixed in the same transactions because > they still use different APIs. This restriction will be removed in future > when native cache API is reworked to new locking logic. > 2) If configuration is invalid or not-yet-supported API is called, user gets > correct exception instead of invalid result. > All listed cases must be covered with tests. > Checklist: > 1) Cache configuration > 1.1) Cache store is not allowed for TX caches > 1.2) Expiry policy is not allowed for TX caches > 1.3) Interceptors are not allowed for TX caches > 2) Cache API unsupported operations - throw UnsupportedOperationException and > create relevant ticket (if one doesn't exist): > 2.1) withExpiryPolicy > 2.2) Continuous queries > 2.3) "clear" method family > 2.4) "lock" method family > 2.5) "load" method family > 2.6) "peek" method family > 2.7) "evict" method family > 3) Cache API consistency - make sure that these operations use consistent > snapshot assigned to transaction (as with other operations). If this is the > case - do nothing; if this is not the case - throw > UnsupportedOperationException and create a ticket (if one doesn't exist) > 3.1) Scan queries > 3.2) "size" method family > 3.3) Iterator methods (iterator, localEntries) > 4) Mixed native API and SQL usage is restricted and proper IgniteException is > thrown. When snapshot is requested for the first time we should mark > transation as either "SQL" or "native". If any SQL query is executed on > "native" transaction or vice versa throw an exception (IllegalStateException? > IgniteException?) -- This message was sent by Atlassian JIRA (v7.6.3#76005)