Lines Matching refs:pRec

316 static int alsoAnInt(Mem *pRec, double rValue, i64 *piValue){  in alsoAnInt()  argument
323 return 0==sqlite3Atoi64(pRec->z, piValue, pRec->n, pRec->enc); in alsoAnInt()
341 static void applyNumericAffinity(Mem *pRec, int bTryForInt){ in applyNumericAffinity() argument
343 u8 enc = pRec->enc; in applyNumericAffinity()
345 assert( (pRec->flags & (MEM_Str|MEM_Int|MEM_Real|MEM_IntReal))==MEM_Str ); in applyNumericAffinity()
346 rc = sqlite3AtoF(pRec->z, &rValue, pRec->n, enc); in applyNumericAffinity()
348 if( rc==1 && alsoAnInt(pRec, rValue, &pRec->u.i) ){ in applyNumericAffinity()
349 pRec->flags |= MEM_Int; in applyNumericAffinity()
351 pRec->u.r = rValue; in applyNumericAffinity()
352 pRec->flags |= MEM_Real; in applyNumericAffinity()
353 if( bTryForInt ) sqlite3VdbeIntegerAffinity(pRec); in applyNumericAffinity()
359 pRec->flags &= ~MEM_Str; in applyNumericAffinity()
382 Mem *pRec, /* The value to apply affinity to */ in applyAffinity() argument
389 if( (pRec->flags & MEM_Int)==0 ){ /*OPTIMIZATION-IF-FALSE*/ in applyAffinity()
390 if( (pRec->flags & MEM_Real)==0 ){ in applyAffinity()
391 if( pRec->flags & MEM_Str ) applyNumericAffinity(pRec,1); in applyAffinity()
393 sqlite3VdbeIntegerAffinity(pRec); in applyAffinity()
402 if( 0==(pRec->flags&MEM_Str) ){ /*OPTIMIZATION-IF-FALSE*/ in applyAffinity()
403 if( (pRec->flags&(MEM_Real|MEM_Int|MEM_IntReal)) ){ in applyAffinity()
404 testcase( pRec->flags & MEM_Int ); in applyAffinity()
405 testcase( pRec->flags & MEM_Real ); in applyAffinity()
406 testcase( pRec->flags & MEM_IntReal ); in applyAffinity()
407 sqlite3VdbeMemStringify(pRec, enc, 1); in applyAffinity()
410 pRec->flags &= ~(MEM_Real|MEM_Int|MEM_IntReal); in applyAffinity()
3258 Mem *pRec; /* The new record */ in sqlite3VdbeExec() local
3307 pRec = pData0; in sqlite3VdbeExec()
3309 applyAffinity(pRec, zAffinity[0], encoding); in sqlite3VdbeExec()
3310 if( zAffinity[0]==SQLITE_AFF_REAL && (pRec->flags & MEM_Int) ){ in sqlite3VdbeExec()
3311 pRec->flags |= MEM_IntReal; in sqlite3VdbeExec()
3312 pRec->flags &= ~(MEM_Int); in sqlite3VdbeExec()
3314 REGISTER_TRACE((int)(pRec-aMem), pRec); in sqlite3VdbeExec()
3316 pRec++; in sqlite3VdbeExec()
3317 assert( zAffinity[0]==0 || pRec<=pLast ); in sqlite3VdbeExec()
3361 pRec = pLast; in sqlite3VdbeExec()
3363 assert( memIsValid(pRec) ); in sqlite3VdbeExec()
3364 if( pRec->flags & MEM_Null ){ in sqlite3VdbeExec()
3365 if( pRec->flags & MEM_Zero ){ in sqlite3VdbeExec()
3375 pRec->uTemp = 10; in sqlite3VdbeExec()
3377 pRec->uTemp = 0; in sqlite3VdbeExec()
3380 }else if( pRec->flags & (MEM_Int|MEM_IntReal) ){ in sqlite3VdbeExec()
3382 i64 i = pRec->u.i; in sqlite3VdbeExec()
3384 testcase( pRec->flags & MEM_Int ); in sqlite3VdbeExec()
3385 testcase( pRec->flags & MEM_IntReal ); in sqlite3VdbeExec()
3399 pRec->uTemp = 8+(u32)uu; in sqlite3VdbeExec()
3402 pRec->uTemp = 1; in sqlite3VdbeExec()
3406 pRec->uTemp = 2; in sqlite3VdbeExec()
3409 pRec->uTemp = 3; in sqlite3VdbeExec()
3412 pRec->uTemp = 4; in sqlite3VdbeExec()
3415 pRec->uTemp = 5; in sqlite3VdbeExec()
3418 if( pRec->flags & MEM_IntReal ){ in sqlite3VdbeExec()
3422 pRec->u.r = (double)pRec->u.i; in sqlite3VdbeExec()
3423 pRec->flags &= ~MEM_IntReal; in sqlite3VdbeExec()
3424 pRec->flags |= MEM_Real; in sqlite3VdbeExec()
3425 pRec->uTemp = 7; in sqlite3VdbeExec()
3427 pRec->uTemp = 6; in sqlite3VdbeExec()
3430 }else if( pRec->flags & MEM_Real ){ in sqlite3VdbeExec()
3433 pRec->uTemp = 7; in sqlite3VdbeExec()
3435 assert( db->mallocFailed || pRec->flags&(MEM_Str|MEM_Blob) ); in sqlite3VdbeExec()
3436 assert( pRec->n>=0 ); in sqlite3VdbeExec()
3437 len = (u32)pRec->n; in sqlite3VdbeExec()
3438 serial_type = (len*2) + 12 + ((pRec->flags & MEM_Str)!=0); in sqlite3VdbeExec()
3439 if( pRec->flags & MEM_Zero ){ in sqlite3VdbeExec()
3440 serial_type += pRec->u.nZero*2; in sqlite3VdbeExec()
3442 if( sqlite3VdbeMemExpandBlob(pRec) ) goto no_mem; in sqlite3VdbeExec()
3443 len += pRec->u.nZero; in sqlite3VdbeExec()
3445 nZero += pRec->u.nZero; in sqlite3VdbeExec()
3450 pRec->uTemp = serial_type; in sqlite3VdbeExec()
3452 if( pRec==pData0 ) break; in sqlite3VdbeExec()
3453 pRec--; in sqlite3VdbeExec()
3509 pRec = pData0; in sqlite3VdbeExec()
3511 serial_type = pRec->uTemp; in sqlite3VdbeExec()
3524 assert( sizeof(v)==sizeof(pRec->u.r) ); in sqlite3VdbeExec()
3525 memcpy(&v, &pRec->u.r, sizeof(v)); in sqlite3VdbeExec()
3528 v = pRec->u.i; in sqlite3VdbeExec()
3541 if( serial_type>=14 && pRec->n>0 ){ in sqlite3VdbeExec()
3542 assert( pRec->z!=0 ); in sqlite3VdbeExec()
3543 memcpy(zPayload, pRec->z, pRec->n); in sqlite3VdbeExec()
3544 zPayload += pRec->n; in sqlite3VdbeExec()
3548 if( pRec->n ){ in sqlite3VdbeExec()
3549 assert( pRec->z!=0 ); in sqlite3VdbeExec()
3550 memcpy(zPayload, pRec->z, pRec->n); in sqlite3VdbeExec()
3551 zPayload += pRec->n; in sqlite3VdbeExec()
3554 if( pRec==pLast ) break; in sqlite3VdbeExec()
3555 pRec++; in sqlite3VdbeExec()