~starbuggers/sakila-server/mysql-5.1-wl820

« back to all changes in this revision

Viewing changes to plugin/perl_udf/typemap

  • Committer: Antony T Curtis
  • Date: 2008-04-10 06:09:05 UTC
  • mto: (2542.76.4 mysql-5.1-wl820)
  • mto: This revision was merged to the branch mainline in revision 2772.
  • Revision ID: antony@anubis.xiphis.org-20080410060905-itpom5iyz8ae4dhh
Initial import into Bazaar repository

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
TYPEMAP
 
2
int             T_IV
 
3
double          T_DOUBLE
 
4
char *          T_PV
 
5
const char *    T_PV
 
6
bool            T_BOOL
 
7
long long       O_LONGLONG
 
8
MySQLCallback*  O_MYSQLUDF
 
9
 
 
10
 
 
11
 
 
12
OUTPUT
 
13
T_IV
 
14
        sv_setiv($arg, (IV)$var);
 
15
T_DOUBLE
 
16
        sv_setnv($arg, (double)$var);
 
17
T_PV
 
18
        sv_setpv((SV*)$arg, $var);
 
19
T_BOOL
 
20
        $arg= boolSV( $var );
 
21
O_LONGLONG
 
22
        sv_setiv($arg, (IV)$var);
 
23
O_MYSQLUDF
 
24
        sv_setrev_pv( $arg, \"MySQLUDF\", (void*)$var );
 
25
 
 
26
INPUT
 
27
T_IV
 
28
        $var= ($type)SvIV( $arg )
 
29
T_DOUBLE
 
30
        $var= ($type)SvNV( $arg )
 
31
T_PV
 
32
        $var= ($type)SvPV_nolen( $arg )
 
33
T_BOOL
 
34
        $var= (bool)SvTRUE( $arg )
 
35
O_LONGLONG
 
36
        if (1)
 
37
        {
 
38
                int error= 0;
 
39
                $var= ($type)my_strtoll10(SvPV_nolen( $arg ), (char**) 0, &error);
 
40
                if (error == ERANGE || error == EDOM)
 
41
                {
 
42
                        warn( \"${Package}::$func_name() -- $var is not a valid integer value \" );
 
43
                        XSRETURN_UNDEF;
 
44
                }
 
45
        }
 
46
O_MYSQLUDF
 
47
        if ( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) )
 
48
                $var= ($type)SvIV((SV*)SvRV( $arg ));
 
49
        else
 
50
        {
 
51
                warn( \"${Package}::$func_name() -- $var is not a blessed SV reference \" );
 
52
                XSRETURN_UNDEF;
 
53
        }