예제 #1
0
파일: builder.go 프로젝트: anywhy/tidb
func (b *executorBuilder) buildLimit(v *plan.Limit) Executor {
	src := b.build(v.GetChildByIndex(0))
	e := &LimitExec{
		Src:    src,
		Offset: v.Offset,
		Count:  v.Count,
		schema: v.GetSchema(),
	}
	return e
}
예제 #2
0
파일: builder.go 프로젝트: c4pt0r/tidb
func (b *executorBuilder) buildLimit(v *plan.Limit) Executor {
	src := b.build(v.GetChildByIndex(0))
	if x, ok := src.(NewXExecutor); ok {
		if x.AddLimit(v) && v.Offset == 0 {
			return src
		}
	}
	e := &LimitExec{
		Src:    src,
		Offset: v.Offset,
		Count:  v.Count,
		schema: v.GetSchema(),
	}
	return e
}