throws Exception
{
IDBI dbi = new DBI("jdbc:h2:mem:test" + System.nanoTime());
dummyHandle = dbi.open();
dataDir = Files.createTempDir();
ShardManager shardManager = new DatabaseShardManager(dbi);
InMemoryNodeManager nodeManager = new InMemoryNodeManager();
String nodeName = UUID.randomUUID().toString();
nodeManager.addNode("native", new PrestoNode(nodeName, new URI("http://127.0.0.1/"), NodeVersion.UNKNOWN));
NativeMetadata metadata = new NativeMetadata(new NativeConnectorId("native"), dbi, shardManager);
tableHandle = metadata.createTable(TEST_TABLE);
dsColumnHandle = metadata.getColumnHandle(tableHandle, "ds");
UUID shardUuid1 = UUID.randomUUID();
UUID shardUuid2 = UUID.randomUUID();
UUID shardUuid3 = UUID.randomUUID();
UUID shardUuid4 = UUID.randomUUID();
shardManager.commitPartition(
tableHandle,
"ds=1",
ImmutableList.<PartitionKey>of(new NativePartitionKey("ds=1", "ds", STRING, "1")),
ImmutableMap.<UUID, String>builder()
.put(shardUuid1, nodeName)
.put(shardUuid2, nodeName)
.put(shardUuid3, nodeName)
.build());
shardManager.commitPartition(
tableHandle,
"ds=2",
ImmutableList.<PartitionKey>of(new NativePartitionKey("ds=2", "ds", STRING, "2")),
ImmutableMap.<UUID, String>builder()
.put(shardUuid4, nodeName)