I have a program prototyped in PHP that works fine, but when I convert it to C using libmysqlclient the program fails inside the mysqlclient library with a segmentation fault on a particular query. It fails on two different platforms (Linux and Mac OS X).
The database I'm using is very simple: mysql> describe documents; +-------------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+------------------+------+-----+---------+----------------+ | document_id | int(10) unsigned | | PRI | NULL | auto_increment | | document | varchar(255) | | UNI | | | +-------------+------------------+------+-----+---------+----------------+ mysql> describe words; +---------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------+------------------+------+-----+---------+----------------+ | word_id | int(10) unsigned | | PRI | NULL | auto_increment | | word | varchar(255) | | UNI | | | +---------+------------------+------+-----+---------+----------------+ mysql> describe main_index; +-------------+------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+------------------+------+-----+---------+-------+ | document_id | int(10) unsigned | | PRI | 0 | | | sequence | int(10) unsigned | | PRI | 0 | | | word_id | int(10) unsigned | | MUL | 0 | | +-------------+------------------+------+-----+---------+-------+ mysql> select distinct document from documents, main_index, words where words.word="hello" and documents.document_id=main_index.document_id and main_index.word_id=words.word_id; +----------+ | document | +----------+ | market1 | | market2 | | market3 | | market4 | +----------+ If I build and run this same query in PHP it also works correctly but when I do it using the C library it core dumps. Other simpler queries do work correctly. Using gdb, I get: (gdb) r Starting program: /home/bill/indexer/t.server Program received signal SIGSEGV, Segmentation fault. 0x4002d26b in simple_command () from /usr/local/mysql/lib/mysql/libmysqlclient.so.10 (gdb) where #0 0x4002d26b in simple_command () from /usr/local/mysql/lib/mysql/libmysqlclient.so.10 #1 0x4003021f in mysql_real_query () from /usr/local/mysql/lib/mysql/libmysqlclient.so.10 #2 0x400301be in mysql_query () from /usr/local/mysql/lib/mysql/libmysqlclient.so.10 #3 0x0804e846 in mydb_query ( query=0xbffff130 "select distinct document from documents, main_index, words where words.word=\"hello\" and documents.document_id=main_index.document_id and main_index.word_id=words.word_id") at query.c:30 #4 0x0804e566 in search_start (word=0x807da87 "hello") at search.c:18 #5 0x0804e6fa in do_search (argc=3, argv=0x8051900) at search.c:72 #6 0x0804a9ca in interact () at server.c:745 #7 0x0804af84 in main (argc=1, argv=0xbffffacc) at server.c:903 #8 0x40060177 in __libc_start_main (main=0x804aa14 <main>, argc=1, I tried calling mysql_real_query directly but that didn't fix anything. Bill -- Bill Rausch, Software Development, UNIX, Mac, Windows Numerical Applications, Richland, WA 509-943-0861 --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php