本文整理汇总了Golang中github.com/google/badwolf/bql/semantic.Statement类的典型用法代码示例。如果您正苦于以下问题:Golang Statement类的具体用法?Golang Statement怎么用?Golang Statement使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Statement类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: New
// New create a new executable plan given a semantic BQL statement.
func New(store storage.Store, stm *semantic.Statement) (Excecutor, error) {
switch stm.Type() {
case semantic.Query:
return newQueryPlan(store, stm)
case semantic.Insert:
return &insertPlan{
stm: stm,
store: store,
}, nil
case semantic.Delete:
return &deletePlan{
stm: stm,
store: store,
}, nil
case semantic.Create:
return &createPlan{
stm: stm,
store: store,
}, nil
case semantic.Drop:
return &dropPlan{
stm: stm,
store: store,
}, nil
default:
return nil, fmt.Errorf("planner.New: unknown statement type in statement %v", stm)
}
}
开发者ID:pombredanne,项目名称:badwolf,代码行数:29,代码来源:planner.go
示例2: update
func update(stm *semantic.Statement, store storage.Store, f updater) error {
var (
mu sync.Mutex
wg sync.WaitGroup
errs []string
)
appendError := func(err error) {
mu.Lock()
defer mu.Unlock()
errs = append(errs, err.Error())
}
for _, graphBinding := range stm.Graphs() {
wg.Add(1)
go func(graph string) {
defer wg.Done()
g, err := store.Graph(graph)
if err != nil {
appendError(err)
return
}
err = f(g, stm.Data())
if err != nil {
appendError(err)
}
}(graphBinding)
}
wg.Wait()
if len(errs) > 0 {
return errors.New(strings.Join(errs, "; "))
}
return nil
}
开发者ID:pombredanne,项目名称:badwolf,代码行数:33,代码来源:planner.go
示例3: newQueryPlan
// newQueryPlan returns a new query plan ready to be excecuted.
func newQueryPlan(store storage.Store, stm *semantic.Statement) (*queryPlan, error) {
bs := []string{}
for _, b := range stm.Bindings() {
bs = append(bs, b)
}
t, err := table.New([]string{})
if err != nil {
return nil, err
}
var gs []storage.Graph
for _, g := range stm.Graphs() {
ng, err := store.Graph(g)
if err != nil {
return nil, err
}
gs = append(gs, ng)
}
return &queryPlan{
stm: stm,
store: store,
bndgs: bs,
grfs: gs,
grfsNames: stm.Graphs(),
cls: stm.SortedGraphPatternClauses(),
tbl: t,
}, nil
}
开发者ID:pombredanne,项目名称:badwolf,代码行数:28,代码来源:planner.go
注:本文中的github.com/google/badwolf/bql/semantic.Statement类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论