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;
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...
|Workflow||jira [ 12381830 ]||Default workflow, editable Closed status [ 12797958 ]|
|Fix Version/s||10.3.0.0 [ 12310800 ]|
|Field||Original Value||New Value|
|Summary||The documentation for (or implementation of) SUBSTR(s,len) is wrong||The documentation for (or implementation of) SUBSTR(string,start,length) is wrong|