.addAll(props.getProperties()) .setDescription(props.getDescription()) .build();
.addAll(properties.getProperties()) .add(IndexedTable.INDEX_COLUMNS_CONF_KEY, INDEXED_COLS) .build(); .addAll(properties.getProperties()); String useNameAsBasePathDefault = currentSpec.getProperty(NAME_AS_BASE_PATH_DEFAULT); if (Boolean.parseBoolean(useNameAsBasePathDefault) && !properties.getProperties().containsKey(FileSetProperties.BASE_PATH)) { newFileProperties.add(FileSetProperties.BASE_PATH, instanceName); pfsProperties.put(NAME_AS_BASE_PATH_DEFAULT, Boolean.TRUE.toString()); .datasets(AbstractDatasetDefinition.reconfigure(filesetDef, FILESET_NAME, newFileProperties.build(), currentFileSpec), AbstractDatasetDefinition.reconfigure(indexedTableDef, PARTITION_TABLE_NAME, indexedTableProperties,
DatasetFrameworkTestUtil.NAMESPACE_ID.dataset("multicolumntab"); dsFrameworkUtil.createInstance("indexedTable", multiColumnTabInstance, DatasetProperties.builder() .add(IndexedTable.INDEX_COLUMNS_CONF_KEY, "idx1,idx2,idx3") .build()); final byte[] idxCol1 = Bytes.toBytes("idx1"); final byte[] idxCol2 = Bytes.toBytes("idx2");
DatasetId incrTabInstance = DatasetFrameworkTestUtil.NAMESPACE_ID.dataset("incrtab"); dsFrameworkUtil.createInstance("indexedTable", incrTabInstance, DatasetProperties.builder() .add(IndexedTable.INDEX_COLUMNS_CONF_KEY, "idx1,idx2,idx3") .build()); final IndexedTable iTable = dsFrameworkUtil.getInstance(incrTabInstance); final byte[] idxCol1 = Bytes.toBytes("idx1");
dsFramework.updateInstance(dsId, DatasetProperties.builder().add("key", "value").build()); String.format("Expected %s to not be have access to %s.", BOB, dsId)); assertAuthorizationFailure( () -> dsFramework.updateInstance(dsId, DatasetProperties.builder().add("key", "val").build()), String.format("Expected %s to not be have %s privilege on %s.", BOB, Action.ADMIN, dsId)); assertAuthorizationFailure(() -> dsFramework.truncateInstance(dsId), grantAndAssertSuccess(dsId, BOB, ImmutableSet.of(Action.ADMIN)); dsFramework.updateInstance(dsId, DatasetProperties.builder().add("key", "val").build());
.addAll(props.getProperties()) .setDescription(props.getDescription()) .build();
DatasetProperties props = DatasetProperties.builder().add("prop1", "val1").build(); Assert.assertEquals(HttpStatus.SC_NOT_FOUND, createInstance("dataset1", "datasetType2", props).getResponseCode()); DatasetProperties localDSProperties = DatasetProperties.builder().add("prop1", "val1") .add(Constants.AppFabric.WORKFLOW_LOCAL_DATASET_PROPERTY, "true").build(); Assert.assertEquals(HttpStatus.SC_OK, createInstance("localDSInstance", "datasetType2", localDSProperties).getResponseCode());
DatasetId delimTabInstance = DatasetFrameworkTestUtil.NAMESPACE_ID.dataset("delimtab"); dsFrameworkUtil.createInstance("indexedTable", delimTabInstance, DatasetProperties.builder() .add(IndexedTable.INDEX_COLUMNS_CONF_KEY, Bytes.toString(a) + "," + Bytes.toString(ab)) .build()); final IndexedTable iTable = dsFrameworkUtil.getInstance(delimTabInstance); try {
DatasetId indexRangedLookupDs = DatasetFrameworkTestUtil.NAMESPACE_ID.dataset("rangeLookup"); dsFrameworkUtil.createInstance("indexedTable", indexRangedLookupDs, DatasetProperties.builder() .add(IndexedTable.INDEX_COLUMNS_CONF_KEY, idxColString) .build()); final IndexedTable iTable = dsFrameworkUtil.getInstance(indexRangedLookupDs); TransactionExecutor txnl = dsFrameworkUtil.newTransactionExecutor(iTable);
.setPartitioning(Partitioning.builder().addStringField("s").build()) .add(PartitionedFileSetDefinition.NAME_AS_BASE_PATH_DEFAULT, "false") .build(); DatasetSpecification oldSpec = pfsDef.configure("pfs", oldProps); DatasetSpecification newSpec = ((Reconfigurable) pfsDef).reconfigure("pfs", oldProps, oldSpec);
DatasetId delimTabInstance = DatasetFrameworkTestUtil.NAMESPACE_ID.dataset("delimtab"); dsFrameworkUtil.createInstance("indexedTable", delimTabInstance, DatasetProperties.builder() .add(IndexedTable.INDEX_COLUMNS_CONF_KEY, idxColString) .build()); final IndexedTable iTable = dsFrameworkUtil.getInstance(delimTabInstance); final byte[] delim = new byte[]{ 0 };
.add("prop1", "val1") .add(TestModule2.NOT_RECONFIGURABLE, "this") .build(); .add("prop2", "val2") .add(TestModule2.NOT_RECONFIGURABLE, "that") .build(); Assert.assertEquals(HttpStatus.SC_CONFLICT, updateInstance("dataset1", newProps).getResponseCode()); .add("prop2", "val2") .add(TestModule2.NOT_RECONFIGURABLE, "this") .build(); Assert.assertEquals(HttpStatus.SC_OK, updateInstance("dataset1", newProps).getResponseCode());
.setTableProperty(DatasetSystemMetadataProvider.FILESET_AVRO_SCHEMA_PROPERTY, "avro-table-schema") .add(DatasetProperties.SCHEMA, "avro-schema") .build(); assertDatasetSchema("avro-schema", filesetAvroTableProps); .setOutputProperty(DatasetSystemMetadataProvider.FILESET_AVRO_SCHEMA_OUTPUT_KEY, "avro-output-schema") .add(DatasetProperties.SCHEMA, "avro-schema") .build(); assertDatasetSchema("avro-schema", filesetAvroOutputProps); .setOutputProperty(DatasetSystemMetadataProvider.FILESET_PARQUET_SCHEMA_OUTPUT_KEY, "parquet-output-schema") .add(DatasetProperties.SCHEMA, "parquet-schema") .build(); assertDatasetSchema("parquet-schema", filesetParquetProps);
.addAll(properties.getProperties()) .add(IndexedTable.INDEX_COLUMNS_CONF_KEY, INDEXED_COLS) .build(); .addAll(properties.getProperties()); String useNameAsBasePathDefault = currentSpec.getProperty(NAME_AS_BASE_PATH_DEFAULT); if (Boolean.parseBoolean(useNameAsBasePathDefault) && !properties.getProperties().containsKey(FileSetProperties.BASE_PATH)) { newFileProperties.add(FileSetProperties.BASE_PATH, instanceName); pfsProperties.put(NAME_AS_BASE_PATH_DEFAULT, Boolean.TRUE.toString()); .datasets(AbstractDatasetDefinition.reconfigure(filesetDef, FILESET_NAME, newFileProperties.build(), currentFileSpec), AbstractDatasetDefinition.reconfigure(indexedTableDef, PARTITION_TABLE_NAME, indexedTableProperties,
.setReadlessIncrementSupport(false) .add(IndexedTable.INDEX_COLUMNS_CONF_KEY, "a,b,c") .build(); DatasetSpecification spec = indexedTableDef.configure("idxtb", props); .setReadlessIncrementSupport(true) // turning on is ok .add(IndexedTable.INDEX_COLUMNS_CONF_KEY, "c,b,a") .build(); spec = ((Reconfigurable) indexedTableDef).reconfigure("idxtb", compat, spec); .setReadlessIncrementSupport(true) .add(IndexedTable.INDEX_COLUMNS_CONF_KEY, "a,d") .build(); try { ((Reconfigurable) indexedTableDef).reconfigure("idxtb", incompat, spec); .setReadlessIncrementSupport(false) // turning off is not ok .add(IndexedTable.INDEX_COLUMNS_CONF_KEY, "a,b,c") .build(); try { ((Reconfigurable) indexedTableDef).reconfigure("idxtb", incompat, spec);
@Test public void testStructuredRecordProjection() throws Exception { dsFrameworkUtil.createInstance("table", users, DatasetProperties.builder().build()); try { final Table usersTable = dsFrameworkUtil.getInstance(users); final byte[] rowKey = Bytes.toBytes(123); final User2 projected = new User2("Samuel L.", 123L, ((Float) 50000000.02f).doubleValue(), Double.MAX_VALUE, ByteBuffer.wrap(new byte[]{0, 1, 2})); final Schema fullSchema = new ReflectionSchemaGenerator().generate(User.class); final Schema projSchema = new ReflectionSchemaGenerator().generate(User2.class); // TableDataset is not accessible here, but we know that's the underlying implementation... TransactionExecutor tx = dsFrameworkUtil.newTransactionExecutor((TransactionAware) usersTable); tx.execute(new TransactionExecutor.Subroutine() { @Override public void apply() throws Exception { Put put = new Put(rowKey); ReflectionPutWriter<User> putWriter = new ReflectionPutWriter<>(fullSchema); putWriter.write(SAMUEL, put); usersTable.put(put); Row row = usersTable.get(rowKey); ReflectionRowRecordReader rowReader = new ReflectionRowRecordReader(projSchema, null); StructuredRecord actual = rowReader.read(row, fullSchema); assertRecordEqualsUser(projected, actual); } }); } finally { dsFrameworkUtil.deleteInstance(users); } }