org.apache.cassandra.db.rows

## Class Row.Deletion

- java.lang.Object
- - org.apache.cassandra.db.rows.Row.Deletion

Enclosing interface:
  Row

    public static class Row.Deletion
    extends java.lang.Object

A row deletion/tombstone.

A row deletion mostly consists of the time of said deletion, but there is 2 variants: shadowable and regular row deletion.

A shadowable row deletion only exists if the row has no timestamp. In other words, the deletion is only valid as long as no newer insert is done (thus setting a row timestamp; note that if the row timestamp set is lower than the deletion, it is shadowed (and thus ignored) as usual).

That is, if a row has a shadowable deletion with timestamp A and an update is made to that row with a timestamp B such that `B > A` (and that update sets the row timestamp), then the shadowable deletion is 'shadowed' by that update. A concrete consequence is that if said update has cells with timestamp lower than A, then those cells are preserved(since the deletion is removed), and this is contrary to a normal (regular) deletion where the deletion is preserved and such cells are removed.

Currently, the only use of shadowable row deletions is Materialized Views, see CASSANDRA-10261.

### Field Summary

Fields
`static Row.Deletion` `LIVE`

### Constructor Summary

Constructors
Constructor and Description
`Deletion(DeletionTime time, boolean isShadowable)`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
`int` `dataSize()`
`boolean` `deletes(Cell cell)`
`boolean` `deletes(LivenessInfo info)`
`void` `digest(java.security.MessageDigest digest)`
`boolean` `equals(java.lang.Object o)`
`int` `hashCode()`
`boolean` `isLive()` Wether the deletion is live or not, that is if its an actual deletion or not.
`boolean` `isShadowable()` Whether the deletion is a shadowable one or not.
`boolean` `isShadowedBy(LivenessInfo primaryKeyLivenessInfo)`
`static Row.Deletion` `regular(DeletionTime time)`
`static Row.Deletion` `shadowable(DeletionTime time)` Deprecated.
`boolean` `supersedes(DeletionTime that)`
`boolean` `supersedes(Row.Deletion that)`
`DeletionTime` `time()` The time of the row deletion.
`java.lang.String` `toString()`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Field Detail

#### LIVE

    public static final Row.Deletion LIVE

### Constructor Detail

#### Deletion

    public Deletion(DeletionTime time,
                    boolean isShadowable)

### Method Detail

#### regular

    public static Row.Deletion regular(DeletionTime time)

#### shadowable

    @Deprecated
    public static Row.Deletion shadowable(DeletionTime time)

Deprecated.

#### time

    public DeletionTime time()

The time of the row deletion.

Returns:
  the time of the row deletion.

#### isShadowable

    public boolean isShadowable()

Whether the deletion is a shadowable one or not.

Returns:
  whether the deletion is a shadowable one. Note that if `isLive()`, then this is guarantee to return `false`.

#### isLive

    public boolean isLive()

Wether the deletion is live or not, that is if its an actual deletion or not.

Returns:
  `true` if this represents no deletion of the row, `false` if that's an actual deletion.

#### supersedes

    public boolean supersedes(DeletionTime that)

#### supersedes

    public boolean supersedes(Row.Deletion that)

#### isShadowedBy

    public boolean isShadowedBy(LivenessInfo primaryKeyLivenessInfo)

#### deletes

    public boolean deletes(LivenessInfo info)

#### deletes

    public boolean deletes(Cell cell)

#### digest

    public void digest(java.security.MessageDigest digest)

#### dataSize

    public int dataSize()

#### equals

    public boolean equals(java.lang.Object o)

Overrides:
  `equals` in class `java.lang.Object`

#### hashCode

    public final int hashCode()

Overrides:
  `hashCode` in class `java.lang.Object`

#### toString

    public java.lang.String toString()

Overrides:
  `toString` in class `java.lang.Object`