func (ic *IfConditional) Expressions() []sql.Expression {
	return []sql.Expression{ic.Condition}
}
Expressions implements the sql.Expressioner interface.
package plan
import (
	"fmt"
	"github.com/dolthub/go-mysql-server/sql"
)
type IfConditional struct {
	Condition sql.Expression
	Body      sql.Node
}
var _ sql.Node = (*IfConditional)(nil)
var _ sql.DebugStringer = (*IfConditional)(nil)
var _ sql.Expressioner = (*IfConditional)(nil)
func NewIfConditional(condition sql.Expression, body sql.Node) *IfConditional {
	return &IfConditional{
		Condition: condition,
		Body:      body,
	}
}
func (ic *IfConditional) Resolved() bool {
	return ic.Condition.Resolved() && ic.Body.Resolved()
}
func (ic *IfConditional) String() string {
	p := sql.NewTreePrinter()
	_ = p.WriteNode(fmt.Sprintf("IF(%s)", ic.Condition.String()))
	_ = p.WriteChildren(ic.Body.String())
	return p.String()
}
func (ic *IfConditional) DebugString() string {
	p := sql.NewTreePrinter()
	_ = p.WriteNode(fmt.Sprintf("IF(%s)", sql.DebugString(ic.Condition)))
	_ = p.WriteChildren(sql.DebugString(ic.Body))
	return p.String()
}
func (ic *IfConditional) Schema() sql.Schema {
	return ic.Body.Schema()
}
func (ic *IfConditional) Children() []sql.Node {
	return []sql.Node{ic.Body}
}
func (ic *IfConditional) WithChildren(children ...sql.Node) (sql.Node, error) {
	if len(children) != 1 {
		return nil, sql.ErrInvalidChildrenNumber.New(ic, len(children), 1)
	}
	nic := *ic
	nic.Body = children[0]
	return &nic, nil
}