Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
10.9.1.0
-
None
Description
The description of the SYSCOLUMNS table at http://db.apache.org/derby/docs/dev/ref/rrefsistabs22441.html says that the BIGINT columns AUTOINCREMENTVALUE, AUTOINCREMENTSTART and AUTOINCREMENTINC have length 19. The maximum length of a BIGINT is 20 (when including the sign for negative values). Here's an example that shows that these columns can hold values whose length is 20:
ij> create table t(x bigint not null generated always as identity (start with -1234567890123456789, increment by -1234567890123456789));
0 rows inserted/updated/deleted
ij> select autoincrementvalue, autoincrementstart, autoincrementinc from sys.syscolumns where columnname='X';
AUTOINCREMENTVALUE |AUTOINCREMENTSTART |AUTOINCREMENTINC
--------------------------------------------------------------
-1234567890123456789|-1234567890123456789|-1234567890123456789
1 row selected
Other places where BIGINT columns are listed with length 19:
SYSCONGLOMERATES - http://db.apache.org/derby/docs/dev/ref/rrefsistabs39391.html
SYSFILES - http://db.apache.org/derby/docs/dev/ref/rrefsistabs40972.html
SYSSEQUENCES - http://db.apache.org/derby/docs/dev/ref/rrefsistabssyssequences.html
SYSXPLAIN_RESULTSET_TIMINGS - http://db.apache.org/derby/docs/dev/ref/rrefsysxplain_resultset_timings.html
SYSXPLAIN_STATEMENT_TIMINGS - http://db.apache.org/derby/docs/dev/ref/rrefsysxplain_statement_timings.html
SYSCS_DIAG.SPACE_TABLE - http://db.apache.org/derby/docs/dev/ref/rrefsyscsdiagtables.html
I haven't verified if negative values are allowed in all of these columns. If they are only allowed to hold non-negative values, should we keep the value 19? Or should we change all to 20 for consistency? I'm assuming that "length" in these tables refers to the display size of the columns.