Refine search
/** * * * <pre> * The parsed form of the `GqlQuery` from the request, if it was set. * </pre> * * <code>.google.datastore.v1.Query query = 2;</code> */ public Builder setQuery(com.google.datastore.v1.Query.Builder builderForValue) { if (queryBuilder_ == null) { query_ = builderForValue.build(); onChanged(); } else { queryBuilder_.setMessage(builderForValue.build()); } return this; } /**
bitField0_ = (bitField0_ & ~0x00000001); } else { ensureProjectionIsMutable(); projection_.addAll(other.projection_); onChanged(); projectionBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getProjectionFieldBuilder() : null; } else { projectionBuilder_.addAllMessages(other.projection_); bitField0_ = (bitField0_ & ~0x00000002); } else { ensureKindIsMutable(); kind_.addAll(other.kind_); onChanged(); kindBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getKindFieldBuilder() : null; } else { mergeFilter(other.getFilter());
/** * * * <pre> * The maximum number of results to return. Applies after all other * constraints. Optional. * Unspecified is interpreted as no limit. * Must be >= 0 if specified. * </pre> * * <code>.google.protobuf.Int32Value limit = 12;</code> */ private com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> getLimitFieldBuilder() { if (limitBuilder_ == null) { limitBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder>( getLimit(), getParentForChildren(), isClean()); limit_ = null; } return limitBuilder_; }
@java.lang.Override protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /**
/** * * * <pre> * The query to run. * </pre> * * <code>.google.datastore.v1.Query query = 3;</code> */ public Builder setQuery(com.google.datastore.v1.Query.Builder builderForValue) { if (queryBuilder_ == null) { queryType_ = builderForValue.build(); onChanged(); } else { queryBuilder_.setMessage(builderForValue.build()); } queryTypeCase_ = 3; return this; } /**
com.google.datastore.v1.Query toPb() { com.google.datastore.v1.Query.Builder queryPb = com.google.datastore.v1.Query.newBuilder(); if (kind != null) { queryPb.addKindBuilder().setName(kind); queryPb.setStartCursor(startCursor.getByteString()); queryPb.setEndCursor(endCursor.getByteString()); queryPb.setOffset(offset); queryPb.setLimit(com.google.protobuf.Int32Value.newBuilder().setValue(limit)); queryPb.setFilter(filter.toPb()); queryPb.addOrder(value.toPb()); queryPb.addDistinctOn( com.google.datastore.v1.PropertyReference.newBuilder().setName(value).build()); expressionPb.setProperty( com.google.datastore.v1.PropertyReference.newBuilder().setName(value).build()); queryPb.addProjection(expressionPb.build()); return queryPb.build();
/** Builds a latest timestamp statistics query. */ private static Query makeLatestTimestampQuery(String namespace) { Query.Builder timestampQuery = Query.newBuilder(); if (namespace == null) { timestampQuery.addKindBuilder().setName("__Stat_Total__"); } else { timestampQuery.addKindBuilder().setName("__Stat_Ns_Total__"); } timestampQuery.addOrder(makeOrder("timestamp", DESCENDING)); timestampQuery.setLimit(Int32Value.newBuilder().setValue(1)); return timestampQuery.build(); }
/** Build a datastore ancestor query for the specified kind, namespace and ancestor. */ static Query makeAncestorKindQuery(String kind, @Nullable String namespace, String ancestor) { Query.Builder q = Query.newBuilder(); q.addKindBuilder().setName(kind); q.setFilter( makeFilter( "__key__", PropertyFilter.Operator.HAS_ANCESTOR, makeValue(makeAncestorKey(namespace, kind, ancestor)))); return q.build(); }
@Test public void testReadValidationFailsQueryLimitZero() throws Exception { Query invalidLimit = Query.newBuilder().setLimit(Int32Value.newBuilder().setValue(0)).build(); thrown.expect(IllegalArgumentException.class); thrown.expectMessage("Invalid query limit 0: must be positive"); DatastoreIO.v1().read().withQuery(invalidLimit); }
/** A helper method to test {@link SplitQueryFn} to generate the expected number of splits. */ private void testSplitQueryFn( String projectId, String kind, @Nullable String namespace, int expectedNumSplits) throws Exception { Query.Builder query = Query.newBuilder(); query.addKindBuilder().setName(kind); SplitQueryFn splitQueryFn = new SplitQueryFn(V1Options.from(projectId, namespace, null), 0); DoFnTester<Query, Query> doFnTester = DoFnTester.of(splitQueryFn); List<Query> queries = doFnTester.processBundle(query.build()); assertEquals(expectedNumSplits, queries.size()); }
@Test public void testReadValidationFailsQueryLimitNegative() throws Exception { Query invalidLimit = Query.newBuilder().setLimit(Int32Value.newBuilder().setValue(-5)).build(); thrown.expect(IllegalArgumentException.class); thrown.expectMessage("Invalid query limit -5: must be positive"); DatastoreIO.v1().read().withQuery(invalidLimit); }
/** Tests {@link DatastoreV1.Read.SplitQueryFn} when the query has a user specified limit. */ @Test public void testSplitQueryFnWithQueryLimit() throws Exception { Query queryWithLimit = QUERY.toBuilder().setLimit(Int32Value.newBuilder().setValue(1)).build(); SplitQueryFn splitQueryFn = new SplitQueryFn(V_1_OPTIONS, 10, mockDatastoreFactory); DoFnTester<Query, Query> doFnTester = DoFnTester.of(splitQueryFn); doFnTester.setCloningBehavior(CloningBehavior.DO_NOT_CLONE); List<Query> queries = doFnTester.processBundle(queryWithLimit); assertEquals(1, queries.size()); verifyNoMoreInteractions(mockDatastore); verifyNoMoreInteractions(mockQuerySplitter); }
Query.Builder query = Query.newBuilder(); query.addKindBuilder().setName("__kind__"); query.addProjectionBuilder().setProperty(makePropertyReference("__key__")); RunQueryRequest.Builder req = RunQueryRequest.newBuilder() .setQuery(query); req.getPartitionIdBuilder().setNamespace("my_namespace"); datastore.runQuery(req.build());
Key acmeKey = makeKey("Company", "Acme").build(); Query.Builder query = Query.newBuilder(); query.addKindBuilder().setName("Person"); query.setFilter(makeFilter( makeFilter("__key__", HAS_ANCESTOR, makeValue(acmeKey)).build(), makeFilter("age", GREATER_THAN, makeValue(20)).build())); query.addOrder(makeOrder("age", ASCENDING));
@java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /**
@java.lang.Override protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); return builder; } /**
/** * Tell Datastore to begin returning entities from a given cursor * position. This is used to page results; the last cursor position * is returned in {@code QueryResult}. * * @param cursor the last query cursor position. * @return this query statement. */ public Query fromCursor(final ByteString cursor) { query.setStartCursor(cursor); return this; }
/** * Apply a given order to the query. * * @param order the query order to apply. * @return this query statement. */ public Query orderBy(final Order order) { query.addOrder(order.getPb()); return this; }
/** * Limit the number of entities returned in this query. The last * cursor position will be returned in {@code QueryResult} if more * entities are required. * * @param limit the maximum number of entities to return. * @return this query statement. */ public Query limit(final int limit) { query.setLimit(Int32Value.newBuilder().setValue(limit)); return this; }