Github user ajantha-bhat commented on a diff in the pull request: https://github.com/apache/carbondata/pull/2816#discussion_r228209499 --- Diff: store/CSDK/CarbonReader.cpp --- @@ -74,27 +75,41 @@ jobject CarbonReader::withHadoopConf(char *key, char *value) { return carbonReaderBuilderObject; } +jobject CarbonReader::withBatch(int batch) { + jclass carbonReaderBuilderClass = jniEnv->GetObjectClass(carbonReaderBuilderObject); + jmethodID buildID = jniEnv->GetMethodID(carbonReaderBuilderClass, "withBatch", + "(I)Lorg/apache/carbondata/sdk/file/CarbonReaderBuilder;"); + + jvalue args[1]; + args[0].i = batch; + carbonReaderBuilderObject = jniEnv->CallObjectMethodA(carbonReaderBuilderObject, buildID, args); + return carbonReaderBuilderObject; +} + jobject CarbonReader::build() { jclass carbonReaderBuilderClass = jniEnv->GetObjectClass(carbonReaderBuilderObject); jmethodID buildID = jniEnv->GetMethodID(carbonReaderBuilderClass, "build", "()Lorg/apache/carbondata/sdk/file/CarbonReader;"); carbonReaderObject = jniEnv->CallObjectMethod(carbonReaderBuilderObject, buildID); + carbonReader = jniEnv->GetObjectClass(carbonReaderObject); + hasNextID = jniEnv->GetMethodID(carbonReader, "hasNext", "()Z"); --- End diff -- These filling can be moved to those functions only down. just have to check if not null or 0, then only fill. So that only one time we fill
---