Lines Matching refs:pVal
1302 static SQLITE_NOINLINE const void *valueToText(sqlite3_value* pVal, u8 enc){ in valueToText() argument
1303 assert( pVal!=0 ); in valueToText()
1304 assert( pVal->db==0 || sqlite3_mutex_held(pVal->db->mutex) ); in valueToText()
1306 assert( !sqlite3VdbeMemIsRowSet(pVal) ); in valueToText()
1307 assert( (pVal->flags & (MEM_Null))==0 ); in valueToText()
1308 if( pVal->flags & (MEM_Blob|MEM_Str) ){ in valueToText()
1309 if( ExpandBlob(pVal) ) return 0; in valueToText()
1310 pVal->flags |= MEM_Str; in valueToText()
1311 if( pVal->enc != (enc & ~SQLITE_UTF16_ALIGNED) ){ in valueToText()
1312 sqlite3VdbeChangeEncoding(pVal, enc & ~SQLITE_UTF16_ALIGNED); in valueToText()
1314 if( (enc & SQLITE_UTF16_ALIGNED)!=0 && 1==(1&SQLITE_PTR_TO_INT(pVal->z)) ){ in valueToText()
1315 assert( (pVal->flags & (MEM_Ephem|MEM_Static))!=0 ); in valueToText()
1316 if( sqlite3VdbeMemMakeWriteable(pVal)!=SQLITE_OK ){ in valueToText()
1320 sqlite3VdbeMemNulTerminate(pVal); /* IMP: R-31275-44060 */ in valueToText()
1322 sqlite3VdbeMemStringify(pVal, enc, 0); in valueToText()
1323 assert( 0==(1&SQLITE_PTR_TO_INT(pVal->z)) ); in valueToText()
1325 assert(pVal->enc==(enc & ~SQLITE_UTF16_ALIGNED) || pVal->db==0 in valueToText()
1326 || pVal->db->mallocFailed ); in valueToText()
1327 if( pVal->enc==(enc & ~SQLITE_UTF16_ALIGNED) ){ in valueToText()
1328 assert( sqlite3VdbeMemValidStrRep(pVal) ); in valueToText()
1329 return pVal->z; in valueToText()
1345 const void *sqlite3ValueText(sqlite3_value* pVal, u8 enc){ in sqlite3ValueText() argument
1346 if( !pVal ) return 0; in sqlite3ValueText()
1347 assert( pVal->db==0 || sqlite3_mutex_held(pVal->db->mutex) ); in sqlite3ValueText()
1349 assert( !sqlite3VdbeMemIsRowSet(pVal) ); in sqlite3ValueText()
1350 if( (pVal->flags&(MEM_Str|MEM_Term))==(MEM_Str|MEM_Term) && pVal->enc==enc ){ in sqlite3ValueText()
1351 assert( sqlite3VdbeMemValidStrRep(pVal) ); in sqlite3ValueText()
1352 return pVal->z; in sqlite3ValueText()
1354 if( pVal->flags&MEM_Null ){ in sqlite3ValueText()
1357 return valueToText(pVal, enc); in sqlite3ValueText()
1468 sqlite3_value *pVal = 0; /* New value */ in valueFromFunction() local
1499 pVal = valueNew(db, pCtx); in valueFromFunction()
1500 if( pVal==0 ){ in valueFromFunction()
1508 ctx.pOut = pVal; in valueFromFunction()
1514 sqlite3ErrorMsg(pCtx->pParse, "%s", sqlite3_value_text(pVal)); in valueFromFunction()
1516 sqlite3ValueApplyAffinity(pVal, aff, SQLITE_UTF8); in valueFromFunction()
1518 rc = sqlite3VdbeChangeEncoding(pVal, enc); in valueFromFunction()
1519 if( rc==SQLITE_OK && sqlite3VdbeMemTooBig(pVal) ){ in valueFromFunction()
1528 pVal = 0; in valueFromFunction()
1537 *ppVal = pVal; in valueFromFunction()
1564 sqlite3_value *pVal = 0; in valueFromExpr() local
1604 pVal = valueNew(db, pCtx); in valueFromExpr()
1605 if( pVal==0 ) goto no_mem; in valueFromExpr()
1607 sqlite3VdbeMemSetInt64(pVal, (i64)pExpr->u.iValue*negInt); in valueFromExpr()
1611 sqlite3ValueSetStr(pVal, -1, zVal, SQLITE_UTF8, SQLITE_DYNAMIC); in valueFromExpr()
1614 sqlite3ValueApplyAffinity(pVal, SQLITE_AFF_NUMERIC, SQLITE_UTF8); in valueFromExpr()
1616 sqlite3ValueApplyAffinity(pVal, affinity, SQLITE_UTF8); in valueFromExpr()
1618 assert( (pVal->flags & MEM_IntReal)==0 ); in valueFromExpr()
1619 if( pVal->flags & (MEM_Int|MEM_IntReal|MEM_Real) ){ in valueFromExpr()
1620 testcase( pVal->flags & MEM_Int ); in valueFromExpr()
1621 testcase( pVal->flags & MEM_Real ); in valueFromExpr()
1622 pVal->flags &= ~MEM_Str; in valueFromExpr()
1625 rc = sqlite3VdbeChangeEncoding(pVal, enc); in valueFromExpr()
1629 if( SQLITE_OK==valueFromExpr(db,pExpr->pLeft,enc,affinity,&pVal,pCtx) in valueFromExpr()
1630 && pVal!=0 in valueFromExpr()
1632 sqlite3VdbeMemNumerify(pVal); in valueFromExpr()
1633 if( pVal->flags & MEM_Real ){ in valueFromExpr()
1634 pVal->u.r = -pVal->u.r; in valueFromExpr()
1635 }else if( pVal->u.i==SMALLEST_INT64 ){ in valueFromExpr()
1637 pVal->u.r = -(double)SMALLEST_INT64; in valueFromExpr()
1639 pVal->u.r = LARGEST_INT64; in valueFromExpr()
1641 MemSetTypeFlag(pVal, MEM_Real); in valueFromExpr()
1643 pVal->u.i = -pVal->u.i; in valueFromExpr()
1645 sqlite3ValueApplyAffinity(pVal, affinity, enc); in valueFromExpr()
1648 pVal = valueNew(db, pCtx); in valueFromExpr()
1649 if( pVal==0 ) goto no_mem; in valueFromExpr()
1650 sqlite3VdbeMemSetNull(pVal); in valueFromExpr()
1658 pVal = valueNew(db, pCtx); in valueFromExpr()
1659 if( !pVal ) goto no_mem; in valueFromExpr()
1663 sqlite3VdbeMemSetStr(pVal, sqlite3HexToBlob(db, zVal, nVal), nVal/2, in valueFromExpr()
1669 rc = valueFromFunction(db, pExpr, enc, affinity, &pVal, pCtx); in valueFromExpr()
1674 pVal = valueNew(db, pCtx); in valueFromExpr()
1675 if( pVal ){ in valueFromExpr()
1676 pVal->flags = MEM_Int; in valueFromExpr()
1677 pVal->u.i = pExpr->u.zToken[4]==0; in valueFromExpr()
1681 *ppVal = pVal; in valueFromExpr()
1692 if( pCtx==0 ) sqlite3ValueFree(pVal); in valueFromExpr()
1694 assert( pCtx==0 ); sqlite3ValueFree(pVal); in valueFromExpr()
1746 sqlite3_value *pVal = 0; in stat4ValueFromExpr() local
1754 pVal = valueNew(db, pAlloc); in stat4ValueFromExpr()
1755 if( pVal ){ in stat4ValueFromExpr()
1756 sqlite3VdbeMemSetNull((Mem*)pVal); in stat4ValueFromExpr()
1763 pVal = valueNew(db, pAlloc); in stat4ValueFromExpr()
1764 if( pVal ){ in stat4ValueFromExpr()
1765 rc = sqlite3VdbeMemCopy((Mem*)pVal, &v->aVar[iBindVar-1]); in stat4ValueFromExpr()
1766 sqlite3ValueApplyAffinity(pVal, affinity, ENC(db)); in stat4ValueFromExpr()
1767 pVal->db = pParse->db; in stat4ValueFromExpr()
1771 rc = valueFromExpr(db, pExpr, ENC(db), affinity, &pVal, pAlloc); in stat4ValueFromExpr()
1774 assert( pVal==0 || pVal->db==db ); in stat4ValueFromExpr()
1775 *ppVal = pVal; in stat4ValueFromExpr()
1834 sqlite3_value *pVal = 0; in sqlite3Stat4ProbeSetValue() local
1838 rc = stat4ValueFromExpr(pParse, pElem, aff, &alloc, &pVal); in sqlite3Stat4ProbeSetValue()
1839 if( !pVal ) break; in sqlite3Stat4ProbeSetValue()
1962 static SQLITE_NOINLINE int valueBytes(sqlite3_value *pVal, u8 enc){ in valueBytes() argument
1963 return valueToText(pVal, enc)!=0 ? pVal->n : 0; in valueBytes()
1965 int sqlite3ValueBytes(sqlite3_value *pVal, u8 enc){ in sqlite3ValueBytes() argument
1966 Mem *p = (Mem*)pVal; in sqlite3ValueBytes()
1968 if( (p->flags & MEM_Str)!=0 && pVal->enc==enc ){ in sqlite3ValueBytes()
1971 if( (p->flags & MEM_Str)!=0 && enc!=SQLITE_UTF8 && pVal->enc!=SQLITE_UTF8 ){ in sqlite3ValueBytes()
1982 return valueBytes(pVal, enc); in sqlite3ValueBytes()