• Home
  • Raw
  • Download

Lines Matching refs:pRec

78861     UnpackedRecord *pRec = p->ppRec[0];
78863 if( pRec==0 ){
78870 pRec = (UnpackedRecord*)sqlite3DbMallocZero(db, nByte);
78871 if( pRec ){
78872 pRec->pKeyInfo = sqlite3KeyInfoOfIndex(p->pParse, pIdx);
78873 if( pRec->pKeyInfo ){
78874 assert( pRec->pKeyInfo->nAllField==nCol );
78875 assert( pRec->pKeyInfo->enc==ENC(db) );
78876 pRec->aMem = (Mem *)((u8*)pRec + ROUND8(sizeof(UnpackedRecord)));
78878 pRec->aMem[i].flags = MEM_Null;
78879 pRec->aMem[i].db = db;
78882 sqlite3DbFreeNN(db, pRec);
78883 pRec = 0;
78886 if( pRec==0 ) return 0;
78887 p->ppRec[0] = pRec;
78890 pRec->nField = p->iVal+1;
78891 return &pRec->aMem[p->iVal];
79343 const void *pRec, /* Pointer to buffer containing record */
79354 u8 *a = (u8*)pRec; /* Typecast byte array */
79386 SQLITE_PRIVATE void sqlite3Stat4ProbeFree(UnpackedRecord *pRec){
79387 if( pRec ){
79389 int nCol = pRec->pKeyInfo->nAllField;
79390 Mem *aMem = pRec->aMem;
79395 sqlite3KeyInfoUnref(pRec->pKeyInfo);
79396 sqlite3DbFreeNN(db, pRec);
87314 static int alsoAnInt(Mem *pRec, double rValue, i64 *piValue){
87320 return 0==sqlite3Atoi64(pRec->z, piValue, pRec->n, pRec->enc);
87338 static void applyNumericAffinity(Mem *pRec, int bTryForInt){
87340 u8 enc = pRec->enc;
87342 assert( (pRec->flags & (MEM_Str|MEM_Int|MEM_Real|MEM_IntReal))==MEM_Str );
87343 rc = sqlite3AtoF(pRec->z, &rValue, pRec->n, enc);
87345 if( rc==1 && alsoAnInt(pRec, rValue, &pRec->u.i) ){
87346 pRec->flags |= MEM_Int;
87348 pRec->u.r = rValue;
87349 pRec->flags |= MEM_Real;
87350 if( bTryForInt ) sqlite3VdbeIntegerAffinity(pRec);
87356 pRec->flags &= ~MEM_Str;
87379 Mem *pRec, /* The value to apply affinity to */
87386 if( (pRec->flags & MEM_Int)==0 ){ /*OPTIMIZATION-IF-FALSE*/
87387 if( (pRec->flags & MEM_Real)==0 ){
87388 if( pRec->flags & MEM_Str ) applyNumericAffinity(pRec,1);
87390 sqlite3VdbeIntegerAffinity(pRec);
87399 if( 0==(pRec->flags&MEM_Str) ){ /*OPTIMIZATION-IF-FALSE*/
87400 if( (pRec->flags&(MEM_Real|MEM_Int|MEM_IntReal)) ){
87401 testcase( pRec->flags & MEM_Int );
87402 testcase( pRec->flags & MEM_Real );
87403 testcase( pRec->flags & MEM_IntReal );
87404 sqlite3VdbeMemStringify(pRec, enc, 1);
87407 pRec->flags &= ~(MEM_Real|MEM_Int|MEM_IntReal);
90184 Mem *pRec; /* The new record */
90235 pRec = pData0;
90237 applyAffinity(pRec, zAffinity[0], encoding);
90238 if( zAffinity[0]==SQLITE_AFF_REAL && (pRec->flags & MEM_Int) ){
90239 pRec->flags |= MEM_IntReal;
90240 pRec->flags &= ~(MEM_Int);
90242 REGISTER_TRACE((int)(pRec-aMem), pRec);
90244 pRec++;
90245 assert( zAffinity[0]==0 || pRec<=pLast );
90289 pRec = pLast;
90291 assert( memIsValid(pRec) );
90292 if( pRec->flags & MEM_Null ){
90293 if( pRec->flags & MEM_Zero ){
90303 pRec->uTemp = 10;
90305 pRec->uTemp = 0;
90308 }else if( pRec->flags & (MEM_Int|MEM_IntReal) ){
90310 i64 i = pRec->u.i;
90312 testcase( pRec->flags & MEM_Int );
90313 testcase( pRec->flags & MEM_IntReal );
90327 pRec->uTemp = 8+(u32)uu;
90330 pRec->uTemp = 1;
90334 pRec->uTemp = 2;
90337 pRec->uTemp = 3;
90340 pRec->uTemp = 4;
90343 pRec->uTemp = 5;
90346 if( pRec->flags & MEM_IntReal ){
90350 pRec->u.r = (double)pRec->u.i;
90351 pRec->flags &= ~MEM_IntReal;
90352 pRec->flags |= MEM_Real;
90353 pRec->uTemp = 7;
90355 pRec->uTemp = 6;
90358 }else if( pRec->flags & MEM_Real ){
90361 pRec->uTemp = 7;
90363 assert( db->mallocFailed || pRec->flags&(MEM_Str|MEM_Blob) );
90364 assert( pRec->n>=0 );
90365 len = (u32)pRec->n;
90366 serial_type = (len*2) + 12 + ((pRec->flags & MEM_Str)!=0);
90367 if( pRec->flags & MEM_Zero ){
90368 serial_type += pRec->u.nZero*2;
90370 if( sqlite3VdbeMemExpandBlob(pRec) ) goto no_mem;
90371 len += pRec->u.nZero;
90373 nZero += pRec->u.nZero;
90378 pRec->uTemp = serial_type;
90380 if( pRec==pData0 ) break;
90381 pRec--;
90433 pRec = pData0;
90435 serial_type = pRec->uTemp;
90441 zPayload += sqlite3VdbeSerialPut(zPayload, pRec, serial_type); /* content */
90442 }while( (++pRec)<=pLast );
146852 UnpackedRecord *pRec; /* Probe for stat4 (if required) */
152409 UnpackedRecord *pRec, /* Vector of values to consider */
152426 assert( pRec!=0 );
152428 assert( pRec->nField>0 );
152474 nField = MIN(pRec->nField, pIdx->nSample);
152494 pRec->nField = n;
152495 res = sqlite3VdbeRecordCompare(aSample[iSamp].n, aSample[iSamp].p, pRec);
152519 pRec->nField = nField;
152520 assert( 0==sqlite3VdbeRecordCompare(aSample[i].n, aSample[i].p, pRec)
152528 pRec->nField = iCol+1;
152530 || sqlite3VdbeRecordCompare(aSample[i].n, aSample[i].p, pRec)>0
152538 pRec->nField = iCol;
152539 assert( sqlite3VdbeRecordCompare(aSample[i].n, aSample[i].p, pRec)<=0
152543 pRec->nField = nField;
152544 assert( sqlite3VdbeRecordCompare(aSample[i-1].n, aSample[i-1].p, pRec)<0
152582 pRec->nField = nField;
152793 UnpackedRecord *pRec = pBuilder->pRec;
152822 if( pRec ){
152823 testcase( pRec->nField!=pBuilder->nRecValid );
152824 pRec->nField = pBuilder->nRecValid;
152833 whereKeyStats(pParse, p, pRec, 0, a);
152851 rc = sqlite3Stat4ProbeSetValue(pParse, p, &pRec, pExpr, nBtm, nEq, &n);
152856 iLwrIdx = whereKeyStats(pParse, p, pRec, 0, a);
152868 rc = sqlite3Stat4ProbeSetValue(pParse, p, &pRec, pExpr, nTop, nEq, &n);
152873 iUprIdx = whereKeyStats(pParse, p, pRec, 1, a);
152881 pBuilder->pRec = pRec;
152963 UnpackedRecord *pRec = pBuilder->pRec;
152987 rc = sqlite3Stat4ProbeSetValue(pParse, p, &pRec, pExpr, 1, nEq-1, &bOk);
152988 pBuilder->pRec = pRec;
152993 whereKeyStats(pParse, p, pRec, 0, a);
154486 sqlite3Stat4ProbeFree(pBuilder->pRec);
154488 pBuilder->pRec = 0;