X-Git-Url: http://sigaev.ru/git/gitweb.cgi?p=ftsbench.git;a=blobdiff_plain;f=mysqldriver.c;fp=mysqldriver.c;h=2ad7cea25bc5829c1f76a4d2df109923ff7aaf18;hp=6e0bab99f2724579f4e005d7517ab64ee08b0f0b;hb=1e58e6abeab12d724c3d3a8a67394a38324767a3;hpb=963707b86d1b7c29ce3c62fbb11eebbc4de04dd7 diff --git a/mysqldriver.c b/mysqldriver.c index 6e0bab9..2ad7cea 100644 --- a/mysqldriver.c +++ b/mysqldriver.c @@ -58,21 +58,15 @@ execQuery(ftsDB *adb, char **words, int flags) { if ( db->prepareStmt == NULL ) { db->prepareStmt = mysql_stmt_init(db->conn); - if ( db->prepareStmt == NULL ) { - fprintf(stderr,"mysql_stmt_init failed: %s\n", mysql_error(db->conn)); - exit(1); - } + if ( db->prepareStmt == NULL ) + fatal("mysql_stmt_init failed: %s\n", mysql_error(db->conn)); #define SEARCH_QUERY "SELECT count(*) FROM ftsbench WHERE MATCH(body) AGAINST ( ? IN BOOLEAN MODE);" - if ( mysql_stmt_prepare( db->prepareStmt, SEARCH_QUERY, strlen(SEARCH_QUERY) ) != 0 ) { - fprintf(stderr,"mysql_stmt_init failed: %s\n", mysql_error(db->conn)); - exit(1); - } + if ( mysql_stmt_prepare( db->prepareStmt, SEARCH_QUERY, strlen(SEARCH_QUERY) ) != 0 ) + fatal("mysql_stmt_init failed: %s\n", mysql_error(db->conn)); - if ( mysql_stmt_param_count(db->prepareStmt) != 1 ) { - fprintf(stderr,"mysql_stmt_param_count: invalid parameter count\n"); - exit(1); - } + if ( mysql_stmt_param_count(db->prepareStmt) != 1 ) + fatal("mysql_stmt_param_count: invalid parameter count\n"); memset(&datain, 0, sizeof(MYSQL_BIND)); datain.buffer_type = MYSQL_TYPE_BLOB; @@ -103,37 +97,26 @@ execQuery(ftsDB *adb, char **words, int flags) { datain.buffer = db->b.str; datain.buffer_length = db->b.strlen; - if ( mysql_stmt_bind_param(db->prepareStmt, &datain) ) { - fprintf(stderr,"mysql_stmt_bind_param failed: %s\n", mysql_error(db->conn)); - exit(1); - } + if ( mysql_stmt_bind_param(db->prepareStmt, &datain) ) + fatal("mysql_stmt_bind_param failed: %s\n", mysql_error(db->conn)); res = mysql_stmt_result_metadata(db->prepareStmt); - if ( !res ) { - fprintf(stderr,"mysql_stmt_result_metadata failed: %s\n", mysql_error(db->conn)); - exit(1); - } + if ( !res ) + fatal("mysql_stmt_result_metadata failed: %s\n", mysql_error(db->conn)); - if ( mysql_stmt_execute( db->prepareStmt ) ) { - fprintf(stderr,"mysql_stmt_execute failed: %s\n", mysql_error(db->conn)); - exit(1); - } + if ( mysql_stmt_execute( db->prepareStmt ) ) + fatal("mysql_stmt_execute failed: %s\n", mysql_error(db->conn)); - if (mysql_stmt_bind_result( db->prepareStmt, &dataout)) { - fprintf(stderr,"mysql_stmt_bind_result failed: %s\n", mysql_error(db->conn)); - exit(1); - } + if (mysql_stmt_bind_result( db->prepareStmt, &dataout)) + fatal("mysql_stmt_bind_result failed: %s\n", mysql_error(db->conn)); - if ( mysql_stmt_store_result( db->prepareStmt ) ) { - fprintf(stderr,"mysql_stmt_store_result failed: %s\n", mysql_error(db->conn)); - exit(1); - } + if ( mysql_stmt_store_result( db->prepareStmt ) ) + fatal("mysql_stmt_store_result failed: %s\n", mysql_error(db->conn)); if ( !mysql_stmt_fetch( db->prepareStmt) ) { db->db.nres += intout; } else { - fprintf(stderr,"mysql_stmt_fetch returns void result\n"); - exit(1); + fatal("mysql_stmt_fetch returns void result\n"); } mysql_free_result(res); @@ -154,15 +137,11 @@ startCreateScheme(ftsDB *adb, int flags) { if ( flags & (FLG_GIN | FLG_GIST) ) report("MySQL doesn't distinguish 'gin' and 'gist' flags\n"); - if ( mysql_query(db->conn, "DROP TABLE IF EXISTS ftsbench CASCADE;")!= 0 ) { - fprintf(stderr,"mysql_query failed: %s\n", mysql_error(db->conn)); - exit(1); - } + if ( mysql_query(db->conn, "DROP TABLE IF EXISTS ftsbench CASCADE;")!= 0 ) + fatal("mysql_query failed: %s\n", mysql_error(db->conn)); - if ( mysql_query(db->conn, "CREATE TABLE ftsbench (id int not null, body text) ENGINE MyISAM;")!= 0 ) { - fprintf(stderr,"mysql_query failed: %s\n", mysql_error(db->conn)); - exit(1); - } + if ( mysql_query(db->conn, "CREATE TABLE ftsbench (id int not null, body text) ENGINE MyISAM;")!= 0 ) + fatal("mysql_query failed: %s\n", mysql_error(db->conn)); } static void @@ -172,19 +151,15 @@ finishCreateScheme(ftsDB *adb) { if ( db->flags & (FLG_GIN | FLG_GIST) ) { report("(create index, "); - if ( mysql_query(db->conn, "CREATE FULLTEXT INDEX fts ON ftsbench (body);")!= 0 ) { - fprintf(stderr,"mysql_query failed: %s\n", mysql_error(db->conn)); - exit(1); - } + if ( mysql_query(db->conn, "CREATE FULLTEXT INDEX fts ON ftsbench (body);")!= 0 ) + fatal("mysql_query failed: %s\n", mysql_error(db->conn)); } else report("("); report("optimize"); - if ( mysql_query(db->conn, "OPTIMIZE TABLE ftsbench;")!= 0 ) { - fprintf(stderr,"mysql_query failed: %s\n", mysql_error(db->conn)); - exit(1); - } + if ( mysql_query(db->conn, "OPTIMIZE TABLE ftsbench;")!= 0 ) + fatal("mysql_query failed: %s\n", mysql_error(db->conn)); report(") "); } @@ -197,21 +172,15 @@ InsertRow(ftsDB *adb, int id, char *txt) { if ( db->prepareStmt == NULL ) { db->prepareStmt = mysql_stmt_init(db->conn); - if ( db->prepareStmt == NULL ) { - fprintf(stderr,"mysql_stmt_init failed: %s\n", mysql_error(db->conn)); - exit(1); - } + if ( db->prepareStmt == NULL ) + fatal("mysql_stmt_init failed: %s\n", mysql_error(db->conn)); #define INSERT_QUERY "INSERT INTO ftsbench (id, body) VALUES ( ? , ? );" - if ( mysql_stmt_prepare( db->prepareStmt, INSERT_QUERY, strlen(INSERT_QUERY) ) != 0 ) { - fprintf(stderr,"mysql_stmt_init failed: %s\n", mysql_error(db->conn)); - exit(1); - } + if ( mysql_stmt_prepare( db->prepareStmt, INSERT_QUERY, strlen(INSERT_QUERY) ) != 0 ) + fatal("mysql_stmt_init failed: %s\n", mysql_error(db->conn)); - if ( mysql_stmt_param_count(db->prepareStmt) != 2 ) { - fprintf(stderr,"mysql_stmt_param_count: invalid parameter count\n"); - exit(1); - } + if ( mysql_stmt_param_count(db->prepareStmt) != 2 ) + fatal("mysql_stmt_param_count: invalid parameter count\n"); memset(data, 0, sizeof(data)); data[0].buffer_type = MYSQL_TYPE_LONG; @@ -226,15 +195,11 @@ InsertRow(ftsDB *adb, int id, char *txt) { data[1].buffer = txt; data[1].buffer_length = txtlen; - if ( mysql_stmt_bind_param(db->prepareStmt, data) ) { - fprintf(stderr,"mysql_stmt_bind_param failed: %s\n", mysql_error(db->conn)); - exit(1); - } + if ( mysql_stmt_bind_param(db->prepareStmt, data) ) + fatal("mysql_stmt_bind_param failed: %s\n", mysql_error(db->conn)); - if ( mysql_stmt_execute( db->prepareStmt ) ) { - fprintf(stderr,"mysql_stmt_execute failed: %s\n", mysql_error(db->conn)); - exit(1); - } + if ( mysql_stmt_execute( db->prepareStmt ) ) + fatal("mysql_stmt_execute failed: %s\n", mysql_error(db->conn)); } static void @@ -252,10 +217,8 @@ MYInit(char * connstr) { db->conn = mysql_init(NULL); - if ( !mysql_real_connect(db->conn, NULL, NULL, NULL, connstr, 0, NULL, 0) ) { - fprintf(stderr,"mysql_real_connect failed: %s\n", mysql_error(db->conn)); - exit(1); - } + if ( !mysql_real_connect(db->conn, NULL, NULL, NULL, connstr, 0, NULL, 0) ) + fatal("mysql_real_connect failed: %s\n", mysql_error(db->conn)); db->db.execQuery = execQuery; db->db.startCreateScheme = startCreateScheme;