Skip to content

File set_object.h

FileList > cubrid > src > object > set_object.h

Go to the source code of this file

  • #include "config.h"
  • #include "dbtype_def.h"
  • #include "error_manager.h"
  • #include "object_domain.h"
  • #include "locator.h"

Classes

Type Name
struct set_iterator
struct setobj

Public Types

Type Name
typedef SETOBJ COL
typedef struct setobj SETOBJ
typedef struct set_iterator SET_ITERATOR

Public Functions

Type Name
int col_add (COL * col, DB_VALUE * val)
int col_delete (COL * col, long colindex)
int col_drop (COL * col, DB_VALUE * val)
int col_drop_nulls (COL * col)
int col_expand (COL * col, long i)
long col_find (COL * col, long * found, DB_VALUE * val, int do_coerce)
int col_has_null (COL * col)
int col_insert (COL * col, long colindex, DB_VALUE * val)
COL * col_new (long size, int settype)
int col_permanent_oids (COL * col)
int col_put (COL * col, long colindex, DB_VALUE * val)
int col_sort (COL * col)
int col_value_compare (DB_VALUE * a, DB_VALUE * b)
int set_add_element (DB_COLLECTION * set, DB_VALUE * value)
int set_add_element_quick (DB_COLLECTION * set, DB_VALUE * value)
void set_area_final (void)
int set_area_init (void)
void set_area_reset ()
int set_cardinality (DB_COLLECTION * set)
DB_COLLECTION * set_change_owner (DB_COLLECTION * ref, MOP owner, int attid, TP_DOMAIN * domain)
TP_DOMAIN_STATUS set_check_domain (DB_COLLECTION * set, TP_DOMAIN * domain)
int set_clear (DB_COLLECTION * set)
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)
DB_VALUE_COMPARE_RESULT set_compare_order (DB_COLLECTION * set1, DB_COLLECTION * set2, int do_coercion, int total_order)
int set_connect (DB_COLLECTION * ref, MOP owner, int attid, TP_DOMAIN * domain)
int set_convert_oids_to_objects (DB_COLLECTION * set)
DB_COLLECTION * set_copy (DB_COLLECTION * set)
DB_COLLECTION * set_create (DB_TYPE type, int initial_size)
DB_COLLECTION * set_create_basic (void)
DB_COLLECTION * set_create_multi (void)
DB_COLLECTION * set_create_sequence (int size)
DB_COLLECTION * set_create_with_domain (TP_DOMAIN * domain, int initial_size)
int set_difference (DB_COLLECTION * collection1, DB_COLLECTION * collection2, DB_COLLECTION ** result, DB_DOMAIN * domain)
int set_disconnect (DB_COLLECTION * ref)
int set_drop_element (DB_COLLECTION * set, DB_VALUE * value, bool match_nulls)
int set_drop_seq_element (DB_COLLECTION * set, int index)
int set_filter (DB_COLLECTION * set)
void set_final (void)
int set_find_seq_element (DB_COLLECTION * set, DB_VALUE * value, int index)
void set_fprint (FILE * fp, DB_COLLECTION * set)
void set_free (DB_COLLECTION * set)
void set_free_block (DB_VALUE * in_block)
TP_DOMAIN * set_get_domain (DB_COLLECTION * set)
int set_get_element (DB_COLLECTION * set, int index, DB_VALUE * value)
int set_get_element_nocopy (DB_COLLECTION * set, int index, DB_VALUE * value)
int set_get_setobj (DB_COLLECTION * ref, COL ** setptr, int for_write)
DB_TYPE set_get_type (DB_COLLECTION * set)
bool set_has_null (DB_COLLECTION * set)
int set_insert_element (DB_COLLECTION * set, int index, DB_VALUE * value)
int set_intersection (DB_COLLECTION * collection1, DB_COLLECTION * collection2, DB_COLLECTION ** result, DB_DOMAIN * domain)
bool set_is_all_null (DB_COLLECTION * set)
bool set_isempty (DB_COLLECTION * set)
bool set_ismember (DB_COLLECTION * set, DB_VALUE * value)
SET_ITERATOR * set_iterate (DB_COLLECTION * set)
int set_iterator_finished (SET_ITERATOR * it)
void set_iterator_free (SET_ITERATOR * it)
int set_iterator_next (SET_ITERATOR * it)
DB_VALUE * set_iterator_value (SET_ITERATOR * it)
void set_make_collection (DB_VALUE * value, DB_COLLECTION * col)
DB_COLLECTION * set_make_reference (void)
DB_VALUE * set_new_element (DB_COLLECTION * ref)
int set_optimize (DB_COLLECTION * ref)
void set_print (DB_COLLECTION * set)
int set_put_element (DB_COLLECTION * set, int index, DB_VALUE * value)
DB_VALUE_COMPARE_RESULT set_seq_compare (DB_COLLECTION * set1, DB_COLLECTION * set2, int do_coercion, int total_order)
int set_size (DB_COLLECTION * set)
int set_tform_disk_set (DB_COLLECTION * ref, COL ** setptr)
int set_union (DB_COLLECTION * collection1, DB_COLLECTION * collection2, DB_COLLECTION ** result, DB_DOMAIN * domain)
int setobj_add_element (COL * col, DB_VALUE * value)
int setobj_build_domain_from_col (COL * col, TP_DOMAIN ** set_domain)
int setobj_cardinality (COL * col)
TP_DOMAIN_STATUS setobj_check_domain (COL * col, TP_DOMAIN * domain)
void setobj_clear (COL * col)
COL * setobj_coerce (COL * col, TP_DOMAIN * domain, bool implicit_coercion)
DB_VALUE_COMPARE_RESULT setobj_compare (COL * set1, COL * set2, int do_coercion)
DB_VALUE_COMPARE_RESULT setobj_compare_order (COL * set1, COL * set2, int do_coercion, int total_order)
int setobj_convert_oids_to_objects (COL * col)
COL * setobj_copy (COL * col)
COL * setobj_create (DB_TYPE collection_type, int size)
COL * setobj_create_with_domain (TP_DOMAIN * domain, int initial_size)
int setobj_difference (COL * set1, COL * set2, COL * result)
TP_DOMAIN * setobj_domain (COL * set)
int setobj_drop_element (COL * col, DB_VALUE * value, bool match_nulls)
int setobj_drop_seq_element (COL * col, int index)
int setobj_filter (COL * col, int filter, int * cardptr)
int setobj_find_seq_element (COL * col, DB_VALUE * value, int index)
void setobj_free (COL * col)
TP_DOMAIN * setobj_get_domain (COL * set)
int setobj_get_element (COL * set, int index, DB_VALUE * value)
int setobj_get_element_ptr (COL * col, int index, DB_VALUE ** result)
DB_COLLECTION * setobj_get_reference (COL * set)
int setobj_insert_element (COL * col, int index, DB_VALUE * value)
int setobj_intersection (COL * set1, COL * set2, COL * result)
bool setobj_isempty (COL * col)
bool setobj_ismember (COL * col, DB_VALUE * proposed_value, int check_null)
void setobj_print (FILE * fp, COL * col)
void setobj_put_domain (COL * set, TP_DOMAIN * domain)
int setobj_put_element (COL * col, int index, DB_VALUE * value)
int setobj_put_value (COL * col, int index, DB_VALUE * value)
int setobj_release (COL * set)
int setobj_size (COL * col)
int setobj_sort (COL * col)
int setobj_union (COL * set1, COL * set2, COL * result)
DB_VALUE_COMPARE_RESULT setvobj_compare (COL * set1, COL * set2, int do_coercion, int total_order)
void swizzle_value (DB_VALUE * val, int input)
DB_VALUE_COMPARE_RESULT vobj_compare (DB_COLLECTION * set1, DB_COLLECTION * set2, int do_coercion, int total_order)

Macros

Type Name
define BLOCK (collection_index) (([**int**](broker__monitor_8c.md#function-timeout)) (([**collection\_index**](broker__monitor_8c.md#function-timeout))/[**COL\_BLOCK\_SIZE**](set__object_8h.md#define-col_block_size)))
define BLOCKING_LESS1 ([**COL\_BLOCK\_SIZE**](set__object_8h.md#define-col_block_size) -1)
define BLOCK_START (block) /* multi line expression */
define COLBLOCKSIZE (n) ([**sizeof**](broker__monitor_8c.md#function-timeout)([**COL\_BLOCK**](set__object_8c.md#typedef-col_block)) + (n \* [**sizeof**](broker__monitor_8c.md#function-timeout)([**DB\_VALUE**](dbtype__def_8h.md#typedef-db_value))))
define COL_BLOCK_SIZE (64)
define EXPAND (blockindex) (([**int**](broker__monitor_8c.md#function-timeout)) ((([**blockindex**](broker__monitor_8c.md#function-timeout))\*1.1) + 1))
define IMPLICIT (1)
define INDEX (collection, index) (&(collection->array[[**BLOCK**](set__object_8h.md#define-block)(index)][[**OFFSET**](set__object_8h.md#define-offset)(index)]))
define OBJECT_HAS_TEMP_OID (obj) (([**WS\_OID**](work__space_8h.md#define-ws_oid)(obj) == [**NULL**](freelistheap_8h.md#define-null)) ? 0 : [**OID\_ISTEMP**](oid_8h.md#define-oid_istemp)([**WS\_OID**](work__space_8h.md#define-ws_oid)(obj)))
define OFFSET (collection_index) (([**int**](broker__monitor_8c.md#function-timeout)) (([**collection\_index**](broker__monitor_8c.md#function-timeout))%[**COL\_BLOCK\_SIZE**](set__object_8h.md#define-col_block_size)))
define SET_DUPLICATE_VALUE (1)
define VALUETOP (col) ((col->topblock \* [**COL\_BLOCK\_SIZE**](set__object_8h.md#define-col_block_size)) + col->topblockcount)

Public Types Documentation

typedef COL

typedef SETOBJ COL;

typedef SETOBJ

typedef struct setobj SETOBJ;

typedef SET_ITERATOR

typedef struct set_iterator SET_ITERATOR;

Public Functions Documentation

function col_add

int col_add (
    COL * col,
    DB_VALUE * val
) 

function col_delete

int col_delete (
    COL * col,
    long colindex
) 

function col_drop

int col_drop (
    COL * col,
    DB_VALUE * val
) 

function col_drop_nulls

int col_drop_nulls (
    COL * col
) 

function col_expand

int col_expand (
    COL * col,
    long i
) 

function col_find

long col_find (
    COL * col,
    long * found,
    DB_VALUE * val,
    int do_coerce
) 

function col_has_null

int col_has_null (
    COL * col
) 

function col_insert

int col_insert (
    COL * col,
    long colindex,
    DB_VALUE * val
) 

function col_new

COL * col_new (
    long size,
    int settype
) 

function col_permanent_oids

int col_permanent_oids (
    COL * col
) 

function col_put

int col_put (
    COL * col,
    long colindex,
    DB_VALUE * val
) 

function col_sort

int col_sort (
    COL * col
) 

function col_value_compare

int col_value_compare (
    DB_VALUE * a,
    DB_VALUE * b
) 

function set_add_element

int set_add_element (
    DB_COLLECTION * set,
    DB_VALUE * value
) 

function set_add_element_quick

int set_add_element_quick (
    DB_COLLECTION * set,
    DB_VALUE * value
) 

function set_area_final

void set_area_final (
    void
) 

function set_area_init

int set_area_init (
    void
) 

function set_area_reset

void set_area_reset () 

function set_cardinality

int set_cardinality (
    DB_COLLECTION * set
) 

function set_change_owner

DB_COLLECTION * set_change_owner (
    DB_COLLECTION * ref,
    MOP owner,
    int attid,
    TP_DOMAIN * domain
) 

function set_check_domain

TP_DOMAIN_STATUS set_check_domain (
    DB_COLLECTION * set,
    TP_DOMAIN * domain
) 

function set_clear

int set_clear (
    DB_COLLECTION * set
) 

function set_coerce

DB_COLLECTION * set_coerce (
    DB_COLLECTION * set,
    TP_DOMAIN * domain,
    bool implicit_coercion
) 

function set_compare

DB_VALUE_COMPARE_RESULT set_compare (
    DB_COLLECTION * set1,
    DB_COLLECTION * set2,
    int do_coercion
) 

function set_compare_order

DB_VALUE_COMPARE_RESULT set_compare_order (
    DB_COLLECTION * set1,
    DB_COLLECTION * set2,
    int do_coercion,
    int total_order
) 

function set_connect

int set_connect (
    DB_COLLECTION * ref,
    MOP owner,
    int attid,
    TP_DOMAIN * domain
) 

function set_convert_oids_to_objects

int set_convert_oids_to_objects (
    DB_COLLECTION * set
) 

function set_copy

DB_COLLECTION * set_copy (
    DB_COLLECTION * set
) 

function set_create

DB_COLLECTION * set_create (
    DB_TYPE type,
    int initial_size
) 

function set_create_basic

DB_COLLECTION * set_create_basic (
    void
) 

function set_create_multi

DB_COLLECTION * set_create_multi (
    void
) 

function set_create_sequence

DB_COLLECTION * set_create_sequence (
    int size
) 

function set_create_with_domain

DB_COLLECTION * set_create_with_domain (
    TP_DOMAIN * domain,
    int initial_size
) 

function set_difference

int set_difference (
    DB_COLLECTION * collection1,
    DB_COLLECTION * collection2,
    DB_COLLECTION ** result,
    DB_DOMAIN * domain
) 

function set_disconnect

int set_disconnect (
    DB_COLLECTION * ref
) 

function set_drop_element

int set_drop_element (
    DB_COLLECTION * set,
    DB_VALUE * value,
    bool match_nulls
) 

function set_drop_seq_element

int set_drop_seq_element (
    DB_COLLECTION * set,
    int index
) 

function set_filter

int set_filter (
    DB_COLLECTION * set
) 

function set_final

void set_final (
    void
) 

function set_find_seq_element

int set_find_seq_element (
    DB_COLLECTION * set,
    DB_VALUE * value,
    int index
) 

function set_fprint

void set_fprint (
    FILE * fp,
    DB_COLLECTION * set
) 

function set_free

void set_free (
    DB_COLLECTION * set
) 

function set_free_block

void set_free_block (
    DB_VALUE * in_block
) 

function set_get_domain

TP_DOMAIN * set_get_domain (
    DB_COLLECTION * set
) 

function set_get_element

int set_get_element (
    DB_COLLECTION * set,
    int index,
    DB_VALUE * value
) 

function set_get_element_nocopy

int set_get_element_nocopy (
    DB_COLLECTION * set,
    int index,
    DB_VALUE * value
) 

function set_get_setobj

int set_get_setobj (
    DB_COLLECTION * ref,
    COL ** setptr,
    int for_write
) 

function set_get_type

DB_TYPE set_get_type (
    DB_COLLECTION * set
) 

function set_has_null

bool set_has_null (
    DB_COLLECTION * set
) 

function set_insert_element

int set_insert_element (
    DB_COLLECTION * set,
    int index,
    DB_VALUE * value
) 

function set_intersection

int set_intersection (
    DB_COLLECTION * collection1,
    DB_COLLECTION * collection2,
    DB_COLLECTION ** result,
    DB_DOMAIN * domain
) 

function set_is_all_null

bool set_is_all_null (
    DB_COLLECTION * set
) 

function set_isempty

bool set_isempty (
    DB_COLLECTION * set
) 

function set_ismember

bool set_ismember (
    DB_COLLECTION * set,
    DB_VALUE * value
) 

function set_iterate

SET_ITERATOR * set_iterate (
    DB_COLLECTION * set
) 

function set_iterator_finished

int set_iterator_finished (
    SET_ITERATOR * it
) 

function set_iterator_free

void set_iterator_free (
    SET_ITERATOR * it
) 

function set_iterator_next

int set_iterator_next (
    SET_ITERATOR * it
) 

function set_iterator_value

DB_VALUE * set_iterator_value (
    SET_ITERATOR * it
) 

function set_make_collection

void set_make_collection (
    DB_VALUE * value,
    DB_COLLECTION * col
) 

function set_make_reference

DB_COLLECTION * set_make_reference (
    void
) 

function set_new_element

DB_VALUE * set_new_element (
    DB_COLLECTION * ref
) 

function set_optimize

int set_optimize (
    DB_COLLECTION * ref
) 

function set_print

void set_print (
    DB_COLLECTION * set
) 

function set_put_element

int set_put_element (
    DB_COLLECTION * set,
    int index,
    DB_VALUE * value
) 

function set_seq_compare

DB_VALUE_COMPARE_RESULT set_seq_compare (
    DB_COLLECTION * set1,
    DB_COLLECTION * set2,
    int do_coercion,
    int total_order
) 

function set_size

int set_size (
    DB_COLLECTION * set
) 

function set_tform_disk_set

int set_tform_disk_set (
    DB_COLLECTION * ref,
    COL ** setptr
) 

function set_union

int set_union (
    DB_COLLECTION * collection1,
    DB_COLLECTION * collection2,
    DB_COLLECTION ** result,
    DB_DOMAIN * domain
) 

function setobj_add_element

int setobj_add_element (
    COL * col,
    DB_VALUE * value
) 

function setobj_build_domain_from_col

int setobj_build_domain_from_col (
    COL * col,
    TP_DOMAIN ** set_domain
) 

function setobj_cardinality

int setobj_cardinality (
    COL * col
) 

function setobj_check_domain

TP_DOMAIN_STATUS setobj_check_domain (
    COL * col,
    TP_DOMAIN * domain
) 

function setobj_clear

void setobj_clear (
    COL * col
) 

function setobj_coerce

COL * setobj_coerce (
    COL * col,
    TP_DOMAIN * domain,
    bool implicit_coercion
) 

function setobj_compare

DB_VALUE_COMPARE_RESULT setobj_compare (
    COL * set1,
    COL * set2,
    int do_coercion
) 

function setobj_compare_order

DB_VALUE_COMPARE_RESULT setobj_compare_order (
    COL * set1,
    COL * set2,
    int do_coercion,
    int total_order
) 

function setobj_convert_oids_to_objects

int setobj_convert_oids_to_objects (
    COL * col
) 

function setobj_copy

COL * setobj_copy (
    COL * col
) 

function setobj_create

COL * setobj_create (
    DB_TYPE collection_type,
    int size
) 

function setobj_create_with_domain

COL * setobj_create_with_domain (
    TP_DOMAIN * domain,
    int initial_size
) 

function setobj_difference

int setobj_difference (
    COL * set1,
    COL * set2,
    COL * result
) 

function setobj_domain

TP_DOMAIN * setobj_domain (
    COL * set
) 

function setobj_drop_element

int setobj_drop_element (
    COL * col,
    DB_VALUE * value,
    bool match_nulls
) 

function setobj_drop_seq_element

int setobj_drop_seq_element (
    COL * col,
    int index
) 

function setobj_filter

int setobj_filter (
    COL * col,
    int filter,
    int * cardptr
) 

function setobj_find_seq_element

int setobj_find_seq_element (
    COL * col,
    DB_VALUE * value,
    int index
) 

function setobj_free

void setobj_free (
    COL * col
) 

function setobj_get_domain

TP_DOMAIN * setobj_get_domain (
    COL * set
) 

function setobj_get_element

int setobj_get_element (
    COL * set,
    int index,
    DB_VALUE * value
) 

function setobj_get_element_ptr

int setobj_get_element_ptr (
    COL * col,
    int index,
    DB_VALUE ** result
) 

function setobj_get_reference

DB_COLLECTION * setobj_get_reference (
    COL * set
) 

function setobj_insert_element

int setobj_insert_element (
    COL * col,
    int index,
    DB_VALUE * value
) 

function setobj_intersection

int setobj_intersection (
    COL * set1,
    COL * set2,
    COL * result
) 

function setobj_isempty

bool setobj_isempty (
    COL * col
) 

function setobj_ismember

bool setobj_ismember (
    COL * col,
    DB_VALUE * proposed_value,
    int check_null
) 

function setobj_print

void setobj_print (
    FILE * fp,
    COL * col
) 

function setobj_put_domain

void setobj_put_domain (
    COL * set,
    TP_DOMAIN * domain
) 

function setobj_put_element

int setobj_put_element (
    COL * col,
    int index,
    DB_VALUE * value
) 

function setobj_put_value

int setobj_put_value (
    COL * col,
    int index,
    DB_VALUE * value
) 

function setobj_release

int setobj_release (
    COL * set
) 

function setobj_size

int setobj_size (
    COL * col
) 

function setobj_sort

int setobj_sort (
    COL * col
) 

function setobj_union

int setobj_union (
    COL * set1,
    COL * set2,
    COL * result
) 

function setvobj_compare

DB_VALUE_COMPARE_RESULT setvobj_compare (
    COL * set1,
    COL * set2,
    int do_coercion,
    int total_order
) 

function swizzle_value

void swizzle_value (
    DB_VALUE * val,
    int input
) 

function vobj_compare

DB_VALUE_COMPARE_RESULT vobj_compare (
    DB_COLLECTION * set1,
    DB_COLLECTION * set2,
    int do_coercion,
    int total_order
) 

Macro Definition Documentation

define BLOCK

#define BLOCK (
    collection_index
) `(( int ) (( collection_index )/ COL_BLOCK_SIZE ))`

define BLOCKING_LESS1

#define BLOCKING_LESS1 `( COL_BLOCK_SIZE -1)`

define BLOCK_START

#define BLOCK_START (
    block
) `/* multi line expression */`

define COLBLOCKSIZE

#define COLBLOCKSIZE (
    n
) `( sizeof ( COL_BLOCK ) + (n * sizeof ( DB_VALUE )))`

define COL_BLOCK_SIZE

#define COL_BLOCK_SIZE `(64)`

define EXPAND

#define EXPAND (
    blockindex
) `(( int ) ((( blockindex )*1.1) + 1))`

define IMPLICIT

#define IMPLICIT `(1)`

define INDEX

#define INDEX (
    collection,
    index
) `(&(collection->array[ BLOCK (index)][ OFFSET (index)]))`

define OBJECT_HAS_TEMP_OID

#define OBJECT_HAS_TEMP_OID (
    obj
) `(( WS_OID (obj) == NULL ) ? 0 : OID_ISTEMP ( WS_OID (obj)))`

define OFFSET

#define OFFSET (
    collection_index
) `(( int ) (( collection_index )% COL_BLOCK_SIZE ))`

define SET_DUPLICATE_VALUE

#define SET_DUPLICATE_VALUE `(1)`

define VALUETOP

#define VALUETOP (
    col
) `((col->topblock * COL_BLOCK_SIZE ) + col->topblockcount)`


The documentation for this class was generated from the following file cubrid/src/object/set_object.h