In global.c:

#ifdef SQLITE_EBCDIC
      0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, /* 0x
*/
     16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, /* 1x
*/
     32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, /* 2x
*/
     48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, /* 3x
*/
     64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, /* 4x
*/
     80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, /* 5x
*/
     96, 97, 66, 67, 68, 69, 70, 71, 72, 73,106,107,108,109,110,111, /* 6x
*/
    112, 81, 82, 83, 84, 85, 86, 87, 88, 89,122,123,124,125,126,127, /* 7x
*/
    128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, /* 8x
*/
    144,145,146,147,148,149,150,151,152,153,154,155,156,157,156,159, /* 9x
*/
    160,161,162,163,164,165,166,167,168,169,170,171,140,141,142,175, /* Ax
*/
    176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191, /* Bx
*/
    192,129,130,131,132,133,134,135,136,137,202,203,204,205,206,207, /* Cx
*/
    208,145,146,147,148,149,150,151,152,153,218,219,220,221,222,223, /* Dx
*/
    224,225,162,163,164,165,166,167,168,169,232,203,204,205,206,207, /* Ex
*/
    239,240,241,242,243,244,245,246,247,248,249,219,220,221,222,255, /* Fx
*/
#endif

The final row in the table should be:

    240,241,242,243,244,245,246,247,248,249,250,219,220,221,222,255, /* Fx
*/

Statements like select date('2014-01-01','167 days'); will return incorrect
results since 0xF0-0xF9 in EBCDIC are the 0-9 characters.

I also believe 0x9E should be 158, not 156. This is harmless since there is
not a printable character at 0x9E.

Thanks - Roland


Reply via email to