Refine search
@Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getItems() == null) ? 0 : getItems().hashCode()); hashCode = prime * hashCode + ((getCount() == null) ? 0 : getCount().hashCode()); hashCode = prime * hashCode + ((getScannedCount() == null) ? 0 : getScannedCount().hashCode()); hashCode = prime * hashCode + ((getLastEvaluatedKey() == null) ? 0 : getLastEvaluatedKey().hashCode()); hashCode = prime * hashCode + ((getConsumedCapacity() == null) ? 0 : getConsumedCapacity().hashCode()); return hashCode; }
public QueryResult unmarshall(JsonUnmarshallerContext context) throws Exception { QueryResult queryResult = new QueryResult(); if (context.testExpression("Items", targetDepth)) { context.nextToken(); queryResult.setItems(new ListUnmarshaller<java.util.Map<String, AttributeValue>>(new MapUnmarshaller<String, AttributeValue>(context .getUnmarshaller(String.class), AttributeValueJsonUnmarshaller.getInstance())).unmarshall(context)); queryResult.setCount(context.getUnmarshaller(Integer.class).unmarshall(context)); queryResult.setScannedCount(context.getUnmarshaller(Integer.class).unmarshall(context)); queryResult.setLastEvaluatedKey(new MapUnmarshaller<String, AttributeValue>(context.getUnmarshaller(String.class), AttributeValueJsonUnmarshaller.getInstance()).unmarshall(context)); queryResult.setConsumedCapacity(ConsumedCapacityJsonUnmarshaller.getInstance().unmarshall(context));
protected void setLastLowLevelResult(QueryOutcome lowLevelResult) { super.setLastLowLevelResult(lowLevelResult); QueryResult result = lowLevelResult.getQueryResult(); accumulateStats(result.getConsumedCapacity(), result.getCount(), result.getScannedCount()); } }
@Override public <T> int count(Class<T> clazz, DynamoDBQueryExpression<T> queryExpression, DynamoDBMapperConfig config) { config = mergeConfig(config); QueryRequest queryRequest = createQueryRequestFromExpression(clazz, queryExpression, config); queryRequest.setSelect(Select.COUNT); // Count queries can also be truncated for large datasets int count = 0; QueryResult queryResult = null; do { queryResult = db.query(applyUserAgent(queryRequest)); count += queryResult.getCount(); queryRequest.setExclusiveStartKey(queryResult.getLastEvaluatedKey()); } while (queryResult.getLastEvaluatedKey() != null); return count; }
); attrs.addAll(keys); QueryRequest request = new QueryRequest() .withTableName(table) .withReturnConsumedCapacity(ReturnConsumedCapacity.TOTAL) .withKeyConditions(conditions) .withConsistentRead(this.consistent) final QueryResult result = aws.query(request); Logger.info( this, result.getCount(), table, result.getLastEvaluatedKey(), conditions, new PrintableConsumedCapacity( result.getConsumedCapacity() ).print(), System.currentTimeMillis() - start ); } finally { aws.shutdown();
private List<Document> getNextQueryResultSet() { final List<Document> returnValue = new ArrayList<Document>(); final QueryRequest request = new QueryRequest(); request.withExclusiveStartKey(nextKey) .withAttributesToGet(attributesToGet) .withLimit(limit) .withTableName(tableName) final QueryResult result = table.getClient().query(request); for (final Map<String, AttributeValue> item : result.getItems()) { final Document doc = Document.fromAttributeMap(item); returnValue.add(doc); nextKey = result.getLastEvaluatedKey(); if (nextKey == null || nextKey.size() == 0) { isDone = true;
@Override public List<SchemaField> getCollection(String project, String collection) { QueryResult query = dynamoDBClient.query(new QueryRequest() .withTableName(tableConfig.getTableName()) .withKeyConditions(ImmutableMap.of("project", new Condition().withComparisonOperator(EQ).withAttributeValueList(new AttributeValue(project)))) .withQueryFilter( ImmutableMap.of("collection", new Condition().withComparisonOperator(EQ) .withAttributeValueList(new AttributeValue(collection))))); return query.getItems().stream() .filter(e -> !e.get("id").getS().equals("|")) .map(e -> new SchemaField(e.get("name").getS(), FieldType.valueOf(e.get("type").getS()))) .collect(Collectors.toList()); }
final AmazonDynamoDB aws = credentials.aws(); try { QueryRequest request = new QueryRequest() .withTableName(table) .withReturnConsumedCapacity(ReturnConsumedCapacity.TOTAL) .withKeyConditions(conditions) .withConsistentRead(this.consistent) final QueryResult rslt = aws.query(request); final int count = rslt.getCount(); Logger.info( this, count, request.getTableName(), request.getQueryFilter(), new PrintableConsumedCapacity( rslt.getConsumedCapacity() ).print(), System.currentTimeMillis() - start ); } finally { aws.shutdown();
@Override public long getMaxVersion(final String materialName) { final List<Map<String, AttributeValue>> items = ddb.query( new QueryRequest() .withTableName(tableName) .withConsistentRead(Boolean.TRUE) .withKeyConditions( Collections.singletonMap( DEFAULT_HASH_KEY, new Condition().withComparisonOperator( ComparisonOperator.EQ).withAttributeValueList( new AttributeValue().withS(materialName)))) .withLimit(1).withScanIndexForward(false) .withAttributesToGet(DEFAULT_RANGE_KEY)).getItems(); if (items.isEmpty()) { return -1L; } else { return Long.parseLong(items.get(0).get(DEFAULT_RANGE_KEY).getN()); } }
final ScanResult result = table.getClient().scan(request); count = this.matches.size() + result.getCount(); return count; final QueryRequest request = new QueryRequest(); request.withExclusiveStartKey(nextKey) .withTableName(tableName) .withSelect(Select.COUNT) .withConsistentRead(isConsistentRead) final QueryResult result = table.getClient().query(request); count = this.matches.size() + result.getCount(); return count;
@Override protected synchronized List<T> fetchNextPage() { queryRequest.setExclusiveStartKey(queryResult.getLastEvaluatedKey()); queryResult = dynamo.query(DynamoDBMapper.applyUserAgent(queryRequest)); return mapper.marshallIntoObjects(mapper.toParameters( queryResult.getItems(), clazz, queryRequest.getTableName(), config)); } }
@Override public CompletableFuture<QueryResult> searchUsers(RequestContext context, List<String> columns, Expression filterExpression, List<EventFilter> eventFilter, Sorting sortColumn, long limit, String offset) { QueryRequest scanRequest = new QueryRequest() .withTableName(tableConfig.getTableName()); if (columns != null && !columns.isEmpty()) { scanRequest.withAttributesToGet(columns.stream().map(e -> "properties." + e).collect(Collectors.toList())); scanRequest.withKeyConditions(ImmutableMap.of("project", new Condition() scanRequest.withLimit(Math.toIntExact(limit)); List<Map<String, AttributeValue>> scan = dynamoDBClient.query(scanRequest).getItems();
try { final QueryRequest rqst = this.request.withExclusiveStartKey( this.result.getLastEvaluatedKey() ); final long start = System.currentTimeMillis(); final QueryResult rslt = aws.query(rqst); Logger.info( this, rslt.getCount(), rqst.getTableName(), rslt.getLastEvaluatedKey(), rqst.getKeyConditions(), new PrintableConsumedCapacity( rslt.getConsumedCapacity() ).print(), System.currentTimeMillis() - start return new QueryValve.NextDosage(this.credentials, rqst, rslt); } finally { aws.shutdown();
@Override public <T> QueryResultPage<T> queryPage(Class<T> clazz, DynamoDBQueryExpression<T> queryExpression, DynamoDBMapperConfig config) { config = mergeConfig(config); QueryRequest queryRequest = createQueryRequestFromExpression(clazz, queryExpression, config); QueryResult queryResult = db.query(applyUserAgent(queryRequest)); QueryResultPage<T> result = new QueryResultPage<T>(); List<AttributeTransformer.Parameters<T>> parameters = toParameters(queryResult.getItems(), clazz, queryRequest.getTableName(), config); result.setResults(marshallIntoObjects(parameters)); result.setLastEvaluatedKey(queryResult.getLastEvaluatedKey()); result.setCount(queryResult.getCount()); result.setScannedCount(queryResult.getScannedCount()); result.setConsumedCapacity(queryResult.getConsumedCapacity()); return result; }
private static void findRepliesForAThreadSpecifyOptionalLimit(String forumName, String threadSubject) { Map<String, AttributeValue> lastEvaluatedKey = null; do { QueryRequest queryRequest = new QueryRequest() .withTableName(tableName) .withKeyConditions(makeReplyKeyConditions(forumName, threadSubject)) .withLimit(1) .withExclusiveStartKey(lastEvaluatedKey); QueryResult result = client.query(queryRequest); for (Map<String, AttributeValue> item : result.getItems()) { printItem(item); } lastEvaluatedKey = result.getLastEvaluatedKey(); } while (lastEvaluatedKey != null); }
this.conditions .put(DynamoDataStore.SCATTER_PREFIX_ATTRIBUTE, c); QueryRequest req = new QueryRequest() .withIndexName(this.indexName) .withTableName(this.tableName) .withKeyConditions(this.conditions); result = dynamoClient.query(req) .withLastEvaluatedKey(lastKeyEvaluated); results.addAll(result.getItems()); } catch (ProvisionedThroughputExceededException e) { LOG.warn(String lastKeyEvaluated = result.getLastEvaluatedKey(); } while (lastKeyEvaluated != null);
System.out.println("Querying table " + tableName + "..."); QueryRequest queryRequest = new QueryRequest() .withTableName(tableName) .withConsistentRead(true).withScanIndexForward(true) .withReturnConsumedCapacity(ReturnConsumedCapacity.TOTAL); List<Map<String, AttributeValue>> items = result.getItems(); Iterator<Map<String, AttributeValue>> itemsIter = items.iterator(); while (itemsIter.hasNext()) { System.out.println("\nConsumed capacity: " + result.getConsumedCapacity() + "\n");
private static long getLastId(String tableName, String instanceName, AmazonDynamoDB dynamoClient) { QueryRequest queryRequest = new QueryRequest().withTableName(tableName) .withKeyConditionExpression("instance = :pk") .addExpressionAttributeValuesEntry(":pk", new AttributeValue().withS(instanceName)) .withScanIndexForward(false).withLimit(1); QueryResult result = dynamoClient.query(queryRequest); List<Map<String, AttributeValue>> items = result.getItems(); if (items == null || items.size() == 0) { return 0L; } else { return Long.valueOf(items.get(0).get("id").getN()); } }
System.out.print("Querying index " + indexName + "..."); QueryRequest queryRequest = new QueryRequest() .withTableName(tableName) .withIndexName(indexName) .withScanIndexForward(true); List<Map<String, AttributeValue>> items = result.getItems(); Iterator<Map<String, AttributeValue>> itemsIter = items.iterator();
private static void findRepliesUsingAFilterExpression(String forumName, String threadSubject) { Map<String, Condition> keyConditions = makeReplyKeyConditions(forumName, threadSubject); Map<String, AttributeValue> expressionAttributeValues = new HashMap<String, AttributeValue>(); expressionAttributeValues.put(":val", new AttributeValue().withS("User B")); QueryRequest queryRequest = new QueryRequest() .withTableName(tableName) .withKeyConditions(keyConditions) .withFilterExpression("PostedBy = :val") .withExpressionAttributeValues(expressionAttributeValues) .withProjectionExpression("Message, ReplyDateTime, PostedBy"); QueryResult result = client.query(queryRequest); for (Map<String, AttributeValue> item : result.getItems()) { printItem(item); } }