Class

com.outworkers.phantom.DefaultImports

SetLikeModifyColumn

Related Doc: package DefaultImports

Permalink

implicit final class SetLikeModifyColumn[Owner <: CassandraTable[Owner, Record], Record, RR] extends AnyRef

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. SetLikeModifyColumn
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new SetLikeModifyColumn(col: AbstractColColumn[Owner, Record, Set, RR])

    Permalink

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. def add(prepareMark: PrepareMark): Prepared[Set[RR]]

    Permalink

    Added to keep the API consistent.

    Added to keep the API consistent. It is not possible to add single elements to a set in Cassandra, the only CQL level support is for collections, even if they are collections of a single element. This is a nicety added by the phantom API, and we do a prepared variant to match with the above.

    However, there's a known and important limitation, where the com.outworkers.phantom.macros.BindHelper macro is going to rely on the Primitive for the bound value to perform serialization. For this reason, we need to make sure the primitive used to serialize the bound value is a collection primitive, otherwise Cassandra will process an invalid update, where instead of treating the payload we send as a collection of a single element, it gets confused and actually irreversibly damages the contents of the buffer where the collection is stored.

    This is because the binary payloads sent to Cassandra when a prepared statement is executed don't appear to be validated against any kind of schema and are instead processed blindly.

    prepareMark

    The prepared statement mark.

    returns

    A prepared update statement expecting a set of elements to be bound. !! Important !!

  5. def add(value: RR): Default

    Permalink

    Adds a single element to a Set collection.

    Adds a single element to a Set collection. Note, this is a Phantom API nice to have, but it is not a feature directly supported by Cassandra, as Cassandra only supports adding sets to set collections. Here we simply add a set of one element.

    value

    The value to add to the set

    returns

    An non-prepared update query.

  6. def addAll(prepareMark: PrepareMark): Prepared[Set[RR]]

    Permalink
  7. def addAll(values: Set[RR]): Default

    Permalink
  8. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  9. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  10. val col: AbstractColColumn[Owner, Record, Set, RR]

    Permalink
  11. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  12. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  13. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  14. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  15. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  16. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  17. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  18. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  19. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  20. def remove(mark: PrepareMark): Prepared[Set[RR]]

    Permalink

    Added to keep the API consistent.

    Added to keep the API consistent. It is not possible to remove single elements from a set in Cassandra, the only CQL level support is for collections, even if they are collections of a single element. This is a nicety added by the phantom API, and we do a prepared variant to match with the above.

    However, there's a known and important limitation, where the com.outworkers.phantom.macros.BindHelper macro is going to rely on the Primitive for the bound value to perform serialization. For this reason, we need to make sure the primitive used to serialize the bound value is a collection primitive, otherwise Cassandra will process an invalid update, where instead of treating the payload we send as a collection of a single element, it gets confused and actually irreversibly damages the contents of the buffer where the collection is stored.

    This is because the binary payloads sent to Cassandra when a prepared statement is executed don't appear to be validated against any kind of schema and are instead processed blindly.

    mark

    The prepared statement mark.

    returns

    A prepared update statement expecting a set of elements to be bound. !! Important !!

  21. def remove(value: RR): Default

    Permalink

    Removes a single element from a Set collection.

    Removes a single element from a Set collection. Note, this is a Phantom API nice to have, but it is not a feature directly supported by Cassandra, as Cassandra only supports removing entire sets from set collections. Here we simply remove a set of one element.

    value

    The value to add to the set

    returns

    An non-prepared update query.

  22. def removeAll(values: PrepareMark): Prepared[Set[RR]]

    Permalink
  23. def removeAll(values: Set[RR]): Default

    Permalink
  24. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  25. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  26. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  27. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  28. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped