CUBRID Engine  latest
schema_manager.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  * schema_manager.h - External definitions for the schema manager
22  */
23 
24 #ifndef _SCHEMA_MANAGER_H_
25 #define _SCHEMA_MANAGER_H_
26 
27 #ident "$Id$"
28 
29 #if defined (SERVER_MODE)
30 #error Does not belong to server module
31 #endif /* defined (SERVER_MODE) */
32 
33 #include "language_support.h" /* for international string functions */
34 #include "storage_common.h" /* for HFID */
35 #include "object_domain.h" /* for TP_DOMAIN */
36 #include "work_space.h" /* for MOP */
37 #include "class_object.h" /* for SM_CLASS */
38 #include "schema_template.h" /* template interface */
39 #include "trigger_manager.h" /* for TR_EVENT_TYPE */
40 #include "tde.h"
41 
42 /*
43  * This is NOT the "object" class but rather functions more like
44  * the meta-class of class objects.
45  * This formerly stored the list of classes that had no super classes,
46  * in that way it was kind of like the root "object" of the class
47  * hierarchy. Unfortunately, maintaining this list caused contention
48  * problems on the the root object so it was removed. The list
49  * of base classes is now generated manually by examining all classes.
50  */
51 
52 /*
53  * Use full SM_CLASS definition for ROOT_CLASS, instead of just SM_CLASS_HEADER.
54  * This avoids to handle particular case of sm_Root_class object in many usage of 'au_fetch_class_..' functions.
55  * However serialization functions will use only the header part of the object.
56 */
58 
59 /*
60  * Structure used when truncating a class and changing an attribute.
61  * During these operations, indexes are dropped and recreated.
62  * The information needed to recreate the constraints (indexes) are saved in
63  * this structure.
64  */
66 
68 {
70  char *name;
71  char **att_names;
72  int *asc_desc;
75  char *ref_cls_name;
76  char **ref_attrs;
81  const char *comment;
82  SM_INDEX_STATUS index_status; // Used to save index_status in case of rebuild or moving the constraint
83 };
84 
86 
87 extern const char TEXT_CONSTRAINT_PREFIX[];
88 
89 extern MOP sm_Root_class_mop;
90 extern HFID *sm_Root_class_hfid;
91 extern const char *sm_Root_class_name;
92 
93 extern int sm_finish_class (SM_TEMPLATE * template_, MOP * classmop);
94 extern int sm_update_class (SM_TEMPLATE * template_, MOP * classmop);
95 extern int sm_update_class_with_auth (SM_TEMPLATE * template_, MOP * classmop, DB_AUTH auth, bool lock_hierarchy);
96 extern int sm_update_class_auto (SM_TEMPLATE * template_, MOP * classmop);
97 extern int sm_delete_class_mop (MOP op, bool is_cascade_constraints);
98 extern int ib_get_thread_count ();
99 #if defined(ENABLE_UNUSED_FUNCTION)
100 extern int sm_delete_class (const char *name);
101 #endif
102 
103 #if 0 // TODO - remove it
104 extern int sm_add_index (MOP classop, DB_CONSTRAINT_TYPE db_constraint_type, const char *constraint_name,
105  const char **attnames, const int *asc_desc, const int *attrs_prefix_length,
106  SM_PREDICATE_INFO * pred_info, SM_FUNCTION_INFO * fi_info, const char *comment);
107 #endif
108 extern int sm_get_index (MOP classop, const char *attname, BTID * index);
109 extern char *sm_produce_constraint_name (const char *class_name, DB_CONSTRAINT_TYPE constraint_type,
110  const char **att_names, const int *asc_desc, const char *given_name);
112  const int *asc_desc, const char *given_name);
114  const char **att_names, const int *asc_desc, const char *given_name);
115 extern int sm_add_constraint (MOP classop, DB_CONSTRAINT_TYPE constraint_type, const char *constraint_name,
116  const char **att_names, const int *asc_desc, const int *attrs_prefix_length,
117  int class_attributes, SM_PREDICATE_INFO * predicate_info, SM_FUNCTION_INFO * fi_info,
118  const char *comment, SM_INDEX_STATUS index_status);
119 extern int sm_drop_constraint (MOP classop, DB_CONSTRAINT_TYPE constraint_type, const char *constraint_name,
120  const char **att_names, bool class_attributes, bool mysql_index_name);
121 extern int sm_drop_index (MOP classop, const char *constraint_name);
122 extern int sm_exist_index (MOP classop, const char *idxname, BTID * btid);
123 
124 /* Misc schema operations */
125 extern int sm_rename_class (MOP op, const char *new_name);
126 extern void sm_mark_system_classes (void);
127 extern int sm_update_all_catalog_statistics (bool with_fullscan);
128 extern int sm_update_catalog_statistics (const char *class_name, bool with_fullscan);
129 extern int sm_force_write_all_classes (void);
130 #ifdef SA_MODE
131 extern void sm_mark_system_class_for_catalog (void);
132 #endif /* SA_MODE */
133 extern int sm_mark_system_class (MOP classop, int on_or_off);
134 extern int sm_is_system_class (MOP op);
135 extern bool sm_is_reuse_oid_class (MOP op);
136 extern int sm_check_reuse_oid_class (MOP op);
137 extern int sm_is_partitioned_class (MOP op);
138 extern int sm_partitioned_class_type (DB_OBJECT * classop, int *partition_type, char *keyattr, MOP ** partitions);
139 extern int sm_set_class_flag (MOP classop, SM_CLASS_FLAG flag, int onoff);
140 extern int sm_set_class_tde_algorithm (MOP classop, TDE_ALGORITHM tde_algo);
141 extern int sm_get_class_tde_algorithm (MOP classop, TDE_ALGORITHM * tde_algo);
142 extern int sm_get_class_flag (MOP op, SM_CLASS_FLAG flag);
143 extern int sm_set_class_collation (MOP classop, int collation_id);
144 extern int sm_get_class_collation (MOP classop, int *collation_id);
145 extern int sm_set_class_comment (MOP classop, const char *comment);
146 extern int sm_destroy_representations (MOP op);
147 
148 extern void sm_add_static_method (const char *name, void (*function) ());
149 extern void sm_delete_static_method (const char *name);
150 extern void sm_flush_static_methods (void);
151 
152 extern int sm_link_method (SM_CLASS * class_, SM_METHOD * method);
153 extern int sm_prelink_methods (DB_OBJLIST * classes);
154 extern int sm_force_method_link (MOP obj);
155 
156 
157 extern char *sm_get_method_source_file (MOP obj, const char *name);
158 
159 extern int sm_truncate_class (MOP class_mop);
160 
161 extern int sm_save_constraint_info (SM_CONSTRAINT_INFO ** save_info, const SM_CLASS_CONSTRAINT * const c);
163 extern int sm_save_filter_index_info (SM_PREDICATE_INFO ** save_info, SM_PREDICATE_INFO * filter_index_info);
164 extern void sm_free_constraint_info (SM_CONSTRAINT_INFO ** save_info);
165 
166 
167 /* Utility functions */
168 extern int sm_check_name (const char *name);
169 extern int sm_check_catalog_rep_dir (MOP classmop, SM_CLASS * class_);
171 
172 /* Class location functions */
173 extern MOP sm_get_class (MOP obj);
174 extern SM_CLASS_TYPE sm_get_class_type (SM_CLASS * class_);
175 
176 extern DB_OBJLIST *sm_fetch_all_classes (int external_list, DB_FETCH_MODE purpose);
177 extern DB_OBJLIST *sm_fetch_all_base_classes (int external_list, DB_FETCH_MODE purpose);
180 
181 /* Domain maintenance */
182 extern int sm_filter_domain (TP_DOMAIN * domain, int *changes);
183 extern int sm_check_class_domain (TP_DOMAIN * domain, MOP class_);
184 extern int sm_check_object_domain (TP_DOMAIN * domain, MOP object);
185 extern int sm_coerce_object_domain (TP_DOMAIN * domain, MOP object, MOP * dest_object);
186 
187 /* Extra cached state */
188 extern int sm_clean_class (MOP classmop, SM_CLASS * class_);
189 extern int sm_touch_class (MOP classmop);
190 
191 /* Statistics functions */
192 extern SM_CLASS *sm_get_class_with_statistics (MOP classop);
193 extern CLASS_STATS *sm_get_statistics_force (MOP classop);
194 extern int sm_update_statistics (MOP classop, bool with_fullscan);
195 extern int sm_update_all_statistics (bool with_fullscan);
196 
197 /* Misc information functions */
198 extern const char *sm_get_ch_name (MOP op);
199 extern HFID *sm_get_ch_heap (MOP classmop);
200 #if 0 /* TODO - do not use */
201 extern OID *sm_get_ch_rep_dir (MOP classmop);
202 #endif
203 
204 extern int sm_is_subclass (MOP classmop, MOP supermop);
205 extern int sm_is_partition (MOP classmop, MOP supermop);
206 extern int sm_object_size_quick (SM_CLASS * class_, MOBJ obj);
208 
209 /* Locator support functions */
210 extern const char *sm_ch_name (const MOBJ clobj);
211 extern HFID *sm_ch_heap (MOBJ clobj);
212 extern OID *sm_ch_rep_dir (MOBJ clobj);
213 
214 extern bool sm_has_indexes (MOBJ class_);
215 
216 /* Interpreter support functions */
217 extern void sm_downcase_name (const char *name, char *buf, int maxlen);
218 extern MOP sm_find_class (const char *name);
219 extern MOP sm_find_class_with_purpose (const char *name, bool for_update);
220 
221 extern const char *sm_get_att_name (MOP classop, int id);
222 extern int sm_att_id (MOP classop, const char *name);
223 extern DB_TYPE sm_att_type_id (MOP classop, const char *name);
224 
225 extern MOP sm_att_class (MOP classop, const char *name);
226 extern int sm_att_info (MOP classop, const char *name, int *idp, TP_DOMAIN ** domainp, int *sharedp, int class_attr);
227 extern int sm_att_constrained (MOP classop, const char *name, SM_ATTRIBUTE_FLAG cons);
228 extern bool sm_att_auto_increment (MOP classop, const char *name);
229 extern int sm_att_default_value (MOP classop, const char *name, DB_VALUE * value, DB_DEFAULT_EXPR ** default_expr,
230  DB_DEFAULT_EXPR_TYPE ** on_update_expr);
231 
232 extern int sm_class_check_uniques (MOP classop);
233 extern BTID *sm_find_index (MOP classop, char **att_names, int num_atts, bool unique_index_only,
234  bool skip_prefix_length_index, BTID * btid);
235 
236 
237 /* Query processor support functions */
238 extern int sm_get_class_repid (MOP classop);
239 extern unsigned int sm_local_schema_version (void);
240 extern void sm_bump_local_schema_version (void);
241 extern unsigned int sm_global_schema_version (void);
242 extern void sm_bump_global_schema_version (void);
243 extern struct parser_context *sm_virtual_queries (struct parser_context *parser, DB_OBJECT * class_object);
244 
245 
246 extern int sm_flush_objects (MOP obj);
247 extern int sm_decache_mop (MOP mop, void *info);
249 extern int sm_flush_and_decache_objects (MOP obj, int decache);
250 extern int sm_flush_for_multi_update (MOP class_mop);
251 
252 /* Workspace & Garbage collection functions */
253 extern int sm_issystem (SM_CLASS * class_);
254 
255 
256 /* Trigger support */
257 extern int sm_class_has_triggers (DB_OBJECT * classop, int *status, DB_TRIGGER_EVENT event_type);
258 
259 extern int sm_get_trigger_cache (DB_OBJECT * class_, const char *attribute, int class_attribute, void **cache);
260 
261 
262 extern int sm_invalidate_trigger_cache (DB_OBJECT * classop);
263 
264 extern int sm_add_trigger (DB_OBJECT * classop, const char *attribute, int class_attribute, DB_OBJECT * trigger);
265 
266 extern int sm_drop_trigger (DB_OBJECT * classop, const char *attribute, int class_attribute, DB_OBJECT * trigger);
267 
268 /* Optimized trigger checker for the object manager */
269 extern int sm_active_triggers (MOP class_mop, SM_CLASS * class_, DB_TRIGGER_EVENT event_type);
270 
271 
272 /* Attribute & Method descriptors */
273 extern int sm_get_attribute_descriptor (DB_OBJECT * op, const char *name, int class_attribute, int for_update,
274  SM_DESCRIPTOR ** desc);
275 
276 extern int sm_get_method_descriptor (DB_OBJECT * op, const char *name, int class_method, SM_DESCRIPTOR ** desc);
277 
278 extern void sm_free_descriptor (SM_DESCRIPTOR * desc);
279 
280 extern int sm_get_descriptor_component (MOP op, SM_DESCRIPTOR * desc, int for_update, SM_CLASS ** class_ptr,
281  SM_COMPONENT ** comp_ptr);
282 
284 
285 /* Module control */
286 extern void sm_final (void);
287 extern void sm_transaction_boundary (void);
288 
289 extern void sm_create_root (OID * rootclass_oid, HFID * rootclass_hfid);
290 extern void sm_init (OID * rootclass_oid, HFID * rootclass_hfid);
291 #if defined (ENABLE_UNUSED_FUNCTION) /* to disable TEXT */
292 extern int sm_has_text_domain (DB_ATTRIBUTE * attributes, int check_all);
293 #endif /* ENABLE_UNUSED_FUNCTION */
294 extern int sm_class_has_unique_constraint (MOBJ classobj, MOP classop, bool check_subclasses, bool * has_unique);
295 extern int sm_att_unique_constrained (MOP classop, const char *name);
296 extern int sm_att_in_unique_filter_constraint_predicate (MOP classop, const char *name);
297 extern int sm_att_fk_constrained (MOP classop, const char *name);
298 
299 extern bool classobj_is_exist_foreign_key_ref (MOP refop, SM_FOREIGN_KEY_INFO * fk_info);
300 
301 extern int classobj_put_foreign_key_ref (DB_SEQ ** properties, SM_FOREIGN_KEY_INFO * fk_info);
302 #if defined (ENABLE_RENAME_CONSTRAINT)
303 extern int classobj_rename_foreign_key_ref (DB_SEQ ** properties, const BTID * btid, const char *old_name,
304  const char *new_name);
305 #endif
306 extern int classobj_drop_foreign_key_ref (DB_SEQ ** properties, const BTID * btid, const char *name);
307 
308 /* currently this is a private function to be called only by AU_SET_USER */
309 extern int sc_set_current_schema (MOP user);
310 /* Obtain (pointer to) current schema name. */
311 
312 extern int sm_has_non_null_attribute (SM_ATTRIBUTE ** attrs);
314 extern void sm_free_filter_index_info (SM_PREDICATE_INFO * filter_index_info);
315 
316 extern int sm_is_global_only_constraint (MOP classmop, SM_CLASS_CONSTRAINT * constraint, int *is_global,
317  SM_TEMPLATE * template_);
318 
319 #if defined (ENABLE_RENAME_CONSTRAINT)
320 extern int sm_rename_foreign_key_ref (MOP ref_clsop, const BTID * btid, const char *old_name, const char *new_name);
321 #endif
322 
323 extern int sm_find_subclass_in_hierarchy (MOP hierarchy, MOP class_mop, bool * found);
324 extern bool sm_is_index_visible (SM_CLASS_CONSTRAINT * constraint_list, BTID btid);
325 
327 void sm_domain_free (SM_DOMAIN * ptr);
329 
330 #endif /* _SCHEMA_MANAGER_H_ */
char * sm_get_method_source_file(MOP obj, const char *name)
int sm_prelink_methods(DB_OBJLIST *classes)
int sm_update_catalog_statistics(const char *class_name, bool with_fullscan)
DB_CONSTRAINT_TYPE constraint_type
int sm_exist_index(MOP classop, const char *idxname, BTID *btid)
int sm_invalidate_trigger_cache(DB_OBJECT *classop)
bool sm_is_index_visible(SM_CLASS_CONSTRAINT *constraint_list, BTID btid)
int sm_att_in_unique_filter_constraint_predicate(MOP classop, const char *name)
void sm_fee_resident_classes_virtual_query_cache(void)
DB_OBJLIST * sm_fetch_all_classes(int external_list, DB_FETCH_MODE purpose)
int sm_truncate_class(MOP class_mop)
int sm_att_info(MOP classop, const char *name, int *idp, TP_DOMAIN **domainp, int *sharedp, int class_attr)
int sm_save_filter_index_info(SM_PREDICATE_INFO **save_info, SM_PREDICATE_INFO *filter_index_info)
SM_CLASS_CONSTRAINT * sm_class_constraints(MOP classop)
char * MOBJ
Definition: work_space.h:174
bool sm_att_auto_increment(MOP classop, const char *name)
int sm_update_class_with_auth(SM_TEMPLATE *template_, MOP *classmop, DB_AUTH auth, bool lock_hierarchy)
int sm_partitioned_class_type(DB_OBJECT *classop, int *partition_type, char *keyattr, MOP **partitions)
int sm_get_attribute_descriptor(DB_OBJECT *op, const char *name, int class_attribute, int for_update, SM_DESCRIPTOR **desc)
DB_TYPE
Definition: dbtype_def.h:670
struct parser_context * sm_virtual_queries(struct parser_context *parser, DB_OBJECT *class_object)
void sm_free_filter_index_info(SM_PREDICATE_INFO *filter_index_info)
int sm_force_write_all_classes(void)
int sm_destroy_representations(MOP op)
bool sm_is_reuse_oid_class(MOP op)
int sm_has_non_null_attribute(SM_ATTRIBUTE **attrs)
const char * sm_ch_name(const MOBJ clobj)
int sm_update_all_statistics(bool with_fullscan)
SM_FOREIGN_KEY_ACTION
int sm_set_class_collation(MOP classop, int collation_id)
int sm_is_system_class(MOP op)
int sm_att_constrained(MOP classop, const char *name, SM_ATTRIBUTE_FLAG cons)
SM_NAME_SPACE sm_resolution_space(SM_NAME_SPACE name_space)
int sm_get_method_descriptor(DB_OBJECT *op, const char *name, int class_method, SM_DESCRIPTOR **desc)
SM_CLASS_TYPE
Definition: class_object.h:289
SM_DOMAIN * sm_domain_copy(SM_DOMAIN *ptr)
int sm_drop_constraint(MOP classop, DB_CONSTRAINT_TYPE constraint_type, const char *constraint_name, const char **att_names, bool class_attributes, bool mysql_index_name)
int sm_att_default_value(MOP classop, const char *name, DB_VALUE *value, DB_DEFAULT_EXPR **default_expr, DB_DEFAULT_EXPR_TYPE **on_update_expr)
int sm_drop_trigger(DB_OBJECT *classop, const char *attribute, int class_attribute, DB_OBJECT *trigger)
SM_CLASS * sm_get_class_with_statistics(MOP classop)
SM_CLASS_TYPE sm_get_class_type(SM_CLASS *class_)
SM_NAME_SPACE
int sm_flush_objects(MOP obj)
int sm_set_class_comment(MOP classop, const char *comment)
int sm_active_triggers(MOP class_mop, SM_CLASS *class_, DB_TRIGGER_EVENT event_type)
int sm_set_class_tde_algorithm(MOP classop, TDE_ALGORITHM tde_algo)
void sm_flush_static_methods(void)
struct sm_constraint_info * next
void sm_free_constraint_info(SM_CONSTRAINT_INFO **save_info)
int sm_att_id(MOP classop, const char *name)
void sm_add_static_method(const char *name, void(*function)())
CLASS_STATS * sm_get_statistics_force(MOP classop)
const char * sm_Root_class_name
int ib_get_thread_count()
int sm_issystem(SM_CLASS *class_)
const char * sm_get_att_name(MOP classop, int id)
int sm_get_class_repid(MOP classop)
int sm_get_class_tde_algorithm(MOP classop, TDE_ALGORITHM *tde_algo)
SM_ATTRIBUTE_FLAG
bool classobj_is_exist_foreign_key_ref(MOP refop, SM_FOREIGN_KEY_INFO *fk_info)
int sm_get_trigger_cache(DB_OBJECT *class_, const char *attribute, int class_attribute, void **cache)
int sm_add_constraint(MOP classop, DB_CONSTRAINT_TYPE constraint_type, const char *constraint_name, const char **att_names, const int *asc_desc, const int *attrs_prefix_length, int class_attributes, SM_PREDICATE_INFO *predicate_info, SM_FUNCTION_INFO *fi_info, const char *comment, SM_INDEX_STATUS index_status)
const char TEXT_CONSTRAINT_PREFIX[]
HFID * sm_Root_class_hfid
SM_FOREIGN_KEY_ACTION fk_update_action
Definition: db_set.h:35
int sm_object_size_quick(SM_CLASS *class_, MOBJ obj)
ROOT_CLASS sm_Root_class
void sm_free_function_index_info(SM_FUNCTION_INFO *func_index_info)
int sm_check_catalog_rep_dir(MOP classmop, SM_CLASS *class_)
DB_CONSTRAINT_TYPE
Definition: dbtype_def.h:452
TDE_ALGORITHM
Definition: tde.h:71
int sm_find_subclass_in_hierarchy(MOP hierarchy, MOP class_mop, bool *found)
int sm_get_class_flag(MOP op, SM_CLASS_FLAG flag)
SM_DOMAIN * sm_domain_alloc()
char * sm_produce_constraint_name_mop(MOP classop, DB_CONSTRAINT_TYPE constraint_type, const char **att_names, const int *asc_desc, const char *given_name)
int sm_is_partition(MOP classmop, MOP supermop)
int sm_touch_class(MOP classmop)
int sm_decache_instances_after_query_executed_with_commit(MOP class_mop)
SM_FOREIGN_KEY_ACTION fk_delete_action
void sm_bump_global_schema_version(void)
void sm_init(OID *rootclass_oid, HFID *rootclass_hfid)
bool sm_has_indexes(MOBJ class_)
int sm_coerce_object_domain(TP_DOMAIN *domain, MOP object, MOP *dest_object)
HFID * sm_ch_heap(MOBJ clobj)
SP_PARSER_CTX * parser
int sm_class_has_triggers(DB_OBJECT *classop, int *status, DB_TRIGGER_EVENT event_type)
int sm_check_class_domain(TP_DOMAIN *domain, MOP class_)
int sm_delete_class_mop(MOP op, bool is_cascade_constraints)
int sm_update_class(SM_TEMPLATE *template_, MOP *classmop)
int sm_class_check_uniques(MOP classop)
char * sm_produce_constraint_name_tmpl(SM_TEMPLATE *tmpl, DB_CONSTRAINT_TYPE constraint_type, const char **att_names, const int *asc_desc, const char *given_name)
int sm_force_method_link(MOP obj)
int sm_get_class_collation(MOP classop, int *collation_id)
int sm_save_constraint_info(SM_CONSTRAINT_INFO **save_info, const SM_CLASS_CONSTRAINT *const c)
int sm_update_statistics(MOP classop, bool with_fullscan)
int sm_check_name(const char *name)
DB_OBJLIST * sm_fetch_all_objects(DB_OBJECT *op, DB_FETCH_MODE purpose)
const char * comment
void sm_downcase_name(const char *name, char *buf, int maxlen)
void sm_free_descriptor(SM_DESCRIPTOR *desc)
int sm_att_unique_constrained(MOP classop, const char *name)
DB_OBJLIST * sm_fetch_all_base_classes(int external_list, DB_FETCH_MODE purpose)
int sm_save_function_index_info(SM_FUNCTION_INFO **save_info, SM_FUNCTION_INFO *func_index_info)
int sm_update_class_auto(SM_TEMPLATE *template_, MOP *classmop)
MOP sm_get_class(MOP obj)
int sm_is_partitioned_class(MOP op)
DB_AUTH
Definition: dbtype_def.h:239
int sm_mark_system_class(MOP classop, int on_or_off)
DB_TYPE sm_att_type_id(MOP classop, const char *name)
int sm_add_trigger(DB_OBJECT *classop, const char *attribute, int class_attribute, DB_OBJECT *trigger)
OID * sm_ch_rep_dir(MOBJ clobj)
int sm_check_reuse_oid_class(MOP op)
int sm_is_global_only_constraint(MOP classmop, SM_CLASS_CONSTRAINT *constraint, int *is_global, SM_TEMPLATE *template_)
MOP sm_find_class(const char *name)
int sm_filter_domain(TP_DOMAIN *domain, int *changes)
int sc_set_current_schema(MOP user)
unsigned int sm_global_schema_version(void)
void sm_final(void)
int sm_rename_class(MOP op, const char *new_name)
const char * sm_get_ch_name(MOP op)
void sm_delete_static_method(const char *name)
int sm_get_index(MOP classop, const char *attname, BTID *index)
DB_CONSTRAINT_TYPE db_constraint_type(const DB_CONSTRAINT *constraint)
Definition: db_info.c:1978
DB_TRIGGER_EVENT
Definition: dbtype_def.h:356
void sm_bump_local_schema_version(void)
int sm_update_all_catalog_statistics(bool with_fullscan)
int sm_set_class_flag(MOP classop, SM_CLASS_FLAG flag, int onoff)
int classobj_put_foreign_key_ref(DB_SEQ **properties, SM_FOREIGN_KEY_INFO *fk_info)
SM_FUNCTION_INFO * func_index_info
DB_OBJLIST * sm_fetch_all_objects_of_dirty_version(DB_OBJECT *op, DB_FETCH_MODE purpose)
void sm_domain_free(SM_DOMAIN *ptr)
SM_PREDICATE_INFO * filter_predicate
#define is_global(M)
int sm_flush_and_decache_objects(MOP obj, int decache)
MOP sm_find_class_with_purpose(const char *name, bool for_update)
int sm_finish_class(SM_TEMPLATE *template_, MOP *classmop)
void sm_create_root(OID *rootclass_oid, HFID *rootclass_hfid)
SM_CLASS_FLAG
Definition: class_object.h:300
int sm_clean_class(MOP classmop, SM_CLASS *class_)
unsigned int sm_local_schema_version(void)
DB_FETCH_MODE
Definition: dbtype_def.h:215
int sm_class_has_unique_constraint(MOBJ classobj, MOP classop, bool check_subclasses, bool *has_unique)
HFID * sm_get_ch_heap(MOP classmop)
int sm_att_fk_constrained(MOP classop, const char *name)
int classobj_drop_foreign_key_ref(DB_SEQ **properties, const BTID *btid, const char *name)
BTID * sm_find_index(MOP classop, char **att_names, int num_atts, bool unique_index_only, bool skip_prefix_length_index, BTID *btid)
int sm_drop_index(MOP classop, const char *constraint_name)
MOP sm_att_class(MOP classop, const char *name)
void sm_transaction_boundary(void)
int sm_get_descriptor_component(MOP op, SM_DESCRIPTOR *desc, int for_update, SM_CLASS **class_ptr, SM_COMPONENT **comp_ptr)
SM_INDEX_STATUS
Definition: class_object.h:510
void sm_mark_system_classes(void)
char * sm_produce_constraint_name(const char *class_name, DB_CONSTRAINT_TYPE constraint_type, const char **att_names, const int *asc_desc, const char *given_name)
int sm_decache_mop(MOP mop, void *info)
DB_DEFAULT_EXPR_TYPE
Definition: dbtype_def.h:1181
int sm_is_subclass(MOP classmop, MOP supermop)
int sm_flush_for_multi_update(MOP class_mop)
int sm_check_object_domain(TP_DOMAIN *domain, MOP object)
SM_INDEX_STATUS index_status
int sm_link_method(SM_CLASS *class_, SM_METHOD *method)
MOP sm_Root_class_mop
SM_CLASS ROOT_CLASS