static void
execQuery(ftsDB* adb, char ** words, int flags) {
ftsPG *db = (ftsPG*)adb;
- const char *paramValues[1];
int i = 0;
PGresult *res;
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 -