Details
-
New Feature
-
Status: Open
-
Normal
-
Resolution: Unresolved
-
None
-
Semantic
-
Normal
-
All
-
None
Description
With CASSANDRA-17719 complete, basic/alpha CQL support for Accord is now available in the cep-15-accord branch. There are, however, a number of features and enhancements that we would still like to add before we make it available to users. Here is a summary of those items, broadly categorized:
High Priority
Error Messages and UX
- Fix the element/field names in result metadata to match the user query
- Better error messages
- Append/subtracting to/from frozen list
- attempts to use reference in WHERE clause
- LET using a reserved word
Testing
- Figure out the original intent of placeholder tests in AccordIntegrationTest (ex. acceptInvalidationTest())
Features
- Support for returning the result of an IF/condition
- Constant terms on the RHS of LET
- Support for having a reference on both LHS and RHS of IF predicates
- Support for CONTAINS, CONTAINS KEY, and IN (important for CAS parity)
- Mixed conditional and unconditional updates
- Arithmetic operations on references in INSERT/UPDATE (ex. INSERT INTO ks.tbl1 (k, c, v) VALUES (0, 0, a.v + 1)
- Support TTLs specified in txn updates.
- Allow partition reads in SELECT (i.e. only limit to one row on the right-hand side of LET statements)
Tooling
- Remove reateepochunsafe references in JMXGetterCheckTest
Documentation
- JavaDoc for all new statement classes
Nice to Have
Domain Object Cleanup
- Given Selector is serializable, attempt to reuse it in TxnReference rather than hard coding data conversion cases
- Separate current current LET statement from SelectStatement, likely as a new LetStatement that names a SelectStatement
- Explore unifying Operation and ReferenceOperation
- Include non-Row items of FilteredPartition in TxnData#estimatedSizeOnHeap()
- Explore possibility of making Bound serializable and using it directly in TxnCondition
- Change internal representation of TxnDataName to avoid String -> ByteBuffer conversions
- Have TxnCondition/TxnUpdate support slice() to full take advantage of partial state replication
- Update serialization logic to reflect
CASSANDRA-18099
Features
- Full JSON support
- Nested UDT support
Documentation
- CQL language documentation and bump the CQL language specification version
- JavaDoc for all new statement classes
- Integrate demo.txt into broader documentation somewhere or remove
Attachments
Issue Links
- incorporates
-
CASSANDRA-18988 Updating the column of a non-existent row in an Accord transaction results in Atomicity violation
- Resolved
- is related to
-
CASSANDRA-19724 Disable guardrails that may affect Accord transaction outcome
- Open
-
CASSANDRA-19725 Integrate tracing with Accord transaction execution
- Triage Needed
- split from
-
CASSANDRA-17719 CEP-15: Multi-Partition Transaction CQL Support (Alpha)
- Resolved