本文整理汇总了Golang中github.com/google/badwolf/bql/semantic.GraphClause.S方法的典型用法代码示例。如果您正苦于以下问题:Golang GraphClause.S方法的具体用法?Golang GraphClause.S怎么用?Golang GraphClause.S使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/google/badwolf/bql/semantic.GraphClause
的用法示例。
在下文中一共展示了GraphClause.S方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: addSpecifiedData
// addSpecifiedData specializes the clause given the row provided and attemp to
// retrieve the correspoinding clause data.
func (p *queryPlan) addSpecifiedData(r table.Row, cls *semantic.GraphClause, lo *storage.LookupOptions) error {
if cls.S == nil {
v := getBindedValueForComponent(r, []string{cls.SBinding, cls.SAlias})
if v != nil {
if v.N != nil {
cls.S = v.N
}
}
}
if cls.P == nil {
v := getBindedValueForComponent(r, []string{cls.PBinding, cls.PAlias})
if v != nil {
if v.N != nil {
cls.P = v.P
}
}
nlo, err := updateTimeBoundsForRow(lo, cls, r)
if err != nil {
return err
}
lo = nlo
}
if cls.O == nil {
v := getBindedValueForComponent(r, []string{cls.PBinding, cls.PAlias})
if v != nil {
o, err := cellToObject(v)
if err == nil {
cls.O = o
}
}
nlo, err := updateTimeBoundsForRow(lo, cls, r)
if err != nil {
return err
}
lo = nlo
}
tbl, err := simpleFetch(p.grfs, cls, lo)
if err != nil {
return err
}
p.tbl.AddBindings(tbl.Bindings())
for _, nr := range tbl.Rows() {
p.tbl.AddRow(table.MergeRows([]table.Row{r, nr}))
}
return nil
}