~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to client/drizzletest.cc

  • Committer: Mark Atwood
  • Date: 2011-06-19 18:31:57 UTC
  • mfrom: (2318.6.8 refactor12)
  • Revision ID: me@mark.atwood.name-20110619183157-jg8823cpkobu7n6d
Tags: 2011.06.20
mergeĀ lp:~olafvdspek/drizzle/refactor12

Show diffs side-by-side

added added

removed removed

Lines of Context:
494
494
 
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);
499
499
 
500
500
void handle_error(st_command*,
818
818
  }
819
819
}
820
820
 
821
 
 
822
 
static void close_files()
823
 
{
824
 
  for (; cur_file >= file_stack.data(); cur_file--)
825
 
  {
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;
830
 
  }
831
 
}
832
 
 
833
 
static void free_used_memory()
834
 
{
835
 
  close_files();
836
 
  BOOST_FOREACH(var_hash_t::reference i, var_hash)
837
 
  {
838
 
    free(i.second->str_val);
839
 
    free(i.second->env_s);
840
 
    if (i.second->alloced)
841
 
      free(i.second);
842
 
  }
843
 
  var_hash.clear();
844
 
  BOOST_FOREACH(st_command* i, q_lines)
845
 
    delete i;
846
 
  for (size_t i= 0; i < var_reg.size(); i++)
847
 
  {
848
 
    if (var_reg[i].alloced_len)
849
 
      free(var_reg[i].str_val);
850
 
  }
851
 
  free_all_replace();
852
 
  free(opt_pass);
853
 
}
854
 
 
855
 
 
856
821
static void cleanup_and_exit(int exit_code)
857
822
{
858
 
  if (0) // Olaf: Freeing resources is unnecessary when exiting
859
 
  {
860
 
    free_used_memory(); 
861
 
    internal::my_end();
862
 
  }
863
 
 
864
823
  if (!silent) 
865
824
  {
866
825
    switch (exit_code) 
1012
971
    ds_warning_messages.append("Warning detected ");
1013
972
    if (cur_file && cur_file != file_stack.data())
1014
973
    {
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);
1018
976
    }
1019
 
    len= snprintf(buff, sizeof(buff), "at line %d: ",
1020
 
                  start_lineno);
 
977
    len= snprintf(buff, sizeof(buff), "at line %d: ", start_lineno);
1021
978
    ds_warning_messages.append(buff, len);
1022
979
  }
1023
980
 
2896
2853
*/
2897
2854
static void do_save_master_pos()
2898
2855
{
2899
 
  drizzle::connection_c& con= *cur_con;
2900
 
  const char *query= "show master status";
2901
 
 
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();
2905
2859
  if (!row)
2906
2860
    die("empty result in show master status");
3442
3396
    if (db)
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(",");
3447
3401
    if (sock)
3448
3402
      replace_append(&ds_res, sock);
4364
4318
  Append metadata for fields to output
4365
4319
*/
4366
4320
 
4367
 
static void append_metadata(string *ds, drizzle::result_c& res)
 
4321
static void append_metadata(string& ds, drizzle::result_c& res)
4368
4322
{
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");
4372
 
 
 
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())
4375
4326
  {
4376
 
    ds->append(drizzle_column_catalog(column), strlen(drizzle_column_catalog(column)));
4377
 
    *ds += "\t";
4378
 
    ds->append(drizzle_column_db(column), strlen(drizzle_column_db(column)));
4379
 
    *ds += "\t";
4380
 
    ds->append(drizzle_column_orig_table(column), strlen(drizzle_column_orig_table(column)));
4381
 
    *ds += "\t";
4382
 
    ds->append(drizzle_column_table(column), strlen(drizzle_column_table(column)));
4383
 
    *ds += "\t";
4384
 
    ds->append(drizzle_column_orig_name(column), strlen(drizzle_column_orig_name(column)));
4385
 
    *ds += "\t";
4386
 
    ds->append(drizzle_column_name(column), strlen(drizzle_column_name(column)));
4387
 
    *ds += "\t";
 
4327
    ds += drizzle_column_catalog(column);
 
4328
    ds += "\t";
 
4329
    ds += drizzle_column_db(column);
 
4330
    ds += "\t";
 
4331
    ds += drizzle_column_orig_table(column);
 
4332
    ds += "\t";
 
4333
    ds += drizzle_column_table(column);
 
4334
    ds += "\t";
 
4335
    ds += drizzle_column_orig_name(column);
 
4336
    ds += "\t";
 
4337
    ds += drizzle_column_name(column);
 
4338
    ds += "\t";
4388
4339
    replace_append_uint(ds, drizzle_column_type_drizzle(column));
4389
 
    *ds += "\t";
 
4340
    ds += "\t";
4390
4341
    replace_append_uint(ds, drizzle_column_size(column));
4391
 
    *ds += "\t";
 
4342
    ds += "\t";
4392
4343
    replace_append_uint(ds, drizzle_column_type(column) == DRIZZLE_COLUMN_TYPE_TINY ? 1 : drizzle_column_max_size(column));
4393
 
    *ds += "\t";
4394
 
    ds->append((drizzle_column_flags(column) & DRIZZLE_COLUMN_FLAGS_NOT_NULL) ? "N" : "Y", 1);
4395
 
    *ds += "\t";
 
4344
    ds += "\t";
 
4345
    ds.append((drizzle_column_flags(column) & DRIZZLE_COLUMN_FLAGS_NOT_NULL) ? "N" : "Y", 1);
 
4346
    ds += "\t";
4396
4347
    replace_append_uint(ds, drizzle_column_flags(column));
4397
 
    *ds += "\t";
 
4348
    ds += "\t";
4398
4349
    replace_append_uint(ds, drizzle_column_decimals(column));
4399
 
    *ds += "\t";
 
4350
    ds += "\t";
4400
4351
    replace_append_uint(ds, drizzle_column_charset(column));
4401
 
    *ds += "\n";
 
4352
    ds += "\n";
4402
4353
  }
4403
4354
}
4404
4355
 
4551
4502
      if (res.column_count())
4552
4503
      {
4553
4504
        if (display_metadata)
4554
 
          append_metadata(ds, res);
 
4505
          append_metadata(*ds, res);
4555
4506
 
4556
4507
        if (!display_result_vertically)
4557
4508
          append_table_headings(*ds, res);
6778
6729
}
6779
6730
 
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)
6782
6733
{
6783
6734
  ostringstream buff;
6784
6735
  buff << val;
6785
 
  replace_append_mem(*ds, buff.str().c_str(), buff.str().size());
 
6736
  replace_append_mem(ds, buff.str().c_str(), buff.str().size());
6786
6737
 
6787
6738
}
6788
6739