CUBRID Engine  latest
class_object.h
Go to the documentation of this file.
1 /*
2  * Copyright 2008 Search Solution Corporation
3  * Copyright 2016 CUBRID Corporation
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  */
18 
19 
20 /*
21  * class_object.h - Definitions for structures used in the representation
22  * of classes
23  */
24 
25 #ifndef _CLASS_OBJECT_H_
26 #define _CLASS_OBJECT_H_
27 
28 #ident "$Id$"
29 
30 #if defined (SERVER_MODE)
31 #error Does not belong to server module
32 #endif /* defined (SERVER_MODE) */
33 
34 #include "object_domain.h"
35 #include "work_space.h"
36 #include "storage_common.h"
37 #include "statistics.h"
38 
39 // forward definitions
40 struct pr_type;
41 
42 /*
43  * This macro should be used whenever comparisons need to be made
44  * on the class or component names. Basically this will perform
45  * a case insensitive comparison
46  */
47 #define SM_COMPARE_NAMES intl_identifier_casecmp
48 
49 /*
50  * Shorthand macros for iterating over a component, attribute, method list
51  */
52 
53 #define SM_IS_ATTFLAG_AUTO_INCREMENT(c) (c == SM_ATTFLAG_AUTO_INCREMENT)
54 
55 #define SM_IS_ATTFLAG_UNIQUE_FAMILY(c) \
56  (((c) == SM_ATTFLAG_UNIQUE || \
57  (c) == SM_ATTFLAG_PRIMARY_KEY || \
58  (c) == SM_ATTFLAG_REVERSE_UNIQUE) \
59  ? true : false)
60 
61 #define SM_IS_ATTFLAG_INDEX_FAMILY(c) \
62  ((SM_IS_ATTFLAG_UNIQUE_FAMILY(c) || \
63  (c) == SM_ATTFLAG_FOREIGN_KEY || \
64  (c) == SM_ATTFLAG_INDEX || \
65  (c) == SM_ATTFLAG_REVERSE_INDEX) \
66  ? true : false)
67 
68 #define SM_IS_ATTFLAG_REVERSE_INDEX_FAMILY(c) \
69  (((c) == SM_ATTFLAG_REVERSE_UNIQUE || \
70  (c) == SM_ATTFLAG_REVERSE_INDEX) \
71  ? true : false)
72 
73 #define SM_IS_ATTFLAG_UNIQUE_FAMILY_OR_FOREIGN_KEY(c) \
74  ((SM_IS_ATTFLAG_UNIQUE_FAMILY(c) || \
75  (c) == SM_ATTFLAG_FOREIGN_KEY) \
76  ? true : false)
77 
78 #define SM_MAP_INDEX_ATTFLAG_TO_CONSTRAINT(c) \
79  ((c) == SM_ATTFLAG_UNIQUE ? SM_CONSTRAINT_UNIQUE : \
80  (c) == SM_ATTFLAG_PRIMARY_KEY ? SM_CONSTRAINT_PRIMARY_KEY : \
81  (c) == SM_ATTFLAG_FOREIGN_KEY ? SM_CONSTRAINT_FOREIGN_KEY : \
82  (c) == SM_ATTFLAG_INDEX ? SM_CONSTRAINT_INDEX : \
83  (c) == SM_ATTFLAG_REVERSE_UNIQUE ? SM_CONSTRAINT_REVERSE_UNIQUE : \
84  SM_CONSTRAINT_REVERSE_INDEX)
85 
86 #define SM_MAP_CONSTRAINT_ATTFLAG_TO_PROPERTY(c) \
87  ((c) == SM_ATTFLAG_UNIQUE ? SM_PROPERTY_UNIQUE: \
88  (c) == SM_ATTFLAG_PRIMARY_KEY ? SM_PROPERTY_PRIMARY_KEY: \
89  (c) == SM_ATTFLAG_FOREIGN_KEY ? SM_PROPERTY_FOREIGN_KEY: \
90  SM_PROPERTY_REVERSE_UNIQUE)
91 
92 
93 #define SM_MAP_CONSTRAINT_TO_ATTFLAG(c) \
94  ((c) == DB_CONSTRAINT_UNIQUE ? SM_ATTFLAG_UNIQUE: \
95  (c) == DB_CONSTRAINT_PRIMARY_KEY ? SM_ATTFLAG_PRIMARY_KEY: \
96  (c) == DB_CONSTRAINT_NOT_NULL ? SM_ATTFLAG_NON_NULL: \
97  (c) == DB_CONSTRAINT_FOREIGN_KEY ? SM_ATTFLAG_FOREIGN_KEY: \
98  (c) == DB_CONSTRAINT_INDEX ? SM_ATTFLAG_INDEX: \
99  (c) == DB_CONSTRAINT_REVERSE_UNIQUE ? SM_ATTFLAG_REVERSE_UNIQUE: \
100  (c) == DB_CONSTRAINT_REVERSE_INDEX ? SM_ATTFLAG_REVERSE_INDEX: \
101  SM_ATTFLAG_NONE)
102 
103 #define SM_MAP_DB_INDEX_CONSTRAINT_TO_SM_CONSTRAINT(c) \
104  ((c) == DB_CONSTRAINT_UNIQUE ? SM_CONSTRAINT_UNIQUE: \
105  (c) == DB_CONSTRAINT_PRIMARY_KEY ? SM_CONSTRAINT_PRIMARY_KEY: \
106  (c) == DB_CONSTRAINT_FOREIGN_KEY ? SM_CONSTRAINT_FOREIGN_KEY: \
107  (c) == DB_CONSTRAINT_INDEX ? SM_CONSTRAINT_INDEX: \
108  (c) == DB_CONSTRAINT_REVERSE_UNIQUE ? SM_CONSTRAINT_REVERSE_UNIQUE: \
109  SM_CONSTRAINT_REVERSE_INDEX)
110 
111 #define SM_IS_CONSTRAINT_UNIQUE_FAMILY(c) \
112  (((c) == SM_CONSTRAINT_UNIQUE || \
113  (c) == SM_CONSTRAINT_PRIMARY_KEY || \
114  (c) == SM_CONSTRAINT_REVERSE_UNIQUE) \
115  ? true : false )
116 
117 #define SM_IS_CONSTRAINT_INDEX_FAMILY(c) \
118  ((SM_IS_CONSTRAINT_UNIQUE_FAMILY(c) || \
119  (c) == SM_CONSTRAINT_FOREIGN_KEY || \
120  (c) == SM_CONSTRAINT_INDEX || \
121  (c) == SM_CONSTRAINT_REVERSE_INDEX) \
122  ? true : false )
123 
124 #define SM_IS_CONSTRAINT_REVERSE_INDEX_FAMILY(c) \
125  (((c) == SM_CONSTRAINT_REVERSE_UNIQUE || \
126  (c) == SM_CONSTRAINT_REVERSE_INDEX) \
127  ? true : false )
128 
129 #define SM_IS_SHARE_WITH_FOREIGN_KEY(c) \
130  (((c) == SM_CONSTRAINT_FOREIGN_KEY || \
131  (c) == SM_CONSTRAINT_INDEX) \
132  ? true : false)
133 
134 #define SM_IS_CONSTRAINT_EXCEPT_INDEX_FAMILY(c) \
135  ((SM_IS_CONSTRAINT_UNIQUE_FAMILY(c) || \
136  (c) == SM_CONSTRAINT_FOREIGN_KEY) \
137  ? true : false )
138 
139 #define SM_IS_INDEX_FAMILY(c) \
140  (((c) == SM_CONSTRAINT_UNIQUE || \
141  (c) == SM_CONSTRAINT_REVERSE_UNIQUE || \
142  (c) == SM_CONSTRAINT_INDEX || \
143  (c) == SM_CONSTRAINT_REVERSE_INDEX) \
144  ? true : false )
145 
146 #define SM_FIND_NAME_IN_COMPONENT_LIST(complist, name) \
147  classobj_complist_search((SM_COMPONENT *)complist, name)
148 
149 #define SM_MAX_CLASS_COMMENT_LENGTH 2048 /* max comment length for class */
150 /* max comment length for column/index/partition/sp/trigger/serial/user */
151 #define SM_MAX_COMMENT_LENGTH 1024
152 
153 /*
154  * c : constraint_type
155  */
156 #define SM_GET_CONSTRAINT_STRING(c) \
157  ((c) == DB_CONSTRAINT_UNIQUE ? "UNIQUE": \
158  (c) == DB_CONSTRAINT_PRIMARY_KEY ? "PRIMARY KEY": \
159  (c) == DB_CONSTRAINT_FOREIGN_KEY ? "FOREIGN KEY": \
160  (c) == DB_CONSTRAINT_REVERSE_UNIQUE ? "REVERSE_UNIQUE": \
161  "REVERSE_INDEX")
162 #define SM_GET_FILTER_PRED_STREAM(filter) \
163  ((filter) == NULL ? NULL : (filter)->pred_stream)
164 
165 #define SM_GET_FILTER_PRED_STREAM_SIZE(filter) \
166  ((filter) == NULL ? 0 : (filter)->pred_stream_size)
167 
168 typedef void (*METHOD_FUNCTION) ();
172  DB_VALUE *);
174  DB_VALUE *, DB_VALUE *);
176  DB_VALUE *, DB_VALUE *, DB_VALUE *);
178  DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *);
180  DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *);
187  DB_VALUE *);
190  DB_VALUE *, DB_VALUE *);
193  DB_VALUE *, DB_VALUE *, DB_VALUE *);
196  DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *);
199  DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *);
209  DB_VALUE *);
213  DB_VALUE *, DB_VALUE *);
217  DB_VALUE *, DB_VALUE *, DB_VALUE *);
221  DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *);
225  DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *);
238  DB_VALUE *);
243  DB_VALUE *, DB_VALUE *);
248  DB_VALUE *, DB_VALUE *, DB_VALUE *);
253  DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *);
258  DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *);
269  DB_VALUE_LIST *);
270 
271 typedef struct tp_domain SM_DOMAIN;
272 
273 /* attribute constraint types */
274 typedef enum
275 {
284 
285 /*
286  * These are used as tags in the SM_CLASS structure and indicates one
287  * of the several class types
288  */
289 typedef enum
290 {
291  SM_CLASS_CT, /* default CSQL class */
292  SM_VCLASS_CT, /* component db virtual class */
293  SM_ADT_CT /* Abstract data type-pseudo class */
294 } SM_CLASS_TYPE;
295 
296 /*
297  * Flags for misc information about a class. These must be defined
298  * as powers of two because they are stored packed in a single integer.
299  */
300 typedef enum
301 {
302  SM_CLASSFLAG_SYSTEM = 1, /* a system defined class */
303  SM_CLASSFLAG_WITHCHECKOPTION = 2, /* a view with check option */
304  SM_CLASSFLAG_LOCALCHECKOPTION = 4, /* view w/local check option */
305  SM_CLASSFLAG_REUSE_OID = 8, /* the class can reuse OIDs */
306 } SM_CLASS_FLAG;
307 
308 /*
309  * These are used to tag the "meta" objects
310  * This type is used in the definition of SM_CLASS_HEADER
311  */
312 typedef enum
313 {
314  SM_META_ROOT, /* the object is the root class */
315  SM_META_CLASS /* the object is a normal class */
316 } SM_METATYPE;
317 
318 /*
319  * These are used to classify the type of constraint.
320  */
321 typedef enum
322 {
326 
327 /*
328  * The extra status or flags for constraint instance.
329  */
330 typedef enum
331 {
332  SM_FLAG_NORMALLY_INITIALIZED, /* Normally initialized */
333  SM_FLAG_TO_BE_REINTIALIZED /* Ready or possible to be reinitialized */
335 
336 /*
337  * This is used at the top of all "meta" objects that are represented
338  * with C structures rather than in the usual instance memory format
339  * It serves as a convenient way to store common information
340  * for the class objects and the root class object and eliminates
341  * a lot of special case checking
342  */
344 
346 {
347  WS_OBJECT_HEADER ch_obj_header; /* always have the object header (chn) */
348 
349  SM_METATYPE ch_type; /* doesn't need to be a full word */
350  const char *ch_name;
351 
352  OID ch_rep_dir; /* representation directory record OID */
353  HFID ch_heap; /* heap file id */
354 };
355 
356 
357 /*
358  * Structure used to cache an attribute constraint. Attribute constraints
359  * are maintained in the property list. They are also cached using this
360  * structure for faster retrieval
361  */
363 
365 {
367 
368  char *name;
371  bool has_function; /* true, if is a function constraint */
372 };
373 
374 /*
375  * This structure is used as a header for attribute and methods
376  * so they can be manipulated by generic functions written to
377  * operate on heterogeneous lists of attributes and methods
378  */
379 typedef struct sm_component SM_COMPONENT;
380 
382 {
383 
384  struct sm_component *next; /* can be used with list_ routines */
385  const char *name; /* can be used with name_ routines */
386  SM_NAME_SPACE name_space; /* identifier tag */
387 
388 };
389 
392 {
393  DB_VALUE original_value; /* initial default value; */
394  DB_VALUE value; /* current default/shared/class value */
395  DB_DEFAULT_EXPR default_expr; /* default expression */
396 };
397 
398 typedef struct sm_attribute SM_ATTRIBUTE;
399 
400 /*
401  * NOTE:
402  * Regarding "original_value" and "value".
403  * "value" keeps the current value of default/shared/class value,
404  * and "original_value" is used for default value only and keeps
405  * the first value given as the default value. "first" means that
406  * "adding new attribute with default value" or "setting a default
407  * value to an existing attribute which does not have it".
408  * "original_value" will be used to fetch records which do not have
409  * the attribute, in other words, their representations are different
410  * with the last representation. It will replace unbound value
411  * of the attribute. Therefore it should be always propagated to the
412  * last representation. See the following example.
413  *
414  * create table x (i int);
415  * -- Insert a record with the first repr.
416  * insert into x values (1);
417  *
418  * alter table x add attribute s varchar(32) default 'def1';
419  * -- The second repr has column "s" with default value 'def1'.
420  * -- 'def1' was copied to "original_value" and "value" of column "s".
421  *
422  * select * from x;
423  * i s
424  * ===================================
425  * 1 'def1' <- This is from "original_value" of the last(=2nd) repr.
426  *
427  * alter table x change column s default 'def2';
428  * -- At this point, the third repr also has a copy of "original_value"
429  * -- of the second repr.
430  *
431  * insert into x values (2, default);
432  * select * from x;
433  * i s
434  * ===================================
435  * 1 'def1' <- This is from "original_value" of the last(=3rd) repr.
436  * 2 'def2'
437  *
438  */
440 {
441  SM_COMPONENT header; /* next, name, header */
442 
443  struct pr_type *type; /* basic type */
444  TP_DOMAIN *domain; /* allowable types */
445 
446  MOP class_mop; /* origin class */
447 
448  int id; /* unique id number */
449  int offset; /* memory offset */
450 
451  SM_DEFAULT_VALUE default_value; /* default value */
453 
454  SM_CONSTRAINT *constraints; /* cached constraint list */
455 
456  /* see tfcl and the discussion on attribute extensions */
457  DB_SEQ *properties; /* property list */
458 
459  unsigned int flags; /* bit flags */
460  int order; /* definition order number */
461  struct sm_attribute *order_link; /* list in definition order */
462 
463  struct tr_schema_cache *triggers; /* trigger cache */
464 
465  MOP auto_increment; /* instance of db_serial */
466  int storage_order; /* storage order number */
467  const char *comment;
468 };
469 
471 
473 {
475  const char *ref_class;
476  const char **ref_attrs;
483  char *name;
485 };
486 
488 
490 {
491  char *pred_string;
492  char *pred_stream; /* CREATE INDEX ... WHERE filter_predicate */
494  int *att_ids; /* array of attr ids from predicate */
495  int num_attrs; /* number of atts from predicate */
496 };
497 
499 
501 {
502  TP_DOMAIN *fi_domain; /* the domain of the function's result */
503  char *expr_str;
504  char *expr_stream;
506  int col_id;
508 };
509 
510 typedef enum
511 {
516 
525 
527 
529 {
531 
532  const char *name;
534  int *asc_desc; /* asc/desc info list */
536  SM_PREDICATE_INFO *filter_predicate; /* CREATE INDEX ... WHERE filter_predicate */
542  const char *comment;
545 };
546 
547 /*
548  * Holds information about a method argument. This will be used
549  * in a SM_METHOD_SIGNATURE signature structure.
550  */
551 
553 
555 {
557 
558  struct pr_type *type; /* basic type */
559  TP_DOMAIN *domain; /* full domain */
560  int index; /* argument index (one based) */
561 };
562 
563 
565 
567 {
569 
570  const char *function_name; /* C function name */
571  METHOD_FUNCTION function; /* C function pointer */
572 
573  const char *sql_definition; /* interpreted string (future) */
574 
575  SM_METHOD_ARGUMENT *value; /* definition of return value */
576 
577  SM_METHOD_ARGUMENT *args; /* list of argument descriptions */
578  int num_args; /* number of arguments */
579 };
580 
581 /*
582  * Contains information about a method. Methods have the SM_COMPONENT
583  * header like SM_ATTRIBUTE. The function pointer from the
584  * signature is cached in the method structure so we don't have to
585  * decend another level and the system only supports one signature.
586  */
587 typedef struct sm_method SM_METHOD;
588 
589 struct sm_method
590 {
591  SM_COMPONENT header; /* next, name, group */
592 
593  SM_METHOD_SIGNATURE *signatures; /* signature list (currently only one) */
594  METHOD_FUNCTION function; /* cached function pointer */
595  MOP class_mop; /* source class */
596  int id; /* method id */
597  int order; /* during modification only, not saved */
598  DB_SEQ *properties; /* property list */
599  unsigned unused:1; /* formerly static_link flag, delete */
600 };
601 
602 
603 /*
604  * Used to maintain a list of method files that contain the
605  * implementations of the methods for a class.
606  * These could be extended to have MOPs to Glo objects that contain
607  * the method source as well.
608  * NOTE: Keep the next & name fields at the top so this can be used
609  * with the NLIST utilities.
610  */
612 
614 {
616  const char *name;
617 
618  const char *expanded_name; /* without environment vars */
619  const char *source_name; /* future expansion */
620 
621  MOP class_mop; /* source class */
622 };
623 
624 
625 
627 {
629 
630  MOP class_mop; /* source class */
631  const char *name; /* component name */
632  const char *alias; /* optional alias */
633  SM_NAME_SPACE name_space; /* component name_space */
634 };
635 
637 
638 /*
639  * This contains information about an instance attribute in an
640  * obsolete representation. We need only keep the information required
641  * by the transformer to convert the old instances to the newest
642  * representation.
643  */
645 
647 {
649 
650  int attid; /* old attribute id */
651  DB_TYPE typeid_; /* type id */
652  TP_DOMAIN *domain; /* full domain, think about merging with type id */
653 };
654 
655 /*
656  * These contain information about old class representations so that
657  * obsolete objects can be converted to the latest representation as
658  * they are encountered. Only the minimum amount of information required
659  * to do the conversion is kept. Since methods, shared attributes, and
660  * class attributes do not effect the disk representation of instances,
661  * they are not part of the representation.
662  */
664 
666 {
668 
669  SM_REPR_ATTRIBUTE *attributes; /* list of attribute descriptions */
670  int id; /* unique identifier for this rep */
671  int fixed_count; /* number of fixed attributes */
672  int variable_count; /* number of variable attributes */
673 };
674 
675 /*
676  * This is used in virtual and component class definitions.
677  * It represents in text form the query(s) which can instantiate a class.
678  */
680 
682 {
684 
685  const char *specification;
686 };
687 
688 /* Partition information */
689 typedef struct sm_partition SM_PARTITION;
690 
692 {
693  struct sm_partition *next; /* currently not used, always NULL */
694  const char *pname; /* partition name */
695  int partition_type; /* partition type (range, list, hash) */
696  DB_SEQ *values; /* values for range and list partition types */
697  const char *expr; /* partition expression */
698  const char *comment;
699 };
700 
701 typedef struct sm_class SM_CLASS;
702 typedef struct sm_template *SMT;
703 typedef struct sm_template SM_TEMPLATE;
704 /*
705  * This is the primary class structure. Most of the other
706  * structures in this file are attached to this at some level.
707  */
708 struct sm_class
709 {
711 
712  DB_OBJLIST *users; /* immediate sub classes */
713  SM_CLASS_TYPE class_type; /* what kind of class variant is this? */
714  int repid; /* current representation id */
715 
716  SM_REPRESENTATION *representations; /* list of old representations */
717 
718  DB_OBJLIST *inheritance; /* immediate super classes */
719  int object_size; /* memory size in bytes */
720  int att_count; /* number of instance attributes */
721  SM_ATTRIBUTE *attributes; /* list of instance attribute definitions */
722  SM_ATTRIBUTE *shared; /* list of shared attribute definitions */
723  int shared_count; /* number of shared attributes */
724  int class_attribute_count; /* number of class attributes */
725  SM_ATTRIBUTE *class_attributes; /* list of class attribute definitions */
726 
727  SM_METHOD_FILE *method_files; /* list of method files */
728  const char *loader_commands; /* command string to the dynamic loader */
729 
730  SM_METHOD *methods; /* list of method definitions */
731  int method_count; /* number of instance methods */
732  int class_method_count; /* number of class methods */
733  SM_METHOD *class_methods; /* list of class method definitions */
734 
735  SM_RESOLUTION *resolutions; /* list of instance and class resolutions */
736 
737  int fixed_count; /* number of fixed size attributes */
738  int variable_count; /* number of variable size attributes */
739  int fixed_size; /* byte size of fixed attributes */
740 
741  int att_ids; /* attribute id counter */
742  int method_ids; /* method id counter */
743  int unused; /* formerly repid counter, delete */
744 
745  SM_QUERY_SPEC *query_spec; /* virtual class query_spec information */
746  SM_TEMPLATE *new_; /* temporary structure */
747  CLASS_STATS *stats; /* server statistics, loaded on demand */
748 
749  MOP owner; /* authorization object */
750  int collation_id; /* class collation */
751  void *auth_cache; /* compiled cache */
752 
753  SM_ATTRIBUTE *ordered_attributes; /* see classobj_fixup_loaded_class () */
754  DB_SEQ *properties; /* property list */
756  struct tr_schema_cache *triggers; /* Trigger cache */
757  SM_CLASS_CONSTRAINT *constraints; /* Constraint cache */
758  const char *comment; /* table comment */
759  SM_CLASS_CONSTRAINT *fk_ref; /* fk ref cache */
760  SM_PARTITION *partition; /* partition information */
761 
762  unsigned int flags;
766 
768 
769  unsigned methods_loaded:1; /* set when dynamic linking was performed */
770  unsigned post_load_cleanup:1; /* set if post load cleanup has occurred */
771 
772  unsigned triggers_validated:1; /* set when trigger cache is validated */
773  unsigned has_active_triggers:1; /* set if trigger processing is required */
774  unsigned dont_decache_constraints_or_flush:1; /* prevent decaching class constraint and flushing. */
775  unsigned recache_constraints:1; /* class constraints need recache. */
776 };
777 
778 
779 
781 {
782  MOP op; /* class MOP (if editing existing class) */
783  SM_CLASS *current; /* current class structure (if editing existing) */
784  SM_CLASS_TYPE class_type; /* what kind of class variant is this? */
785  int tran_index; /* transaction index when template was created */
786 
787  const char *name; /* class name */
788  DB_OBJLIST *inheritance; /* immediate super classes */
789 
790  SM_ATTRIBUTE *attributes; /* instance attribute definitions */
791  SM_METHOD *methods; /* instance method definitions */
792  SM_RESOLUTION *resolutions; /* resolutions */
793 
794  SM_ATTRIBUTE *class_attributes; /* class attribute definitions */
795  SM_METHOD *class_methods; /* class method definitions */
796  SM_RESOLUTION *class_resolutions; /* class resolutions */
797 
798  SM_METHOD_FILE *method_files; /* method files */
799  const char *loader_commands; /* loader commands */
800  SM_QUERY_SPEC *query_spec; /* query_spec list */
801 
804 
806 
808 
809  int *super_id_map; /* super class id mapping table */
810 
811  void *triggers; /* flattened trigger cache */
812 
813  DB_ATTRIBUTE *partition_parent_atts; /* partition parent class attributes (if creating partition child class) */
815 };
816 
817 
818 /*
819  * This is used for "browsing" functions that need to obtain a lot
820  * of information about the class but do not want to go through the full
821  * overhead of object de-referencing for each piece of information.
822  * It encapsulates a snapshot of a class definition that can be
823  * walked through as necessary. Also since the copy is not part of
824  * an actual database object, we don't have to worry about swapping
825  * or GCing the structure out from under the caller.
826  */
829 {
830  const char *name;
831  DB_OBJECT *owner; /* owner's user object */
832  DB_OBJLIST *superclasses; /* external OBJLIST of super classes */
833  DB_OBJLIST *subclasses; /* external OBJLIST of subclasses */
834 
835  SM_CLASS_TYPE class_type; /* what kind of class variant is this? */
836  int att_count; /* number of instance attributes */
837  SM_ATTRIBUTE *attributes; /* list of attribute definitions */
838  SM_ATTRIBUTE *shared; /* list of shared attribute definitions */
839  int shared_count; /* number of shared attributes */
840  int class_attribute_count; /* number of class attributes */
841  SM_ATTRIBUTE *class_attributes; /* list of class attribute definitions */
842  SM_METHOD *methods; /* list of method definitions */
843  int method_count; /* number of instance methods */
844  int class_method_count; /* number of class methods */
845  SM_METHOD *class_methods; /* list of class method definitions */
846 
847  SM_METHOD_FILE *method_files; /* list of method files */
848  const char *loader_commands; /* command string to the dynamic loader */
849  SM_RESOLUTION *resolutions; /* instance/class resolution list */
850  SM_QUERY_SPEC *query_spec; /* virtual class query_spec list */
851 
852  unsigned int flags; /* persistent flags */
853 };
854 
855 
856 /*
857  * This structure is used to maintain a list of class/component mappings
858  * in an attribute or method descriptor. Since the same descriptor
859  * can be applied an instance of any subclass, we dynamically cache
860  * up pointers to the subclass components as we need them.
861  */
862 
865 {
867 
871 
872  unsigned write_access:1;
873 };
874 
875 
878 {
879  DB_OBJECT *last_class; /* DB_TYPE_OBJECT validation cache */
881 
882  DB_DOMAIN *last_setdomain; /* DB_TYPE_COLLECTION validation cache */
883 
884  DB_TYPE last_type; /* Other validation caches */
887 };
888 
889 /*
890  * This structure is used as a "descriptor" for improved
891  * performance on repeated access to an attribute.
892  */
895 {
897 
898  char *name; /* component name */
899 
900  SM_DESCRIPTOR_LIST *map; /* class/component map */
901  SM_VALIDATION *valid; /* validation cache */
902 
903  DB_OBJECT *class_mop; /* root class */
904  SM_NAME_SPACE name_space; /* component type */
905 };
906 
907 /* free_and_init routine */
908 #define classobj_free_threaded_array_and_init(list, clear) \
909  do \
910  { \
911  classobj_free_threaded_array ((DB_LIST *)(list), (LFREEER)(clear)); \
912  (list) = NULL; \
913  } \
914  while (0)
915 
916 #define classobj_free_prop_and_init(properties) \
917  do \
918  { \
919  classobj_free_prop ((properties)); \
920  (properties) = NULL; \
921  } \
922  while (0)
923 
924 #define classobj_free_class_constraints_and_init(constraints) \
925  do \
926  { \
927  classobj_free_class_constraints ((constraints)); \
928  (constraints) = NULL; \
929  } \
930  while (0)
931 
932 /* Allocation areas */
933 extern int classobj_area_init (void);
934 extern void classobj_area_final (void);
935 
936 /* Threaded arrays */
937 extern DB_LIST *classobj_alloc_threaded_array (int size, int count);
938 extern void classobj_free_threaded_array (DB_LIST * array, LFREEER clear);
939 
940 /* Property lists */
941 extern DB_SEQ *classobj_make_prop (void);
942 extern int classobj_copy_props (DB_SEQ * properties, MOP filter_class, DB_SEQ ** new_);
943 extern void classobj_free_prop (DB_SEQ * properties);
944 extern int classobj_put_prop (DB_SEQ * properties, const char *name, DB_VALUE * pvalue);
945 extern int classobj_drop_prop (DB_SEQ * properties, const char *name);
946 extern int classobj_put_index (DB_SEQ ** properties, SM_CONSTRAINT_TYPE type, const char *constraint_name,
947  SM_ATTRIBUTE ** atts, const int *asc_desc, const int *attr_prefix_length,
948  const BTID * id, SM_PREDICATE_INFO * filter_index_info, SM_FOREIGN_KEY_INFO * fk_info,
949  char *shared_cons_name, SM_FUNCTION_INFO * func_index_info, const char *comment,
950  SM_INDEX_STATUS index_status, bool attr_name_instead_of_id);
951 extern int classobj_find_prop_constraint (DB_SEQ * properties, const char *prop_name, const char *cnstr_name,
952  DB_VALUE * cnstr_val);
953 
954 #if defined (ENABLE_RENAME_CONSTRAINT)
955 extern int classobj_rename_constraint (DB_SEQ * properties, const char *prop_name, const char *old_name,
956  const char *new_name);
957 #endif
958 
959 extern int classobj_change_constraint_comment (DB_SEQ * properties, SM_CLASS_CONSTRAINT * cons, const char *comment);
960 
961 extern int classobj_get_cached_constraint (SM_CONSTRAINT * constraints, SM_CONSTRAINT_TYPE type, BTID * id);
963 extern bool classobj_has_unique_constraint (SM_CONSTRAINT * constraints);
964 extern bool classobj_has_function_constraint (SM_CONSTRAINT * constraints);
965 extern int classobj_btid_from_property_value (DB_VALUE * value, BTID * btid, char **shared_cons_name);
966 extern int classobj_oid_from_property_value (DB_VALUE * value, OID * oid);
967 
968 /* Constraints */
969 extern bool classobj_cache_constraints (SM_CLASS * class_);
970 
971 extern int classobj_make_class_constraints (DB_SET * props, SM_ATTRIBUTE * attributes, SM_CLASS_CONSTRAINT ** con_ptr);
972 extern void classobj_free_foreign_key_ref (SM_FOREIGN_KEY_INFO * fk_info);
973 extern void classobj_free_class_constraints (SM_CLASS_CONSTRAINT * constraints);
974 extern void classobj_decache_class_constraints (SM_CLASS * class_);
975 extern int classobj_cache_class_constraints (SM_CLASS * class_);
976 extern void classobj_free_function_index_ref (SM_FUNCTION_INFO * func_index_info);
977 
979  const char *name);
982 
983 extern SM_CLASS_CONSTRAINT *classobj_find_class_index (SM_CLASS * class_, const char *name);
986  DB_CONSTRAINT_TYPE new_cons, const char **att_names,
987  const int *asc_desc);
990 
991 extern int classobj_populate_class_properties (DB_SET ** properties, SM_CLASS_CONSTRAINT * constraints,
992  SM_CONSTRAINT_TYPE type);
993 
994 extern bool classobj_class_has_indexes (SM_CLASS * class_);
995 
996 /* Attribute */
997 extern SM_ATTRIBUTE *classobj_make_attribute (const char *name, struct pr_type *type, SM_NAME_SPACE name_space);
998 extern SM_ATTRIBUTE *classobj_copy_attribute (SM_ATTRIBUTE * src, const char *alias);
999 extern int classobj_copy_attlist (SM_ATTRIBUTE * attlist, MOP filter_class, int ordered, SM_ATTRIBUTE ** copy_ptr);
1000 
1001 extern void classobj_free_attribute (SM_ATTRIBUTE * att);
1002 
1003 /* Method argument */
1005 extern SM_METHOD_ARGUMENT *classobj_find_method_arg (SM_METHOD_ARGUMENT ** arglist, int index, int create);
1006 
1007 /* Method signature */
1010 
1011 /* Method */
1013 extern SM_METHOD *classobj_copy_method (SM_METHOD * src, const char *alias);
1014 extern void classobj_free_method (SM_METHOD * method);
1015 
1016 /* Conflict resolution */
1017 extern SM_RESOLUTION *classobj_make_resolution (MOP class_mop, const char *name, const char *alias,
1019 extern int classobj_copy_reslist (SM_RESOLUTION * src, SM_NAME_SPACE resspace, SM_RESOLUTION ** copy_ptr);
1020 extern void classobj_free_resolution (SM_RESOLUTION * res);
1021 extern SM_RESOLUTION *classobj_find_resolution (SM_RESOLUTION * reslist, MOP class_mop, const char *name,
1023 
1024 /* Method file */
1025 extern SM_METHOD_FILE *classobj_make_method_file (const char *name);
1026 extern int classobj_copy_methfiles (SM_METHOD_FILE * files, MOP filter_class, SM_METHOD_FILE ** copy_ptr);
1027 extern void classobj_free_method_file (SM_METHOD_FILE * file);
1028 
1029 /* Representation attribute */
1030 extern SM_REPR_ATTRIBUTE *classobj_make_repattribute (int attid, DB_TYPE typeid_, TP_DOMAIN * domain);
1031 
1032 /* Representation */
1035 
1036 /* Query_spec */
1037 extern SM_QUERY_SPEC *classobj_make_query_spec (const char *);
1039 extern void classobj_free_query_spec (SM_QUERY_SPEC *);
1040 
1041 /* Editing template */
1042 extern SM_TEMPLATE *classobj_make_template (const char *name, MOP op, SM_CLASS * class_);
1043 extern SM_TEMPLATE *classobj_make_template_like (const char *name, SM_CLASS * class_);
1044 extern void classobj_free_template (SM_TEMPLATE * template_ptr);
1045 #if defined(ENABLE_UNUSED_FUNCTION)
1046 extern int classobj_add_template_reference (SM_TEMPLATE * template_ptr, MOP obj);
1047 #endif
1048 
1049 /* Class */
1050 extern SM_CLASS *classobj_make_class (const char *name);
1051 extern void classobj_free_class (SM_CLASS * class_);
1052 extern int classobj_class_size (SM_CLASS * class_);
1053 
1054 extern int classobj_install_template (SM_CLASS * class_, SM_TEMPLATE * flat, int saverep);
1055 
1056 extern SM_REPRESENTATION *classobj_find_representation (SM_CLASS * class_, int id);
1057 
1058 extern void classobj_fixup_loaded_class (SM_CLASS * class_);
1059 
1061 
1062 extern int classobj_annotate_method_files (SM_CLASS * class_, MOP classmop);
1063 
1064 extern SM_ATTRIBUTE *classobj_find_attribute (SM_CLASS * class_, const char *name, int class_attribute);
1065 
1066 extern SM_ATTRIBUTE *classobj_find_attribute_id (SM_CLASS * class_, int id, int class_attribute);
1067 
1068 extern SM_ATTRIBUTE *classobj_find_attribute_list (SM_ATTRIBUTE * attlist, const char *name, int id);
1069 
1070 extern SM_METHOD *classobj_find_method (SM_CLASS * class_, const char *name, int class_method);
1071 
1072 extern SM_COMPONENT *classobj_find_component (SM_CLASS * class_, const char *name, int class_component);
1073 
1074 extern SM_COMPONENT *classobj_complist_search (SM_COMPONENT * list, const char *name);
1075 
1076 extern const char **classobj_point_at_att_names (SM_CLASS_CONSTRAINT * constraint, int *count_ref);
1077 /* Descriptors */
1079  int write_access);
1081  int write_access);
1082 
1083 extern void classobj_free_desclist (SM_DESCRIPTOR_LIST * dl);
1084 extern void classobj_free_descriptor (SM_DESCRIPTOR * desc);
1085 
1086 /* Debug */
1087 #if defined (CUBRID_DEBUG)
1088 extern void classobj_print (SM_CLASS * class_);
1089 #endif
1090 /* primary key */
1092 #if defined(ENABLE_UNUSED_FUNCTION)
1093 extern int classobj_count_class_foreign_key (SM_CLASS * class_);
1094 extern int classobj_count_cons_attributes (SM_CLASS_CONSTRAINT * cons);
1095 #endif
1096 
1098 
1099 extern const char *classobj_map_constraint_to_property (SM_CONSTRAINT_TYPE constraint);
1101 extern bool classobj_is_pk_referred (MOP clsop, SM_FOREIGN_KEY_INFO * fk_info, bool include_self_ref, char **fk_name);
1102 extern int classobj_check_index_exist (SM_CLASS_CONSTRAINT * constraints, char **out_shared_cons_name,
1103  const char *class_name, DB_CONSTRAINT_TYPE constraint_type,
1104  const char *constraint_name, const char **att_names, const int *asc_desc,
1105  const SM_PREDICATE_INFO * filter_index,
1106  const SM_FUNCTION_INFO * func_index_info);
1107 extern void classobj_initialize_attributes (SM_ATTRIBUTE * attributes);
1108 extern int classobj_copy_default_expr (DB_DEFAULT_EXPR * dest, const DB_DEFAULT_EXPR * src);
1109 extern void classobj_initialize_methods (SM_METHOD * methods);
1111 extern void classobj_free_partition_info (SM_PARTITION * partition_info);
1112 extern SM_PARTITION *classobj_copy_partition_info (SM_PARTITION * partition_info);
1113 
1114 extern int classobj_change_constraint_status (DB_SEQ * properties, SM_CLASS_CONSTRAINT * cons,
1115  SM_INDEX_STATUS index_status);
1116 
1117 #endif /* _CLASS_OBJECT_H_ */
struct tr_schema_cache * triggers
Definition: class_object.h:463
SM_REPR_ATTRIBUTE * classobj_make_repattribute(int attid, DB_TYPE typeid_, TP_DOMAIN *domain)
const char * name
Definition: class_object.h:631
SM_ATTRIBUTE * shared
Definition: class_object.h:722
WS_OBJECT_HEADER ch_obj_header
Definition: class_object.h:347
const char * expr
Definition: class_object.h:697
int classobj_put_prop(DB_SEQ *properties, const char *name, DB_VALUE *pvalue)
Definition: class_object.c:314
int class_method_count
Definition: class_object.h:732
void classobj_free_method(SM_METHOD *method)
void(* METHOD_FUNC_ARG5)(DB_OBJECT *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *)
Definition: class_object.h:170
SM_METHOD * class_methods
Definition: class_object.h:845
SM_CLASS * current
Definition: class_object.h:783
SM_CLASS_TYPE class_type
Definition: class_object.h:835
int fixed_count
Definition: class_object.h:737
int classobj_change_constraint_status(DB_SEQ *properties, SM_CLASS_CONSTRAINT *cons, SM_INDEX_STATUS index_status)
SM_FOREIGN_KEY_INFO * fk_info
Definition: class_object.h:537
DB_OBJLIST * inheritance
Definition: class_object.h:718
void classobj_free_desclist(SM_DESCRIPTOR_LIST *dl)
int classobj_make_class_constraints(DB_SET *props, SM_ATTRIBUTE *attributes, SM_CLASS_CONSTRAINT **con_ptr)
int classobj_area_init(void)
Definition: class_object.c:167
void classobj_free_prop(DB_SEQ *properties)
Definition: class_object.c:292
SM_COMPONENT header
Definition: class_object.h:591
SM_PREDICATE_INFO * filter_predicate
Definition: class_object.h:536
void(* METHOD_FUNC_ARG13)(DB_OBJECT *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *)
Definition: class_object.h:185
DB_ATTRIBUTE * partition_parent_atts
Definition: class_object.h:813
SM_PARTITION * classobj_make_partition_info(void)
TP_DOMAIN * classobj_find_cons_index2_col_type_list(SM_CLASS_CONSTRAINT *cons, OID *root_oid)
const char * name
Definition: class_object.h:616
SM_METATYPE ch_type
Definition: class_object.h:349
int classobj_copy_default_expr(DB_DEFAULT_EXPR *dest, const DB_DEFAULT_EXPR *src)
DB_TYPE
Definition: dbtype_def.h:670
DB_OBJLIST * inheritance
Definition: class_object.h:788
SM_METHOD * class_methods
Definition: class_object.h:795
int shared_count
Definition: class_object.h:723
int classobj_class_size(SM_CLASS *class_)
int classobj_annotate_method_files(SM_CLASS *class_, MOP classmop)
TP_DOMAIN * domain
Definition: class_object.h:444
void classobj_free_class_constraints(SM_CLASS_CONSTRAINT *constraints)
int classobj_btid_from_property_value(DB_VALUE *value, BTID *btid, char **shared_cons_name)
SM_CONSTRAINT_TYPE
Definition: class_object.h:274
CLASS_STATS * stats
Definition: class_object.h:747
void classobj_area_final(void)
Definition: class_object.c:184
SM_FOREIGN_KEY_ACTION
void * auth_cache
Definition: class_object.h:751
SM_ATTRIBUTE * attributes
Definition: class_object.h:721
SM_TEMPLATE * classobj_make_template(const char *name, MOP op, SM_CLASS *class_)
SM_PARTITION * partition
Definition: class_object.h:760
DB_SEQ * properties
Definition: class_object.h:754
DB_SEQ * properties
Definition: class_object.h:807
SM_RESOLUTION * resolutions
Definition: class_object.h:735
SM_CLASS_TYPE
Definition: class_object.h:289
void * triggers
Definition: class_object.h:811
int classobj_get_cached_constraint(SM_CONSTRAINT *constraints, SM_CONSTRAINT_TYPE type, BTID *id)
void(* METHOD_FUNC_ARG33)(DB_OBJECT *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE_LIST *)
Definition: class_object.h:264
SM_NAME_SPACE
SM_DEFAULT_VALUE default_value
Definition: class_object.h:451
void(* METHOD_FUNC_ARG28)(DB_OBJECT *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *)
Definition: class_object.h:239
struct sm_descriptor * next
Definition: class_object.h:896
const char * source_name
Definition: class_object.h:619
int fixed_size
Definition: class_object.h:739
struct sm_component * next
Definition: class_object.h:384
struct sm_template * SMT
Definition: class_object.h:702
TP_DOMAIN * domain
Definition: class_object.h:559
void(* METHOD_FUNC_ARG10)(DB_OBJECT *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *)
Definition: class_object.h:179
SM_FUNCTION_INFO * func_index_info
Definition: class_object.h:541
const char * pname
Definition: class_object.h:694
SM_METHOD_ARGUMENT * value
Definition: class_object.h:575
bool classobj_is_pk_referred(MOP clsop, SM_FOREIGN_KEY_INFO *fk_info, bool include_self_ref, char **fk_name)
int classobj_check_index_exist(SM_CLASS_CONSTRAINT *constraints, char **out_shared_cons_name, const char *class_name, DB_CONSTRAINT_TYPE constraint_type, const char *constraint_name, const char **att_names, const int *asc_desc, const SM_PREDICATE_INFO *filter_index, const SM_FUNCTION_INFO *func_index_info)
void classobj_fixup_loaded_class(SM_CLASS *class_)
void(* METHOD_FUNC_ARG26)(DB_OBJECT *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *)
Definition: class_object.h:230
void(* METHOD_FUNC_ARG8)(DB_OBJECT *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *)
Definition: class_object.h:175
struct sm_class_constraint * next
Definition: class_object.h:530
SM_NAME_SPACE name_space
Definition: class_object.h:386
const char * comment
Definition: class_object.h:698
void(* METHOD_FUNC_ARG20)(DB_OBJECT *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *)
Definition: class_object.h:206
int classobj_copy_methfiles(SM_METHOD_FILE *files, MOP filter_class, SM_METHOD_FILE **copy_ptr)
void(* METHOD_FUNC_ARG24)(DB_OBJECT *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *)
Definition: class_object.h:222
int class_attribute_count
Definition: class_object.h:840
SM_ATTRIBUTE * classobj_make_attribute(const char *name, struct pr_type *type, SM_NAME_SPACE name_space)
SM_CLASS_CONSTRAINT * fk_ref
Definition: class_object.h:759
int collation_id
Definition: class_object.h:750
void classobj_free_function_index_ref(SM_FUNCTION_INFO *func_index_info)
const char * loader_commands
Definition: class_object.h:848
struct sm_foreign_key_info * next
Definition: class_object.h:474
SM_METHOD * classobj_find_method(SM_CLASS *class_, const char *name, int class_method)
struct parser_context * virtual_query_cache
Definition: class_object.h:755
struct sm_partition * next
Definition: class_object.h:693
SM_FOREIGN_KEY_ACTION update_action
Definition: class_object.h:482
struct sm_representation * next
Definition: class_object.h:667
SM_VALIDATION * valid
Definition: class_object.h:901
SM_METHOD * methods
Definition: class_object.h:791
SM_METHOD_ARGUMENT * classobj_make_method_arg(int index)
const char * expanded_name
Definition: class_object.h:618
SM_DESCRIPTOR_LIST * map
Definition: class_object.h:900
void(* METHOD_FUNC_ARG21)(DB_OBJECT *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *)
Definition: class_object.h:210
DB_OBJLIST * superclasses
Definition: class_object.h:832
const char * comment
Definition: class_object.h:542
SM_CONSTRAINT_FAMILY
Definition: class_object.h:321
int att_count
Definition: class_object.h:720
int class_attribute_count
Definition: class_object.h:724
void(* METHOD_FUNC_ARG30)(DB_OBJECT *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *)
Definition: class_object.h:249
SM_ATTRIBUTE * attributes
Definition: class_object.h:837
SM_CLASS_CONSTRAINT * classobj_find_class_index(SM_CLASS *class_, const char *name)
DB_DEFAULT_EXPR default_expr
Definition: class_object.h:395
SM_TEMPLATE * classobj_make_template_like(const char *name, SM_CLASS *class_)
SM_METATYPE
Definition: class_object.h:312
SM_METHOD * methods
Definition: class_object.h:842
void(* METHOD_FUNC_ARG23)(DB_OBJECT *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *)
Definition: class_object.h:218
void(* METHOD_FUNC_ARG32)(DB_OBJECT *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *)
Definition: class_object.h:259
void classobj_free_attribute(SM_ATTRIBUTE *att)
Definition: db_set.h:35
struct tr_schema_cache * triggers
Definition: class_object.h:756
int classobj_populate_class_properties(DB_SET **properties, SM_CLASS_CONSTRAINT *constraints, SM_CONSTRAINT_TYPE type)
SM_CONSTRAINT_TYPE type
Definition: class_object.h:369
void classobj_free_partition_info(SM_PARTITION *partition_info)
DB_CONSTRAINT_TYPE
Definition: dbtype_def.h:452
int classobj_install_template(SM_CLASS *class_, SM_TEMPLATE *flat, int saverep)
void classobj_decache_class_constraints(SM_CLASS *class_)
SM_PARTITION * partition
Definition: class_object.h:814
SM_ATTRIBUTE * shared_attributes
Definition: class_object.h:803
unsigned int virtual_cache_snapshot_version
Definition: class_object.h:765
void classobj_free_method_file(SM_METHOD_FILE *file)
unsigned int virtual_cache_local_schema_id
Definition: class_object.h:763
DB_OBJECT * class_mop
Definition: class_object.h:903
SM_REPRESENTATION * representations
Definition: class_object.h:716
void(* LFREEER)(void *)
Definition: work_space.h:562
void(* METHOD_FUNC_ARG4)(DB_OBJECT *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *)
Definition: class_object.h:169
void(* METHOD_FUNC_ARG16)(DB_OBJECT *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *)
Definition: class_object.h:194
void(* METHOD_FUNC_ARG18)(DB_OBJECT *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *)
Definition: class_object.h:200
SM_COMPONENT * classobj_complist_search(SM_COMPONENT *list, const char *name)
struct sm_query_spec * next
Definition: class_object.h:683
DB_OBJLIST * ext_references
Definition: class_object.h:805
DB_VALUE original_value
Definition: class_object.h:393
SM_CLASS_CONSTRAINT * classobj_find_class_constraint_by_btid(SM_CLASS_CONSTRAINT *constraints, SM_CONSTRAINT_TYPE type, BTID btid)
SM_ATTRIBUTE * class_attributes
Definition: class_object.h:725
void(* METHOD_FUNC_ARG29)(DB_OBJECT *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *)
Definition: class_object.h:244
int classobj_drop_prop(DB_SEQ *properties, const char *name)
Definition: class_object.c:394
SM_RESOLUTION * classobj_find_resolution(SM_RESOLUTION *reslist, MOP class_mop, const char *name, SM_NAME_SPACE name_space)
void classobj_free_query_spec(SM_QUERY_SPEC *)
SM_METHOD_FILE * method_files
Definition: class_object.h:727
int method_ids
Definition: class_object.h:742
struct sm_descriptor_list * next
Definition: class_object.h:866
SM_QUERY_SPEC * query_spec
Definition: class_object.h:800
SM_NAME_SPACE name_space
Definition: class_object.h:633
SM_TEMPLATE * new_
Definition: class_object.h:746
SM_REPRESENTATION * classobj_find_representation(SM_CLASS *class_, int id)
void(* METHOD_FUNC_ARG9)(DB_OBJECT *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *)
Definition: class_object.h:177
DB_SEQ * values
Definition: class_object.h:696
void classobj_free_class(SM_CLASS *class_)
SM_ATTRIBUTE * instance_attributes
Definition: class_object.h:802
const char * name
Definition: class_object.h:830
bool classobj_has_unique_constraint(SM_CONSTRAINT *constraints)
const char * function_name
Definition: class_object.h:570
const char ** classobj_point_at_att_names(SM_CLASS_CONSTRAINT *constraint, int *count_ref)
TP_DOMAIN * fi_domain
Definition: class_object.h:502
int classobj_oid_from_property_value(DB_VALUE *value, OID *oid)
void classobj_free_resolution(SM_RESOLUTION *res)
void(* METHOD_FUNC_ARG12)(DB_OBJECT *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *)
Definition: class_object.h:183
SM_CLASS_CONSTRAINT * classobj_find_constraint_by_name(SM_CLASS_CONSTRAINT *cons_list, const char *name)
void(* METHOD_FUNC_ARG14)(DB_OBJECT *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *)
Definition: class_object.h:188
DB_OBJECT * owner
Definition: class_object.h:831
const char * alias
Definition: class_object.h:632
SM_METHOD_SIGNATURE * signatures
Definition: class_object.h:593
DB_SEQ * properties
Definition: class_object.h:598
struct sm_repr_attribute * next
Definition: class_object.h:648
SM_CLASS_CONSTRAINT * classobj_find_constraint_by_attrs(SM_CLASS_CONSTRAINT *cons_list, DB_CONSTRAINT_TYPE new_cons, const char **att_names, const int *asc_desc)
SM_DESCRIPTOR_LIST * classobj_make_desclist(MOP class_mop, SM_CLASS *classobj, SM_COMPONENT *comp, int write_access)
struct pr_type * type
Definition: class_object.h:443
SM_QUERY_SPEC * query_spec
Definition: class_object.h:850
SM_ATTRIBUTE * classobj_find_attribute_id(SM_CLASS *class_, int id, int class_attribute)
void(* METHOD_FUNC_ARG19)(DB_OBJECT *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *)
Definition: class_object.h:203
void classobj_free_representation(SM_REPRESENTATION *rep)
const char * loader_commands
Definition: class_object.h:799
struct pr_type * type
Definition: class_object.h:558
void(* METHOD_FUNC_ARG31)(DB_OBJECT *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *)
Definition: class_object.h:254
DB_LIST * classobj_alloc_threaded_array(int size, int count)
Definition: class_object.c:211
void classobj_free_method_signature(SM_METHOD_SIGNATURE *sig)
SM_ATTRIBUTE * shared
Definition: class_object.h:838
SM_ATTRIBUTE * classobj_find_attribute_list(SM_ATTRIBUTE *attlist, const char *name, int id)
void classobj_free_foreign_key_ref(SM_FOREIGN_KEY_INFO *fk_info)
SM_CONSTRAINT_EXTRA_FLAG
Definition: class_object.h:330
SM_ATTRIBUTE * class_attributes
Definition: class_object.h:794
int count(int &result, const cub_regex_object &reg, const std::string &src, const int position, const INTL_CODESET codeset)
void(* METHOD_FUNC_ARG25)(DB_OBJECT *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *)
Definition: class_object.h:226
bool classobj_has_class_unique_constraint(SM_CLASS_CONSTRAINT *constraints)
DB_SEQ * properties
Definition: class_object.h:457
void classobj_remove_class_constraint_node(SM_CLASS_CONSTRAINT **constraints, SM_CLASS_CONSTRAINT *node)
SM_RESOLUTION * classobj_make_resolution(MOP class_mop, const char *name, const char *alias, SM_NAME_SPACE name_space)
SM_METHOD_ARGUMENT * classobj_find_method_arg(SM_METHOD_ARGUMENT **arglist, int index, int create)
SM_CLASS_CONSTRAINT * classobj_find_class_primary_key(SM_CLASS *class_)
void(* METHOD_FUNC_ARG11)(DB_OBJECT *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *)
Definition: class_object.h:181
SM_CONSTRAINT * constraints
Definition: class_object.h:454
SM_METHOD * class_methods
Definition: class_object.h:733
SM_METHOD * classobj_make_method(const char *name, SM_NAME_SPACE name_space)
void(* METHOD_FUNC_ARG7)(DB_OBJECT *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *)
Definition: class_object.h:173
SM_QUERY_SPEC * query_spec
Definition: class_object.h:745
SM_RESOLUTION * resolutions
Definition: class_object.h:792
SM_PARTITION * classobj_copy_partition_info(SM_PARTITION *partition_info)
SM_CLASS_CONSTRAINT * constraints
Definition: class_object.h:757
int class_method_count
Definition: class_object.h:844
void classobj_initialize_methods(SM_METHOD *methods)
SM_COMPONENT * comp
Definition: class_object.h:870
SM_NAME_SPACE name_space
Definition: class_object.h:904
DB_DEFAULT_EXPR_TYPE on_update_default_expr
Definition: class_object.h:452
void(* METHOD_FUNC_ARG27)(DB_OBJECT *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *)
Definition: class_object.h:234
unsigned int flags
Definition: class_object.h:459
SM_METHOD_FILE * classobj_make_method_file(const char *name)
int classobj_copy_reslist(SM_RESOLUTION *src, SM_NAME_SPACE resspace, SM_RESOLUTION **copy_ptr)
SM_RESOLUTION * resolutions
Definition: class_object.h:849
struct sm_method_signature * next
Definition: class_object.h:568
SM_REPR_ATTRIBUTE * attributes
Definition: class_object.h:669
SM_CLASS_HEADER header
Definition: class_object.h:710
const char * ref_class
Definition: class_object.h:475
const char * sql_definition
Definition: class_object.h:573
DB_OBJLIST * validated_classes
Definition: class_object.h:880
SM_METHOD_FILE * method_files
Definition: class_object.h:798
DB_OBJECT * last_class
Definition: class_object.h:879
const char * name
Definition: class_object.h:787
SM_FOREIGN_KEY_ACTION delete_action
Definition: class_object.h:481
void(* METHOD_FUNC_ARG15)(DB_OBJECT *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *)
Definition: class_object.h:191
int method_count
Definition: class_object.h:731
int classobj_change_constraint_comment(DB_SEQ *properties, SM_CLASS_CONSTRAINT *cons, const char *comment)
DB_DOMAIN * last_setdomain
Definition: class_object.h:882
SM_ATTRIBUTE * class_attributes
Definition: class_object.h:841
SM_ATTRIBUTE * classobj_find_attribute(SM_CLASS *class_, const char *name, int class_attribute)
SM_COMPONENT header
Definition: class_object.h:441
SM_METHOD_FILE * method_files
Definition: class_object.h:847
const char * ch_name
Definition: class_object.h:350
bool classobj_cache_constraints(SM_CLASS *class_)
void(* METHOD_FUNC_ARG6)(DB_OBJECT *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *)
Definition: class_object.h:171
int classobj_copy_attlist(SM_ATTRIBUTE *attlist, MOP filter_class, int ordered, SM_ATTRIBUTE **copy_ptr)
int classobj_put_index(DB_SEQ **properties, SM_CONSTRAINT_TYPE type, const char *constraint_name, SM_ATTRIBUTE **atts, const int *asc_desc, const int *attr_prefix_length, const BTID *id, SM_PREDICATE_INFO *filter_index_info, SM_FOREIGN_KEY_INFO *fk_info, char *shared_cons_name, SM_FUNCTION_INFO *func_index_info, const char *comment, SM_INDEX_STATUS index_status, bool attr_name_instead_of_id)
Definition: class_object.c:976
SM_ATTRIBUTE ** attributes
Definition: class_object.h:533
SM_CLASS_TYPE class_type
Definition: class_object.h:784
SM_CLASS_TYPE class_type
Definition: class_object.h:713
SM_METHOD_ARGUMENT * args
Definition: class_object.h:577
DB_OBJLIST * subclasses
Definition: class_object.h:833
const char ** ref_attrs
Definition: class_object.h:476
SM_CONSTRAINT_TYPE type
Definition: class_object.h:540
const char * specification
Definition: class_object.h:685
unsigned int virtual_cache_global_schema_id
Definition: class_object.h:764
SM_CLASS_CONSTRAINT * classobj_find_class_constraint(SM_CLASS_CONSTRAINT *constraints, SM_CONSTRAINT_TYPE type, const char *name)
DB_OBJLIST * users
Definition: class_object.h:712
SM_CLASS_CONSTRAINT * classobj_find_cons_primary_key(SM_CLASS_CONSTRAINT *cons_list)
const char * name
Definition: class_object.h:385
void(* METHOD_FUNCTION)()
Definition: class_object.h:168
int classobj_find_prop_constraint(DB_SEQ *properties, const char *prop_name, const char *cnstr_name, DB_VALUE *cnstr_val)
SM_CLASS_FLAG
Definition: class_object.h:300
SM_INDEX_STATUS index_status
Definition: class_object.h:544
struct sm_attribute * order_link
Definition: class_object.h:461
int classobj_cache_class_constraints(SM_CLASS *class_)
unsigned int flags
Definition: class_object.h:852
int object_size
Definition: class_object.h:719
DB_TYPE last_type
Definition: class_object.h:884
SM_COMPONENT * classobj_find_component(SM_CLASS *class_, const char *name, int class_component)
SM_QUERY_SPEC * classobj_copy_query_spec_list(SM_QUERY_SPEC *)
SM_METHOD * classobj_copy_method(SM_METHOD *src, const char *alias)
bool classobj_has_function_constraint(SM_CONSTRAINT *constraints)
void classobj_free_template(SM_TEMPLATE *template_ptr)
SM_CONSTRAINT_EXTRA_FLAG extra_status
Definition: class_object.h:543
SM_RESOLUTION * class_resolutions
Definition: class_object.h:796
TP_DOMAIN * domain
Definition: class_object.h:652
SM_QUERY_SPEC * classobj_make_query_spec(const char *)
struct sm_resolution * next
Definition: class_object.h:628
SM_ATTRIBUTE * classobj_copy_attribute(SM_ATTRIBUTE *src, const char *alias)
void(* METHOD_FUNC_ARG17)(DB_OBJECT *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *)
Definition: class_object.h:197
struct sm_constraint * next
Definition: class_object.h:366
SM_ATTRIBUTE * ordered_attributes
Definition: class_object.h:753
char * classobj_describe_foreign_key_action(SM_FOREIGN_KEY_ACTION action)
Definition: class_object.c:748
SM_COMPONENT * classobj_filter_components(SM_COMPONENT **complist, SM_NAME_SPACE name_space)
SM_METHOD_SIGNATURE * classobj_make_method_signature(const char *name)
DB_SEQ * classobj_make_prop(void)
Definition: class_object.c:280
void classobj_free_threaded_array(DB_LIST *array, LFREEER clear)
Definition: class_object.c:248
void classobj_free_descriptor(SM_DESCRIPTOR *desc)
const char * comment
Definition: class_object.h:758
int * super_id_map
Definition: class_object.h:809
int classobj_copy_props(DB_SEQ *properties, MOP filter_class, DB_SEQ **new_)
Definition: class_object.c:549
SM_METHOD * methods
Definition: class_object.h:730
SM_CLASS * classobj_make_class(const char *name)
void classobj_initialize_attributes(SM_ATTRIBUTE *attributes)
bool classobj_class_has_indexes(SM_CLASS *class_)
SM_INDEX_STATUS
Definition: class_object.h:510
const char * classobj_map_constraint_to_property(SM_CONSTRAINT_TYPE constraint)
Definition: class_object.c:502
SM_ATTRIBUTE * attributes
Definition: class_object.h:790
SM_DESCRIPTOR * classobj_make_descriptor(MOP class_mop, SM_CLASS *classobj, SM_COMPONENT *comp, int write_access)
const char * comment
Definition: class_object.h:467
SM_REPRESENTATION * classobj_make_representation(void)
struct sm_method_file * next
Definition: class_object.h:615
void(* METHOD_FUNC_ARG22)(DB_OBJECT *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *, DB_VALUE *)
Definition: class_object.h:214
const char * loader_commands
Definition: class_object.h:728
struct sm_method_argument * next
Definition: class_object.h:556
DB_DEFAULT_EXPR_TYPE
Definition: dbtype_def.h:1181
int tde_algorithm
Definition: class_object.h:767
const char * name
Definition: class_object.h:532
void clear(cub_regex_object *&regex, char *&pattern)
int variable_count
Definition: class_object.h:738
unsigned int flags
Definition: class_object.h:762