本文整理汇总了Golang中github.com/henryanand/vitess/go/vt/vtgate/planbuilder.VCursor.Execute方法的典型用法代码示例。如果您正苦于以下问题:Golang VCursor.Execute方法的具体用法?Golang VCursor.Execute怎么用?Golang VCursor.Execute使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/henryanand/vitess/go/vt/vtgate/planbuilder.VCursor
的用法示例。
在下文中一共展示了VCursor.Execute方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: Map
func (vind *LookupHashUnique) Map(vcursor planbuilder.VCursor, ids []interface{}) ([]key.KeyspaceId, error) {
out := make([]key.KeyspaceId, 0, len(ids))
bq := &tproto.BoundQuery{
Sql: vind.sel,
}
for _, id := range ids {
bq.BindVariables = map[string]interface{}{
vind.From: id,
}
result, err := vcursor.Execute(bq)
if err != nil {
return nil, err
}
if len(result.Rows) == 0 {
out = append(out, "")
continue
}
if len(result.Rows) != 1 {
return nil, fmt.Errorf("unexpected multiple results from vindex %s: %v", vind.Table, id)
}
inum, err := mproto.Convert(result.Fields[0].Type, result.Rows[0][0])
if err != nil {
return nil, err
}
num, err := getNumber(inum)
if err != nil {
return nil, err
}
out = append(out, vhash(num))
}
return out, nil
}
示例2: Delete
func (vind *HashVindex) Delete(vcursor planbuilder.VCursor, id interface{}, _ key.KeyspaceId) error {
bq := &tproto.BoundQuery{
Sql: vind.del,
BindVariables: map[string]interface{}{
vind.Column: id,
},
}
if _, err := vcursor.Execute(bq); err != nil {
return err
}
return nil
}
示例3: Generate
func (vind *HashVindex) Generate(vcursor planbuilder.VCursor) (id interface{}, err error) {
bq := &tproto.BoundQuery{
Sql: vind.ins,
BindVariables: map[string]interface{}{
vind.Column: nil,
},
}
result, err := vcursor.Execute(bq)
if err != nil {
return nil, err
}
return result.InsertId, err
}
示例4: Create
func (vind *LookupHashUnique) Create(vcursor planbuilder.VCursor, id interface{}, ksid key.KeyspaceId) error {
bq := &tproto.BoundQuery{
Sql: vind.ins,
BindVariables: map[string]interface{}{
vind.From: id,
vind.To: vunhash(ksid),
},
}
if _, err := vcursor.Execute(bq); err != nil {
return err
}
return nil
}
示例5: Generate
func (vind *LookupHashUnique) Generate(vcursor planbuilder.VCursor, ksid key.KeyspaceId) (id interface{}, err error) {
bq := &tproto.BoundQuery{
Sql: vind.ins,
BindVariables: map[string]interface{}{
vind.From: nil,
vind.To: vunhash(ksid),
},
}
result, err := vcursor.Execute(bq)
if err != nil {
return nil, err
}
return result.InsertId, err
}
示例6: Verify
func (vind *LookupHashUnique) Verify(vcursor planbuilder.VCursor, id interface{}, ksid key.KeyspaceId) (bool, error) {
bq := &tproto.BoundQuery{
Sql: vind.verify,
BindVariables: map[string]interface{}{
vind.From: id,
vind.To: vunhash(ksid),
},
}
result, err := vcursor.Execute(bq)
if err != nil {
return false, err
}
if len(result.Rows) == 0 {
return false, nil
}
return true, nil
}