本文整理汇总了Golang中github.com/couchbase/query/value.Value.GetAttachment方法的典型用法代码示例。如果您正苦于以下问题:Golang Value.GetAttachment方法的具体用法?Golang Value.GetAttachment怎么用?Golang Value.GetAttachment使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/couchbase/query/value.Value
的用法示例。
在下文中一共展示了Value.GetAttachment方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: getSet
/*
Retrieve the set for annotated values. If the attachment type
is not a set, then throw an invalid distinct set error and
return.
*/
func getSet(item value.Value) (*value.Set, error) {
switch item := item.(type) {
case value.AnnotatedValue:
ps := item.GetAttachment("set")
switch ps := ps.(type) {
case *value.Set:
return ps, nil
default:
return nil, fmt.Errorf("Invalid DISTINCT set %v of type %T.", ps, ps)
}
default:
return nil, fmt.Errorf("Invalid DISTINCT %v of type %T.", item, item)
}
}
示例2: Evaluate
/*
Directly call the evaluate method for aggregate functions and
passe in the receiver, current item and current context, for
count with an input expression operand. For a count with no
operands (count (*)), get the count from the attachment and
then evaluate.
*/
func (this *Count) Evaluate(item value.Value, context expression.Context) (result value.Value, e error) {
if this.Operand() != nil {
return this.evaluate(this, item, context)
}
// Full keyspace count is short-circuited
switch item := item.(type) {
case value.AnnotatedValue:
count := item.GetAttachment("count")
if count != nil {
return value.NewValue(count), nil
}
}
return this.evaluate(this, item, context)
}