Small optimizing of query generation
[ftsbench.git] / pgdriver.c
index 0c4c59d..0f01827 100644 (file)
@@ -194,7 +194,6 @@ checkEmptyQuery(ftsPG *db, PGresult *res) {
 static void
 execQuery(ftsDB* adb, char ** words, int flags) {
        ftsPG *db = (ftsPG*)adb; 
-       const char      *paramValues[1];
        int i = 0;
        PGresult *res;
 
@@ -224,25 +223,25 @@ execQuery(ftsDB* adb, char ** words, int flags) {
                if ( i!= 0 ) 
                        sb_add(&db->b, (db->flags & FLG_OR) ? " | '" : " & '", 4);
                else
-                       sb_add(&db->b, "'", 1);
+                       sb_addchar(&db->b, '\'');
 
                while( *ptr ) {
                        if (*ptr == '\'')
-                               sb_add(&db->b, "'", 1);
-                       sb_add(&db->b, ptr, 1);
+                               sb_addchar(&db->b, '\'');
+                       sb_addchar(&db->b, *ptr);
                        ptr++;
                }
-               sb_add(&db->b, "'", 1);
+               sb_addchar(&db->b, '\'');
 
                i++;
                        
                words++;
        }
-       paramValues[0] = db->b.str;
+       i = 1;
 
        res = PQexecPrepared( db->conn, "search_ftsbench",
-                                                1, paramValues,
-                                                NULL, NULL, 0);
+                                                1, (const char**)&(db->b.str),
+                                                &(db->b.strlen), &i, 0);
 
        if (PQresultStatus(res) != PGRES_TUPLES_OK) {
                /* skip error ' all words are a stop word' for GIN index -