Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 42127200C42 for ; Sat, 11 Mar 2017 03:17:53 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 409EE160B82; Sat, 11 Mar 2017 02:17:53 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 8A1DC160B79 for ; Sat, 11 Mar 2017 03:17:52 +0100 (CET) Received: (qmail 11792 invoked by uid 500); 11 Mar 2017 02:17:51 -0000 Mailing-List: contact issues-help@carbondata.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@carbondata.incubator.apache.org Delivered-To: mailing list issues@carbondata.incubator.apache.org Received: (qmail 11783 invoked by uid 99); 11 Mar 2017 02:17:51 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 11 Mar 2017 02:17:51 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 3CB781A04B2 for ; Sat, 11 Mar 2017 02:17:51 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -4.02 X-Spam-Level: X-Spam-Status: No, score=-4.02 tagged_above=-999 required=6.31 tests=[KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.001, URIBL_BLOCKED=0.001] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id viGdjr6QXUpD for ; Sat, 11 Mar 2017 02:17:50 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with SMTP id 6F79D5F1EE for ; Sat, 11 Mar 2017 02:17:49 +0000 (UTC) Received: (qmail 11777 invoked by uid 99); 11 Mar 2017 02:17:48 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 11 Mar 2017 02:17:48 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 94253DFE5C; Sat, 11 Mar 2017 02:17:48 +0000 (UTC) From: mayunSaicmotor To: issues@carbondata.incubator.apache.org Reply-To: issues@carbondata.incubator.apache.org References: In-Reply-To: Subject: [GitHub] incubator-carbondata pull request #638: [CARBONDATA-748] use binary search i... Content-Type: text/plain Message-Id: <20170311021748.94253DFE5C@git1-us-west.apache.org> Date: Sat, 11 Mar 2017 02:17:48 +0000 (UTC) archived-at: Sat, 11 Mar 2017 02:17:53 -0000 Github user mayunSaicmotor commented on a diff in the pull request: https://github.com/apache/incubator-carbondata/pull/638#discussion_r105522667 --- Diff: core/src/main/java/org/apache/carbondata/core/scan/filter/executer/IncludeFilterExecuterImpl.java --- @@ -150,12 +138,15 @@ private BitSet setFilterdIndexToBitSet(DimensionColumnDataChunk dimensionColumnD BitSet bitSet = new BitSet(numerOfRows); if (dimensionColumnDataChunk instanceof FixedLengthDimensionDataChunk) { byte[][] filterValues = dimColumnExecuterInfo.getFilterKeys(); - for (int k = 0; k < filterValues.length; k++) { - for (int j = 0; j < numerOfRows; j++) { - if (dimensionColumnDataChunk.compareTo(j, filterValues[k]) == 0) { - bitSet.set(j); - } + for (int i = 0; i < numerOfRows; i++) { + + int index = CarbonUtil.binarySearch(filterValues, 0, filterValues.length, --- End diff -- @ravipesala, If put the if clause out of the for clause, it is better? ` private BitSet setFilterdIndexToBitSet(DimensionColumnDataChunk dimensionColumnDataChunk, int numerOfRows) { BitSet bitSet = new BitSet(numerOfRows); if (dimensionColumnDataChunk instanceof FixedLengthDimensionDataChunk) { byte[][] filterValues = dimColumnExecuterInfo.getFilterKeys(); if (filterValues.length > 1) { for (int i = 0; i < numerOfRows; i++) { int index = CarbonUtil.binarySearch(filterValues, 0, filterValues.length - 1, dimensionColumnDataChunk.getChunkData(i)); if (index >= 0) { bitSet.set(i); } } } else if (filterValues.length == 1) { for (int i = 0; i < numerOfRows; i++) { if (dimensionColumnDataChunk.compareTo(i, filterValues[0]) == 0) { bitSet.set(i); } } } } return bitSet; }` --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastructure@apache.org or file a JIRA ticket with INFRA. ---