ImmutableSet.of(), ImmutableList.of(), ImmutableMultimap.of(), false)); ExpressionUtils.combineConjuncts(uncorrelatedPredicates)); Set<Symbol> symbolsToPropagate = Sets.difference(SymbolsExtractor.extractUnique(correlatedPredicates), ImmutableSet.copyOf(correlation)); return Optional.of(new DecorrelationResult( newFilterNode, .addAll(correlatedPredicates) .build(), ImmutableMultimap.<Symbol, Symbol>builder() .putAll(childDecorrelationResult.correlatedSymbolsMapping) .putAll(extractCorrelatedSymbolsMapping(correlatedPredicates)) .build(), childDecorrelationResult.atMostSingleRow));
/** * Unregisters all subscribed methods from provided subscriber object. * * @param object object to unsubscribe from */ public synchronized void unregister(@Nonnull final Object object) { if (subscribers == null) { return; } final Multimap<Class, Subscriber> map = HashMultimap.create(); map.putAll(subscribers); for (Class<?> clazz = object.getClass(); clazz != null; clazz = clazz.getSuperclass()) { for (final Method method : clazz.getDeclaredMethods()) { final Subscribe sub = method.getAnnotation(Subscribe.class); if (sub == null) { continue; } final Class<?> parameterClazz = method.getParameterTypes()[0]; map.remove(parameterClazz, new Subscriber(object, method, null)); } } subscribers = ImmutableMultimap.copyOf(map); }
assertTrue(functions.containsKey("avg"), "Expected function names " + functions + " to contain 'avg'"); assertEquals(functions.get("avg").asList().size(), 6); assertEquals(functions.get("avg").asList().get(0).getField(1), "decimal(p,s)"); assertEquals(functions.get("avg").asList().get(0).getField(2), "decimal(p,s)"); assertEquals(functions.get("avg").asList().get(0).getField(3), "aggregate"); assertEquals(functions.get("avg").asList().get(1).getField(1), "double"); assertEquals(functions.get("avg").asList().get(1).getField(2), "bigint"); assertEquals(functions.get("avg").asList().get(1).getField(3), "aggregate"); assertEquals(functions.get("avg").asList().get(2).getField(1), "double"); assertEquals(functions.get("avg").asList().get(2).getField(2), "double"); assertEquals(functions.get("avg").asList().get(2).getField(3), "aggregate"); assertEquals(functions.get("avg").asList().get(3).getField(1), "interval day to second"); assertEquals(functions.get("avg").asList().get(3).getField(2), "interval day to second"); assertEquals(functions.get("avg").asList().get(3).getField(3), "aggregate"); assertEquals(functions.get("avg").asList().get(4).getField(1), "interval year to month"); assertEquals(functions.get("avg").asList().get(4).getField(2), "interval year to month"); assertEquals(functions.get("avg").asList().get(4).getField(3), "aggregate"); assertEquals(functions.get("avg").asList().get(5).getField(1), "real"); assertEquals(functions.get("avg").asList().get(5).getField(2), "real"); assertEquals(functions.get("avg").asList().get(5).getField(3), "aggregate"); assertTrue(functions.containsKey("abs"), "Expected function names " + functions + " to contain 'abs'"); assertEquals(functions.get("abs").asList().get(0).getField(3), "scalar"); assertEquals(functions.get("abs").asList().get(0).getField(4), true); assertTrue(functions.containsKey("rand"), "Expected function names " + functions + " to contain 'rand'"); assertEquals(functions.get("rand").asList().get(0).getField(3), "scalar"); assertEquals(functions.get("rand").asList().get(0).getField(4), false);
Set<Feature<?>> computeMultimapGetFeatures(Set<Feature<?>> multimapFeatures) { Set<Feature<?>> derivedFeatures = Helpers.copyToSet(multimapFeatures); for (Entry<Feature<?>, Feature<?>> entry : GET_FEATURE_MAP.entries()) { if (derivedFeatures.contains(entry.getKey())) { derivedFeatures.add(entry.getValue()); } } if (derivedFeatures.remove(MultimapFeature.VALUE_COLLECTIONS_SUPPORT_ITERATOR_REMOVE)) { derivedFeatures.add(CollectionFeature.SUPPORTS_ITERATOR_REMOVE); } if (!derivedFeatures.contains(CollectionFeature.SERIALIZABLE_INCLUDING_VIEWS)) { derivedFeatures.remove(CollectionFeature.SERIALIZABLE); } derivedFeatures.removeAll(GET_FEATURE_MAP.keySet()); return derivedFeatures; }
@Override Spliterator<Entry<K, V>> entrySpliterator() { return CollectSpliterators.flatMap( asMap().entrySet().spliterator(), keyToValueCollectionEntry -> { K key = keyToValueCollectionEntry.getKey(); Collection<V> valueCollection = keyToValueCollectionEntry.getValue(); return CollectSpliterators.map( valueCollection.spliterator(), (V value) -> Maps.immutableEntry(key, value)); }, Spliterator.SIZED | (this instanceof SetMultimap ? Spliterator.DISTINCT : 0), size()); }
public void testFilterWhenResponseIs404() throws Exception { HttpResponse filterResponse = HttpResponse.builder().statusCode(404).build(); EC2Api apiWhenDontExist = requestSendsResponse(filter, filterResponse); assertEquals(apiWhenDontExist.getTagApi().get().filter(ImmutableMultimap.<String, String> builder() .put("resource-type", "instance") .put("key", "stack") .build()).toSet(), ImmutableSet.of()); }
@Test public void testAddBlockDeviceFromSnapshotStatic() { RegisterImageBackedByEbsOptions options = addBlockDeviceFromSnapshot("deviceName", "virtualName", "snapshotId"); assertEquals(options.buildFormParameters().entries(), ImmutableMultimap.of( "BlockDeviceMapping.1.Ebs.DeleteOnTermination", "false", "BlockDeviceMapping.1.DeviceName", "deviceName", "BlockDeviceMapping.1.VirtualName", "virtualName", "BlockDeviceMapping.1.Ebs.SnapshotId", "snapshotId").entries()); }
@Test(timeOut = 60 * 1000) public void testTopologyAwareScheduling() throws Exception ImmutableSet.Builder<Split> nonRackLocalBuilder = ImmutableSet.builder(); for (int i = 0; i < (25 + 11) * 3; i++) { nonRackLocalBuilder.add(new Split(CONNECTOR_ID, transactionHandle, new TestSplitRemote(HostAddress.fromParts("data.other_rack", 1)))); nonRackLocalSplits = Sets.difference(nonRackLocalSplits, new HashSet<>(assignments.values())); remoteTask.addSplits(ImmutableMultimap.<PlanNodeId, Split>builder() .putAll(new PlanNodeId("sourceId"), assignments.get(node)) .build()); assertEquals(nonRackLocalSplits.size(), 3); ImmutableSet.Builder<Split> rackLocalSplits = ImmutableSet.builder(); HostAddress dataHost1 = HostAddress.fromParts("data.rack1", 1); HostAddress dataHost2 = HostAddress.fromParts("data.rack2", 1); remoteTask.addSplits(ImmutableMultimap.<PlanNodeId, Split>builder() .putAll(new PlanNodeId("sourceId"), assignments.get(node)) remoteTask.addSplits(ImmutableMultimap.<PlanNodeId, Split>builder()
@Test public void testWhenComputeServiceSaysAllNodesAreDeadBothGroupsAreReturned() { ServerInZone withoutHost = new ServerInZone(new ServerInZoneToNodeMetadataTest().expectedServer(), "az-1.region-a.geo-1"); ServerInZone withHost = new ServerInZone(new ParseServerTest().expected(), "az-1.region-a.geo-1"); ServerInZoneToNodeMetadata converter = new ServerInZoneToNodeMetadata( NovaComputeServiceContextModule.toPortableNodeStatus, locationIndex, Suppliers .<Set<? extends Image>> ofInstance(ImmutableSet.<Image> of()), Suppliers .<Set<? extends Hardware>> ofInstance(ImmutableSet.<Hardware> of()), namingConvention); Set<? extends NodeMetadata> set = ImmutableSet.of(converter.apply(withHost), converter.apply(withoutHost)); assertEquals(new OrphanedGroupsByZoneId(Predicates.<ZoneAndName> alwaysTrue()).apply(set), ImmutableMultimap .<String, String> builder().putAll("az-1.region-a.geo-1", "sample", "test").build()); }
private Set<RemoteTask> assignSplits(Multimap<Node, Split> splitAssignment, Multimap<Node, Lifespan> noMoreSplitsNotification) { ImmutableSet.Builder<RemoteTask> newTasks = ImmutableSet.builder(); ImmutableSet<Node> nodes = ImmutableSet.<Node>builder() .addAll(splitAssignment.keySet()) .addAll(noMoreSplitsNotification.keySet()) .build(); for (Node node : nodes) { // source partitioned tasks can only receive broadcast data; otherwise it would have a different distribution ImmutableMultimap<PlanNodeId, Split> splits = ImmutableMultimap.<PlanNodeId, Split>builder() .putAll(partitionedNode, splitAssignment.get(node)) .build(); ImmutableMultimap.Builder<PlanNodeId, Lifespan> noMoreSplits = ImmutableMultimap.builder(); if (noMoreSplitsNotification.containsKey(node)) { noMoreSplits.putAll(partitionedNode, noMoreSplitsNotification.get(node)); } newTasks.addAll(stage.scheduleSplits( node, splits, noMoreSplits.build())); } return newTasks.build(); }
@SuppressWarnings("unchecked") public BaseVirtualSystem(String id, String info, String name, OperatingSystemSection operatingSystem, Iterable<? extends VirtualHardwareSection> virtualHardwareSections, Iterable<? extends ProductSection> productSections, Multimap<String, Section> additionalSections) { super(info); this.id = id; this.name = name; this.operatingSystem = checkNotNull(operatingSystem, "operatingSystem"); this.virtualHardwareSections = ImmutableSet.copyOf(checkNotNull(virtualHardwareSections, "virtualHardwareSections")); this.productSections = ImmutableSet.copyOf(checkNotNull(productSections, "productSections")); this.additionalSections = ImmutableMultimap.copyOf(checkNotNull(additionalSections, "additionalSections")); }
@Benchmark @OperationsPerInvocation(SPLITS) public Object benchmark(BenchmarkData data) { List<RemoteTask> remoteTasks = ImmutableList.copyOf(data.getTaskMap().values()); Iterator<MockRemoteTaskFactory.MockRemoteTask> finishingTask = Iterators.cycle(data.getTaskMap().values()); Iterator<Split> splits = data.getSplits().iterator(); Set<Split> batch = new HashSet<>(); while (splits.hasNext() || !batch.isEmpty()) { Multimap<Node, Split> assignments = data.getNodeSelector().computeAssignments(batch, remoteTasks).getAssignments(); for (Node node : assignments.keySet()) { MockRemoteTaskFactory.MockRemoteTask remoteTask = data.getTaskMap().get(node); remoteTask.addSplits(ImmutableMultimap.<PlanNodeId, Split>builder() .putAll(new PlanNodeId("sourceId"), assignments.get(node)) .build()); remoteTask.startSplits(MAX_SPLITS_PER_NODE); } if (assignments.size() == batch.size()) { batch.clear(); } else { batch.removeAll(assignments.values()); } while (batch.size() < SPLIT_BATCH_SIZE && splits.hasNext()) { batch.add(splits.next()); } finishingTask.next().finishSplits((int) Math.ceil(MAX_SPLITS_PER_NODE / 50.0)); } return remoteTasks; }
private Set<RemoteTask> finalizeTaskCreationIfNecessary() { // only lock down tasks if there is a sub stage that could block waiting for this stage to create all tasks if (stage.getFragment().isLeaf()) { return ImmutableSet.of(); } splitPlacementPolicy.lockDownNodes(); Set<Node> scheduledNodes = stage.getScheduledNodes(); Set<RemoteTask> newTasks = splitPlacementPolicy.allNodes().stream() .filter(node -> !scheduledNodes.contains(node)) .flatMap(node -> stage.scheduleSplits(node, ImmutableMultimap.of(), ImmutableMultimap.of()).stream()) .collect(toImmutableSet()); // notify listeners that we have scheduled all tasks so they can set no more buffers or exchange splits stage.transitionToSchedulingSplits(); return newTasks; }
@Test public void testTableRoundTrip() { Table table = ThriftMetastoreUtil.fromMetastoreApiTable(TEST_TABLE, TEST_SCHEMA); PrincipalPrivileges privileges = new PrincipalPrivileges(ImmutableMultimap.of(), ImmutableMultimap.of()); org.apache.hadoop.hive.metastore.api.Table metastoreApiTable = ThriftMetastoreUtil.toMetastoreApiTable(table, privileges); assertEquals(metastoreApiTable, TEST_TABLE); }
@Test public void testExtendedPropertiesBind() { ObjectMetadata md = ObjectMetadataBuilder.create().key("foo").cacheControl("no-cache").userMetadata( ImmutableMap.of("foo", "bar")).build(); HttpRequest request = HttpRequest.builder().method("POST").endpoint("http://localhost").build(); BindObjectMetadataToRequest binder = injector.getInstance(BindObjectMetadataToRequest.class); assertEquals(binder.bindToRequest(request, md), HttpRequest.builder().method("POST").endpoint("http://localhost").headers( ImmutableMultimap.of("Cache-Control", "no-cache", "x-amz-meta-foo", "bar", "Content-Type", "binary/octet-stream")).build()); }
public void testGet_collections() { assertEquals(ImmutableSet.of().iterator(), ArbitraryInstances.get(Iterator.class)); assertFalse(ArbitraryInstances.get(PeekingIterator.class).hasNext()); assertFalse(ArbitraryInstances.get(ListIterator.class).hasNext()); assertEquals(ImmutableSet.of(), ArbitraryInstances.get(Iterable.class)); assertEquals(ImmutableSet.of(), ArbitraryInstances.get(Set.class)); assertEquals(ImmutableSet.of(), ArbitraryInstances.get(ImmutableSet.class)); assertEquals(ImmutableMultiset.of(), ArbitraryInstances.get(ImmutableMultiset.class)); assertTrue(ArbitraryInstances.get(SortedMultiset.class).isEmpty()); assertEquals(ImmutableMultimap.of(), ArbitraryInstances.get(Multimap.class)); assertEquals(ImmutableMultimap.of(), ArbitraryInstances.get(ImmutableMultimap.class)); assertTrue(ArbitraryInstances.get(SortedSetMultimap.class).isEmpty()); assertEquals(ImmutableTable.of(), ArbitraryInstances.get(Table.class));
Optional<Entry<Long, AccumuloColumnConstraint>> entry = cardinalities.entries().stream().findFirst(); if (!entry.isPresent()) { return false; if (cardinalities.size() == 1) { long numEntries = lowestCardinality.getKey(); double ratio = ((double) numEntries / (double) numRows); LOG.debug("%d indexed columns, intersecting ranges", constraintRanges.size()); indexRanges = getIndexRanges(indexTable, constraintRanges, rowIdRanges, auths); LOG.debug("Intersection results in %d ranges from secondary index", indexRanges.size()); ImmutableMultimap.Builder<AccumuloColumnConstraint, Range> lcBldr = ImmutableMultimap.builder(); lcBldr.putAll(lowestCardinality.getValue(), constraintRanges.get(lowestCardinality.getValue())); indexRanges = getIndexRanges(indexTable, lcBldr.build(), rowIdRanges, auths);
public void testDeleteSecurityGroupRuleWhenResponseIs2xx() throws Exception { HttpRequest deleteRule = HttpRequest.builder().method("DELETE").endpoint( URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/os-security-group-rules/161")) .headers( ImmutableMultimap.<String, String> builder().put("Accept", "*/*") .put("X-Auth-Token", authToken).build()).build(); HttpResponse deleteRuleResponse = HttpResponse.builder().statusCode(202).build(); NovaApi apiWhenSecurityGroupsExist = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, deleteRule, deleteRuleResponse); assertTrue(apiWhenSecurityGroupsExist.getSecurityGroupExtensionForZone("az-1.region-a.geo-1").get() .deleteRule("161")); }