@Override protected Object clone() throws CloneNotSupportedException { super.clone(); return new KVComparator(); }
@Override public void initialize() { for (byte[] startKey : startKeys.subList(1, startKeys.size())) { Cell cell = KeyValueUtil.createFirstOnRow(startKey); regionStartKeys.add(cell); } partitions = new TotalOrderPartitioner.BinarySearchNode<>(regionStartKeys.toArray(new Cell[regionStartKeys.size()]), new KeyValue.KVComparator()); }
@Override public void initialize() { for (byte[] startKey : startKeys.subList(1, startKeys.size())) { Cell cell = KeyValueUtil.createFirstOnRow(startKey); regionStartKeys.add(cell); } partitions = new TotalOrderPartitioner.BinarySearchNode<>(regionStartKeys.toArray(new Cell[regionStartKeys.size()]), new KeyValue.KVComparator()); }
@Test public void testGetPutKvs() { List<KeyValue> writeKvs = new ArrayList<KeyValue>(); writeKvs.add(getPutKv(COLUMN, PREWRITE_TS)); writeKvs.add(getDeleteKv(COLUMN, PREWRITE_TS + 1)); writeKvs.add(getPutKv(COLUMN_WITH_ANOTHER_FAMILY, PREWRITE_TS + 1)); writeKvs.add(getDeleteKv(COLUMN_WITH_ANOTHER_FAMILY, PREWRITE_TS)); writeKvs.add(getDeleteKv(new ColumnCoordinate(ROW, ANOTHER_FAMILY, ANOTHER_QUALIFIER), PREWRITE_TS)); writeKvs.add(getPutKv(COLUMN_WITH_ANOTHER_QUALIFIER, PREWRITE_TS)); Collections.sort(writeKvs, KeyValue.COMPARATOR); List<KeyValue> putKvs = ThemisCpUtil.getPutKvs(writeKvs); Assert.assertEquals(2, putKvs.size()); Collections.sort(putKvs, new KVComparator()); Assert.assertTrue(getPutKv(COLUMN_WITH_ANOTHER_FAMILY, PREWRITE_TS + 1).equals(putKvs.get(0))); Assert.assertTrue(getPutKv(COLUMN_WITH_ANOTHER_QUALIFIER, PREWRITE_TS).equals(putKvs.get(1))); // test two different familes with different values writeKvs.clear(); writeKvs.add(getPutKv(COLUMN_WITH_ANOTHER_FAMILY, PREWRITE_TS)); writeKvs.add(getPutKv(COLUMN, PREWRITE_TS)); Collections.sort(writeKvs, new KVComparator()); putKvs = ThemisCpUtil.getPutKvs(writeKvs); Assert.assertTrue(getPutKv(COLUMN_WITH_ANOTHER_FAMILY, PREWRITE_TS).equals(putKvs.get(0))); Assert.assertTrue(getPutKv(COLUMN, PREWRITE_TS).equals(putKvs.get(1))); }
@Test public void testColumnTimestampFilterInGet() throws IOException { commitOneColumn(COLUMN, Type.Put, prewriteTs, commitTs); // ColumnTimestampFilter should filter this cell commitOneColumn(COLUMN, Type.Put, prewriteTs + 20, prewriteTs + 50); commitOneColumn(COLUMN_WITH_ANOTHER_FAMILY, Type.Put, prewriteTs + 30, prewriteTs + 40); Get get = new Get(ROW); get.addColumn(COLUMN.getFamily(), COLUMN.getQualifier()); get.addColumn(COLUMN_WITH_ANOTHER_FAMILY.getFamily(), COLUMN_WITH_ANOTHER_FAMILY.getQualifier()); Result iResult = cpClient.themisGet(TABLENAME, get, prewriteTs + 50); Assert.assertFalse(ThemisCpUtil.isLockResult(iResult)); Assert.assertEquals(2, iResult.list().size()); Collections.sort(iResult.list(), new KVComparator()); Result result = new Result(iResult.list()); Assert.assertEquals(prewriteTs, result.getColumnLatest(COLUMN.getFamily(), COLUMN.getQualifier()).getTimestamp()); Assert.assertEquals(prewriteTs + 30, result.getColumnLatest(COLUMN_WITH_ANOTHER_FAMILY.getFamily(), COLUMN_WITH_ANOTHER_FAMILY.getQualifier()).getTimestamp()); }
@Override protected Object clone() throws CloneNotSupportedException { return new KVComparator(); }
@Override protected Object clone() throws CloneNotSupportedException { super.clone(); return new KVComparator(); }
protected void checkGetResultForDifferentTs(Result iResult) throws IOException { Assert.assertFalse(ThemisCpUtil.isLockResult(iResult)); Assert.assertEquals(3, iResult.list().size()); Collections.sort(iResult.list(), new KVComparator()); Result result = new Result(iResult.list()); Assert.assertEquals(1, result.getColumn(COLUMN.getFamily(), COLUMN.getQualifier()).size()); Assert.assertEquals(prewriteTs - 200, result.getColumn(COLUMN.getFamily(), COLUMN.getQualifier()).get(0).getTimestamp()); for (ColumnCoordinate columnCoordinate : new ColumnCoordinate[] {COLUMN_WITH_ANOTHER_FAMILY, COLUMN_WITH_ANOTHER_QUALIFIER}) { Assert.assertEquals(1, result.getColumn(columnCoordinate.getFamily(), columnCoordinate.getQualifier()).size()); Assert.assertEquals(prewriteTs - 100, result.getColumn(columnCoordinate.getFamily(), columnCoordinate.getQualifier()).get(0).getTimestamp()); } }
@Override protected Object clone() throws CloneNotSupportedException { super.clone(); return new KVComparator(); }
@Override protected Object clone() throws CloneNotSupportedException { super.clone(); return new KVComparator(); }