19 #ifndef NdbIndexScanOperation_H
20 #define NdbIndexScanOperation_H
22 #include "NdbScanOperation.hpp"
29 #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
49 Uint32 scan_flags = 0,
53 #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
70 bool order_desc =
false,
71 bool read_range_no =
false,
73 bool multi_range =
false) {
75 (SF_OrderBy & -(Int32)order_by) |
76 (SF_Descending & -(Int32)order_desc) |
77 (SF_ReadRangeNo & -(Int32)read_range_no) |
78 (SF_KeyInfo & -(Int32)keyinfo) |
79 (SF_MultiRange & -(Int32)multi_range);
81 return readTuples(lock_mode, scan_flags, parallel, batch);
138 #ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED
139 int setBound(
const char* attr,
int type,
const void* value, Uint32 len);
141 int setBound(
const char* attr,
int type,
const void* value);
147 #ifndef DOXYGEN_SHOULD_SKIP_DEPRECATED
148 int setBound(Uint32 anAttrId,
int type,
const void* aValue, Uint32 len);
150 int setBound(Uint32 anAttrId,
int type,
const void* aValue);
184 Uint32 low_key_count;
188 const char * high_key;
190 Uint32 high_key_count;
235 Uint32 sizeOfPartInfo= 0);
251 int processIndexScanDefs(LockMode lm,
255 int scanIndexImpl(
const NdbRecord *key_record,
258 const unsigned char *result_mask,
261 Uint32 sizeOfOptions);
270 bool highestSoFarIsStrict;
271 Uint32 keysPresentBitmap;
276 struct OldApiScanRangeDefinition
298 int setBoundHelperOldApi(OldApiBoundInfo& boundInfo,
299 Uint32 maxKeyRecordBytes,
304 Uint32 nullbit_byte_offset,
305 Uint32 nullbit_bit_in_byte,
309 int buildIndexBoundOldApi(
int range_no);
310 const IndexBound* getIndexBoundFromRecAttr(
NdbRecAttr* recAttr);
311 void releaseIndexBoundsOldApi();
312 int ndbrecord_insert_bound(
const NdbRecord *key_record,
316 Uint32*& firstWordOfBound);
317 int insert_open_bound(
const NdbRecord* key_record,
318 Uint32*& firstWordOfBound);
323 int getDistKeyFromRange(
const NdbRecord* key_record,
327 void fix_get_values();
328 int next_result_ordered(
bool fetchAllowed,
bool forceSend =
false);
329 int next_result_ordered_ndbrecord(
const char * & out_row,
332 void ordered_insert_receiver(Uint32 start,
NdbReceiver *receiver);
333 int ordered_send_scan_wait_for_all(
bool forceSend);
334 int send_next_scan_ordered(Uint32 idx);
336 Uint32 m_sort_columns;
341 Uint32 m_previous_range_num;
376 return setBound(anAttrId, type, value);