/** * Convert from the row include/sarg/columnNames to the event equivalent * for the underlying file. * @param options options for the row reader * @return a cloned options object that is modified for the event reader */ static Reader.Options createEventOptions(Reader.Options options) { Reader.Options result = options.clone(); result.range(options.getOffset(), Int64.MaxValue); // slide the columns down by 6 for the include array if (options.getInclude() != null) { bool[] orig = options.getInclude(); // we always need the base row orig[0] = true; bool[] include = new bool[orig.Length + OrcRecordUpdater.FIELDS]; Arrays.fill(include, 0, OrcRecordUpdater.FIELDS, true); for (int i = 0; i < orig.Length; ++i) { include[i + OrcRecordUpdater.FIELDS] = orig[i]; } result.include(include); } // slide the column names down by 6 for the name array if (options.getColumnNames() != null) { string[] orig = options.getColumnNames(); string[] cols = new string[orig.Length + OrcRecordUpdater.FIELDS]; for (int i = 0; i < orig.Length; ++i) { cols[i + OrcRecordUpdater.FIELDS] = orig[i]; } result.searchArgument(options.getSearchArgument(), cols); } return result; }