func (r *RegexpLike) Children() []sql.Expression {
	var result = []sql.Expression{r.Text, r.Pattern}
	if r.Flags != nil {
		result = append(result, r.Flags)
	}
	return result
}
Children implements the sql.Expression interface.
package function
import (
	"fmt"
	"regexp"
	"strings"
	"sync"
	"sync/atomic"
	"github.com/dolthub/go-mysql-server/sql"
	"github.com/dolthub/go-mysql-server/sql/expression"
)
type RegexpLike struct {
	Text    sql.Expression
	Pattern sql.Expression
	Flags   sql.Expression
	cachedVal   atomic.Value
	re          *regexp.Regexp
	compileOnce sync.Once
	compileErr  error
}
var _ sql.FunctionExpression = (*RegexpLike)(nil)
func NewRegexpLike(args ...sql.Expression) (sql.Expression, error) {
	var r *RegexpLike
	switch len(args) {
	case 3:
		r = &RegexpLike{
			Text:    args[0],
			Pattern: args[1],
			Flags:   args[2],
		}
	case 2:
		r = &RegexpLike{
			Text:    args[0],
			Pattern: args[1],
		}
	default:
		return nil, sql.ErrInvalidArgumentNumber.New("regexp_like", "2 or 3", len(args))
	}
	return r, nil
}
func (r *RegexpLike) FunctionName() string {
	return "regexp_like"
}
func (r *RegexpLike) Type() sql.Type { return sql.Int8 }
func (r *RegexpLike) IsNullable() bool { return true }