예제 #1
0
파일: evaluator.go 프로젝트: pingcap/tidb
func (e *Evaluator) values(v *ast.ValuesExpr) bool {
	values := e.ctx.GetSessionVars().CurrInsertValues
	if values == nil {
		e.err = errors.New("Session current insert values is nil")
		return false
	}

	row := values.([]types.Datum)
	off := v.Column.Refer.Column.Offset
	if len(row) > off {
		v.SetDatum(row[off])
		return true
	}

	e.err = errors.Errorf("Session current insert values len %d and column's offset %v don't match", len(row), off)
	return false
}
예제 #2
0
func (e *Evaluator) values(v *ast.ValuesExpr) bool {
	v.SetDatum(*v.Column.GetDatum())
	return true
}
예제 #3
0
func (v *typeInferrer) handleValuesExpr(x *ast.ValuesExpr) {
	x.SetType(x.Column.GetType())
}