495
495
void replace_append_mem(string& ds, const char *val, int len);
496
496
void replace_append(string *ds, const char *val);
497
void replace_append_uint(string *ds, uint32_t val);
497
void replace_append_uint(string& ds, uint32_t val);
498
498
void append_sorted(string& ds, const string& ds_input);
500
500
void handle_error(st_command*,
822
static void close_files()
824
for (; cur_file >= file_stack.data(); cur_file--)
826
if (cur_file->file && cur_file->file != stdin)
827
fclose(cur_file->file);
828
free(const_cast<char*>(cur_file->file_name));
829
cur_file->file_name= 0;
833
static void free_used_memory()
836
BOOST_FOREACH(var_hash_t::reference i, var_hash)
838
free(i.second->str_val);
839
free(i.second->env_s);
840
if (i.second->alloced)
844
BOOST_FOREACH(st_command* i, q_lines)
846
for (size_t i= 0; i < var_reg.size(); i++)
848
if (var_reg[i].alloced_len)
849
free(var_reg[i].str_val);
856
821
static void cleanup_and_exit(int exit_code)
858
if (0) // Olaf: Freeing resources is unnecessary when exiting
866
825
switch (exit_code)
1012
971
ds_warning_messages.append("Warning detected ");
1013
972
if (cur_file && cur_file != file_stack.data())
1015
len= snprintf(buff, sizeof(buff), "in included file %s ",
1016
cur_file->file_name);
974
len= snprintf(buff, sizeof(buff), "in included file %s ", cur_file->file_name);
1017
975
ds_warning_messages.append(buff, len);
1019
len= snprintf(buff, sizeof(buff), "at line %d: ",
977
len= snprintf(buff, sizeof(buff), "at line %d: ", start_lineno);
1021
978
ds_warning_messages.append(buff, len);
2897
2854
static void do_save_master_pos()
2899
drizzle::connection_c& con= *cur_con;
2900
const char *query= "show master status";
2902
2856
drizzle::result_c res;
2903
dt_query(con, res, query);
2857
dt_query(*cur_con, res, "show master status");
2904
2858
drizzle_row_t row= res.row_next();
2906
2860
die("empty result in show master status");
3443
3397
replace_append(&ds_res, db);
3444
3398
ds_res.append(",");
3445
replace_append_uint(&ds_res, port);
3399
replace_append_uint(ds_res, port);
3446
3400
ds_res.append(",");
3448
3402
replace_append(&ds_res, sock);
4364
4318
Append metadata for fields to output
4367
static void append_metadata(string *ds, drizzle::result_c& res)
4321
static void append_metadata(string& ds, drizzle::result_c& res)
4369
ds->append("Catalog\tDatabase\tTable\tTable_alias\tColumn\t"
4370
"Column_alias\tType\tLength\tMax length\tIs_null\t"
4371
"Flags\tDecimals\tCharsetnr\n");
4323
ds += "Catalog\tDatabase\tTable\tTable_alias\tColumn\tColumn_alias\tType\tLength\tMax length\tIs_null\tFlags\tDecimals\tCharsetnr\n";
4373
4324
res.column_seek(0);
4374
4325
while (drizzle_column_st* column= res.column_next())
4376
ds->append(drizzle_column_catalog(column), strlen(drizzle_column_catalog(column)));
4378
ds->append(drizzle_column_db(column), strlen(drizzle_column_db(column)));
4380
ds->append(drizzle_column_orig_table(column), strlen(drizzle_column_orig_table(column)));
4382
ds->append(drizzle_column_table(column), strlen(drizzle_column_table(column)));
4384
ds->append(drizzle_column_orig_name(column), strlen(drizzle_column_orig_name(column)));
4386
ds->append(drizzle_column_name(column), strlen(drizzle_column_name(column)));
4327
ds += drizzle_column_catalog(column);
4329
ds += drizzle_column_db(column);
4331
ds += drizzle_column_orig_table(column);
4333
ds += drizzle_column_table(column);
4335
ds += drizzle_column_orig_name(column);
4337
ds += drizzle_column_name(column);
4388
4339
replace_append_uint(ds, drizzle_column_type_drizzle(column));
4390
4341
replace_append_uint(ds, drizzle_column_size(column));
4392
4343
replace_append_uint(ds, drizzle_column_type(column) == DRIZZLE_COLUMN_TYPE_TINY ? 1 : drizzle_column_max_size(column));
4394
ds->append((drizzle_column_flags(column) & DRIZZLE_COLUMN_FLAGS_NOT_NULL) ? "N" : "Y", 1);
4345
ds.append((drizzle_column_flags(column) & DRIZZLE_COLUMN_FLAGS_NOT_NULL) ? "N" : "Y", 1);
4396
4347
replace_append_uint(ds, drizzle_column_flags(column));
4398
4349
replace_append_uint(ds, drizzle_column_decimals(column));
4400
4351
replace_append_uint(ds, drizzle_column_charset(column));
4551
4502
if (res.column_count())
4553
4504
if (display_metadata)
4554
append_metadata(ds, res);
4505
append_metadata(*ds, res);
4556
4507
if (!display_result_vertically)
4557
4508
append_table_headings(*ds, res);
6780
6731
/* Append uint32_t to ds, with optional replace */
6781
void replace_append_uint(string *ds, uint32_t val)
6732
void replace_append_uint(string& ds, uint32_t val)
6783
6734
ostringstream buff;
6785
replace_append_mem(*ds, buff.str().c_str(), buff.str().size());
6736
replace_append_mem(ds, buff.str().c_str(), buff.str().size());