SET TEMP Statement

Overview

The GE/GT/LE/LT operators should use the Unicode collation API when UTF-32 operands are involved. This is because the 32-bit values that represent UTF-32 characters may not necessarily correspond to the expected collating sequence.

The RI/SI operators expect that the operands will be 8-bit RAW Alpha characters. If UTF-32 operands are specified in conjunction with these operators, they will need to be transcoded to the 8859-1 encoding used by a RAW Alpha field before the statement can be executed. If any character values are encountered that cannot be represented by an 8859-1 encoding, a data exception should occur.

The following applies to all operators other than RS/RI:

  • RAW alpha or Group compared with RAW Alpha, Group, or Literal:
    • This is the existing condition and no charges have been made.
  • UNICODE or NATIONAL alpha compared with UNICODE or NATIONAL alpha:
    • If there is a mismatch in field lengths then the shorter is padded with UTF-32 space to match the length of the longer field.
    • The poeration is performed by comparing 4-byte UTF-32 characters.
  • UNICODE or NATIONAL alpha compared with RAW alpha (or RAW compared to UNICODE or NATIONAL):
    • The RAW operand is transcoded to UTF-32 characters.
    • If there is a mismatch in field lengths then the shorter is padded with UTF-32 space to match the length of the longer field.
    • The poeration is performed by comparing 4-byte UTF-32 characters.
  • UNICODE or NATIONAL alpha compared with a Literal
    • The literal operand is considered to be a RAW alpha so transcoding from 8859-15 to UTF-32 will take place before the comparison.
    • If the literal contains unicode escape sequences (\u#### or \U########) they will be honored.
    • The literal "_" will still be honored as a way to search for a trailing space.
    • If there is a mismatch in field lengths then the shorter is padded with UTF-32 space to match the length of the longer field.
    • The poeration is performed by comparing 4-byte UTF-32 characters.
  • UNICODE or NATIONAL alpha compared with a Group field (or Group compared with UNMICODE or NATIONAL)
    • This combination is not supported.
    • The process compiler should report this as an error.
    • Since many --- Alphafields are redefined to be UNICODE this will likely break some applications.

Test Plan

ILF Editor: (untested)

Test Requirements:

Does the ILF Editor allow all valid combinates from the above list?

Does the ILF Editor give a meaningful error when entering invalid combinations?

Test Results and Notes:

Untested

Process Compiler: (untested)

Test Requirements:

Does the Process Compiler allow all valid combinates from the above list?

Does the Process Compiler give a meaningful error when encountering invalid combinations? (can use Opt-88 to force saving or errors)

Test Results and Notes:

Untested

Bugs

Edit | Attach | Watch | Print version | History: r17 | r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r1 - 2011-03-17 - PeteBrower
 
  • Edit
  • Attach
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback