~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/log_event.cc

MergedĀ fromĀ Toru.

Show diffs side-by-side

added added

removed removed

Lines of Context:
307
307
  buf= int10_to_str(event_server_id, buf, 10);
308
308
  *buf++ = '-';
309
309
  res= int10_to_str(file_id, buf, 10);
310
 
  my_stpcpy(res, ext);                             // Add extension last
 
310
  strcpy(res, ext);                             // Add extension last
311
311
  return res;                                   // Pointer to extension
312
312
}
313
313
 
395
395
    to= octet2hex(to, from, len);
396
396
  }
397
397
  else
398
 
    to= my_stpcpy(to, "\"\"");
 
398
    to= strcpy(to, "\"\"")+2;
399
399
  return to;                               // pointer to end 0 of 'to'
400
400
}
401
401
 
1076
1076
  if (!(flags & LOG_EVENT_SUPPRESS_USE_F)
1077
1077
      && db && db_len)
1078
1078
  {
1079
 
    pos= my_stpcpy(buf, "use `");
 
1079
    pos= strcpy(buf, "use `")+5;
1080
1080
    memcpy(pos, db, db_len);
1081
 
    pos= my_stpcpy(pos+db_len, "`; ");
 
1081
    pos= strcpy(pos+db_len, "`; ")+3;
1082
1082
  }
1083
1083
  if (query && q_len)
1084
1084
  {
1764
1764
void Start_log_event_v3::pack_info(Protocol *protocol)
1765
1765
{
1766
1766
  char buf[12 + ST_SERVER_VER_LEN + 14 + 22], *pos;
1767
 
  pos= my_stpcpy(buf, "Server ver: ");
1768
 
  pos= my_stpcpy(pos, server_version);
1769
 
  pos= my_stpcpy(pos, ", Binlog ver: ");
 
1767
  pos= strcpy(buf, "Server ver: ")+12;
 
1768
  pos= strcpy(pos, server_version)+strlen(server_version);
 
1769
  pos= strcpy(pos, ", Binlog ver: ")+14;
1770
1770
  pos= int10_to_str(binlog_version, pos, 10);
1771
1771
  protocol->store(buf, (uint) (pos-buf), &my_charset_bin);
1772
1772
}
2253
2253
 
2254
2254
  if (need_db && db && db_len)
2255
2255
  {
2256
 
    pos= my_stpcpy(pos, "use `");
 
2256
    pos= strcpy(pos, "use `")+5;
2257
2257
    memcpy(pos, db, db_len);
2258
 
    pos= my_stpcpy(pos+db_len, "`; ");
 
2258
    pos= strcpy(pos+db_len, "`; ")+3;
2259
2259
  }
2260
2260
 
2261
 
  pos= my_stpcpy(pos, "LOAD DATA ");
 
2261
  pos= strcpy(pos, "LOAD DATA ")+10;
2262
2262
 
2263
2263
  if (fn_start)
2264
2264
    *fn_start= pos;
2265
2265
 
2266
2266
  if (check_fname_outside_temp_buf())
2267
 
    pos= my_stpcpy(pos, "LOCAL ");
2268
 
  pos= my_stpcpy(pos, "INFILE '");
 
2267
    pos= strcpy(pos, "LOCAL ")+6;
 
2268
  pos= strcpy(pos, "INFILE '")+8;
2269
2269
  memcpy(pos, fname, fname_len);
2270
 
  pos= my_stpcpy(pos+fname_len, "' ");
 
2270
  pos= strcpy(pos+fname_len, "' ")+2;
2271
2271
 
2272
2272
  if (sql_ex.opt_flags & REPLACE_FLAG)
2273
 
    pos= my_stpcpy(pos, " REPLACE ");
 
2273
    pos= strcpy(pos, " REPLACE ")+9;
2274
2274
  else if (sql_ex.opt_flags & IGNORE_FLAG)
2275
 
    pos= my_stpcpy(pos, " IGNORE ");
 
2275
    pos= strcpy(pos, " IGNORE ")+8;
2276
2276
 
2277
 
  pos= my_stpcpy(pos ,"INTO");
 
2277
  pos= strcpy(pos ,"INTO")+4;
2278
2278
 
2279
2279
  if (fn_end)
2280
2280
    *fn_end= pos;
2281
2281
 
2282
 
  pos= my_stpcpy(pos ," Table `");
 
2282
  pos= strcpy(pos ," Table `")+8;
2283
2283
  memcpy(pos, table_name, table_name_len);
2284
2284
  pos+= table_name_len;
2285
2285
 
2286
2286
  /* We have to create all optinal fields as the default is not empty */
2287
 
  pos= my_stpcpy(pos, "` FIELDS TERMINATED BY ");
 
2287
  pos= strcpy(pos, "` FIELDS TERMINATED BY ")+23;
2288
2288
  pos= pretty_print_str(pos, sql_ex.field_term, sql_ex.field_term_len);
2289
2289
  if (sql_ex.opt_flags & OPT_ENCLOSED_FLAG)
2290
 
    pos= my_stpcpy(pos, " OPTIONALLY ");
2291
 
  pos= my_stpcpy(pos, " ENCLOSED BY ");
 
2290
    pos= strcpy(pos, " OPTIONALLY ")+12;
 
2291
  pos= strcpy(pos, " ENCLOSED BY ")+13;
2292
2292
  pos= pretty_print_str(pos, sql_ex.enclosed, sql_ex.enclosed_len);
2293
2293
 
2294
 
  pos= my_stpcpy(pos, " ESCAPED BY ");
 
2294
  pos= strcpy(pos, " ESCAPED BY ")+12;
2295
2295
  pos= pretty_print_str(pos, sql_ex.escaped, sql_ex.escaped_len);
2296
2296
 
2297
 
  pos= my_stpcpy(pos, " LINES TERMINATED BY ");
 
2297
  pos= strcpy(pos, " LINES TERMINATED BY ")+21;
2298
2298
  pos= pretty_print_str(pos, sql_ex.line_term, sql_ex.line_term_len);
2299
2299
  if (sql_ex.line_start_len)
2300
2300
  {
2301
 
    pos= my_stpcpy(pos, " STARTING BY ");
 
2301
    pos= strcpy(pos, " STARTING BY ")+13;
2302
2302
    pos= pretty_print_str(pos, sql_ex.line_start, sql_ex.line_start_len);
2303
2303
  }
2304
2304
 
2305
2305
  if ((long) skip_lines > 0)
2306
2306
  {
2307
 
    pos= my_stpcpy(pos, " IGNORE ");
 
2307
    pos= strcpy(pos, " IGNORE ")+8;
2308
2308
    pos= int64_t10_to_str((int64_t) skip_lines, pos, 10);
2309
 
    pos= my_stpcpy(pos," LINES ");    
 
2309
    pos= strcpy(pos," LINES ")+7;    
2310
2310
  }
2311
2311
 
2312
2312
  if (num_fields)
2313
2313
  {
2314
2314
    uint32_t i;
2315
2315
    const char *field= fields;
2316
 
    pos= my_stpcpy(pos, " (");
 
2316
    pos= strcpy(pos, " (")+2;
2317
2317
    for (i = 0; i < num_fields; i++)
2318
2318
    {
2319
2319
      if (i)
3007
3007
void Xid_log_event::pack_info(Protocol *protocol)
3008
3008
{
3009
3009
  char buf[128], *pos;
3010
 
  pos= my_stpcpy(buf, "COMMIT /* xid=");
 
3010
  pos= strcpy(buf, "COMMIT /* xid=")+14;
3011
3011
  pos= int64_t10_to_str(xid, pos, 10);
3012
 
  pos= my_stpcpy(pos, " */");
 
3012
  pos= strcpy(pos, " */")+3;
3013
3013
  protocol->store(buf, (uint) (pos-buf), &my_charset_bin);
3014
3014
}
3015
3015
 
3062
3062
void Slave_log_event::pack_info(Protocol *protocol)
3063
3063
{
3064
3064
  char buf[256+HOSTNAME_LENGTH], *pos;
3065
 
  pos= my_stpcpy(buf, "host=");
 
3065
  pos= strcpy(buf, "host=")+5;
3066
3066
  pos= my_stpncpy(pos, master_host.c_str(), HOSTNAME_LENGTH);
3067
 
  pos= my_stpcpy(pos, ",port=");
 
3067
  pos= strcpy(pos, ",port=")+6;
3068
3068
  pos= int10_to_str((long) master_port, pos, 10);
3069
 
  pos= my_stpcpy(pos, ",log=");
3070
 
  pos= my_stpcpy(pos, master_log.c_str());
3071
 
  pos= my_stpcpy(pos, ",pos=");
 
3069
  pos= strcpy(pos, ",log=")+5;
 
3070
  pos= strcpy(pos, master_log.c_str())+master_log.length();
 
3071
  pos= strcpy(pos, ",pos=")+5;
3072
3072
  pos= int64_t10_to_str(master_pos, pos, 10);
3073
3073
  protocol->store(buf, pos-buf, &my_charset_bin);
3074
3074
}
3311
3311
void Create_file_log_event::pack_info(Protocol *protocol)
3312
3312
{
3313
3313
  char buf[NAME_LEN*2 + 30 + 21*2], *pos;
3314
 
  pos= my_stpcpy(buf, "db=");
 
3314
  pos= strcpy(buf, "db=")+3;
3315
3315
  memcpy(pos, db, db_len);
3316
 
  pos= my_stpcpy(pos + db_len, ";table=");
 
3316
  pos= strcpy(pos + db_len, ";table=")+7;
3317
3317
  memcpy(pos, table_name, table_name_len);
3318
 
  pos= my_stpcpy(pos + table_name_len, ";file_id=");
 
3318
  pos= strcpy(pos + table_name_len, ";file_id=")+9;
3319
3319
  pos= int10_to_str((long) file_id, pos, 10);
3320
 
  pos= my_stpcpy(pos, ";block_len=");
 
3320
  pos= strcpy(pos, ";block_len=")+11;
3321
3321
  pos= int10_to_str((long) block_len, pos, 10);
3322
3322
  protocol->store(buf, (uint) (pos-buf), &my_charset_bin);
3323
3323
}
3336
3336
  int error = 1;
3337
3337
 
3338
3338
  memset(&file, 0, sizeof(file));
3339
 
  fname_buf= my_stpcpy(proc_info, "Making temp file ");
 
3339
  fname_buf= strcpy(proc_info, "Making temp file ")+17;
3340
3340
  ext= slave_load_file_stem(fname_buf, file_id, server_id, ".info");
3341
3341
  session->set_proc_info(proc_info);
3342
3342
  my_delete(fname_buf, MYF(0)); // old copy may exist already
3354
3354
  
3355
3355
  // a trick to avoid allocating another buffer
3356
3356
  fname= fname_buf;
3357
 
  fname_len= (uint) (my_stpcpy(ext, ".data") - fname);
 
3357
  fname_len= (uint) ((strcpy(ext, ".data") + 5) - fname);
3358
3358
  if (write_base(&file))
3359
3359
  {
3360
 
    my_stpcpy(ext, ".info"); // to have it right in the error message
 
3360
    strcpy(ext, ".info"); // to have it right in the error message
3361
3361
    rli->report(ERROR_LEVEL, my_errno,
3362
3362
                _("Error in Create_file event: could not write to file '%s'"),
3363
3363
                fname_buf);
3483
3483
  int fd;
3484
3484
  int error = 1;
3485
3485
 
3486
 
  fname= my_stpcpy(proc_info, "Making temp file ");
 
3486
  fname= strcpy(proc_info, "Making temp file ")+17;
3487
3487
  slave_load_file_stem(fname, file_id, server_id, ".data");
3488
3488
  session->set_proc_info(proc_info);
3489
3489
  if (get_create_or_append())
3588
3588
  char fname[FN_REFLEN+10];
3589
3589
  char *ext= slave_load_file_stem(fname, file_id, server_id, ".data");
3590
3590
  (void) my_delete(fname, MYF(MY_WME));
3591
 
  my_stpcpy(ext, ".info");
 
3591
  strcpy(ext, ".info");
3592
3592
  (void) my_delete(fname, MYF(MY_WME));
3593
3593
  return 0;
3594
3594
}
3852
3852
  pos= buf;
3853
3853
  if (db && db_len)
3854
3854
  {
3855
 
    pos= my_stpcpy(buf, "use `");
 
3855
    pos= strcpy(buf, "use `")+5;
3856
3856
    memcpy(pos, db, db_len);
3857
 
    pos= my_stpcpy(pos+db_len, "`; ");
 
3857
    pos= strcpy(pos+db_len, "`; ")+3;
3858
3858
  }
3859
3859
  if (query && q_len)
3860
3860
  {
3861
3861
    memcpy(pos, query, q_len);
3862
3862
    pos+= q_len;
3863
3863
  }
3864
 
  pos= my_stpcpy(pos, " ;file_id=");
 
3864
  pos= strcpy(pos, " ;file_id=")+10;
3865
3865
  pos= int10_to_str((long) file_id, pos, 10);
3866
3866
  protocol->store(buf, pos-buf, &my_charset_bin);
3867
3867
  free(buf);
5055
5055
  table_list->next_global= table_list->next_local= 0;
5056
5056
  table_list->table_id= m_table_id;
5057
5057
  table_list->updating= 1;
5058
 
  my_stpcpy(table_list->db, m_dbnam);
5059
 
  my_stpcpy(table_list->table_name, m_tblnam);
 
5058
  strcpy(table_list->db, m_dbnam);
 
5059
  strcpy(table_list->table_name, m_tblnam);
5060
5060
 
5061
5061
  int error= 0;
5062
5062