Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(379)

Side by Side Diff: service/datastore/finalized_query.go

Issue 2302743002: Interface update, per-method Contexts. (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The LUCI Authors. All rights reserved. 1 // Copyright 2015 The LUCI Authors. All rights reserved.
2 // Use of this source code is governed under the Apache License, Version 2.0 2 // Use of this source code is governed under the Apache License, Version 2.0
3 // that can be found in the LICENSE file. 3 // that can be found in the LICENSE file.
4 4
5 package datastore 5 package datastore
6 6
7 import ( 7 import (
8 "bytes" 8 "bytes"
9 "fmt" 9 "fmt"
10 "sort" 10 "sort"
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after
305 } 305 }
306 306
307 return ret.String() 307 return ret.String()
308 } 308 }
309 309
310 func (q *FinalizedQuery) String() string { 310 func (q *FinalizedQuery) String() string {
311 // TODO(riannucci): make a more compact go-like representation here. 311 // TODO(riannucci): make a more compact go-like representation here.
312 return q.GQL() 312 return q.GQL()
313 } 313 }
314 314
315 // Valid returns true iff this FinalizedQuery is valid in the provided appID and 315 // Valid returns true iff this FinalizedQuery is valid in the provided
316 // namespace. 316 // KeyContext's App ID and Namespace.
317 // 317 //
318 // This checks the ancestor filter (if any), as well as the inequality filters 318 // This checks the ancestor filter (if any), as well as the inequality filters
319 // if they filter on '__key__'. 319 // if they filter on '__key__'.
320 // 320 //
321 // In particular, it does NOT validate equality filters which happen to have 321 // In particular, it does NOT validate equality filters which happen to have
322 // values of type PTKey, nor does it validate inequality filters that happen to 322 // values of type PTKey, nor does it validate inequality filters that happen to
323 // have values of type PTKey (but don't filter on the magic '__key__' field). 323 // have values of type PTKey (but don't filter on the magic '__key__' field).
324 func (q *FinalizedQuery) Valid(aid, ns string) error { 324 func (q *FinalizedQuery) Valid(kc KeyContext) error {
325 anc := q.Ancestor() 325 anc := q.Ancestor()
326 » if anc != nil && (!anc.Valid(false, aid, ns) || anc.IsIncomplete()) { 326 » if anc != nil && (!anc.Valid(false, kc) || anc.IsIncomplete()) {
327 return ErrInvalidKey 327 return ErrInvalidKey
328 } 328 }
329 329
330 if q.ineqFiltProp == "__key__" { 330 if q.ineqFiltProp == "__key__" {
331 » » if q.ineqFiltLowSet && !q.ineqFiltLow.Value().(*Key).Valid(false , aid, ns) { 331 » » if q.ineqFiltLowSet && !q.ineqFiltLow.Value().(*Key).Valid(false , kc) {
332 return ErrInvalidKey 332 return ErrInvalidKey
333 } 333 }
334 » » if q.ineqFiltHighSet && !q.ineqFiltHigh.Value().(*Key).Valid(fal se, aid, ns) { 334 » » if q.ineqFiltHighSet && !q.ineqFiltHigh.Value().(*Key).Valid(fal se, kc) {
335 return ErrInvalidKey 335 return ErrInvalidKey
336 } 336 }
337 } 337 }
338 return nil 338 return nil
339 } 339 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698