You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Paulo Motta (Jira)" <ji...@apache.org> on 2022/09/16 22:04:00 UTC

[jira] [Updated] (CASSANDRA-9312) Provide a way to retrieve the write time of a CQL row

     [ https://issues.apache.org/jira/browse/CASSANDRA-9312?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Paulo Motta updated CASSANDRA-9312:
-----------------------------------
    Description: 
There is currently no way to retrieve the "writetime" of a CQL row. This is an issue for tables in which all dimensions are part of the primary key.

Since Cassandra already stores a cell for the CQL row, it would make sense to provide a way to read its timestamp. This feature would be consistent with the concept of a row as an entity containing a number of optional columns, but able to exist on its own.

+Additional information for newcomers+

As [~slebresne] suggested in the comments, this functionality can be done by allowing the {{writeTime}} and {{ttl}} methods on primary key columns. To do that you will need to:
* remove the check of {{Selectable.WritetimeOrTTL}} preventing the use of {{writeTime}} and {{ttl}} methods on primary key columns
* add a new method like {{add(ByteBuffer v, LivenessInfo livenessInfo, int nowInSec)}} to {{ResultSetBuilder}} that method should populate the value as well as the timestamps and ttls if needed
* In {{SelectStatement.processPartition}} retrieve the row primaryKeyLivenessInfo and call the new {{ResultSetBuilder}} method with those information.
* Adds some unit tests in {{SelectTest}}.
 

  was:
There is currently no way to retrieve the "writetime" of a CQL row. This is an issue for tables in which all dimensions are part of the primary key.

Since Cassandra already stores a cell for the CQL row, it would make sense to provide a way to read its timestamp. This feature would be consistent with the concept of a row as an entity containing a number of optional columns, but able to exist on its own.

+Additional information for newcomers+

As [~slebresne] suggested in the comments, this functionality can be done by allowing the {{writeTime}} and {{ttl}} methods on primary key columns. To do that you will need to:
* remove the check of {{Selectable.WritetimeOrTTL}} preenting the use of {{writeTime}} and {{ttl}} methods on primary key columns
* add a new method like {{add(ByteBuffer v, LivenessInfo livenessInfo, int nowInSec)}} to {{ResultSetBuilder}} that method should populate the value as well as the timestamps and ttls if needed
* In {{SelectStatement.processPartition}} retrieve the row primaryKeyLivenessInfo and call the new {{ResultSetBuilder}} method with those information.
* Adds some unit tests in {{SelectTest}}.
 


> Provide a way to retrieve the write time of a CQL row
> -----------------------------------------------------
>
>                 Key: CASSANDRA-9312
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9312
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Legacy/CQL
>            Reporter: Nicolas Favre-Felix
>            Assignee: Yangyi Shi
>            Priority: Normal
>              Labels: ghc-lhf, lhf
>             Fix For: 4.x
>
>
> There is currently no way to retrieve the "writetime" of a CQL row. This is an issue for tables in which all dimensions are part of the primary key.
> Since Cassandra already stores a cell for the CQL row, it would make sense to provide a way to read its timestamp. This feature would be consistent with the concept of a row as an entity containing a number of optional columns, but able to exist on its own.
> +Additional information for newcomers+
> As [~slebresne] suggested in the comments, this functionality can be done by allowing the {{writeTime}} and {{ttl}} methods on primary key columns. To do that you will need to:
> * remove the check of {{Selectable.WritetimeOrTTL}} preventing the use of {{writeTime}} and {{ttl}} methods on primary key columns
> * add a new method like {{add(ByteBuffer v, LivenessInfo livenessInfo, int nowInSec)}} to {{ResultSetBuilder}} that method should populate the value as well as the timestamps and ttls if needed
> * In {{SelectStatement.processPartition}} retrieve the row primaryKeyLivenessInfo and call the new {{ResultSetBuilder}} method with those information.
> * Adds some unit tests in {{SelectTest}}.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org