12 #ifndef __SAS_INDEXKEY_H
13 #define __SAS_INDEXKEY_H
41 const unsigned long double_mask = (0xffffffffffffffff);
103 rc = memcmp (&op_a->
data[0], &op_b->
data[0], len);
185 #if __BYTE_ORDER == __BIG_ENDIAN
217 dest->
copy_size =
sizeof (
void *) +
sizeof (
unsigned long long);
221 dest->
copy_size =
sizeof (
void *) +
sizeof (
unsigned long long);
234 static inline unsigned long long
266 dest->
copy_size =
sizeof (
void *) +
sizeof (
unsigned long long);
270 dest->
copy_size =
sizeof (
void *) +
sizeof (
unsigned long long);
283 static inline long long
315 dest->
copy_size =
sizeof (
void *) +
sizeof (
unsigned long long);
322 dest->
copy_size =
sizeof (
void *) +
sizeof (
unsigned long long);
struct SASIndexKey_t SASIndexKey_t
Index Key Handle structure for binary index B-trees.
const unsigned long double_exp_mask
mask use to invert the exponent.
Definition: sasindexkey.h:50
const unsigned long machine_sign_mask
mask use to invert the signbit.
Definition: sasindexkey.h:48
static void SASIndexKeyInitRef(SASIndexKey_t *dest, void *value)
Initial a binary key @ destination with a address value.
Definition: sasindexkey.h:169
machine_uint_t data[15]
Definition: sasindexkey.h:66
static void SASIndexKeyInitInt64(SASIndexKey_t *dest, signed long long value)
Initial a binary key @ destination with a signed 64-bit integer value.
Definition: sasindexkey.h:259
static double SASIndexKeyReturn1stDouble(SASIndexKey_t *dest)
Return the value of the 1st binary key as a signed 64-bit integer value.
Definition: sasindexkey.h:345
static int SASIndexKeyCompare(SASIndexKey_t *op_a, SASIndexKey_t *op_b)
binary key compare logic for Index B-Tree keys.
Definition: sasindexkey.h:83
double double_key
Definition: sasindexkey.h:199
unsigned long long uint64_key
Definition: sasindexkey.h:195
static void SASIndexKeyInitDouble(SASIndexKey_t *dest, double value)
Initial a binary key @ destination with a signed 64-bit integer value.
Definition: sasindexkey.h:308
machine_uhalf_t copy_size
Definition: sasindexkey.h:62
static void SASIndexKeyInitUInt64(SASIndexKey_t *dest, unsigned long long value)
Initial a binary key @ destination with a unsigned 64-bit integer value.
Definition: sasindexkey.h:210
static size_t SASIndexKeySize(SASIndexKey_t *key)
Return the binary index key copy_size.
Definition: sasindexkey.h:157
Index Key Handle structure for binary index B-trees.
Definition: sasindexkey.h:59
static long long SASIndexKeyReturn1stInt64(SASIndexKey_t *dest)
Return the value of the 1st binary key as a signed 64-bit integer value.
Definition: sasindexkey.h:284
struct sasindexkeymap_t::@0 key_element
unsigned short machine_uhalf_t
data unit used to store copy and compare lengths.
Definition: sasindexkey.h:46
long long int64_key
Definition: sasindexkey.h:197
machine_uhalf_t compare_size
Definition: sasindexkey.h:64
const unsigned long double_mask
mask use to invert the sign and exponent.
Definition: sasindexkey.h:52
unsigned long machine_uint_t
word size data unit used for binary keys.
Definition: sasindexkey.h:44
static unsigned long long SASIndexKeyReturn1stUInt64(SASIndexKey_t *dest)
Return the value of the 1st binary key as a unsigned 64-bit integer value.
Definition: sasindexkey.h:235
Union of value types and key machine integer types.
Definition: sasindexkey.h:179
static void SASIndexKeyCopy(SASIndexKey_t *dest, SASIndexKey_t *src)
Copy a binary key from source to destination.
Definition: sasindexkey.h:142