Package com.twilio.kudu.sql.rules
package com.twilio.kudu.sql.rules
-
ClassDescriptionRule to match a limit over a sort over aggregation.KuduPredicatePushDownVisitor returns a List of a List of CalciteKuduPredicates.Rule that matches a sort over an aggregation with both sort and aggregation using the same columns.Two Sort Rules that look to push the Sort into the Kudu RPC.Searches
RexNode
to see if the Kudu column index -- stored asKuduSortRule.KuduFilterVisitor.mustHave
is present in theRexNode
and is required.Rule to match a Sort aboveFilter
and it is aboveKuduQuery
.Rule to match a Sort aboveKuduQuery
.Rule to convert a relational expression fromKuduRelNode.CONVENTION
toEnumerableConvention
.Used to paginate through rows in the order of the primary key columns by comparing row expressions with a greater than operator If the the PK of the table is(A asc, B asc, C asc) (A, B, C) > ('a1', 'b1', * 'c1')
is transformed to(A > 'a1') OR ((A = 'a1') AND (B > 'b1')) OR ((A = 'a1') AND (B = 'b1') AND (C > 'c1'))
If the the PK of the table is(A asc, B desc, C asc) (A, B, C) > ('a1', 'b1', 'c1')
is transformed to(A > 'a1') OR ((A = 'a1') AND (B < 'b1')) OR ((A = 'a1') AND (B = 'b1') AND (C > 'c1'))
This implementation is different from the SQL-92 standard see https://stackoverflow.com/questions/32981903/sql-syntax-term-for-where-col1-col2-val1-val2/32982077#32982077