CUBRID Engine  latest
schema_template.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_template.h - Definitions for the schema template interface
22  */
23 
24 #ifndef _SCHEMA_TEMPLATE_H_
25 #define _SCHEMA_TEMPLATE_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 "work_space.h"
34 #include "class_object.h"
35 
36 /* Template creation */
37 extern SM_TEMPLATE *smt_def_class (const char *name);
38 extern SM_TEMPLATE *smt_edit_class_mop (MOP class_, DB_AUTH db_auth_type);
39 #if defined(ENABLE_UNUSED_FUNCTION)
40 extern SM_TEMPLATE *smt_edit_class (const char *name);
41 #endif /* ENABLE_UNUSED_FUNCTION */
42 extern SM_TEMPLATE *smt_copy_class_mop (const char *name, MOP op, SM_CLASS ** class_);
43 extern SM_TEMPLATE *smt_copy_class (const char *new_name, const char *existing_name, SM_CLASS ** class_);
44 extern int smt_quit (SM_TEMPLATE * template_);
45 
46 /* Virtual class support */
47 extern SM_TEMPLATE *smt_def_typed_class (const char *name, SM_CLASS_TYPE ct);
48 extern SM_CLASS_TYPE smt_get_class_type (SM_TEMPLATE * template_);
49 
50 /* Attribute definition */
51 extern int smt_add_attribute_w_dflt (DB_CTMPL * def, const char *name, const char *domain_string, DB_DOMAIN * domain,
52  DB_VALUE * default_value, const SM_NAME_SPACE name_space,
53  DB_DEFAULT_EXPR * default_expr, DB_DEFAULT_EXPR_TYPE * on_update,
54  const char *comment);
55 
56 extern int smt_add_attribute_w_dflt_w_order (DB_CTMPL * def, const char *name, const char *domain_string,
57  DB_DOMAIN * domain, DB_VALUE * default_value,
58  const SM_NAME_SPACE name_space, const bool add_first,
59  const char *add_after_attribute, DB_DEFAULT_EXPR * default_expr,
60  DB_DEFAULT_EXPR_TYPE * on_update, const char *comment);
61 
62 extern int smt_add_attribute_any (SM_TEMPLATE * template_, const char *name, const char *domain_string,
63  DB_DOMAIN * domain, const SM_NAME_SPACE name_space, const bool add_first,
64  const char *add_after_attribute, const char *comment);
65 
66 extern int smt_add_attribute (SM_TEMPLATE * template_, const char *name, const char *domain_string, DB_DOMAIN * domain);
67 
68 extern int smt_add_set_attribute_domain (SM_TEMPLATE * template_, const char *name, int class_attribute,
69  const char *domain_string, DB_DOMAIN * domain);
70 
71 extern int smt_delete_set_attribute_domain (SM_TEMPLATE * template_, const char *name, int class_attribute,
72  const char *domain_string, DB_DOMAIN * domain);
73 
74 extern int smt_reset_attribute_domain (SM_TEMPLATE * template_, const char *name, int class_attribute);
75 
76 extern int smt_set_attribute_default (SM_TEMPLATE * template_, const char *name, int class_attribute, DB_VALUE * value,
77  DB_DEFAULT_EXPR * default_expr);
78 
79 extern int smt_set_attribute_on_update (SM_TEMPLATE * template_, const char *name, int class_attribute,
80  DB_DEFAULT_EXPR_TYPE on_update);
81 
82 extern int smt_add_constraint (SM_TEMPLATE * template_, DB_CONSTRAINT_TYPE constraint_type, const char *constraint_name,
83  const char **att_names, const int *asc_desc, const int *attr_prefix_length,
84  int class_attribute, SM_FOREIGN_KEY_INFO * fk_info, SM_PREDICATE_INFO * filter_index,
85  SM_FUNCTION_INFO * function_index, const char *comment, SM_INDEX_STATUS index_status);
86 
87 extern int smt_drop_constraint (SM_TEMPLATE * template_, const char **att_names, const char *constraint_name,
88  int class_attribute, SM_ATTRIBUTE_FLAG constraint);
89 
90 extern int smt_add_index (SM_TEMPLATE * template_, const char *name, int on_or_off);
91 
92 extern int smt_find_attribute (SM_TEMPLATE * template_, const char *name, int class_attribute, SM_ATTRIBUTE ** attp);
93 
94 /* Method definition */
95 extern int smt_add_method_any (SM_TEMPLATE * template_, const char *name, const char *implementation,
96  SM_NAME_SPACE name_space);
97 
98 extern int smt_add_method (SM_TEMPLATE * template_, const char *name, const char *implementation);
99 extern int smt_add_class_method (SM_TEMPLATE * template_, const char *name, const char *implementation);
100 
101 extern int smt_change_method_implementation (SM_TEMPLATE * template_, const char *name, int class_method,
102  const char *implementation);
103 
104 extern int smt_assign_argument_domain (SM_TEMPLATE * template_, const char *name, int class_method,
105  const char *implementation, int index, const char *domain_string,
106  DB_DOMAIN * domain);
107 
108 extern int smt_add_set_argument_domain (SM_TEMPLATE * template_, const char *name, int class_method,
109  const char *implementation, int index, const char *domain_string,
110  DB_DOMAIN * domain);
111 
112 /* Rename functions */
113 extern int smt_rename_any (SM_TEMPLATE * template_, const char *name, const bool class_namespace, const char *new_name);
114 
115 #if defined (ENABLE_RENAME_CONSTRAINT)
116 extern int smt_rename_constraint (SM_TEMPLATE * ctemplate, const char *old_name, const char *new_name,
117  SM_CONSTRAINT_FAMILY element_type);
118 #endif
119 
120 /* Change comment function */
121 extern int smt_change_constraint_comment (SM_TEMPLATE * ctemplate, const char *index_name, const char *comment);
122 
123 /* Change index status function */
124 extern int smt_change_constraint_status (SM_TEMPLATE * ctemplate, const char *index_name, SM_INDEX_STATUS index_status);
125 
126 /* Deletion functions */
127 extern int smt_delete_any (SM_TEMPLATE * template_, const char *name, SM_NAME_SPACE name_space);
128 #if defined(ENABLE_UNUSED_FUNCTION)
129 extern int smt_delete (SM_TEMPLATE * template_, const char *name);
130 extern int smt_class_delete (SM_TEMPLATE * template_, const char *name);
131 #endif
132 
133 /* Superclass functions */
134 extern int smt_add_super (SM_TEMPLATE * template_, MOP super_class);
135 extern int smt_delete_super (SM_TEMPLATE * template_, MOP super_class);
136 extern int smt_delete_super_connect (SM_TEMPLATE * template_, MOP super_class);
137 
138 /* Method file functions */
139 extern int smt_add_method_file (SM_TEMPLATE * template_, const char *filename);
140 extern int smt_drop_method_file (SM_TEMPLATE * template_, const char *filename);
141 extern int smt_reset_method_files (SM_TEMPLATE * template_);
142 
143 extern int smt_rename_method_file (SM_TEMPLATE * template_, const char *old_name, const char *new_name);
144 
145 extern int smt_set_loader_commands (SM_TEMPLATE * template_, const char *commands);
146 
147 /* Resolution functions */
148 extern int smt_add_resolution (SM_TEMPLATE * template_, MOP super_class, const char *name, const char *alias);
149 
150 extern int smt_add_class_resolution (SM_TEMPLATE * template_, MOP super_class, const char *name, const char *alias);
151 
152 extern int smt_delete_resolution (SM_TEMPLATE * template_, MOP super_class, const char *name);
153 extern int smt_delete_class_resolution (SM_TEMPLATE * template_, MOP super_class, const char *name);
154 
155 /* Query_spec functions */
156 extern int smt_add_query_spec (SM_TEMPLATE * template_, const char *specification);
157 extern int smt_drop_query_spec (SM_TEMPLATE * template_, const int index);
158 extern int smt_reset_query_spec (SM_TEMPLATE * template_);
159 extern int smt_change_query_spec (SM_TEMPLATE * def, const char *query, const int index);
160 extern int smt_change_attribute_w_dflt_w_order (DB_CTMPL * def, const char *name, const char *new_name,
161  const char *new_domain_string, DB_DOMAIN * new_domain,
162  const SM_NAME_SPACE name_space, DB_VALUE * new_default_value,
163  DB_DEFAULT_EXPR * new_def_expr, DB_DEFAULT_EXPR_TYPE new_on_update_expr,
164  const bool change_first, const char *change_after_attribute,
165  SM_ATTRIBUTE ** found_att);
166 
167 extern int smt_check_index_exist (SM_TEMPLATE * template_, char **out_shared_cons_name,
168  DB_CONSTRAINT_TYPE constraint_type, const char *constraint_name,
169  const char **att_names, const int *asc_desc, const SM_PREDICATE_INFO * filter_index,
170  const SM_FUNCTION_INFO * function_index);
171 
172 #if defined(ENABLE_UNUSED_FUNCTION)
173 extern void smt_downcase_all_class_info (void);
174 #endif
175 
176 #endif /* _SCHEMA_TEMPLATE_H_ */
int smt_rename_any(SM_TEMPLATE *template_, const char *name, const bool class_namespace, const char *new_name)
int smt_delete_any(SM_TEMPLATE *template_, const char *name, SM_NAME_SPACE name_space)
SM_TEMPLATE * smt_def_typed_class(const char *name, SM_CLASS_TYPE ct)
int smt_reset_query_spec(SM_TEMPLATE *template_)
int smt_reset_attribute_domain(SM_TEMPLATE *template_, const char *name, int class_attribute)
SM_CLASS_TYPE smt_get_class_type(SM_TEMPLATE *template_)
int smt_change_query_spec(SM_TEMPLATE *def, const char *query, const int index)
int smt_rename_method_file(SM_TEMPLATE *template_, const char *old_name, const char *new_name)
int smt_add_method(SM_TEMPLATE *template_, const char *name, const char *implementation)
SM_CLASS_TYPE
Definition: class_object.h:289
int smt_delete_super_connect(SM_TEMPLATE *template_, MOP super_class)
SM_NAME_SPACE
int smt_change_constraint_comment(SM_TEMPLATE *ctemplate, const char *index_name, const char *comment)
int smt_assign_argument_domain(SM_TEMPLATE *template_, const char *name, int class_method, const char *implementation, int index, const char *domain_string, DB_DOMAIN *domain)
int smt_add_method_file(SM_TEMPLATE *template_, const char *filename)
int smt_add_attribute(SM_TEMPLATE *template_, const char *name, const char *domain_string, DB_DOMAIN *domain)
int smt_drop_method_file(SM_TEMPLATE *template_, const char *filename)
int smt_find_attribute(SM_TEMPLATE *template_, const char *name, int class_attribute, SM_ATTRIBUTE **attp)
int smt_add_attribute_any(SM_TEMPLATE *template_, const char *name, const char *domain_string, DB_DOMAIN *domain, const SM_NAME_SPACE name_space, const bool add_first, const char *add_after_attribute, const char *comment)
SM_TEMPLATE * smt_copy_class(const char *new_name, const char *existing_name, SM_CLASS **class_)
int smt_add_index(SM_TEMPLATE *template_, const char *name, int on_or_off)
SM_ATTRIBUTE_FLAG
SM_CONSTRAINT_FAMILY
Definition: class_object.h:321
int smt_delete_set_attribute_domain(SM_TEMPLATE *template_, const char *name, int class_attribute, const char *domain_string, DB_DOMAIN *domain)
int smt_reset_method_files(SM_TEMPLATE *template_)
DB_CONSTRAINT_TYPE
Definition: dbtype_def.h:452
int smt_add_class_method(SM_TEMPLATE *template_, const char *name, const char *implementation)
SM_TEMPLATE * smt_copy_class_mop(const char *name, MOP op, SM_CLASS **class_)
int smt_set_loader_commands(SM_TEMPLATE *template_, const char *commands)
int smt_add_attribute_w_dflt_w_order(DB_CTMPL *def, const char *name, const char *domain_string, DB_DOMAIN *domain, DB_VALUE *default_value, const SM_NAME_SPACE name_space, const bool add_first, const char *add_after_attribute, DB_DEFAULT_EXPR *default_expr, DB_DEFAULT_EXPR_TYPE *on_update, const char *comment)
int smt_change_constraint_status(SM_TEMPLATE *ctemplate, const char *index_name, SM_INDEX_STATUS index_status)
int smt_quit(SM_TEMPLATE *template_)
int smt_add_class_resolution(SM_TEMPLATE *template_, MOP super_class, const char *name, const char *alias)
int smt_check_index_exist(SM_TEMPLATE *template_, char **out_shared_cons_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 *function_index)
int smt_add_super(SM_TEMPLATE *template_, MOP super_class)
int smt_set_attribute_default(SM_TEMPLATE *template_, const char *name, int class_attribute, DB_VALUE *value, DB_DEFAULT_EXPR *default_expr)
int smt_add_set_attribute_domain(SM_TEMPLATE *template_, const char *name, int class_attribute, const char *domain_string, DB_DOMAIN *domain)
int smt_drop_query_spec(SM_TEMPLATE *template_, const int index)
int smt_add_set_argument_domain(SM_TEMPLATE *template_, const char *name, int class_method, const char *implementation, int index, const char *domain_string, DB_DOMAIN *domain)
DB_AUTH
Definition: dbtype_def.h:239
int smt_drop_constraint(SM_TEMPLATE *template_, const char **att_names, const char *constraint_name, int class_attribute, SM_ATTRIBUTE_FLAG constraint)
int smt_add_constraint(SM_TEMPLATE *template_, DB_CONSTRAINT_TYPE constraint_type, const char *constraint_name, const char **att_names, const int *asc_desc, const int *attr_prefix_length, int class_attribute, SM_FOREIGN_KEY_INFO *fk_info, SM_PREDICATE_INFO *filter_index, SM_FUNCTION_INFO *function_index, const char *comment, SM_INDEX_STATUS index_status)
SM_TEMPLATE * smt_def_class(const char *name)
SM_TEMPLATE * smt_edit_class_mop(MOP class_, DB_AUTH db_auth_type)
int smt_change_attribute_w_dflt_w_order(DB_CTMPL *def, const char *name, const char *new_name, const char *new_domain_string, DB_DOMAIN *new_domain, const SM_NAME_SPACE name_space, DB_VALUE *new_default_value, DB_DEFAULT_EXPR *new_def_expr, DB_DEFAULT_EXPR_TYPE new_on_update_expr, const bool change_first, const char *change_after_attribute, SM_ATTRIBUTE **found_att)
int smt_change_method_implementation(SM_TEMPLATE *template_, const char *name, int class_method, const char *implementation)
int smt_delete_class_resolution(SM_TEMPLATE *template_, MOP super_class, const char *name)
int smt_add_resolution(SM_TEMPLATE *template_, MOP super_class, const char *name, const char *alias)
int smt_add_attribute_w_dflt(DB_CTMPL *def, const char *name, const char *domain_string, DB_DOMAIN *domain, DB_VALUE *default_value, const SM_NAME_SPACE name_space, DB_DEFAULT_EXPR *default_expr, DB_DEFAULT_EXPR_TYPE *on_update, const char *comment)
int smt_set_attribute_on_update(SM_TEMPLATE *template_, const char *name, int class_attribute, DB_DEFAULT_EXPR_TYPE on_update)
DB_VALUE * default_value
Definition: esql_cli.c:348
int smt_add_query_spec(SM_TEMPLATE *template_, const char *specification)
int smt_delete_super(SM_TEMPLATE *template_, MOP super_class)
SM_INDEX_STATUS
Definition: class_object.h:510
DB_DEFAULT_EXPR_TYPE
Definition: dbtype_def.h:1181
int smt_add_method_any(SM_TEMPLATE *template_, const char *name, const char *implementation, SM_NAME_SPACE name_space)
int smt_delete_resolution(SM_TEMPLATE *template_, MOP super_class, const char *name)