slavas490 / v8-juice

code.google.com/p/v8-juice
Other
0 stars 0 forks source link

sqlite3 plugin does not compile on x86/64 #25

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
The sqlite3 plugin doesn't compile on x86/64 due to ambiguities involving 
(long) and (int64_t). The fix would seem to be something to the long/int64 
hackery introduced into the convert namespace late last year, but i won't 
be able to take a closer look at it for the foreseeable future. My access 
to the 64-bit machine is limited. (Well, not so limited, but i'm generally 
supposed to be WORKING when i'm on that machine.)

stephan@host:~/cvs/v8-juice/extra-plugins/src/sqlite3$ make
+ g++ -g3 -Wall -fPIC -I/home/stephan/include -c -o v8-attempt2.o v8-
attempt2.cc
v8-attempt2.cc: In member function 'v8::Handle<v8::Value> 
StmtWrapper::bindNum(int, T) [with T = long int]':
v8-attempt2.cc:847:   instantiated from here
v8-attempt2.cc:235: error: call of overloaded 'bind(int&, long int&)' is 
ambiguous
sq3.hpp:1123: note: candidates are: int sq3::statement::bind(int, int)
sq3.hpp:1128: note:                 int sq3::statement::bind(int, 
sq3::int64_t)
sq3.hpp:1133: note:                 int sq3::statement::bind(int, double)
sq3.hpp:1149: note:                 int sq3::statement::bind(int, const 
std::string&) <near match>
sq3.hpp:1173: note:                 int sq3::statement::bind(const char*, 
int) <near match>
sq3.hpp:1178: note:                 int sq3::statement::bind(const char*, 
sq3::int64_t) <near match>
sq3.hpp:1183: note:                 int sq3::statement::bind(const char*, 
double) <near match>
sq3.hpp:1201: note:                 int sq3::statement::bind(const char*, 
const std::string&) <near match>
v8-attempt2.cc: In member function 'v8::Handle<v8::Value> 
DBWrapper::executeT(const std::string&) [with T = long int]':
v8-attempt2.cc:997:   instantiated from here
v8-attempt2.cc:197: error: invalid conversion from 'long int' to 'int 
(*)(void*, int, char**, char**)'
v8-attempt2.cc:197: error:   initializing argument 2 of 'int 
sq3::database::execute(const std::string&, int (*)(void*, int, char**, 
char**), void*)'
v8-attempt2.cc: In member function 'v8::Handle<v8::Value> 
CursorWrapper::getT(int) [with GetType = long int]':
v8-attempt2.cc:1044:   instantiated from here
v8-attempt2.cc:320: error: no matching function for call to 
'sq3::cursor::get(int&, long int&)'
sq3.hpp:861: note: candidates are: int sq3::cursor::get(int, int&)
sq3.hpp:865: note:                 int sq3::cursor::get(int, sq3::int64_t&)
sq3.hpp:869: note:                 int sq3::cursor::get(int, double&)
sq3.hpp:873: note:                 int sq3::cursor::get(int, std::string&)
sq3.hpp:886: note:                 int sq3::cursor::get(int, const 
sq3::sqlite3_text_char_t**, int&)
sq3.hpp:891: note:                 int sq3::cursor::get(int, const void**, 
int&)
sq3.hpp:911: note:                 int sq3::cursor::get(const std::string&, 
int&)
sq3.hpp:915: note:                 int sq3::cursor::get(const std::string&, 
sq3::int64_t&)
sq3.hpp:919: note:                 int sq3::cursor::get(const std::string&, 
double&)
sq3.hpp:923: note:                 int sq3::cursor::get(const std::string&, 
std::string&)
sq3.hpp:936: note:                 int sq3::cursor::get(const std::string&, 
const sq3::sqlite3_text_char_t**, int&)
sq3.hpp:941: note:                 int sq3::cursor::get(const std::string&, 
const void**, int&)
v8-attempt2.cc: At global scope:
v8-attempt2.cc:1160: warning: 'SetupSQ3_v8_plugin_static_initializer' 
defined but not used

Original issue reported on code.google.com by sgbeal@googlemail.com on 4 Jun 2010 at 2:46

GoogleCodeExporter commented 8 years ago
fixed in edge branch r1201, and requires the sqlite3 plugin version r1202+.

Original comment by sgbeal@googlemail.com on 6 Jun 2010 at 3:59