Class SchemaStatement

    • Constructor Detail

      • SchemaStatement

        public SchemaStatement()
    • Method Detail

      • getQueryString

        public String getQueryString​(CodecRegistry codecRegistry)
        Description copied from class: RegularStatement
        Returns the query string for this statement.

        It is important to note that the query string is merely a CQL representation of this statement, but it does not convey all the information stored in Statement objects.

        For example, Statement objects carry numerous protocol-level settings, such as the consistency level to use, or the idempotence flag, among others. None of these settings will be included in the resulting query string.

        Similarly, if values have been set on this statement because it has bind markers, these values will not appear in the resulting query string.

        Note: the consistency level was conveyed at CQL level in older versions of the CQL grammar, but since CASSANDRA-4734 it is now a protocol-level setting and consequently does not appear in the query string.

        Specified by:
        getQueryString in class RegularStatement
        Parameters:
        codecRegistry - the codec registry that will be used if the actual implementation needs to serialize Java objects in the process of generating the query. Note that it might be possible to use the no-arg RegularStatement.getQueryString() depending on the type of statement this is called on.
        Returns:
        a valid CQL query string.
        See Also:
        RegularStatement.getQueryString()
      • getKeyspace

        public String getKeyspace()
        Description copied from class: Statement
        Returns the keyspace this query operates on.

        Note that not all query specify on which keyspace they operate on, and so this method can always return null. Firstly, some queries do not operate inside a keyspace: keyspace creation, USE queries, user creation, etc. Secondly, even query that operate within a keyspace do not have to specify said keyspace directly, in which case the currently logged in keyspace (the one set through a USE query (or through the use of Cluster.connect(String))). Lastly, as for the routing key, this keyspace information is only a hint for token-aware routing (since replica placement depend on the replication strategy in use which is a per-keyspace property) and having this method return null (or even a bogus keyspace name) will never cause the query to fail.

        Specified by:
        getKeyspace in class Statement
        Returns:
        the keyspace this query operate on if relevant or null.
      • getRoutingKey

        public ByteBuffer getRoutingKey​(ProtocolVersion protocolVersion,
                                        CodecRegistry codecRegistry)
        Returns the routing key (in binary raw form) to use for token aware routing of this query.

        The routing key is optional in that implementers are free to return null. The routing key is an hint used for token-aware routing (see TokenAwarePolicy), and if provided should correspond to the binary value for the query partition key. However, not providing a routing key never causes a query to fail and if the load balancing policy used is not token aware, then the routing key can be safely ignored.

        Specified by:
        getRoutingKey in class Statement
        Parameters:
        protocolVersion - unused by this implementation (the key is always null for schema statements).
        codecRegistry - unused by this implementation (the key is always null for schema statements).
        Returns:
        the routing key for this query or null.