On 30-Jul-2014 09:51 -0500, Charles Wilt wrote:
On Wed, Jul 30, 2014 at 9:15 AM, Birgitta Hauser wrote:
I found it in a presentation "DB2 UDB for iSeries: Coding
Techniques for SQL Performance" from Kent Milligan
"Internally, DB2 UDB for iSeries will automatically set the
Allocate value to the maximum length of the variable length
column whenever the column length is 30 bytes or less."
Seems the documentation should say that instead of explicitly saying
that it defaults to allocate(0).
No. That documentation is correct. Including that quote [alone or
additionally] would be documenting an /implementation detail/ that is
subject to change. The default for an unspecified ALLOCATE [as a value
of either VARLEN() for DDS or ALLOCATE() for DDL] *is* zero; that is
correct[ly documented]. How the database _implements_ any particular
allocation specification may be of interest to a reader [of the docs],
but implementation-specific details should be documented separately.
That could be a side-note either referencing additional documents
about database internals, or suggesting that, based merely on what [at
the time of writing] was a current /implementation detail/, results in
any varying-length data type column with a length specification of
thirty or fewer bytes to be maintained entirely within the dataspace
[i.e. no overflow to the aux SID] irrespective the specified allocation.