Lines Matching defs:zNum

20647 ** Compare the 19-character string zNum against the text representation
20649 ** if zNum is less than, equal to, or greater than the string.
20650 ** Note that zNum must contain exactly 19 characters.
20660 static int compare2pow63(const char *zNum, int incr){
20666 c = (zNum[i*incr]-pow63[i])*10;
20669 c = zNum[18*incr] - '8';
20679 ** Convert zNum to a 64-bit signed integer.
20681 ** If the zNum value is representable as a 64-bit twos-complement
20684 ** If zNum is exactly 9223372036854665808, return 2. This special
20688 ** If zNum is too big for a 64-bit integer and is not
20695 SQLITE_PRIVATE int sqlite3Atoi64(const char *zNum, i64 *pNum, int length, u8 enc){
20702 const char *zEnd = zNum + length;
20703 if( enc==SQLITE_UTF16BE ) zNum++;
20704 while( zNum<zEnd && sqlite3Isspace(*zNum) ) zNum+=incr;
20705 if( zNum<zEnd ){
20706 if( *zNum=='-' ){
20708 zNum+=incr;
20709 }else if( *zNum=='+' ){
20710 zNum+=incr;
20713 zStart = zNum;
20714 while( zNum<zEnd && zNum[0]=='0' ){ zNum+=incr; } /* Skip leading zeros. */
20715 for(i=0; &zNum[i]<zEnd && (c=zNum[i])>='0' && c<='9'; i+=incr){
20728 if( (c!=0 && &zNum[i]<zEnd) || (i==0 && zStart==zNum) || i>19*incr ){
20729 /* zNum is empty or contains non-numeric text or is longer
20737 /* zNum is a 19-digit numbers. Compare it against 9223372036854775808. */
20738 c = compare2pow63(zNum, incr);
20740 /* zNum is less than 9223372036854775808 so it fits */
20744 /* zNum is greater than 9223372036854775808 so it overflows */
20747 /* zNum is exactly 9223372036854775808. Fits if negative. The
20757 ** If zNum represents an integer that will fit in 32-bits, then set
20760 ** Any non-numeric characters that following zNum are ignored.
20764 SQLITE_PRIVATE int sqlite3GetInt32(const char *zNum, int *pValue){
20768 if( zNum[0]=='-' ){
20770 zNum++;
20771 }else if( zNum[0]=='+' ){
20772 zNum++;
20774 while( zNum[0]=='0' ) zNum++;
20775 for(i=0; i<11 && (c = zNum[i] - '0')>=0 && c<=9; i++){