[ https://issues.apache.org/jira/browse/KUDU-2494?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ricardo Gaspar updated KUDU-2494: --------------------------------- Description: KuduScannerBuild API only supports the build of a scan using predicates in a conjuctive operation. Meaning that when using more than one predicate (p1,p2), the scan will be done using a statement similar to: {code:java} WHERE p1 AND p2;{code} In Java code: {code:java} kc = new KuduClient.KuduClientBuilder(kuduMasters).build(); session = kc.newSession(); KuduScanner ks = kc.newScannerBuilder(table).addPredicate(p1).addPredicate(p2).build(); {code} *There is no possibility to specify a OR operation that applies an disjunction between all/some predicates*. E.g. {code:java} WHERE p1 OR p2;{code} The only way to do this using the current API (1.7.1) is to use two (or more) scanners and iterate them separately: {code:java} KuduScanner scanner1 = kc.newScannerBuilder(table).addPredicate(p1).build(); KuduScanner scanner2 = kc.newScannerBuilder(table).addPredicate(p2).build(); while (scanner1.hasMoreRows()) { RowResultIterator results = scanner1.nextRows(); while (results.hasNext()) { RowResult rowData = results.next(); //Do stuff with rowData } } while (scanner2.hasMoreRows()) { RowResultIterator results = scanner2.nextRows(); while (results.hasNext()) { RowResult rowData = results.next(); //Do stuff with rowData } } {code} Kudu API should provide "almost" the same query processing power as IMPALA or an SQL engine. Programmers should rely on Kudu API to operations like these and others like: sorting, table joins, etc. was: KuduScannerBuild API only supports the build of a scan using predicates in a conjuctive operation. Meaning that when using more than one predicate (p1,p2), the scan will be done using a statement similar to: {code:java} WHERE p1 AND p2;{code} In Java code: {code:java} kc = new KuduClient.KuduClientBuilder(kuduMasters).build(); session = kc.newSession(); KuduScanner ks = kc.newScannerBuilder(table).addPredicate(p1).addPredicate(p2).build(); {code} *There is no possibility to specify a OR operation that applies an disjunction between all/some predicates*. E.g. {code:java} WHERE p1 OR p2;{code} > KuduScannerBuilder OR operator for predicates > --------------------------------------------- > > Key: KUDU-2494 > URL: https://issues.apache.org/jira/browse/KUDU-2494 > Project: Kudu > Issue Type: Improvement > Components: api > Affects Versions: 1.7.1 > Reporter: Ricardo Gaspar > Priority: Major > Fix For: 1.8.0 > > > KuduScannerBuild API only supports the build of a scan using predicates in a > conjuctive operation. > Meaning that when using more than one predicate (p1,p2), the scan will be > done using a statement similar to: > {code:java} > WHERE p1 AND p2;{code} > > In Java code: > > {code:java} > kc = new KuduClient.KuduClientBuilder(kuduMasters).build(); > session = kc.newSession(); > KuduScanner ks = > kc.newScannerBuilder(table).addPredicate(p1).addPredicate(p2).build(); > {code} > > *There is no possibility to specify a OR operation that applies an > disjunction between all/some predicates*. E.g. > {code:java} > WHERE p1 OR p2;{code} > > > The only way to do this using the current API (1.7.1) is to use two (or more) > scanners and iterate them separately: > > {code:java} > KuduScanner scanner1 = kc.newScannerBuilder(table).addPredicate(p1).build(); > KuduScanner scanner2 = kc.newScannerBuilder(table).addPredicate(p2).build(); > while (scanner1.hasMoreRows()) { > RowResultIterator results = scanner1.nextRows(); > while (results.hasNext()) { > RowResult rowData = results.next(); > > //Do stuff with rowData > } > } > while (scanner2.hasMoreRows()) { > RowResultIterator results = scanner2.nextRows(); > while (results.hasNext()) { > RowResult rowData = results.next(); > //Do stuff with rowData > } > } > {code} > > Kudu API should provide "almost" the same query processing power as IMPALA or > an SQL engine. > Programmers should rely on Kudu API to operations like these and others like: > sorting, table joins, etc. -- This message was sent by Atlassian JIRA (v7.6.3#76005)