@Override public Object getObject(int index) { if (isSet(index) == 0) { return null; } final List<Object> vals = new JsonStringArrayList<>(listSize); for (int i = 0; i < listSize; i++) { vals.add(vector.getObject(index * listSize + i)); } return vals; }
private static List<JsonStringArrayList<Long>> listOfLists(int size) { List<JsonStringArrayList<Long>> listOfLists = new ArrayList<>(size); for (int i = 0; i < size; i++) { final JsonStringArrayList<Long> list = new JsonStringArrayList<>(INNER_LIST_SIZE); for (int j = 0; j < INNER_LIST_SIZE; j++) { list.add((long)j + i); } listOfLists.add(list); } return listOfLists; }
private static List<List<Integer>> l1Ints(int size) { List<List<Integer>> listOfLists = new JsonStringArrayList<>(size); for (int i = 0; i < size; i++) { final int listSize = random.nextInt(5); final List<Integer> list = new JsonStringArrayList<>(listSize); for (int j = 0; j < listSize; j++) { list.add(random.nextInt()); } listOfLists.add(list); } return listOfLists; }
/** * Convenience method to create a {@link JsonStringArrayList list} from the given values. */ public static JsonStringArrayList<Object> listOf(Object... values) { final JsonStringArrayList<Object> list = new JsonStringArrayList<>(); for (Object value:values) { if (value instanceof CharSequence) { list.add(new Text(value.toString())); } else { list.add(value); } } return list; }
@SafeVarargs protected final <T> List<T> list(T... elements) { List<T> list = new JsonStringArrayList<>(); // toString is JSON list.addAll(asList(elements)); return list; } }
private Object convertAvroValToDremio(Object value, boolean root) { if (value instanceof ByteBuffer) { ByteBuffer bb = ((ByteBuffer)value); byte[] val = new byte[((ByteBuffer)value).remaining()]; bb.get(val); bb.position(0); value = val; } else if (!root && value instanceof CharSequence) { value = new Text(value.toString()); } else if (value instanceof GenericData.Array) { GenericData.Array array = ((GenericData.Array) value); final JsonStringArrayList<Object> list = new JsonStringArrayList<>(); for (Object o : array) { list.add(convertAvroValToDremio(o, false)); } value = list; } else if (value instanceof GenericData.EnumSymbol) { value = value.toString(); } else if (value instanceof GenericData.Record) { GenericData.Record rec = ((GenericData.Record) value); final JsonStringHashMap<String, Object> newRecord = new JsonStringHashMap<>(); for (Schema.Field field : rec.getSchema().getFields()) { Object val = rec.get(field.name()); newRecord.put(field.name(), convertAvroValToDremio(val, false)); } value = newRecord; } return value; }
private static List<String> listOfStrings(int size) { List<String> strings = new JsonStringArrayList<>(size); for (int i = 0; i < size; i++) { strings.add(String.format("%d", System.currentTimeMillis())); } return strings; }
JsonStringArrayList<Text> list = new JsonStringArrayList<>(); list.add(new Text("1")); list.add(new Text("2")); list.add(new Text("3"));
private static List<List<String>> l1Strings(int size) { List<List<String>> listOfLists = new JsonStringArrayList<>(size); for (int i = 0; i < size; i++) { final int listSize = random.nextInt(10); final List<String> list = new JsonStringArrayList<>(listSize); for (int j = 0; j < listSize; j++) { list.add(randomString()); } listOfLists.add(list); } return listOfLists; }
@Test public void testArrayOfIPv4() throws Exception { String ip1 = "10.0.0.1"; String ip2 = "192.168.0.1"; String ip3 = "10.0.8.6"; String ip4 = "10.0.8.5"; ElasticsearchCluster.ColumnData[] data = new ElasticsearchCluster.ColumnData[]{ new ElasticsearchCluster.ColumnData("ip_field", IP, null, new Object[][]{ new Object[]{ip1, ip2, ip3}, new Object[]{ip4, ip1} }) }; elastic.load(schema, table, data); JsonStringArrayList<Text> values1 = new JsonStringArrayList<>(); JsonStringArrayList<Text> values2 = new JsonStringArrayList<>(); values1.add(new Text(ip1)); values1.add(new Text(ip2)); values1.add(new Text(ip3)); values2.add(new Text(ip4)); values2.add(new Text(ip1)); testBuilder() .sqlQuery("select ip_field from elasticsearch." + schema + "." + table) .baselineColumns("ip_field") .unOrdered() .baselineValues(values1) .baselineValues(values2) .go(); }
private static List<List<List<String>>> l2Strings(int size) { List<List<List<String>>> l2Strings = new JsonStringArrayList<>(size); for(int i = 0; i < size; i++) { final int listSize = random.nextInt(3); l2Strings.add(l1Strings(listSize)); } return l2Strings; }
private static List<List<List<List<Integer>>>> l3Ints(int size) { List<List<List<List<Integer>>>> l3Ints = new JsonStringArrayList<>(size); for(int i = 0; i < size; i++) { final int listSize = random.nextInt(3); l3Ints.add(l2Ints(listSize)); } return l3Ints; }
private static List<List<List<List<String>>>> l3Strings(int size) { List<List<List<List<String>>>> l3Strings = new JsonStringArrayList<>(size); for(int i = 0; i < size; i++) { final int listSize = random.nextInt(3); l3Strings.add(l2Strings(listSize)); } return l3Strings; }
private static List<String> strings(int size) { List<String> strings = new JsonStringArrayList<>(size); for (int i = 0; i < size; i++) { strings.add(randomString()); } return strings; }
private static List<List<List<Integer>>> l2Ints(int size) { List<List<List<Integer>>> l2Ints = new JsonStringArrayList<>(size); for(int i = 0; i < size; i++) { final int listSize = random.nextInt(3); l2Ints.add(l1Ints(listSize)); } return l2Ints; }
private static List<Map<String, Object>> mapVals(int size) { List<Map<String, Object>> vals = new JsonStringArrayList<>(size); for(int i = 0; i < size; i++) { Map<String, Object> val = new JsonStringHashMap<>(); val.put("varchar", randomString()); val.put("int", random.nextInt()); val.put("bits", new Boolean[] { true, false, false, true}); vals.add(val); } return vals; }
/** * Get the element in the list vector at a particular index. * @param index position of the element * @return Object at given position */ @Override public Object getObject(int index) { if (isSet(index) == 0) { return null; } final List<Object> vals = new JsonStringArrayList<>(); final int start = offsetBuffer.getInt(index * OFFSET_WIDTH); final int end = offsetBuffer.getInt((index + 1) * OFFSET_WIDTH); final ValueVector vv = getDataVector(); for (int i = start; i < end; i++) { vals.add(vv.getObject(i)); } return vals; }