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

The documentation for (or implementation of) SUBSTR(string,start,length) is wrong

    XMLWordPrintableJSON

Details

    • Normal

    Description

      The latest alpha manuals say:
      "If startPosition is positive, it refers to position from the start of the source expression (counting the first character as 1). If startPosition is
      negative, it is the position from the end of the source."

      But when I try to use substr with a negative starting position, I get:

      $ java org.apache.derby.tools.ij repro.sql
      ij version 10.2
      ij> connect 'jdbc:derby:/home/dt136804/repro;create=true;territory=en_US';
      ij> create table t1(c1 varchar(128));
      0 rows inserted/updated/deleted
      ij> insert into t1 values ('The dog ate my homework');
      1 row inserted/updated/deleted
      ij> select substr(c1,-1,8) from t1;
      1
      --------
      ERROR 22011: The second or third argument of the SUBSTR function is out of range.

      and not 'homework' as I would expect.

      The SQL standard (2003) does not seem to say anything about negative starting positions...

      Attachments

        Activity

          People

            Unassigned Unassigned
            dyret Dyre Tjeldvoll
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: