99 //#define ANYTIME_OPER_DEPRECATION_STATUS widen_entry::deprecated |
99 //#define ANYTIME_OPER_DEPRECATION_STATUS widen_entry::deprecated |
100 |
100 |
101 |
101 |
102 const struct widen_entry widen_ADD_table[] = { |
102 const struct widen_entry widen_ADD_table[] = { |
103 #define __add(TYPE) \ |
103 #define __add(TYPE) \ |
104 { &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, widen_entry::ok }, \ |
104 { &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, widen_entry::ok }, \ |
105 { &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, widen_entry::ok }, \ |
105 { &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, widen_entry::ok }, \ |
106 { &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, widen_entry::ok }, \ |
106 { &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, widen_entry::ok }, \ |
107 { &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::safe##TYPE##_type_name, widen_entry::ok }, |
107 { &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::safe##TYPE##_type_name, widen_entry::ok }, |
108 __ANY_NUM(__add) |
108 __ANY_NUM(__add) |
109 #undef __add |
109 #undef __add |
110 |
110 |
111 /*******************************************/ |
111 /*******************************************/ |
112 /*******************************************/ |
112 /*******************************************/ |
113 /*** Operations with TIME, DT and TOD... ***/ |
113 /*** Operations with TIME, DT and TOD... ***/ |
114 /*******************************************/ |
114 /*******************************************/ |
115 /*******************************************/ |
115 /*******************************************/ |
116 { &search_constant_type_c::time_type_name, &search_constant_type_c::time_type_name, &search_constant_type_c::time_type_name, widen_entry::ok }, |
116 { &get_datatype_info_c::time_type_name, &get_datatype_info_c::time_type_name, &get_datatype_info_c::time_type_name, widen_entry::ok }, |
117 { &search_constant_type_c::tod_type_name, &search_constant_type_c::time_type_name, &search_constant_type_c::tod_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
117 { &get_datatype_info_c::tod_type_name, &get_datatype_info_c::time_type_name, &get_datatype_info_c::tod_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
118 /* NOTE: the standard des not explicitly support the following semantics. However, since 'addition' is supposed to be commutative, we add it anyway... */ |
118 /* NOTE: the standard des not explicitly support the following semantics. However, since 'addition' is supposed to be commutative, we add it anyway... */ |
119 /* not currently supported by stage4, so it is best no tto add it for now... */ |
119 /* not currently supported by stage4, so it is best no tto add it for now... */ |
120 // { &search_constant_type_c::time_type_name, &search_constant_type_c::tod_type_name, &search_constant_type_c::tod_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
120 // { &get_datatype_info_c::time_type_name, &get_datatype_info_c::tod_type_name, &get_datatype_info_c::tod_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
121 { &search_constant_type_c::dt_type_name, &search_constant_type_c::time_type_name, &search_constant_type_c::dt_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
121 { &get_datatype_info_c::dt_type_name, &get_datatype_info_c::time_type_name, &get_datatype_info_c::dt_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
122 /* NOTE: the standard des not explicitly support the following semantics. However, since 'addition' is supposed to be commutative, we add it anyway... */ |
122 /* NOTE: the standard des not explicitly support the following semantics. However, since 'addition' is supposed to be commutative, we add it anyway... */ |
123 /* not currently supported by stage4, so it is best no tto add it for now... */ |
123 /* not currently supported by stage4, so it is best no tto add it for now... */ |
124 // { &search_constant_type_c::time_type_name, &search_constant_type_c::dt_type_name, &search_constant_type_c::dt_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
124 // { &get_datatype_info_c::time_type_name, &get_datatype_info_c::dt_type_name, &get_datatype_info_c::dt_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
125 |
125 |
126 /*******************************/ |
126 /*******************************/ |
127 /* SAFE version on the left... */ |
127 /* SAFE version on the left... */ |
128 /*******************************/ |
128 /*******************************/ |
129 { &search_constant_type_c::safetime_type_name, &search_constant_type_c::time_type_name, &search_constant_type_c::time_type_name, widen_entry::ok }, |
129 { &get_datatype_info_c::safetime_type_name, &get_datatype_info_c::time_type_name, &get_datatype_info_c::time_type_name, widen_entry::ok }, |
130 { &search_constant_type_c::safetod_type_name, &search_constant_type_c::time_type_name, &search_constant_type_c::tod_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
130 { &get_datatype_info_c::safetod_type_name, &get_datatype_info_c::time_type_name, &get_datatype_info_c::tod_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
131 /* NOTE: the standard des not explicitly support the following semantics. However, since 'addition' is supposed to be commutative, we add it anyway... */ |
131 /* NOTE: the standard des not explicitly support the following semantics. However, since 'addition' is supposed to be commutative, we add it anyway... */ |
132 /* not currently supported by stage4, so it is best no tto add it for now... */ |
132 /* not currently supported by stage4, so it is best no tto add it for now... */ |
133 // { &search_constant_type_c::safetime_type_name, &search_constant_type_c::tod_type_name, &search_constant_type_c::tod_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
133 // { &get_datatype_info_c::safetime_type_name, &get_datatype_info_c::tod_type_name, &get_datatype_info_c::tod_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
134 { &search_constant_type_c::safedt_type_name, &search_constant_type_c::time_type_name, &search_constant_type_c::dt_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
134 { &get_datatype_info_c::safedt_type_name, &get_datatype_info_c::time_type_name, &get_datatype_info_c::dt_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
135 /* NOTE: the standard des not explicitly support the following semantics. However, since 'addition' is supposed to be commutative, we add it anyway... */ |
135 /* NOTE: the standard des not explicitly support the following semantics. However, since 'addition' is supposed to be commutative, we add it anyway... */ |
136 /* not currently supported by stage4, so it is best no tto add it for now... */ |
136 /* not currently supported by stage4, so it is best no tto add it for now... */ |
137 // { &search_constant_type_c::safetime_type_name, &search_constant_type_c::dt_type_name, &search_constant_type_c::dt_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
137 // { &get_datatype_info_c::safetime_type_name, &get_datatype_info_c::dt_type_name, &get_datatype_info_c::dt_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
138 |
138 |
139 /********************************/ |
139 /********************************/ |
140 /* SAFE version on the right... */ |
140 /* SAFE version on the right... */ |
141 /********************************/ |
141 /********************************/ |
142 { &search_constant_type_c::time_type_name, &search_constant_type_c::safetime_type_name, &search_constant_type_c::time_type_name, widen_entry::ok }, |
142 { &get_datatype_info_c::time_type_name, &get_datatype_info_c::safetime_type_name, &get_datatype_info_c::time_type_name, widen_entry::ok }, |
143 { &search_constant_type_c::tod_type_name, &search_constant_type_c::safetime_type_name, &search_constant_type_c::tod_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
143 { &get_datatype_info_c::tod_type_name, &get_datatype_info_c::safetime_type_name, &get_datatype_info_c::tod_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
144 /* NOTE: the standard des not explicitly support the following semantics. However, since 'addition' is supposed to be commutative, we add it anyway... */ |
144 /* NOTE: the standard des not explicitly support the following semantics. However, since 'addition' is supposed to be commutative, we add it anyway... */ |
145 /* not currently supported by stage4, so it is best no tto add it for now... */ |
145 /* not currently supported by stage4, so it is best no tto add it for now... */ |
146 // { &search_constant_type_c::time_type_name, &search_constant_type_c::safetod_type_name, &search_constant_type_c::tod_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
146 // { &get_datatype_info_c::time_type_name, &get_datatype_info_c::safetod_type_name, &get_datatype_info_c::tod_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
147 { &search_constant_type_c::dt_type_name, &search_constant_type_c::safetime_type_name, &search_constant_type_c::dt_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
147 { &get_datatype_info_c::dt_type_name, &get_datatype_info_c::safetime_type_name, &get_datatype_info_c::dt_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
148 /* NOTE: the standard des not explicitly support the following semantics. However, since 'addition' is supposed to be commutative, we add it anyway... */ |
148 /* NOTE: the standard des not explicitly support the following semantics. However, since 'addition' is supposed to be commutative, we add it anyway... */ |
149 /* not currently supported by stage4, so it is best no tto add it for now... */ |
149 /* not currently supported by stage4, so it is best no tto add it for now... */ |
150 // { &search_constant_type_c::time_type_name, &search_constant_type_c::safedt_type_name, &search_constant_type_c::dt_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
150 // { &get_datatype_info_c::time_type_name, &get_datatype_info_c::safedt_type_name, &get_datatype_info_c::dt_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
151 |
151 |
152 /*************************************/ |
152 /*************************************/ |
153 /* SAFE version on left and right... */ |
153 /* SAFE version on left and right... */ |
154 /*************************************/ |
154 /*************************************/ |
155 { &search_constant_type_c::safetime_type_name, &search_constant_type_c::safetime_type_name, &search_constant_type_c::safetime_type_name, widen_entry::ok }, |
155 { &get_datatype_info_c::safetime_type_name, &get_datatype_info_c::safetime_type_name, &get_datatype_info_c::safetime_type_name, widen_entry::ok }, |
156 { &search_constant_type_c::safetod_type_name, &search_constant_type_c::safetime_type_name, &search_constant_type_c::safetod_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
156 { &get_datatype_info_c::safetod_type_name, &get_datatype_info_c::safetime_type_name, &get_datatype_info_c::safetod_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
157 /* NOTE: the standard des not explicitly support the following semantics. However, since 'addition' is supposed to be commutative, we add it anyway... */ |
157 /* NOTE: the standard des not explicitly support the following semantics. However, since 'addition' is supposed to be commutative, we add it anyway... */ |
158 /* not currently supported by stage4, so it is best no tto add it for now... */ |
158 /* not currently supported by stage4, so it is best no tto add it for now... */ |
159 // { &search_constant_type_c::safetime_type_name, &search_constant_type_c::safetod_type_name, &search_constant_type_c::safetod_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
159 // { &get_datatype_info_c::safetime_type_name, &get_datatype_info_c::safetod_type_name, &get_datatype_info_c::safetod_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
160 { &search_constant_type_c::safedt_type_name, &search_constant_type_c::safetime_type_name, &search_constant_type_c::safedt_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
160 { &get_datatype_info_c::safedt_type_name, &get_datatype_info_c::safetime_type_name, &get_datatype_info_c::safedt_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
161 /* NOTE: the standard des not explicitly support the following semantics. However, since 'addition' is supposed to be commutative, we add it anyway... */ |
161 /* NOTE: the standard des not explicitly support the following semantics. However, since 'addition' is supposed to be commutative, we add it anyway... */ |
162 /* not currently supported by stage4, so it is best no tto add it for now... */ |
162 /* not currently supported by stage4, so it is best no tto add it for now... */ |
163 // { &search_constant_type_c::safetime_type_name, &search_constant_type_c::safedt_type_name, &search_constant_type_c::safedt_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
163 // { &get_datatype_info_c::safetime_type_name, &get_datatype_info_c::safedt_type_name, &get_datatype_info_c::safedt_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
164 |
164 |
165 { NULL, NULL, NULL, widen_entry::ok }, |
165 { NULL, NULL, NULL, widen_entry::ok }, |
166 }; |
166 }; |
167 |
167 |
168 |
168 |
171 |
171 |
172 |
172 |
173 |
173 |
174 const struct widen_entry widen_SUB_table[] = { |
174 const struct widen_entry widen_SUB_table[] = { |
175 #define __sub(TYPE) \ |
175 #define __sub(TYPE) \ |
176 { &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, widen_entry::ok }, \ |
176 { &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, widen_entry::ok }, \ |
177 { &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, widen_entry::ok }, \ |
177 { &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, widen_entry::ok }, \ |
178 { &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, widen_entry::ok }, \ |
178 { &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, widen_entry::ok }, \ |
179 { &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::safe##TYPE##_type_name, widen_entry::ok }, |
179 { &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::safe##TYPE##_type_name, widen_entry::ok }, |
180 __ANY_NUM(__sub) |
180 __ANY_NUM(__sub) |
181 #undef __sub |
181 #undef __sub |
182 |
182 |
183 /*******************************************/ |
183 /*******************************************/ |
184 /*******************************************/ |
184 /*******************************************/ |
185 /*** Operations with TIME, DT and TOD... ***/ |
185 /*** Operations with TIME, DT and TOD... ***/ |
186 /*******************************************/ |
186 /*******************************************/ |
187 /*******************************************/ |
187 /*******************************************/ |
188 { &search_constant_type_c::time_type_name, &search_constant_type_c::time_type_name, &search_constant_type_c::time_type_name, widen_entry::ok }, |
188 { &get_datatype_info_c::time_type_name, &get_datatype_info_c::time_type_name, &get_datatype_info_c::time_type_name, widen_entry::ok }, |
189 { &search_constant_type_c::date_type_name, &search_constant_type_c::date_type_name, &search_constant_type_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
189 { &get_datatype_info_c::date_type_name, &get_datatype_info_c::date_type_name, &get_datatype_info_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
190 { &search_constant_type_c::tod_type_name, &search_constant_type_c::time_type_name, &search_constant_type_c::tod_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
190 { &get_datatype_info_c::tod_type_name, &get_datatype_info_c::time_type_name, &get_datatype_info_c::tod_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
191 { &search_constant_type_c::tod_type_name, &search_constant_type_c::tod_type_name, &search_constant_type_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
191 { &get_datatype_info_c::tod_type_name, &get_datatype_info_c::tod_type_name, &get_datatype_info_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
192 { &search_constant_type_c::dt_type_name, &search_constant_type_c::time_type_name, &search_constant_type_c::dt_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
192 { &get_datatype_info_c::dt_type_name, &get_datatype_info_c::time_type_name, &get_datatype_info_c::dt_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
193 { &search_constant_type_c::dt_type_name, &search_constant_type_c::dt_type_name, &search_constant_type_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
193 { &get_datatype_info_c::dt_type_name, &get_datatype_info_c::dt_type_name, &get_datatype_info_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
194 |
194 |
195 /*******************************/ |
195 /*******************************/ |
196 /* SAFE version on the left... */ |
196 /* SAFE version on the left... */ |
197 /*******************************/ |
197 /*******************************/ |
198 { &search_constant_type_c::safetime_type_name, &search_constant_type_c::time_type_name, &search_constant_type_c::time_type_name, widen_entry::ok }, |
198 { &get_datatype_info_c::safetime_type_name, &get_datatype_info_c::time_type_name, &get_datatype_info_c::time_type_name, widen_entry::ok }, |
199 { &search_constant_type_c::safedate_type_name, &search_constant_type_c::date_type_name, &search_constant_type_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
199 { &get_datatype_info_c::safedate_type_name, &get_datatype_info_c::date_type_name, &get_datatype_info_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
200 { &search_constant_type_c::safetod_type_name, &search_constant_type_c::time_type_name, &search_constant_type_c::tod_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
200 { &get_datatype_info_c::safetod_type_name, &get_datatype_info_c::time_type_name, &get_datatype_info_c::tod_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
201 { &search_constant_type_c::safetod_type_name, &search_constant_type_c::tod_type_name, &search_constant_type_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
201 { &get_datatype_info_c::safetod_type_name, &get_datatype_info_c::tod_type_name, &get_datatype_info_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
202 { &search_constant_type_c::safedt_type_name, &search_constant_type_c::time_type_name, &search_constant_type_c::dt_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
202 { &get_datatype_info_c::safedt_type_name, &get_datatype_info_c::time_type_name, &get_datatype_info_c::dt_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
203 { &search_constant_type_c::safedt_type_name, &search_constant_type_c::dt_type_name, &search_constant_type_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
203 { &get_datatype_info_c::safedt_type_name, &get_datatype_info_c::dt_type_name, &get_datatype_info_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
204 |
204 |
205 /********************************/ |
205 /********************************/ |
206 /* SAFE version on the right... */ |
206 /* SAFE version on the right... */ |
207 /********************************/ |
207 /********************************/ |
208 { &search_constant_type_c::time_type_name, &search_constant_type_c::safetime_type_name, &search_constant_type_c::time_type_name, widen_entry::ok }, |
208 { &get_datatype_info_c::time_type_name, &get_datatype_info_c::safetime_type_name, &get_datatype_info_c::time_type_name, widen_entry::ok }, |
209 { &search_constant_type_c::date_type_name, &search_constant_type_c::safedate_type_name, &search_constant_type_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
209 { &get_datatype_info_c::date_type_name, &get_datatype_info_c::safedate_type_name, &get_datatype_info_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
210 { &search_constant_type_c::tod_type_name, &search_constant_type_c::safetime_type_name, &search_constant_type_c::tod_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
210 { &get_datatype_info_c::tod_type_name, &get_datatype_info_c::safetime_type_name, &get_datatype_info_c::tod_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
211 { &search_constant_type_c::tod_type_name, &search_constant_type_c::safetod_type_name, &search_constant_type_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
211 { &get_datatype_info_c::tod_type_name, &get_datatype_info_c::safetod_type_name, &get_datatype_info_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
212 { &search_constant_type_c::dt_type_name, &search_constant_type_c::safetime_type_name, &search_constant_type_c::dt_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
212 { &get_datatype_info_c::dt_type_name, &get_datatype_info_c::safetime_type_name, &get_datatype_info_c::dt_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
213 { &search_constant_type_c::dt_type_name, &search_constant_type_c::safedt_type_name, &search_constant_type_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
213 { &get_datatype_info_c::dt_type_name, &get_datatype_info_c::safedt_type_name, &get_datatype_info_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
214 |
214 |
215 /*************************************/ |
215 /*************************************/ |
216 /* SAFE version on left and right... */ |
216 /* SAFE version on left and right... */ |
217 /*************************************/ |
217 /*************************************/ |
218 { &search_constant_type_c::safetime_type_name, &search_constant_type_c::safetime_type_name, &search_constant_type_c::safetime_type_name, widen_entry::ok }, |
218 { &get_datatype_info_c::safetime_type_name, &get_datatype_info_c::safetime_type_name, &get_datatype_info_c::safetime_type_name, widen_entry::ok }, |
219 { &search_constant_type_c::safedate_type_name, &search_constant_type_c::safedate_type_name, &search_constant_type_c::safetime_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
219 { &get_datatype_info_c::safedate_type_name, &get_datatype_info_c::safedate_type_name, &get_datatype_info_c::safetime_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
220 { &search_constant_type_c::safetod_type_name, &search_constant_type_c::safetime_type_name, &search_constant_type_c::safetod_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
220 { &get_datatype_info_c::safetod_type_name, &get_datatype_info_c::safetime_type_name, &get_datatype_info_c::safetod_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
221 { &search_constant_type_c::safetod_type_name, &search_constant_type_c::safetod_type_name, &search_constant_type_c::safetime_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
221 { &get_datatype_info_c::safetod_type_name, &get_datatype_info_c::safetod_type_name, &get_datatype_info_c::safetime_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
222 { &search_constant_type_c::safedt_type_name, &search_constant_type_c::safetime_type_name, &search_constant_type_c::safedt_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
222 { &get_datatype_info_c::safedt_type_name, &get_datatype_info_c::safetime_type_name, &get_datatype_info_c::safedt_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
223 { &search_constant_type_c::safedt_type_name, &search_constant_type_c::safedt_type_name, &search_constant_type_c::safetime_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
223 { &get_datatype_info_c::safedt_type_name, &get_datatype_info_c::safedt_type_name, &get_datatype_info_c::safetime_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
224 |
224 |
225 { NULL, NULL, NULL, widen_entry::ok }, |
225 { NULL, NULL, NULL, widen_entry::ok }, |
226 }; |
226 }; |
227 |
227 |
228 |
228 |
231 |
231 |
232 |
232 |
233 |
233 |
234 const struct widen_entry widen_MUL_table[] = { |
234 const struct widen_entry widen_MUL_table[] = { |
235 #define __mul(TYPE) \ |
235 #define __mul(TYPE) \ |
236 { &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, widen_entry::ok }, \ |
236 { &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, widen_entry::ok }, \ |
237 { &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, widen_entry::ok }, \ |
237 { &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, widen_entry::ok }, \ |
238 { &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, widen_entry::ok }, \ |
238 { &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, widen_entry::ok }, \ |
239 { &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::safe##TYPE##_type_name, widen_entry::ok }, |
239 { &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::safe##TYPE##_type_name, widen_entry::ok }, |
240 __ANY_NUM(__mul) |
240 __ANY_NUM(__mul) |
241 #undef __mul |
241 #undef __mul |
242 |
242 |
243 /*******************************************/ |
243 /*******************************************/ |
244 /*******************************************/ |
244 /*******************************************/ |
245 /*** Operations with TIME, DT and TOD... ***/ |
245 /*** Operations with TIME, DT and TOD... ***/ |
246 /*******************************************/ |
246 /*******************************************/ |
247 /*******************************************/ |
247 /*******************************************/ |
248 #define __multime(TYPE) \ |
248 #define __multime(TYPE) \ |
249 { &search_constant_type_c::time_type_name, &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, \ |
249 { &get_datatype_info_c::time_type_name, &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, \ |
250 { &search_constant_type_c::safetime_type_name, &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, \ |
250 { &get_datatype_info_c::safetime_type_name, &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, \ |
251 { &search_constant_type_c::time_type_name, &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, \ |
251 { &get_datatype_info_c::time_type_name, &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, \ |
252 { &search_constant_type_c::safetime_type_name, &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::safetime_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, \ |
252 { &get_datatype_info_c::safetime_type_name, &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::safetime_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, \ |
253 /* NOTE: the standard des not explicitly support the following semantics. However, since 'multiplication' is supposed to be commutative, we add it anyway... */ \ |
253 /* NOTE: the standard des not explicitly support the following semantics. However, since 'multiplication' is supposed to be commutative, we add it anyway... */ \ |
254 { &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::time_type_name, &search_constant_type_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, \ |
254 { &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::time_type_name, &get_datatype_info_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, \ |
255 { &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::time_type_name, &search_constant_type_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, \ |
255 { &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::time_type_name, &get_datatype_info_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, \ |
256 { &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::safetime_type_name, &search_constant_type_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, \ |
256 { &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::safetime_type_name, &get_datatype_info_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, \ |
257 { &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::safetime_type_name, &search_constant_type_c::safetime_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
257 { &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::safetime_type_name, &get_datatype_info_c::safetime_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
258 __ANY_NUM(__multime) |
258 __ANY_NUM(__multime) |
259 #undef __multime |
259 #undef __multime |
260 |
260 |
261 { NULL, NULL, NULL, widen_entry::ok }, |
261 { NULL, NULL, NULL, widen_entry::ok }, |
262 }; |
262 }; |
265 |
265 |
266 |
266 |
267 |
267 |
268 const struct widen_entry widen_DIV_table[] = { |
268 const struct widen_entry widen_DIV_table[] = { |
269 #define __div(TYPE) \ |
269 #define __div(TYPE) \ |
270 { &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, widen_entry::ok }, \ |
270 { &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, widen_entry::ok }, \ |
271 { &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, widen_entry::ok }, \ |
271 { &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, widen_entry::ok }, \ |
272 { &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, widen_entry::ok }, \ |
272 { &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, widen_entry::ok }, \ |
273 { &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::safe##TYPE##_type_name, widen_entry::ok }, |
273 { &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::safe##TYPE##_type_name, widen_entry::ok }, |
274 __ANY_NUM(__div) |
274 __ANY_NUM(__div) |
275 #undef __div |
275 #undef __div |
276 |
276 |
277 /*******************************************/ |
277 /*******************************************/ |
278 /*******************************************/ |
278 /*******************************************/ |
279 /*** Operations with TIME, DT and TOD... ***/ |
279 /*** Operations with TIME, DT and TOD... ***/ |
280 /*******************************************/ |
280 /*******************************************/ |
281 /*******************************************/ |
281 /*******************************************/ |
282 #define __divtime(TYPE) \ |
282 #define __divtime(TYPE) \ |
283 { &search_constant_type_c::time_type_name, &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, \ |
283 { &get_datatype_info_c::time_type_name, &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, \ |
284 { &search_constant_type_c::safetime_type_name, &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, \ |
284 { &get_datatype_info_c::safetime_type_name, &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, \ |
285 { &search_constant_type_c::time_type_name, &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, \ |
285 { &get_datatype_info_c::time_type_name, &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::time_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, \ |
286 { &search_constant_type_c::safetime_type_name, &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::safetime_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
286 { &get_datatype_info_c::safetime_type_name, &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::safetime_type_name, ANYTIME_OPER_DEPRECATION_STATUS }, |
287 __ANY_NUM(__divtime) |
287 __ANY_NUM(__divtime) |
288 #undef __divtime |
288 #undef __divtime |
289 |
289 |
290 { NULL, NULL, NULL, widen_entry::ok }, |
290 { NULL, NULL, NULL, widen_entry::ok }, |
291 }; |
291 }; |
333 /**************************************************************/ |
333 /**************************************************************/ |
334 /**************************************************************/ |
334 /**************************************************************/ |
335 /* table used by AND and ANDN operators, and and_expression */ |
335 /* table used by AND and ANDN operators, and and_expression */ |
336 const struct widen_entry widen_AND_table[] = { |
336 const struct widen_entry widen_AND_table[] = { |
337 #define __and(TYPE) \ |
337 #define __and(TYPE) \ |
338 { &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, widen_entry::ok }, \ |
338 { &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, widen_entry::ok }, \ |
339 { &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, widen_entry::ok }, \ |
339 { &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, widen_entry::ok }, \ |
340 { &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, widen_entry::ok }, \ |
340 { &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, widen_entry::ok }, \ |
341 { &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::safe##TYPE##_type_name, widen_entry::ok }, |
341 { &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::safe##TYPE##_type_name, widen_entry::ok }, |
342 __ANY_BIT(__and) |
342 __ANY_BIT(__and) |
343 #undef __and |
343 #undef __and |
344 |
344 |
345 { NULL, NULL, NULL, widen_entry::ok }, |
345 { NULL, NULL, NULL, widen_entry::ok }, |
346 }; |
346 }; |
347 |
347 |
348 /* table used by OR and ORN operators, and or_expression */ |
348 /* table used by OR and ORN operators, and or_expression */ |
349 const struct widen_entry widen_OR_table[] = { |
349 const struct widen_entry widen_OR_table[] = { |
350 #define __or(TYPE) \ |
350 #define __or(TYPE) \ |
351 { &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, widen_entry::ok }, \ |
351 { &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, widen_entry::ok }, \ |
352 { &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, widen_entry::ok }, \ |
352 { &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, widen_entry::ok }, \ |
353 { &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, widen_entry::ok }, \ |
353 { &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, widen_entry::ok }, \ |
354 { &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::safe##TYPE##_type_name, widen_entry::ok }, |
354 { &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::safe##TYPE##_type_name, widen_entry::ok }, |
355 __ANY_BIT(__or) |
355 __ANY_BIT(__or) |
356 #undef __or |
356 #undef __or |
357 |
357 |
358 { NULL, NULL, NULL, widen_entry::ok }, |
358 { NULL, NULL, NULL, widen_entry::ok }, |
359 }; |
359 }; |
360 |
360 |
361 |
361 |
362 /* table used by XOR and XORN operators, and xor_expression */ |
362 /* table used by XOR and XORN operators, and xor_expression */ |
363 const struct widen_entry widen_XOR_table[] = { |
363 const struct widen_entry widen_XOR_table[] = { |
364 #define __xor(TYPE) \ |
364 #define __xor(TYPE) \ |
365 { &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, widen_entry::ok }, \ |
365 { &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, widen_entry::ok }, \ |
366 { &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, widen_entry::ok }, \ |
366 { &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, widen_entry::ok }, \ |
367 { &search_constant_type_c::TYPE##_type_name, &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::TYPE##_type_name, widen_entry::ok }, \ |
367 { &get_datatype_info_c::TYPE##_type_name, &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::TYPE##_type_name, widen_entry::ok }, \ |
368 { &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::safe##TYPE##_type_name, &search_constant_type_c::safe##TYPE##_type_name, widen_entry::ok }, |
368 { &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::safe##TYPE##_type_name, &get_datatype_info_c::safe##TYPE##_type_name, widen_entry::ok }, |
369 __ANY_BIT(__xor) |
369 __ANY_BIT(__xor) |
370 #undef __xor |
370 #undef __xor |
371 |
371 |
372 { NULL, NULL, NULL, widen_entry::ok }, |
372 { NULL, NULL, NULL, widen_entry::ok }, |
373 }; |
373 }; |