Index: service/datastore/query.go |
diff --git a/service/datastore/query.go b/service/datastore/query.go |
index fc30f5f686808fc6f697a000c6be3bdf94e0cf65..2e60b90cda8e90ce8fe0b95f88a21635cd6d3dcd 100644 |
--- a/service/datastore/query.go |
+++ b/service/datastore/query.go |
@@ -573,6 +573,12 @@ func (q *Query) Finalize() (*FinalizedQuery, error) { |
if q.project != nil { |
ret.project = q.project.ToSlice() |
ret.distinct = q.distinct && q.project.Len() > 0 |
+ |
+ // If we're DISTINCT && have an inequality filter, we must project that |
+ // inequality property as well. |
+ if ret.distinct && ret.ineqFiltProp != "" && !q.project.Has(ret.ineqFiltProp) { |
+ ret.project = append([]string{ret.ineqFiltProp}, ret.project...) |
+ } |
} |
seenOrders := stringset.New(len(q.order)) |