Lines Matching refs:pRec
78588 UnpackedRecord *pRec = p->ppRec[0];
78590 if( pRec==0 ){
78597 pRec = (UnpackedRecord*)sqlite3DbMallocZero(db, nByte);
78598 if( pRec ){
78599 pRec->pKeyInfo = sqlite3KeyInfoOfIndex(p->pParse, pIdx);
78600 if( pRec->pKeyInfo ){
78601 assert( pRec->pKeyInfo->nAllField==nCol );
78602 assert( pRec->pKeyInfo->enc==ENC(db) );
78603 pRec->aMem = (Mem *)((u8*)pRec + ROUND8(sizeof(UnpackedRecord)));
78605 pRec->aMem[i].flags = MEM_Null;
78606 pRec->aMem[i].db = db;
78609 sqlite3DbFreeNN(db, pRec);
78610 pRec = 0;
78613 if( pRec==0 ) return 0;
78614 p->ppRec[0] = pRec;
78617 pRec->nField = p->iVal+1;
78618 return &pRec->aMem[p->iVal];
79070 const void *pRec, /* Pointer to buffer containing record */
79081 u8 *a = (u8*)pRec; /* Typecast byte array */
79113 SQLITE_PRIVATE void sqlite3Stat4ProbeFree(UnpackedRecord *pRec){
79114 if( pRec ){
79116 int nCol = pRec->pKeyInfo->nAllField;
79117 Mem *aMem = pRec->aMem;
79122 sqlite3KeyInfoUnref(pRec->pKeyInfo);
79123 sqlite3DbFreeNN(db, pRec);
87025 static int alsoAnInt(Mem *pRec, double rValue, i64 *piValue){
87031 return 0==sqlite3Atoi64(pRec->z, piValue, pRec->n, pRec->enc);
87049 static void applyNumericAffinity(Mem *pRec, int bTryForInt){
87051 u8 enc = pRec->enc;
87053 assert( (pRec->flags & (MEM_Str|MEM_Int|MEM_Real|MEM_IntReal))==MEM_Str );
87054 rc = sqlite3AtoF(pRec->z, &rValue, pRec->n, enc);
87056 if( rc==1 && alsoAnInt(pRec, rValue, &pRec->u.i) ){
87057 pRec->flags |= MEM_Int;
87059 pRec->u.r = rValue;
87060 pRec->flags |= MEM_Real;
87061 if( bTryForInt ) sqlite3VdbeIntegerAffinity(pRec);
87067 pRec->flags &= ~MEM_Str;
87090 Mem *pRec, /* The value to apply affinity to */
87097 if( (pRec->flags & MEM_Int)==0 ){ /*OPTIMIZATION-IF-FALSE*/
87098 if( (pRec->flags & MEM_Real)==0 ){
87099 if( pRec->flags & MEM_Str ) applyNumericAffinity(pRec,1);
87101 sqlite3VdbeIntegerAffinity(pRec);
87110 if( 0==(pRec->flags&MEM_Str) ){ /*OPTIMIZATION-IF-FALSE*/
87111 if( (pRec->flags&(MEM_Real|MEM_Int|MEM_IntReal)) ){
87112 testcase( pRec->flags & MEM_Int );
87113 testcase( pRec->flags & MEM_Real );
87114 testcase( pRec->flags & MEM_IntReal );
87115 sqlite3VdbeMemStringify(pRec, enc, 1);
87118 pRec->flags &= ~(MEM_Real|MEM_Int|MEM_IntReal);
89786 Mem *pRec; /* The new record */
89837 pRec = pData0;
89839 applyAffinity(pRec, zAffinity[0], encoding);
89840 if( zAffinity[0]==SQLITE_AFF_REAL && (pRec->flags & MEM_Int) ){
89841 pRec->flags |= MEM_IntReal;
89842 pRec->flags &= ~(MEM_Int);
89844 REGISTER_TRACE((int)(pRec-aMem), pRec);
89846 pRec++;
89847 assert( zAffinity[0]==0 || pRec<=pLast );
89891 pRec = pLast;
89893 assert( memIsValid(pRec) );
89894 if( pRec->flags & MEM_Null ){
89895 if( pRec->flags & MEM_Zero ){
89905 pRec->uTemp = 10;
89907 pRec->uTemp = 0;
89910 }else if( pRec->flags & (MEM_Int|MEM_IntReal) ){
89912 i64 i = pRec->u.i;
89914 testcase( pRec->flags & MEM_Int );
89915 testcase( pRec->flags & MEM_IntReal );
89929 pRec->uTemp = 8+(u32)uu;
89932 pRec->uTemp = 1;
89936 pRec->uTemp = 2;
89939 pRec->uTemp = 3;
89942 pRec->uTemp = 4;
89945 pRec->uTemp = 5;
89948 if( pRec->flags & MEM_IntReal ){
89952 pRec->u.r = (double)pRec->u.i;
89953 pRec->flags &= ~MEM_IntReal;
89954 pRec->flags |= MEM_Real;
89955 pRec->uTemp = 7;
89957 pRec->uTemp = 6;
89960 }else if( pRec->flags & MEM_Real ){
89963 pRec->uTemp = 7;
89965 assert( db->mallocFailed || pRec->flags&(MEM_Str|MEM_Blob) );
89966 assert( pRec->n>=0 );
89967 len = (u32)pRec->n;
89968 serial_type = (len*2) + 12 + ((pRec->flags & MEM_Str)!=0);
89969 if( pRec->flags & MEM_Zero ){
89970 serial_type += pRec->u.nZero*2;
89972 if( sqlite3VdbeMemExpandBlob(pRec) ) goto no_mem;
89973 len += pRec->u.nZero;
89975 nZero += pRec->u.nZero;
89980 pRec->uTemp = serial_type;
89982 if( pRec==pData0 ) break;
89983 pRec--;
90035 pRec = pData0;
90037 serial_type = pRec->uTemp;
90043 zPayload += sqlite3VdbeSerialPut(zPayload, pRec, serial_type); /* content */
90044 }while( (++pRec)<=pLast );
146238 UnpackedRecord *pRec; /* Probe for stat4 (if required) */
151795 UnpackedRecord *pRec, /* Vector of values to consider */
151812 assert( pRec!=0 );
151814 assert( pRec->nField>0 && pRec->nField<=pIdx->nSampleCol );
151860 nField = pRec->nField;
151880 pRec->nField = n;
151881 res = sqlite3VdbeRecordCompare(aSample[iSamp].n, aSample[iSamp].p, pRec);
151905 pRec->nField = nField;
151906 assert( 0==sqlite3VdbeRecordCompare(aSample[i].n, aSample[i].p, pRec)
151914 pRec->nField = iCol+1;
151916 || sqlite3VdbeRecordCompare(aSample[i].n, aSample[i].p, pRec)>0
151924 pRec->nField = iCol;
151925 assert( sqlite3VdbeRecordCompare(aSample[i].n, aSample[i].p, pRec)<=0
151929 pRec->nField = nField;
151930 assert( sqlite3VdbeRecordCompare(aSample[i-1].n, aSample[i-1].p, pRec)<0
151968 pRec->nField = nField;
152179 UnpackedRecord *pRec = pBuilder->pRec;
152208 if( pRec ){
152209 testcase( pRec->nField!=pBuilder->nRecValid );
152210 pRec->nField = pBuilder->nRecValid;
152219 whereKeyStats(pParse, p, pRec, 0, a);
152237 rc = sqlite3Stat4ProbeSetValue(pParse, p, &pRec, pExpr, nBtm, nEq, &n);
152242 iLwrIdx = whereKeyStats(pParse, p, pRec, 0, a);
152254 rc = sqlite3Stat4ProbeSetValue(pParse, p, &pRec, pExpr, nTop, nEq, &n);
152259 iUprIdx = whereKeyStats(pParse, p, pRec, 1, a);
152267 pBuilder->pRec = pRec;
152349 UnpackedRecord *pRec = pBuilder->pRec;
152373 rc = sqlite3Stat4ProbeSetValue(pParse, p, &pRec, pExpr, 1, nEq-1, &bOk);
152374 pBuilder->pRec = pRec;
152379 whereKeyStats(pParse, p, pRec, 0, a);
153872 sqlite3Stat4ProbeFree(pBuilder->pRec);
153874 pBuilder->pRec = 0;