Uploaded image for project: 'Derby'
  1. Derby
  2. DERBY-6030

Length of escape string in LIKE ... ESCAPE not properly checked with territory based collation

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 10.9.1.0
    • 10.8.3.3, 10.9.2.2, 10.10.1.1
    • SQL
    • None
    • Repro attached

    Description

      When an ESCAPE clause contains multiple characters, but only a single collation element, they are accepted as long as it's not a literal:

      ij> connect 'jdbc:derby:memory:nodb;create=true;territory=no;collation=TERRITORY_BASED';
      ij> create table t(x varchar(20), y varchar(20), z varchar(20));
      0 rows inserted/updated/deleted
      ij> insert into t values ('abc', 'def', 'aa');
      1 row inserted/updated/deleted
      ij> select * from t where x like y escape z;
      X |Y |Z
      --------------------------------------------------------------

      0 rows selected

      If the same query is performed with a literal in the ESCAPE clause, the problem is detected and correctly reported:

      ij> select * from t where x like y escape 'aa';
      ERROR 22019: Invalid escape sequence, 'aa'. The escape string must be exactly one character. It cannot be a null or more than one character.

      Attachments

        1. d6030-1a.diff
          4 kB
          Knut Anders Hatlen

        Activity

          People

            mamtas Mamta A. Satoor
            knutanders Knut Anders Hatlen
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: