Lines Matching refs:pCur
151 completion_cursor *pCur; in completionOpen() local
152 pCur = sqlite3_malloc( sizeof(*pCur) ); in completionOpen()
153 if( pCur==0 ) return SQLITE_NOMEM; in completionOpen()
154 memset(pCur, 0, sizeof(*pCur)); in completionOpen()
155 pCur->db = ((completion_vtab*)p)->db; in completionOpen()
156 *ppCursor = &pCur->base; in completionOpen()
163 static void completionCursorReset(completion_cursor *pCur){ in completionCursorReset() argument
164 sqlite3_free(pCur->zPrefix); pCur->zPrefix = 0; pCur->nPrefix = 0; in completionCursorReset()
165 sqlite3_free(pCur->zLine); pCur->zLine = 0; pCur->nLine = 0; in completionCursorReset()
166 sqlite3_finalize(pCur->pStmt); pCur->pStmt = 0; in completionCursorReset()
167 pCur->j = 0; in completionCursorReset()
194 completion_cursor *pCur = (completion_cursor*)cur; in completionNext() local
197 pCur->iRowid++; in completionNext()
198 while( pCur->ePhase!=COMPLETION_EOF ){ in completionNext()
199 switch( pCur->ePhase ){ in completionNext()
201 if( pCur->j >= sqlite3_keyword_count() ){ in completionNext()
202 pCur->zCurrentRow = 0; in completionNext()
203 pCur->ePhase = COMPLETION_DATABASES; in completionNext()
205 sqlite3_keyword_name(pCur->j++, &pCur->zCurrentRow, &pCur->szRow); in completionNext()
211 if( pCur->pStmt==0 ){ in completionNext()
212 sqlite3_prepare_v2(pCur->db, "PRAGMA database_list", -1, in completionNext()
213 &pCur->pStmt, 0); in completionNext()
220 if( pCur->pStmt==0 ){ in completionNext()
224 sqlite3_prepare_v2(pCur->db, "PRAGMA database_list", -1, &pS2, 0); in completionNext()
236 sqlite3_prepare_v2(pCur->db, zSql, -1, &pCur->pStmt, 0); in completionNext()
244 if( pCur->pStmt==0 ){ in completionNext()
248 sqlite3_prepare_v2(pCur->db, "PRAGMA database_list", -1, &pS2, 0); in completionNext()
262 sqlite3_prepare_v2(pCur->db, zSql, -1, &pCur->pStmt, 0); in completionNext()
272 if( pCur->zCurrentRow==0 ) continue; in completionNext()
274 if( sqlite3_step(pCur->pStmt)==SQLITE_ROW ){ in completionNext()
276 pCur->zCurrentRow = (const char*)sqlite3_column_text(pCur->pStmt, iCol); in completionNext()
277 pCur->szRow = sqlite3_column_bytes(pCur->pStmt, iCol); in completionNext()
280 sqlite3_finalize(pCur->pStmt); in completionNext()
281 pCur->pStmt = 0; in completionNext()
282 pCur->ePhase = eNextPhase; in completionNext()
286 if( pCur->nPrefix==0 ) break; in completionNext()
287 if( pCur->nPrefix<=pCur->szRow in completionNext()
288 && sqlite3_strnicmp(pCur->zPrefix, pCur->zCurrentRow, pCur->nPrefix)==0 in completionNext()
306 completion_cursor *pCur = (completion_cursor*)cur; in completionColumn() local
309 sqlite3_result_text(ctx, pCur->zCurrentRow, pCur->szRow,SQLITE_TRANSIENT); in completionColumn()
313 sqlite3_result_text(ctx, pCur->zPrefix, -1, SQLITE_TRANSIENT); in completionColumn()
317 sqlite3_result_text(ctx, pCur->zLine, -1, SQLITE_TRANSIENT); in completionColumn()
321 sqlite3_result_int(ctx, pCur->ePhase); in completionColumn()
333 completion_cursor *pCur = (completion_cursor*)cur; in completionRowid() local
334 *pRowid = pCur->iRowid; in completionRowid()
343 completion_cursor *pCur = (completion_cursor*)cur; in completionEof() local
344 return pCur->ePhase >= COMPLETION_EOF; in completionEof()
358 completion_cursor *pCur = (completion_cursor *)pVtabCursor; in completionFilter() local
362 completionCursorReset(pCur); in completionFilter()
364 pCur->nPrefix = sqlite3_value_bytes(argv[iArg]); in completionFilter()
365 if( pCur->nPrefix>0 ){ in completionFilter()
366 pCur->zPrefix = sqlite3_mprintf("%s", sqlite3_value_text(argv[iArg])); in completionFilter()
367 if( pCur->zPrefix==0 ) return SQLITE_NOMEM; in completionFilter()
372 pCur->nLine = sqlite3_value_bytes(argv[iArg]); in completionFilter()
373 if( pCur->nLine>0 ){ in completionFilter()
374 pCur->zLine = sqlite3_mprintf("%s", sqlite3_value_text(argv[iArg])); in completionFilter()
375 if( pCur->zLine==0 ) return SQLITE_NOMEM; in completionFilter()
378 if( pCur->zLine!=0 && pCur->zPrefix==0 ){ in completionFilter()
379 int i = pCur->nLine; in completionFilter()
380 while( i>0 && (isalnum(pCur->zLine[i-1]) || pCur->zLine[i-1]=='_') ){ in completionFilter()
383 pCur->nPrefix = pCur->nLine - i; in completionFilter()
384 if( pCur->nPrefix>0 ){ in completionFilter()
385 pCur->zPrefix = sqlite3_mprintf("%.*s", pCur->nPrefix, pCur->zLine + i); in completionFilter()
386 if( pCur->zPrefix==0 ) return SQLITE_NOMEM; in completionFilter()
389 pCur->iRowid = 0; in completionFilter()
390 pCur->ePhase = COMPLETION_FIRST_PHASE; in completionFilter()