[ https://issues.apache.org/jira/browse/CASSANDRA-18107?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Caleb Rackliffe updated CASSANDRA-18107: ---------------------------------------- Description: With CASSANDRA-17719 complete, basic/alpha CQL support for Accord is now available in the [cep-15-accord|https://github.com/apache/cassandra/commits/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: *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 *Domain Object Cleanup* (Potentially move to post v1) - 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 *Testing* - Figure out the original intent of placeholder tests in {{AccordIntegrationTest}} (ex. {{{}acceptInvalidationTest(){}}}) - -Remove hack in {{AccordConfigurationService}} (when we have Transactional Metadata)- - Verify concretely that we disable Guardrails (TODO: Break out into its own Jira?) - -Audit the way we propagate timestamps through execution.- *Features* - Full JSON support - Final decision of whether we should support 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) - Nested UDT support - Mixed conditional and unconditional updates (should this be post-v1?) - Arithmetic operations on references in {{{}INSERT{}}}/{{{}UPDATE{}}} (ex. INSERT INTO ks.tbl1 (k, c, v) VALUES (0, 0, a.v + 1) *Tooling* - Eliminate {{nodetool createepochunsafe}} once transactional metadata is available. -- UPDATE: Removed now, but still in {{JMXGetterCheckTest}} *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 *Questions* - How should txn statement parsing/preparation handle TTLs specified in updates? (Should be supported.) - At what level do we want to integrate tracing? (TODO: Break out into its own Jira?) was: With CASSANDRA-17719 complete, basic/alpha CQL support for Accord is now available in the [cep-15-accord|https://github.com/apache/cassandra/commits/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: *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 *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 *Testing* - Figure out the original intent of placeholder tests in {{AccordIntegrationTest}} (ex. {{{}acceptInvalidationTest(){}}}) - -Remove hack in {{AccordConfigurationService}} (when we have Transactional Metadata)- - Verify concretely that we disable Guardrails. - Audit the way we propagate timestamps through execution. *Features* - Full JSON support - Final decision of whether we should support 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) - Nested UDT support - Mixed conditional and unconditional updates (should this be post-v1?) - Arithmetic operations on references in {{{}INSERT{}}}/{{{}UPDATE{}}} (ex. INSERT INTO ks.tbl1 (k, c, v) VALUES (0, 0, a.v + 1) *Tooling* - Eliminate {{nodetool createepochunsafe}} once transactional metadata is available. -- UPDATE: Removed now, but still in {{JMXGetterCheckTest}} and accord_demo.txt *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 *Questions* - How should txn statement parsing/preparation handle TTLs specified in updates? - At what level do we want to integrate tracing? > CEP-15: Multi-Partition Transaction CQL Support (Alpha -> v1) > ------------------------------------------------------------- > > Key: CASSANDRA-18107 > URL: https://issues.apache.org/jira/browse/CASSANDRA-18107 > Project: Cassandra > Issue Type: New Feature > Components: Accord, CQL/Semantics, CQL/Syntax > Reporter: Caleb Rackliffe > Assignee: Caleb Rackliffe > Priority: Normal > Fix For: 5.x > > > With CASSANDRA-17719 complete, basic/alpha CQL support for Accord is now > available in the > [cep-15-accord|https://github.com/apache/cassandra/commits/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: > *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 > *Domain Object Cleanup* (Potentially move to post v1) > - 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 > *Testing* > - Figure out the original intent of placeholder tests in > {{AccordIntegrationTest}} (ex. {{{}acceptInvalidationTest(){}}}) > - -Remove hack in {{AccordConfigurationService}} (when we have Transactional > Metadata)- > - Verify concretely that we disable Guardrails (TODO: Break out into its own > Jira?) > - -Audit the way we propagate timestamps through execution.- > *Features* > - Full JSON support > - Final decision of whether we should support 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) > - Nested UDT support > - Mixed conditional and unconditional updates (should this be post-v1?) > - Arithmetic operations on references in {{{}INSERT{}}}/{{{}UPDATE{}}} (ex. > INSERT INTO ks.tbl1 (k, c, v) VALUES (0, 0, a.v + 1) > *Tooling* > - Eliminate {{nodetool createepochunsafe}} once transactional metadata is > available. > -- UPDATE: Removed now, but still in {{JMXGetterCheckTest}} > *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 > *Questions* > - How should txn statement parsing/preparation handle TTLs specified in > updates? (Should be supported.) > - At what level do we want to integrate tracing? (TODO: Break out into its > own Jira?) -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org