Lines Matching defs:zNum
35675 ** Compare the 19-character string zNum against the text representation
35677 ** if zNum is less than, equal to, or greater than the string.
35678 ** Note that zNum must contain exactly 19 characters.
35688 static int compare2pow63(const char *zNum, int incr){
35694 c = (zNum[i*incr]-pow63[i])*10;
35697 c = zNum[18*incr] - '8';
35706 ** Convert zNum to a 64-bit signed integer. zNum must be decimal. This
35721 SQLITE_PRIVATE int sqlite3Atoi64(const char *zNum, i64 *pNum, int length, u8 enc){
35730 const char *zEnd = zNum + length;
35738 for(i=3-enc; i<length && zNum[i]==0; i+=2){}
35740 zEnd = &zNum[i^1];
35741 zNum += (enc&1);
35743 while( zNum<zEnd && sqlite3Isspace(*zNum) ) zNum+=incr;
35744 if( zNum<zEnd ){
35745 if( *zNum=='-' ){
35747 zNum+=incr;
35748 }else if( *zNum=='+' ){
35749 zNum+=incr;
35752 zStart = zNum;
35753 while( zNum<zEnd && zNum[0]=='0' ){ zNum+=incr; } /* Skip leading zeros. */
35754 for(i=0; &zNum[i]<zEnd && (c=zNum[i])>='0' && c<='9'; i+=incr){
35772 if( i==0 && zStart==zNum ){ /* No digits */
35776 }else if( &zNum[i]<zEnd ){ /* Extra bytes at the end */
35779 if( !sqlite3Isspace(zNum[jj]) ){
35784 }while( &zNum[jj]<zEnd );
35791 /* zNum is a 19-digit numbers. Compare it against 9223372036854775808. */
35792 c = i>19*incr ? 1 : compare2pow63(zNum, incr);
35794 /* zNum is less than 9223372036854775808 so it fits */
35800 /* zNum is greater than 9223372036854775808 so it overflows */
35803 /* zNum is exactly 9223372036854775808. Fits if negative. The
35849 ** If zNum represents an integer that will fit in 32-bits, then set
35854 ** Any non-numeric characters that following zNum are ignored.
35858 SQLITE_PRIVATE int sqlite3GetInt32(const char *zNum, int *pValue){
35862 if( zNum[0]=='-' ){
35864 zNum++;
35865 }else if( zNum[0]=='+' ){
35866 zNum++;
35869 else if( zNum[0]=='0'
35870 && (zNum[1]=='x' || zNum[1]=='X')
35871 && sqlite3Isxdigit(zNum[2])
35874 zNum += 2;
35875 while( zNum[0]=='0' ) zNum++;
35876 for(i=0; i<8 && sqlite3Isxdigit(zNum[i]); i++){
35877 u = u*16 + sqlite3HexToInt(zNum[i]);
35879 if( (u&0x80000000)==0 && sqlite3Isxdigit(zNum[i])==0 ){
35887 if( !sqlite3Isdigit(zNum[0]) ) return 0;
35888 while( zNum[0]=='0' ) zNum++;
35889 for(i=0; i<11 && (c = zNum[i] - '0')>=0 && c<=9; i++){