Lines Matching refs:pRec

76953     UnpackedRecord *pRec = p->ppRec[0];
76955 if( pRec==0 ){
76962 pRec = (UnpackedRecord*)sqlite3DbMallocZero(db, nByte);
76963 if( pRec ){
76964 pRec->pKeyInfo = sqlite3KeyInfoOfIndex(p->pParse, pIdx);
76965 if( pRec->pKeyInfo ){
76966 assert( pRec->pKeyInfo->nAllField==nCol );
76967 assert( pRec->pKeyInfo->enc==ENC(db) );
76968 pRec->aMem = (Mem *)((u8*)pRec + ROUND8(sizeof(UnpackedRecord)));
76970 pRec->aMem[i].flags = MEM_Null;
76971 pRec->aMem[i].db = db;
76974 sqlite3DbFreeNN(db, pRec);
76975 pRec = 0;
76978 if( pRec==0 ) return 0;
76979 p->ppRec[0] = pRec;
76982 pRec->nField = p->iVal+1;
76983 return &pRec->aMem[p->iVal];
77429 const void *pRec, /* Pointer to buffer containing record */
77440 u8 *a = (u8*)pRec; /* Typecast byte array */
77472 SQLITE_PRIVATE void sqlite3Stat4ProbeFree(UnpackedRecord *pRec){
77473 if( pRec ){
77475 int nCol = pRec->pKeyInfo->nAllField;
77476 Mem *aMem = pRec->aMem;
77481 sqlite3KeyInfoUnref(pRec->pKeyInfo);
77482 sqlite3DbFreeNN(db, pRec);
85334 static int alsoAnInt(Mem *pRec, double rValue, i64 *piValue){
85340 return 0==sqlite3Atoi64(pRec->z, piValue, pRec->n, pRec->enc);
85358 static void applyNumericAffinity(Mem *pRec, int bTryForInt){
85360 u8 enc = pRec->enc;
85362 assert( (pRec->flags & (MEM_Str|MEM_Int|MEM_Real|MEM_IntReal))==MEM_Str );
85363 rc = sqlite3AtoF(pRec->z, &rValue, pRec->n, enc);
85365 if( rc==1 && alsoAnInt(pRec, rValue, &pRec->u.i) ){
85366 pRec->flags |= MEM_Int;
85368 pRec->u.r = rValue;
85369 pRec->flags |= MEM_Real;
85370 if( bTryForInt ) sqlite3VdbeIntegerAffinity(pRec);
85376 pRec->flags &= ~MEM_Str;
85399 Mem *pRec, /* The value to apply affinity to */
85406 if( (pRec->flags & MEM_Int)==0 ){ /*OPTIMIZATION-IF-FALSE*/
85407 if( (pRec->flags & MEM_Real)==0 ){
85408 if( pRec->flags & MEM_Str ) applyNumericAffinity(pRec,1);
85410 sqlite3VdbeIntegerAffinity(pRec);
85419 if( 0==(pRec->flags&MEM_Str) ){ /*OPTIMIZATION-IF-FALSE*/
85420 if( (pRec->flags&(MEM_Real|MEM_Int|MEM_IntReal)) ){
85421 testcase( pRec->flags & MEM_Int );
85422 testcase( pRec->flags & MEM_Real );
85423 testcase( pRec->flags & MEM_IntReal );
85424 sqlite3VdbeMemStringify(pRec, enc, 1);
85427 pRec->flags &= ~(MEM_Real|MEM_Int|MEM_IntReal);
88045 Mem *pRec; /* The new record */
88096 pRec = pData0;
88098 applyAffinity(pRec, zAffinity[0], encoding);
88099 if( zAffinity[0]==SQLITE_AFF_REAL && (pRec->flags & MEM_Int) ){
88100 pRec->flags |= MEM_IntReal;
88101 pRec->flags &= ~(MEM_Int);
88103 REGISTER_TRACE((int)(pRec-aMem), pRec);
88105 pRec++;
88106 assert( zAffinity[0]==0 || pRec<=pLast );
88150 pRec = pLast;
88152 assert( memIsValid(pRec) );
88153 if( pRec->flags & MEM_Null ){
88154 if( pRec->flags & MEM_Zero ){
88162 pRec->uTemp = 10;
88164 pRec->uTemp = 0;
88167 }else if( pRec->flags & (MEM_Int|MEM_IntReal) ){
88169 i64 i = pRec->u.i;
88171 testcase( pRec->flags & MEM_Int );
88172 testcase( pRec->flags & MEM_IntReal );
88186 pRec->uTemp = 8+(u32)uu;
88189 pRec->uTemp = 1;
88193 pRec->uTemp = 2;
88196 pRec->uTemp = 3;
88199 pRec->uTemp = 4;
88202 pRec->uTemp = 5;
88205 if( pRec->flags & MEM_IntReal ){
88209 pRec->u.r = (double)pRec->u.i;
88210 pRec->flags &= ~MEM_IntReal;
88211 pRec->flags |= MEM_Real;
88212 pRec->uTemp = 7;
88214 pRec->uTemp = 6;
88217 }else if( pRec->flags & MEM_Real ){
88220 pRec->uTemp = 7;
88222 assert( db->mallocFailed || pRec->flags&(MEM_Str|MEM_Blob) );
88223 assert( pRec->n>=0 );
88224 len = (u32)pRec->n;
88225 serial_type = (len*2) + 12 + ((pRec->flags & MEM_Str)!=0);
88226 if( pRec->flags & MEM_Zero ){
88227 serial_type += pRec->u.nZero*2;
88229 if( sqlite3VdbeMemExpandBlob(pRec) ) goto no_mem;
88230 len += pRec->u.nZero;
88232 nZero += pRec->u.nZero;
88237 pRec->uTemp = serial_type;
88239 if( pRec==pData0 ) break;
88240 pRec--;
88292 pRec = pData0;
88294 serial_type = pRec->uTemp;
88300 zPayload += sqlite3VdbeSerialPut(zPayload, pRec, serial_type); /* content */
88301 }while( (++pRec)<=pLast );
140543 UnpackedRecord *pRec; /* Probe for stat4 (if required) */
145918 UnpackedRecord *pRec, /* Vector of values to consider */
145935 assert( pRec!=0 );
145937 assert( pRec->nField>0 && pRec->nField<=pIdx->nSampleCol );
145983 nField = pRec->nField;
146003 pRec->nField = n;
146004 res = sqlite3VdbeRecordCompare(aSample[iSamp].n, aSample[iSamp].p, pRec);
146028 pRec->nField = nField;
146029 assert( 0==sqlite3VdbeRecordCompare(aSample[i].n, aSample[i].p, pRec)
146037 pRec->nField = iCol+1;
146039 || sqlite3VdbeRecordCompare(aSample[i].n, aSample[i].p, pRec)>0
146047 pRec->nField = iCol;
146048 assert( sqlite3VdbeRecordCompare(aSample[i].n, aSample[i].p, pRec)<=0
146052 pRec->nField = nField;
146053 assert( sqlite3VdbeRecordCompare(aSample[i-1].n, aSample[i-1].p, pRec)<0
146091 pRec->nField = nField;
146302 UnpackedRecord *pRec = pBuilder->pRec;
146331 if( pRec ){
146332 testcase( pRec->nField!=pBuilder->nRecValid );
146333 pRec->nField = pBuilder->nRecValid;
146342 whereKeyStats(pParse, p, pRec, 0, a);
146360 rc = sqlite3Stat4ProbeSetValue(pParse, p, &pRec, pExpr, nBtm, nEq, &n);
146365 iLwrIdx = whereKeyStats(pParse, p, pRec, 0, a);
146377 rc = sqlite3Stat4ProbeSetValue(pParse, p, &pRec, pExpr, nTop, nEq, &n);
146382 iUprIdx = whereKeyStats(pParse, p, pRec, 1, a);
146390 pBuilder->pRec = pRec;
146472 UnpackedRecord *pRec = pBuilder->pRec;
146496 rc = sqlite3Stat4ProbeSetValue(pParse, p, &pRec, pExpr, 1, nEq-1, &bOk);
146497 pBuilder->pRec = pRec;
146502 whereKeyStats(pParse, p, pRec, 0, a);
147942 sqlite3Stat4ProbeFree(pBuilder->pRec);
147944 pBuilder->pRec = 0;