class DuckDB::Expression

during the bind phase of a scalar function.
Instances are returned by DuckDB::ScalarFunction::BindInfo#get_argument
DuckDB::Expression represents a DuckDB expression object.

def fold(client_context)

end
value = expr.fold(client_context) # => DuckDB::Value
client_context = bind_info.client_context
expr = bind_info.get_argument(0)
sf.set_bind do |bind_info|

Raises DuckDB::Error if the expression is not foldable.
holding the constant result.
Evaluates the expression at planning time and returns a DuckDB::Value
def fold(client_context)
  raise DuckDB::Error, 'expression is not foldable' unless foldable?
  _fold(client_context)
end