I modified row in function:

sqlite3_result_text(ctx,(const char*)ret, 4, SQLITE_TRANSIENT);

I know that dimension is 4, but my shell don't return values for extension 
function also with half.c example copied from wiki:

bash-3.1# gcc -shared half.c -o half.so  
bash-3.1# sqlite3
SQLite version 3.5.7
Enter ".help" for instructions
sqlite> select load_extension('/root/half.so')
   ...> select half(7)
   ...> select half(7);
SQL error: near "select": syntax error
sqlite> select half(7) 
   ...> 

half.c is below:

    #include <sqlite3ext.h>
    SQLITE_EXTENSION_INIT1

    /*
    ** The half() SQL function returns half of its input value.
    */
    static void halfFunc(
      sqlite3_context *context,
      int argc,
      sqlite3_value **argv
    ){
      sqlite3_result_double(context, 0.5*sqlite3_value_double(argv[0]));
    }

    /* SQLite invokes this routine once when it loads the extension.
    ** Create new functions, collating sequences, and virtual table
    ** modules here.  This is usually the only exported symbol in
    ** the shared library.
    */
    int sqlite3_extension_init(
      sqlite3 *db,
      char **pzErrMsg,
      const sqlite3_api_routines *pApi
    ){
      SQLITE_EXTENSION_INIT2(pApi)
      sqlite3_create_function(db, "half", 1, SQLITE_ANY, 0, halfFunc, 0, 0);
      return 0;
    }




       
---------------------------------
Inviato da Yahoo! Mail.
La casella di posta intelligente.
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to