private static CINode getCINode(Result result, CINode node) { node.key = Bytes.copy(result.getRow()); if (result.containsColumn(FAMILY_NAME, COLUMN_PREV)) { node.prev = Bytes.copy(result.getValue(FAMILY_NAME, COLUMN_PREV)); } else { node.prev = NO_KEY; } if (result.containsColumn(FAMILY_NAME, COLUMN_COUNT)) { node.count = Bytes.toLong(result.getValue(FAMILY_NAME, COLUMN_COUNT)); } else { node.count = -1; } if (result.containsColumn(FAMILY_NAME, COLUMN_CLIENT)) { node.client = Bytes.toString(result.getValue(FAMILY_NAME, COLUMN_CLIENT)); } else { node.client = ""; } return node; }
@Override public Void run() throws Exception { try (Connection connection = ConnectionFactory.createConnection(conf); Table table = connection.getTable(tableName)) { // Test that super user can see all the cells. Get get = new Get(ROW_1); Result result = table.get(get); assertTrue("Missing authorization", result.containsColumn(CF, Q1)); assertTrue("Missing authorization", result.containsColumn(CF, Q2)); assertTrue("Missing authorization", result.containsColumn(CF, Q3)); return null; } } });
@Override protected void map(ImmutableBytesWritable key, Result value, Context context) throws IOException ,InterruptedException { byte[] rowKey = key.get(); row.set(rowKey, 0, rowKey.length); if (multipleUnevenColumnFamilies && (!value.containsColumn(BIG_FAMILY_NAME, BIG_FAMILY_NAME) || !value.containsColumn( TINY_FAMILY_NAME, TINY_FAMILY_NAME))) { context.write(row, DEF_LOST_FAMILIES); } else { context.write(row, DEF); } byte[] prev = value.getValue(FAMILY_NAME, COLUMN_PREV); if (prev != null && prev.length > 0) { ref.set(prev, 0, prev.length); context.write(ref, row); } else { LOG.warn(String.format("Prev is not set for: %s", Bytes.toStringBinary(rowKey))); } } }
@Override public Void run() throws Exception { try (Connection connection = ConnectionFactory.createConnection(conf); Table table = connection.getTable(tableName)) { // Test that we enforce the defined set Get get = new Get(ROW_1); get.setAuthorizations(new Authorizations(new String[] { SECRET, CONFIDENTIAL })); Result result = table.get(get); assertFalse("Inappropriate authorization", result.containsColumn(CF, Q1)); assertTrue("Missing authorization", result.containsColumn(CF, Q2)); assertTrue("Inappropriate filtering", result.containsColumn(CF, Q3)); // Test that we also enforce the defined set for the user if no auths are provided get = new Get(ROW_1); result = table.get(get); assertFalse("Inappropriate authorization", result.containsColumn(CF, Q1)); assertTrue("Missing authorization", result.containsColumn(CF, Q2)); assertTrue("Inappropriate filtering", result.containsColumn(CF, Q3)); return null; } } });
public void testBasicGetValue() throws Exception { KeyValue [] kvs = genKVs(row, family, value, 1, 100); Arrays.sort(kvs, CellComparator.getInstance()); Result r = Result.create(kvs); for (int i = 0; i < 100; ++i) { final byte[] qf = Bytes.toBytes(i); assertByteEquals(Bytes.add(value, Bytes.toBytes(i)), r.getValue(family, qf)); assertTrue(r.containsColumn(family, qf)); } }
public void testMultiVersionGetValue() throws Exception { KeyValue [] kvs1 = genKVs(row, family, value, 1, 100); KeyValue [] kvs2 = genKVs(row, family, value, 200, 100); KeyValue [] kvs = new KeyValue[kvs1.length+kvs2.length]; System.arraycopy(kvs1, 0, kvs, 0, kvs1.length); System.arraycopy(kvs2, 0, kvs, kvs1.length, kvs2.length); Arrays.sort(kvs, CellComparator.getInstance()); Result r = Result.create(kvs); for (int i = 0; i < 100; ++i) { final byte[] qf = Bytes.toBytes(i); assertByteEquals(Bytes.add(value, Bytes.toBytes(i)), r.getValue(family, qf)); assertTrue(r.containsColumn(family, qf)); } }
private void validateResult(Object r1, byte[] qual, byte[] val) { Result r = (Result)r1; Assert.assertTrue(r.containsColumn(BYTES_FAMILY, qual)); byte[] value = r.getValue(BYTES_FAMILY, qual); if (0 != Bytes.compareTo(val, value)) { fail("Expected [" + Bytes.toStringBinary(val) + "] but got [" + Bytes.toStringBinary(value) + "]"); } }
@Override public Object run() throws Exception { Configuration conf = new Configuration(TEST_UTIL.getConfiguration()); // force a new RS connection conf.set("testkey", TEST_UTIL.getRandomUUID().toString()); Connection connection = ConnectionFactory.createConnection(conf); Table t = connection.getTable(TABLE); try { ResultScanner rs = t.getScanner(new Scan()); int rowcnt = 0; for (Result r : rs) { rowcnt++; int rownum = Bytes.toInt(r.getRow()); assertTrue(r.containsColumn(FAMILY, PRIVATE_COL)); assertEquals("secret "+rownum, Bytes.toString(r.getValue(FAMILY, PRIVATE_COL))); assertTrue(r.containsColumn(FAMILY, PUBLIC_COL)); assertEquals("info "+rownum, Bytes.toString(r.getValue(FAMILY, PUBLIC_COL))); } assertEquals("Expected 100 rows returned", 100, rowcnt); return null; } finally { t.close(); connection.close(); } } });
IntStream.range(0, count).forEach(i -> { if (i == successIndex.get()) { assertFalse(result.containsColumn(FAMILY, concat(QUALIFIER, i))); } else { assertArrayEquals(VALUE, result.getValue(FAMILY, concat(QUALIFIER, i)));
@Override public Object run() throws Exception { // force a new RS connection conf.set("testkey", TEST_UTIL.getRandomUUID().toString()); Connection connection = ConnectionFactory.createConnection(conf); Table t = connection.getTable(TEST_TABLE.getTableName()); try { Scan scan = new Scan(); Result result = t.getScanner(scan).next(); if (result != null) { assertTrue("Improper exclusion", result.containsColumn(TEST_FAMILY1, TEST_Q1)); assertFalse("Improper inclusion", result.containsColumn(TEST_FAMILY2, TEST_Q1)); assertTrue("Improper exclusion", result.containsColumn(TEST_FAMILY2, TEST_Q2)); return result.listCells(); } return null; } finally { t.close(); connection.close(); } } }, USER_OTHER);
@Override public Object run() throws Exception { Configuration conf = new Configuration(TEST_UTIL.getConfiguration()); // force a new RS connection conf.set("testkey", TEST_UTIL.getRandomUUID().toString()); Connection connection = ConnectionFactory.createConnection(conf); Table t = connection.getTable(TABLE); try { ResultScanner rs = t.getScanner(new Scan()); int rowcnt = 0; for (Result r : rs) { rowcnt++; int rownum = Bytes.toInt(r.getRow()); assertFalse(r.containsColumn(FAMILY, PRIVATE_COL)); assertTrue(r.containsColumn(FAMILY, PUBLIC_COL)); assertEquals("info " + rownum, Bytes.toString(r.getValue(FAMILY, PUBLIC_COL))); } assertEquals("Expected 0 rows returned", 0, rowcnt); return null; } finally { t.close(); connection.close(); } } });
@Override public Object run() throws Exception { Configuration conf = new Configuration(TEST_UTIL.getConfiguration()); // force a new RS connection conf.set("testkey", TEST_UTIL.getRandomUUID().toString()); Connection connection = ConnectionFactory.createConnection(conf); Table t = connection.getTable(TABLE); try { ResultScanner rs = t.getScanner(new Scan()); int rowcnt = 0; for (Result r : rs) { rowcnt++; int rownum = Bytes.toInt(r.getRow()); assertFalse(r.containsColumn(FAMILY, PRIVATE_COL)); assertTrue(r.containsColumn(FAMILY, PUBLIC_COL)); assertEquals("info " + rownum, Bytes.toString(r.getValue(FAMILY, PUBLIC_COL))); } assertEquals("Expected 100 rows returned", 100, rowcnt); return null; } finally { t.close(); connection.close(); } } });
rowcnt++; int rownum = Bytes.toInt(r.getRow()); assertTrue(r.containsColumn(FAMILY, PRIVATE_COL)); assertEquals("secret " + rownum, Bytes.toString(r.getValue(FAMILY, PRIVATE_COL))); assertTrue(r.containsColumn(FAMILY, PUBLIC_COL)); assertEquals("info " + rownum, Bytes.toString(r.getValue(FAMILY, PUBLIC_COL)));
@Override public Object run() throws Exception { // force a new RS connection conf.set("testkey", TEST_UTIL.getRandomUUID().toString()); Connection connection = ConnectionFactory.createConnection(conf); Table t = connection.getTable(TEST_TABLE.getTableName()); try { Scan scan = new Scan(); Result result = t.getScanner(scan).next(); if (result != null) { assertTrue("Improper exclusion", result.containsColumn(TEST_FAMILY1, TEST_Q1)); assertFalse("Improper inclusion", result.containsColumn(TEST_FAMILY2, TEST_Q1)); return result.listCells(); } return null; } finally { t.close(); connection.close(); } } }, USER_OTHER);
@Override public Object run() throws Exception { // force a new RS connection conf.set("testkey", TEST_UTIL.getRandomUUID().toString()); Connection connection = ConnectionFactory.createConnection(conf); Table t = connection.getTable(TEST_TABLE.getTableName()); try { Scan scan = new Scan().addFamily(TEST_FAMILY1); Result result = t.getScanner(scan).next(); if (result != null) { assertTrue("Improper exclusion", result.containsColumn(TEST_FAMILY1, TEST_Q1)); assertFalse("Improper inclusion", result.containsColumn(TEST_FAMILY2, TEST_Q1)); return result.listCells(); } return null; } finally { t.close(); connection.close(); } } }, USER_OTHER);
public void verifyNumericRows(HRegion region, final byte[] f, int startRow, int endRow, final boolean present) throws IOException { for (int i = startRow; i < endRow; i++) { String failMsg = "Failed verification of row :" + i; byte[] data = Bytes.toBytes(String.valueOf(i)); Result result = region.get(new Get(data)); boolean hasResult = result != null && !result.isEmpty(); assertEquals(failMsg + result, present, hasResult); if (!present) continue; assertTrue(failMsg, result.containsColumn(f, null)); assertEquals(failMsg, 1, result.getColumnCells(f, null).size()); Cell cell = result.getColumnLatestCell(f, null); assertTrue(failMsg, Bytes.equals(data, 0, data.length, cell.getValueArray(), cell.getValueOffset(), cell.getValueLength())); } }
public void verifyNumericRows(Table table, final byte[] f, int startRow, int endRow, int replicaId) throws IOException { for (int i = startRow; i < endRow; i++) { String failMsg = "Failed verification of row :" + i; byte[] data = Bytes.toBytes(String.valueOf(i)); Get get = new Get(data); get.setReplicaId(replicaId); get.setConsistency(Consistency.TIMELINE); Result result = table.get(get); assertTrue(failMsg, result.containsColumn(f, null)); assertEquals(failMsg, 1, result.getColumnCells(f, null).size()); Cell cell = result.getColumnLatestCell(f, null); assertTrue(failMsg, Bytes.equals(data, 0, data.length, cell.getValueArray(), cell.getValueOffset(), cell.getValueLength())); } }
@Test public void testMutateRow() throws Exception { final byte[] qual2 = Bytes.toBytes("qual2"); TableName tableName = TableName.valueOf(TEST_NAME.getMethodName()); HTableDescriptor desc = new HTableDescriptor(tableName); HColumnDescriptor col = new HColumnDescriptor(fam); desc.addFamily(col); TEST_UTIL.getAdmin().createTable(desc); try (Table table = TEST_UTIL.getConnection().getTable(tableName)){ Put p1 = new Put(row1); p1.addColumn(fam, qual, value); p1.setCellVisibility(new CellVisibility(CONFIDENTIAL)); Put p2 = new Put(row1); p2.addColumn(fam, qual2, value); p2.setCellVisibility(new CellVisibility(SECRET)); RowMutations rm = new RowMutations(row1); rm.add(p1); rm.add(p2); table.mutateRow(rm); Get get = new Get(row1); get.setAuthorizations(new Authorizations(CONFIDENTIAL)); Result result = table.get(get); assertTrue(result.containsColumn(fam, qual)); assertFalse(result.containsColumn(fam, qual2)); get.setAuthorizations(new Authorizations(SECRET)); result = table.get(get); assertFalse(result.containsColumn(fam, qual)); assertTrue(result.containsColumn(fam, qual2)); } }
Assert.assertTrue(singleRes.get(i).containsColumn(BYTES_FAMILY, QUALIFIER)); Cell[] singleKvs = singleRes.get(i).rawCells(); Cell[] multiKvs = multiRes[i].rawCells();
get.addFamily(f); r = ht.get(get); assertTrue(r.toString(), r.containsColumn(f, f));