220.127.116.11 The NdbScanOperation::ScanFlag Type
Values of this type are the scan flags used with the
readTuples() method. More than one may be
used, in which case, they are
as the second argument to that method. See
Section 18.104.22.168.7, “NdbScanOperation::readTuples()”, for more
Possible values are shown, along with descriptions, in the
|Scan in TUP order (that is, in the order of the rows in memory). Applies
to table scans only.
|Scan in disk order (order of rows on disk). Applies to table scans only.
Ordered index scan (ascending); rows returned from an
index scan are sorted, and ordered on the index key.
Scans in either ascending or descending order are
affected by this flag, which causes the API to perform a
merge-sort among the ordered scans of each fragment to
obtain a single sorted result set.
Ordered indexes are distributed, with one ordered
index for each fragment of a table.
Range scans are often parallel across all index
fragments. Occasionally, they can be pruned to one
Each index fragment range scan can return results in
either ascending or descending order. Ascending is
the default; to choose descending order, set the
When multiple index fragments are scanned in
parallel, the results are sent back to NDB where
they can optionally be merge-sorted before being
returned to the user. This merge sorting is
controlled using the
SF_OrderByFull is not used, the
results from each index fragment are in order
(either ascending or descending), but results from
different fragments may be interleaved.
SF_OrderByFull, some extra
constraints are imposed internally; these are listed
If the range scan is not pruned to one index
fragment then all index fragments must be
scanned in parallel. (Unordered scans can be
executed with less than full parallelism.)
Results from every index fragment must be
available before returning any rows, to ensure
a correct merge sort. This serialises the
“scrolling” of the scan,
potentially resulting in lower row throughput.
Unordered scans can return rows to the API
client before all index fragments have
returned any batches, and can overlap
next-batch requests with row processing.
|This is the same as
SF_OrderBy, except that all key
columns are added automatically to the read bitmask.
|Causes an ordered index scan to be performed in descending order.
|For index scans, when this flag is set,
can be called to read back the
In addition, when this flag is set, and
SF_OrderByFull is also set, results
from ranges are returned in their entirety before any
results are returned from subsequent ranges.
|Indicates that this scan is part of a multirange scan; each range is
KeyInfo to be sent back to the caller. This
enables the option to take over the row lock taken by the
by making sure that the kernel sends back the information
needed to identify the row and the lock. This flag is
enabled by default for scans using
LM_Exclusive, but must be explicitly
specified to enable the taking over of
LM_Read locks. (See the
documentation for more information.)