public int compare(String value1, String value2) { return getOrder().compare(value1, value2); }
private static void findMinMax(Set<Array<String>> satisfyingHostRecords, TblColRef[] hostCols, String[] min, String[] max) { DataTypeOrder[] orders = new DataTypeOrder[hostCols.length]; for (int i = 0; i < hostCols.length; i++) { orders[i] = hostCols[i].getType().getOrder(); } for (Array<String> rec : satisfyingHostRecords) { String[] row = rec.data; for (int i = 0; i < row.length; i++) { min[i] = orders[i].min(min[i], row[i]); max[i] = orders[i].max(max[i], row[i]); } } }
DataTypeOrder order = model.findColumn(colId).getType().getOrder(); String newMin = order.min(r1.getMin(), r2.getMin()); String newMax = order.max(r1.getMax(), r2.getMax());
DataTypeOrder order = dimColRef.getType().getOrder(); String minValue = order.min(minValues); String maxValue = order.max(maxValues);
@Test public void testDataTypeOrder() { DataType intType = DataType.getType("integer"); DataTypeOrder dataTypeOrder = intType.getOrder(); Set<String> integers = Sets.newHashSet("100000", "2", "1000", "100", "77", "10", "9", "2000000", "-10000", "0"); Assert.assertEquals("2000000", dataTypeOrder.max(integers)); Assert.assertEquals("-10000", dataTypeOrder.min(integers)); DataType doubleType = DataType.getType("double"); dataTypeOrder = doubleType.getOrder(); Set<String> doubels = Sets.newHashSet("1.1", "-299.5", "100000", "1.000", "4.000000001", "0.00", "-1000000.231231", "8000000", "10", "10.00"); Assert.assertEquals("8000000", dataTypeOrder.max(doubels)); Assert.assertEquals("-1000000.231231", dataTypeOrder.min(doubels)); DataType datetimeType = DataType.getType("date"); dataTypeOrder = datetimeType.getOrder(); Set<String> datetimes = Sets.newHashSet("2010-01-02", "2888-08-09", "2018-05-26", "1527512082000", "2010-02-03 23:59:59", "2000-12-12 12:00:00", "1970-01-19 00:18:32", "1998-12-02", "2018-05-28 10:00:00.255", "1995-09-20 20:00:00.220"); Assert.assertEquals("2888-08-09", dataTypeOrder.max(datetimes)); Assert.assertEquals("1970-01-19 00:18:32", dataTypeOrder.min(datetimes)); DataType stringType = new DataType("varchar", 256, 10); dataTypeOrder = stringType.getOrder(); Set<String> strings = Sets.newHashSet(null, "", "中国", "China No.1", "神兽麒麟", "Rocket", "Apache Kylin", "google", "NULL", "empty"); Assert.assertEquals("神兽麒麟", dataTypeOrder.max(strings)); Assert.assertEquals("", dataTypeOrder.min(strings)); } }
DataTypeOrder order = col.getType().getOrder(); String filterVal = toString(comp.getFirstValue());
public int compare(String value1, String value2) { return getOrder().compare(value1, value2); }
private static void findMinMax(Set<Array<String>> satisfyingHostRecords, TblColRef[] hostCols, String[] min, String[] max) { DataTypeOrder[] orders = new DataTypeOrder[hostCols.length]; for (int i = 0; i < hostCols.length; i++) { orders[i] = hostCols[i].getType().getOrder(); } for (Array<String> rec : satisfyingHostRecords) { String[] row = rec.data; for (int i = 0; i < row.length; i++) { min[i] = orders[i].min(min[i], row[i]); max[i] = orders[i].max(max[i], row[i]); } } }
DataTypeOrder order = model.findColumn(colId).getType().getOrder(); String newMin = order.min(r1.getMin(), r2.getMin()); String newMax = order.max(r1.getMax(), r2.getMax());
DataTypeOrder order = dimColRef.getType().getOrder(); String minValue = order.min(minValues); String maxValue = order.max(maxValues);
DataTypeOrder order = col.getType().getOrder(); String filterVal = toString(comp.getFirstValue());