class DuckDB::PreparedStatement

def bind_with_index(index, value)

def bind_with_index(index, value)
  case value
  when NilClass
    bind_null(index)
  when Float
    bind_double(index, value)
  when Integer
    case value
    when RANGE_INT64
      bind_int64(index, value)
    else
      bind_varchar(index, value.to_s)
    end
  when String
    blob?(value) ? bind_blob(index, value) : bind_varchar(index, value)
  when TrueClass, FalseClass
    bind_bool(index, value)
  when Time
    bind_varchar(index, value.strftime('%Y-%m-%d %H:%M:%S.%N'))
  when Date
    bind_varchar(index, value.strftime('%Y-%m-%d'))
  when BigDecimal
    bind_decimal(index, value)
  else
    raise(DuckDB::Error, "not supported type `#{value}` (#{value.class})")
  end
end