Class Select.Selection

    • Constructor Detail

      • Selection

        public Selection()
    • Method Detail

      • all

        public abstract Select.Builder all()
        Selects all columns (i.e. "SELECT * ...")
        Returns:
        an in-build SELECT statement.
        Throws:
        IllegalStateException - if some columns had already been selected for this builder.
      • countAll

        public abstract Select.Builder countAll()
        Selects the count of all returned rows (i.e. "SELECT count(*) ...").
        Returns:
        an in-build SELECT statement.
        Throws:
        IllegalStateException - if some columns had already been selected for this builder.
      • column

        public abstract Select.SelectionOrAlias column​(String name)
        Selects the provided column.
        Parameters:
        name - the new column name to add.
        Returns:
        this in-build SELECT statement
      • writeTime

        public abstract Select.SelectionOrAlias writeTime​(String name)
        Selects the write time of provided column.

        This is a shortcut for fcall("writetime", QueryBuilder.column(name)).

        Parameters:
        name - the name of the column to select the write time of.
        Returns:
        this in-build SELECT statement
      • ttl

        public abstract Select.SelectionOrAlias ttl​(String name)
        Selects the ttl of provided column.

        This is a shortcut for fcall("ttl", QueryBuilder.column(name)).

        Parameters:
        name - the name of the column to select the ttl of.
        Returns:
        this in-build SELECT statement
      • fcall

        public abstract Select.SelectionOrAlias fcall​(String name,
                                                      Object... parameters)
        Creates a function call.

        Please note that the parameters are interpreted as values, and so fcall("textToBlob", "foo") will generate the string "textToBlob('foo')". If you want to generate "textToBlob(foo)", i.e. if the argument must be interpreted as a column name (in a select clause), you will need to use the QueryBuilder.column(java.lang.String) method, and so fcall("textToBlob", QueryBuilder.column(foo).

        Parameters:
        name - the name of the function.
        parameters - the parameters for the function call.
        Returns:
        this in-build SELECT statement
      • cast

        public Select.SelectionOrAlias cast​(Object column,
                                            DataType targetType)
        Creates a cast of an expression to a given CQL type.
        Parameters:
        column - the expression to cast. It can be a complex expression like a function call.
        targetType - the target CQL type to cast to. Use static methods such as DataType.text().
        Returns:
        this in-build SELECT statement.
      • raw

        public Select.SelectionOrAlias raw​(String rawString)
        Selects the provided raw expression.

        The provided string will be appended to the query as-is, without any form of escaping or quoting.

        Parameters:
        rawString - the raw expression to add.
        Returns:
        this in-build SELECT statement
      • path

        public Select.SelectionOrAlias path​(String... segments)
        Selects the provided path.

        All given path segments will be concatenated together with dots. If any segment contains an identifier that needs quoting, caller code is expected to call QueryBuilder.quote(String) prior to invoking this method.

        This method is currently only useful when accessing individual fields of a user-defined type (UDT), which is only possible since CASSANDRA-7423.

        Note that currently nested UDT fields are not supported and will be rejected by the server as a syntax error.

        Parameters:
        segments - the segments of the path to create.
        Returns:
        this in-build SELECT statement
        See Also:
        CASSANDRA-7423
      • toJson

        public Select.SelectionOrAlias toJson​(String column)
        Creates a toJson() function call. This is a shortcut for fcall("toJson", QueryBuilder.column(name)).

        Support for JSON functions has been added in Cassandra 2.2. The toJson() function is similar to SELECT JSON statements, but applies to a single column value instead of the entire row, and produces a JSON-encoded string representing the normal Cassandra column value.

        It may only be used in the selection clause of a SELECT statement.

        Parameters:
        column - the column to retrieve JSON from.
        Returns:
        the function call.
        See Also:
        JSON Support for CQL, JSON Support in Cassandra 2.2