MCPcopy Create free account
hub / github.com/Meituan-Dianping/SQLAdvisor / create_header_files

Function create_header_files

extra/comp_err.c:250–316  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

248
249
250static int create_header_files(struct errors *error_head)
251{
252 uint er_last= 0;
253 FILE *er_definef, *sql_statef, *er_namef;
254 struct errors *tmp_error;
255 struct message *er_msg;
256 const char *er_text;
257
258 DBUG_ENTER("create_header_files");
259
260 if (!(er_definef= my_fopen(HEADERFILE, O_WRONLY, MYF(MY_WME))))
261 {
262 DBUG_RETURN(1);
263 }
264 if (!(sql_statef= my_fopen(STATEFILE, O_WRONLY, MYF(MY_WME))))
265 {
266 my_fclose(er_definef, MYF(0));
267 DBUG_RETURN(1);
268 }
269 if (!(er_namef= my_fopen(NAMEFILE, O_WRONLY, MYF(MY_WME))))
270 {
271 my_fclose(er_definef, MYF(0));
272 my_fclose(sql_statef, MYF(0));
273 DBUG_RETURN(1);
274 }
275
276 fprintf(er_definef, "/* Autogenerated file, please don't edit */\n\n");
277 fprintf(sql_statef, "/* Autogenerated file, please don't edit */\n\n");
278 fprintf(er_namef, "/* Autogenerated file, please don't edit */\n\n");
279
280 fprintf(er_definef, "#define ER_ERROR_FIRST %d\n", error_head->d_code);
281
282 for (tmp_error= error_head; tmp_error; tmp_error= tmp_error->next_error)
283 {
284 if (tmp_error->is_padding)
285 {
286 er_last= tmp_error->d_code;
287 continue;
288 }
289 /*
290 generating mysqld_error.h
291 fprintf() will automatically add \r on windows
292 */
293 fprintf(er_definef, "#define %s %d\n", tmp_error->er_name,
294 tmp_error->d_code);
295 er_last= tmp_error->d_code;
296
297 /* generating sql_state.h file */
298 if (tmp_error->sql_code1[0] || tmp_error->sql_code2[0])
299 fprintf(sql_statef,
300 "{ %-40s,\"%s\", \"%s\" },\n", tmp_error->er_name,
301 tmp_error->sql_code1, tmp_error->sql_code2);
302 /*generating er_name file */
303 er_msg= find_message(tmp_error, default_language, 0);
304 er_text = (er_msg ? er_msg->text : "");
305 fprintf(er_namef, "{ \"%s\", %d, \"", tmp_error->er_name,
306 tmp_error->d_code);
307 print_escaped_string(er_namef, er_text);

Callers 1

mainFunction · 0.85

Calls 4

my_fopenFunction · 0.85
my_fcloseFunction · 0.85
find_messageFunction · 0.85
print_escaped_stringFunction · 0.85

Tested by

no test coverage detected