/**
* call-seq:
* function_type( db, name, type ) -> nil
*
* Allows you to specify the type of the data that the named function returns. If
* type is SQLite::API::NUMERIC, then the function is expected to return a numeric
* value. If it is SQLite::API::TEXT, then the function is expected to return a
* textual value. If it is SQLite::API::ARGS, then the function returns whatever its
* arguments are. And if it is a positive (or zero) integer, then the function
* returns whatever type the argument at that position is.
*/
static VALUE
static_api_function_type( VALUE module, VALUE db, VALUE name, VALUE type )
{
sqlite *handle;
int result;
GetDB( handle, db );
Check_Type( name, T_STRING );
Check_Type( type, T_FIXNUM );
result = sqlite_function_type( handle,
StringValuePtr( name ),
FIX2INT( type ) );
if( result != SQLITE_OK )
{
static_raise_db_error( result, "function type %s(%d)",
StringValuePtr(name), FIX2INT(type) );
/* "raise" does not return */
}
return Qnil;
}