24 #ifndef _SET_OBJECT_H_ 25 #define _SET_OBJECT_H_ 36 #if !defined (SERVER_MODE) 40 #define SET_DUPLICATE_VALUE (1) 43 #define COL_BLOCK_SIZE (64) 50 #define EXPAND(blockindex) ((int) (((blockindex)*1.1) + 1)) 52 #define BLOCK(collection_index) ((int) ((collection_index)/COL_BLOCK_SIZE)) 53 #define OFFSET(collection_index) ((int) ((collection_index)%COL_BLOCK_SIZE)) 54 #define INDEX(collection,index) (&(collection->array[BLOCK(index)][OFFSET(index)])) 55 #define BLOCKING_LESS1 (COL_BLOCK_SIZE -1) 56 #define VALUETOP(col) ((col->topblock * COL_BLOCK_SIZE) + col->topblockcount) 57 #define COLBLOCKSIZE(n) (sizeof(COL_BLOCK) + (n * sizeof(DB_VALUE))) 58 #define BLOCK_START(block) ((COL_BLOCK *) \ 59 ((char *)block - offsetof(struct collect_block, val))) 64 #define OBJECT_HAS_TEMP_OID(obj) \ 65 ((WS_OID(obj) == NULL) ? 0 : OID_ISTEMP(WS_OID(obj))) 121 #if defined (ENABLE_UNUSED_FUNCTION) 133 #if defined (ENABLE_UNUSED_FUNCTION) 157 #if defined(ENABLE_UNUSED_FUNCTION) 162 #if !defined (SERVER_MODE) 233 #if defined(ENABLE_UNUSED_FUNCTION) 236 #if !defined(SERVER_MODE) 237 extern int setobj_find_temporary_oids (
SETOBJ * col,
LC_OIDSET * oidset);
260 #if !defined (SERVER_MODE) DB_COLLECTION * set_change_owner(DB_COLLECTION *ref, MOP owner, int attid, TP_DOMAIN *domain)
int set_insert_element(DB_COLLECTION *set, int index, DB_VALUE *value)
void set_print(DB_COLLECTION *set)
void set_iterator_free(SET_ITERATOR *it)
int set_connect(DB_COLLECTION *ref, MOP owner, int attid, TP_DOMAIN *domain)
long col_find(COL *col, long *found, DB_VALUE *val, int do_coerce)
int setobj_convert_oids_to_objects(COL *col)
int setobj_intersection(COL *set1, COL *set2, COL *result)
TP_DOMAIN * set_get_domain(DB_COLLECTION *set)
int set_drop_element(DB_COLLECTION *set, DB_VALUE *value, bool match_nulls)
int col_drop(COL *col, DB_VALUE *val)
bool setobj_ismember(COL *col, DB_VALUE *proposed_value, int check_null)
DB_COLLECTION * set_create_basic(void)
void set_make_collection(DB_VALUE *value, DB_COLLECTION *col)
int setobj_drop_seq_element(COL *col, int index)
bool set_ismember(DB_COLLECTION *set, DB_VALUE *value)
int col_delete(COL *col, long colindex)
int setobj_find_seq_element(COL *col, DB_VALUE *value, int index)
int set_issome(DB_VALUE *value, DB_COLLECTION *set, PT_OP_TYPE op, int do_coercion)
struct tp_domain * domain
void setobj_put_domain(COL *set, TP_DOMAIN *domain)
int set_filter(DB_COLLECTION *set)
unsigned may_have_temporary_oids
bool set_has_null(DB_COLLECTION *set)
void set_free_block(DB_VALUE *in_block)
int set_optimize(DB_COLLECTION *ref)
DB_COLLECTION * set_create_with_domain(TP_DOMAIN *domain, int initial_size)
COL * setobj_coerce(COL *col, TP_DOMAIN *domain, bool implicit_coercion)
int setobj_insert_element(COL *col, int index, DB_VALUE *value)
int set_put_element(DB_COLLECTION *set, int index, DB_VALUE *value)
DB_VALUE * set_new_element(DB_COLLECTION *ref)
int set_add_element(DB_COLLECTION *set, DB_VALUE *value)
DB_COLLECTION * set_copy(DB_COLLECTION *set)
enum tp_domain_status TP_DOMAIN_STATUS
COL * setobj_create_with_domain(TP_DOMAIN *domain, int initial_size)
void setobj_free(COL *col)
SET_ITERATOR * set_iterate(DB_COLLECTION *set)
int setobj_get_element(COL *set, int index, DB_VALUE *value)
int setobj_drop_element(COL *col, DB_VALUE *value, bool match_nulls)
struct set_iterator * next
int col_expand(COL *col, long i)
int col_drop_nulls(COL *col)
struct set_iterator SET_ITERATOR
int col_has_null(COL *col)
DB_COLLECTION * set_create_multi(void)
int col_put(COL *col, long colindex, DB_VALUE *val)
int set_get_setobj(DB_COLLECTION *ref, COL **setptr, int for_write)
int set_iterator_next(SET_ITERATOR *it)
int set_get_element(DB_COLLECTION *set, int index, DB_VALUE *value)
bool setobj_isempty(COL *col)
int set_union(DB_COLLECTION *collection1, DB_COLLECTION *collection2, DB_COLLECTION **result, DB_DOMAIN *domain)
DB_COLLECTION * set_coerce(DB_COLLECTION *set, TP_DOMAIN *domain, bool implicit_coercion)
DB_VALUE_COMPARE_RESULT set_compare(DB_COLLECTION *set1, DB_COLLECTION *set2, int do_coercion)
int setobj_sort(COL *col)
int col_insert(COL *col, long colindex, DB_VALUE *val)
DB_VALUE * set_iterator_value(SET_ITERATOR *it)
bool set_isempty(DB_COLLECTION *set)
TP_DOMAIN * setobj_domain(COL *set)
int setobj_get_element_ptr(COL *col, int index, DB_VALUE **result)
DB_COLLECTION * setobj_get_reference(COL *set)
int set_cardinality(DB_COLLECTION *set)
DB_TYPE set_get_type(DB_COLLECTION *set)
int setobj_add_element(COL *col, DB_VALUE *value)
int set_drop_seq_element(DB_COLLECTION *set, int index)
DB_VALUE_COMPARE_RESULT setobj_compare(COL *set1, COL *set2, int do_coercion)
TP_DOMAIN_STATUS setobj_check_domain(COL *col, TP_DOMAIN *domain)
DB_VALUE_COMPARE_RESULT set_seq_compare(DB_COLLECTION *set1, DB_COLLECTION *set2, int do_coercion, int total_order)
COL * col_new(long size, int settype)
int col_add(COL *col, DB_VALUE *val)
void set_area_final(void)
int set_find_seq_element(DB_COLLECTION *set, DB_VALUE *value, int index)
int setobj_build_domain_from_col(COL *col, TP_DOMAIN **set_domain)
int set_convert_oids_to_objects(DB_COLLECTION *set)
int setobj_put_element(COL *col, int index, DB_VALUE *value)
DB_COLLECTION * set_make_reference(void)
int set_intersection(DB_COLLECTION *collection1, DB_COLLECTION *collection2, DB_COLLECTION **result, DB_DOMAIN *domain)
void set_fprint(FILE *fp, DB_COLLECTION *set)
TP_DOMAIN_STATUS set_check_domain(DB_COLLECTION *set, TP_DOMAIN *domain)
DB_VALUE_COMPARE_RESULT vobj_compare(DB_COLLECTION *set1, DB_COLLECTION *set2, int do_coercion, int total_order)
int set_disconnect(DB_COLLECTION *ref)
DB_VALUE_COMPARE_RESULT setvobj_compare(COL *set1, COL *set2, int do_coercion, int total_order)
void setobj_print(FILE *fp, COL *col)
int setobj_issome(DB_VALUE *value, COL *set, PT_OP_TYPE op, int do_coercion)
int setobj_cardinality(COL *col)
int set_size(DB_COLLECTION *set)
int set_tform_disk_set(DB_COLLECTION *ref, COL **setptr)
DB_VALUE_COMPARE_RESULT set_compare_order(DB_COLLECTION *set1, DB_COLLECTION *set2, int do_coercion, int total_order)
void swizzle_value(DB_VALUE *val, int input)
int col_value_compare(DB_VALUE *a, DB_VALUE *b)
COL * setobj_create(DB_TYPE collection_type, int size)
DB_COLLECTION * set_create(DB_TYPE type, int initial_size)
int setobj_filter(COL *col, int filter, int *cardptr)
int setobj_union(COL *set1, COL *set2, COL *result)
DB_COLLECTION * references
int setobj_release(COL *set)
int set_get_element_nocopy(DB_COLLECTION *set, int index, DB_VALUE *value)
int col_permanent_oids(COL *col)
int setobj_difference(COL *set1, COL *set2, COL *result)
TP_DOMAIN * setobj_get_domain(COL *set)
int set_difference(DB_COLLECTION *collection1, DB_COLLECTION *collection2, DB_COLLECTION **result, DB_DOMAIN *domain)
DB_COLLECTION * set_create_sequence(int size)
int setobj_size(COL *col)
void set_free(DB_COLLECTION *set)
int setobj_put_value(COL *col, int index, DB_VALUE *value)
void setobj_clear(COL *col)
DB_VALUE_COMPARE_RESULT setobj_compare_order(COL *set1, COL *set2, int do_coercion, int total_order)
COL * setobj_copy(COL *col)