~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to libdrizzle/libdrizzle.c

  • Committer: Jay Pipes
  • Date: 2008-07-17 17:44:14 UTC
  • mfrom: (177 drizzle)
  • mto: This revision was merged to the branch mainline in revision 182.
  • Revision ID: jay@mysql.com-20080717174414-sm1e9agb2fjw2ncz
Merged in from trunk.

Made following changes:

libdrizzle/
  client.c
  * Removed DBUG symbols entirely
  * Removed mysql_debug() calls and command line options
  libdrizzle.c
  * Removed DBUG symbols
include/my_sys.h
  * Removed MY_DONT_FREE_DBUG symbol (used in my_end())
mysys/my_init.h
  * Removed MY_DONT_FREE_DBUG symbol (used in my_end())

Show diffs side-by-side

added added

removed removed

Lines of Context:
144
144
      if ((env = getenv("MYSQL_UNIX_PORT")))
145
145
        mysql_unix_port = env;
146
146
    }
147
 
    mysql_debug(NullS);
148
147
#if defined(SIGPIPE)
149
148
    (void) signal(SIGPIPE, SIG_IGN);
150
149
#endif
178
177
  /* If library called my_init(), free memory allocated by it */
179
178
  if (!org_my_init_done)
180
179
  {
181
 
    my_end(MY_DONT_FREE_DBUG);
182
 
    /* Remove TRACING, if enabled by mysql_debug() */
183
 
    DBUG_POP();
 
180
    my_end(0);
184
181
  }
185
182
  else
186
183
  {
241
238
  }
242
239
}
243
240
 
244
 
 
245
 
/**************************************************************************
246
 
  Init debugging if MYSQL_DEBUG environment variable is found
247
 
**************************************************************************/
248
 
 
249
 
void STDCALL
250
 
mysql_debug(const char *debug __attribute__((unused)))
251
 
{
252
 
#ifndef DBUG_OFF
253
 
  char  *env;
254
 
  if (debug)
255
 
  {
256
 
    DBUG_PUSH(debug);
257
 
  }
258
 
  else if ((env = getenv("MYSQL_DEBUG")))
259
 
  {
260
 
    DBUG_PUSH(env);
261
 
#if !defined(_WINVER) && !defined(WINVER)
262
 
    puts("\n-------------------------------------------------------");
263
 
    puts("MYSQL_DEBUG found. libmysql started with the following:");
264
 
    puts(env);
265
 
    puts("-------------------------------------------------------\n");
266
 
#else
267
 
    {
268
 
      char buff[80];
269
 
      buff[sizeof(buff)-1]= 0;
270
 
      strxnmov(buff,sizeof(buff)-1,"libmysql: ", env, NullS);
271
 
      MessageBox((HWND) 0,"Debugging variable MYSQL_DEBUG used",buff,MB_OK);
272
 
    }
273
 
#endif
274
 
  }
275
 
#endif
276
 
}
277
 
 
278
 
 
279
241
/**************************************************************************
280
242
  Ignore SIGPIPE handler
281
243
   ARGSUSED
284
246
sig_handler
285
247
my_pipe_sig_handler(int sig __attribute__((unused)))
286
248
{
287
 
  DBUG_PRINT("info",("Hit by signal %d",sig));
288
249
#ifdef DONT_REMEMBER_SIGNAL
289
250
  (void) signal(SIGPIPE, my_pipe_sig_handler);
290
251
#endif
304
265
  MYSQL *res;
305
266
  mysql=mysql_init(mysql);                      /* Make it thread safe */
306
267
  {
307
 
    DBUG_ENTER("mysql_connect");
308
268
    if (!(res=mysql_real_connect(mysql,host,user,passwd,NullS,0,NullS,0)))
309
269
    {
310
270
      if (mysql->free_me)
311
271
        my_free((uchar*) mysql,MYF(0));
312
272
    }
313
273
    mysql->reconnect= 1;
314
 
    DBUG_RETURN(res);
 
274
    return(res);
315
275
  }
316
276
}
317
277
#endif
343
303
  int rc;
344
304
  CHARSET_INFO *saved_cs= mysql->charset;
345
305
 
346
 
  DBUG_ENTER("mysql_change_user");
347
 
 
348
306
  /* Get the connection-default character set. */
349
307
 
350
308
  if (mysql_init_character_set(mysql))
351
309
  {
352
310
    mysql->charset= saved_cs;
353
 
    DBUG_RETURN(true);
 
311
    return(true);
354
312
  }
355
313
 
356
314
  /* Use an empty string instead of NULL. */
407
365
    mysql->charset= saved_cs;
408
366
  }
409
367
 
410
 
  DBUG_RETURN(rc);
 
368
  return(rc);
411
369
}
412
370
 
413
371
#if defined(HAVE_GETPWUID) && defined(NO_GETPWUID_DECL)
417
375
 
418
376
void read_user_name(char *name)
419
377
{
420
 
  DBUG_ENTER("read_user_name");
421
378
  if (geteuid() == 0)
422
379
    (void) strmov(name,"root");         /* allow use of surun */
423
380
  else
440
397
    strmov(name,"UNKNOWN_USER");
441
398
#endif
442
399
  }
443
 
  DBUG_VOID_RETURN;
 
400
  return;
444
401
}
445
402
 
446
403
my_bool handle_local_infile(MYSQL *mysql, const char *net_filename)
452
409
  void *li_ptr;          /* pass state to local_infile functions */
453
410
  char *buf;            /* buffer to be filled by local_infile_read */
454
411
  struct st_mysql_options *options= &mysql->options;
455
 
  DBUG_ENTER("handle_local_infile");
456
412
 
457
413
  /* check that we've got valid callback functions */
458
414
  if (!(options->local_infile_init &&
468
424
  if (!(buf=my_malloc(packet_length, MYF(0))))
469
425
  {
470
426
    set_mysql_error(mysql, CR_OUT_OF_MEMORY, unknown_sqlstate);
471
 
    DBUG_RETURN(1);
 
427
    return(1);
472
428
  }
473
429
 
474
430
  /* initialize local infile (open file, usually) */
492
448
  {
493
449
    if (my_net_write(net, (uchar*) buf, readcount))
494
450
    {
495
 
      DBUG_PRINT("error",
496
 
                 ("Lost connection to MySQL server during LOAD DATA of local file"));
497
 
      set_mysql_error(mysql, CR_SERVER_LOST, unknown_sqlstate);
498
451
      goto err;
499
452
    }
500
453
  }
521
474
  /* free up memory allocated with _init, usually */
522
475
  (*options->local_infile_end)(li_ptr);
523
476
  my_free(buf, MYF(0));
524
 
  DBUG_RETURN(result);
 
477
  return(result);
525
478
}
526
479
 
527
480
 
724
677
mysql_data_seek(MYSQL_RES *result, uint64_t row)
725
678
{
726
679
  MYSQL_ROWS    *tmp=0;
727
 
  DBUG_PRINT("info",("mysql_data_seek(%ld)",(long) row));
728
680
  if (result->data)
729
681
    for (tmp=result->data->data; row-- && tmp ; tmp = tmp->next) ;
730
682
  result->current_row=0;
765
717
mysql_list_dbs(MYSQL *mysql, const char *wild)
766
718
{
767
719
  char buff[255];
768
 
  DBUG_ENTER("mysql_list_dbs");
769
720
 
770
721
  append_wild(strmov(buff,"show databases"),buff+sizeof(buff),wild);
771
722
  if (mysql_query(mysql,buff))
772
 
    DBUG_RETURN(0);
773
 
  DBUG_RETURN (mysql_store_result(mysql));
 
723
    return(0);
 
724
  return (mysql_store_result(mysql));
774
725
}
775
726
 
776
727
 
783
734
mysql_list_tables(MYSQL *mysql, const char *wild)
784
735
{
785
736
  char buff[255];
786
 
  DBUG_ENTER("mysql_list_tables");
787
737
 
788
738
  append_wild(strmov(buff,"show tables"),buff+sizeof(buff),wild);
789
739
  if (mysql_query(mysql,buff))
790
 
    DBUG_RETURN(0);
791
 
  DBUG_RETURN (mysql_store_result(mysql));
 
740
    return(0);
 
741
  return (mysql_store_result(mysql));
792
742
}
793
743
 
794
744
 
818
768
  MYSQL_RES   *result;
819
769
  MYSQL_FIELD *fields;
820
770
  char       buff[257],*end;
821
 
  DBUG_ENTER("mysql_list_fields");
822
 
  DBUG_PRINT("enter",("table: '%s'  wild: '%s'",table,wild ? wild : ""));
823
771
 
824
772
  end=strmake(strmake(buff, table,128)+1,wild ? wild : "",128);
825
773
  free_old_query(mysql);
826
774
  if (simple_command(mysql, COM_FIELD_LIST, (uchar*) buff,
827
775
                     (ulong) (end-buff), 1) ||
828
776
      !(fields= (*mysql->methods->list_fields)(mysql)))
829
 
    DBUG_RETURN(NULL);
 
777
    return(NULL);
830
778
 
831
779
  if (!(result = (MYSQL_RES *) my_malloc(sizeof(MYSQL_RES),
832
780
                                         MYF(MY_WME | MY_ZEROFILL))))
833
 
    DBUG_RETURN(NULL);
 
781
    return(NULL);
834
782
 
835
783
  result->methods= mysql->methods;
836
784
  result->field_alloc=mysql->field_alloc;
838
786
  result->field_count = mysql->field_count;
839
787
  result->fields= fields;
840
788
  result->eof=1;
841
 
  DBUG_RETURN(result);
 
789
  return(result);
842
790
}
843
791
 
844
792
/* List all running processes (threads) in server */
849
797
  MYSQL_DATA *fields;
850
798
  uint field_count;
851
799
  uchar *pos;
852
 
  DBUG_ENTER("mysql_list_processes");
853
800
 
854
801
  if (simple_command(mysql,COM_PROCESS_INFO,0,0,0))
855
 
    DBUG_RETURN(0);
 
802
    return(0);
856
803
  free_old_query(mysql);
857
804
  pos=(uchar*) mysql->net.read_pos;
858
805
  field_count=(uint) net_field_length(&pos);
859
806
  if (!(fields = (*mysql->methods->read_rows)(mysql,(MYSQL_FIELD*) 0,
860
807
                                              protocol_41(mysql) ? 7 : 5)))
861
 
    DBUG_RETURN(NULL);
 
808
    return(NULL);
862
809
  if (!(mysql->fields=unpack_fields(fields,&mysql->field_alloc,field_count,0,
863
810
                                    mysql->server_capabilities)))
864
 
    DBUG_RETURN(0);
 
811
    return(0);
865
812
  mysql->status=MYSQL_STATUS_GET_RESULT;
866
813
  mysql->field_count=field_count;
867
 
  DBUG_RETURN(mysql_store_result(mysql));
 
814
  return(mysql_store_result(mysql));
868
815
}
869
816
 
870
817
 
872
819
int  STDCALL
873
820
mysql_create_db(MYSQL *mysql, const char *db)
874
821
{
875
 
  DBUG_ENTER("mysql_createdb");
876
 
  DBUG_PRINT("enter",("db: %s",db));
877
 
  DBUG_RETURN(simple_command(mysql,COM_CREATE_DB,db, (ulong) strlen(db),0));
 
822
  return(simple_command(mysql,COM_CREATE_DB,db, (ulong) strlen(db),0));
878
823
}
879
824
 
880
825
 
881
826
int  STDCALL
882
827
mysql_drop_db(MYSQL *mysql, const char *db)
883
828
{
884
 
  DBUG_ENTER("mysql_drop_db");
885
 
  DBUG_PRINT("enter",("db: %s",db));
886
 
  DBUG_RETURN(simple_command(mysql,COM_DROP_DB,db,(ulong) strlen(db),0));
 
829
  return(simple_command(mysql,COM_DROP_DB,db,(ulong) strlen(db),0));
887
830
}
888
831
#endif
889
832
 
892
835
mysql_shutdown(MYSQL *mysql, enum mysql_enum_shutdown_level shutdown_level)
893
836
{
894
837
  uchar level[1];
895
 
  DBUG_ENTER("mysql_shutdown");
896
838
  level[0]= (uchar) shutdown_level;
897
 
  DBUG_RETURN(simple_command(mysql, COM_SHUTDOWN, level, 1, 0));
 
839
  return(simple_command(mysql, COM_SHUTDOWN, level, 1, 0));
898
840
}
899
841
 
900
842
 
902
844
mysql_refresh(MYSQL *mysql,uint options)
903
845
{
904
846
  uchar bits[1];
905
 
  DBUG_ENTER("mysql_refresh");
906
847
  bits[0]= (uchar) options;
907
 
  DBUG_RETURN(simple_command(mysql, COM_REFRESH, bits, 1, 0));
 
848
  return(simple_command(mysql, COM_REFRESH, bits, 1, 0));
908
849
}
909
850
 
910
851
 
912
853
mysql_kill(MYSQL *mysql, uint32_t pid)
913
854
{
914
855
  uchar buff[4];
915
 
  DBUG_ENTER("mysql_kill");
916
856
  int4store(buff,pid);
917
 
  DBUG_RETURN(simple_command(mysql,COM_PROCESS_KILL,buff,sizeof(buff),0));
 
857
  return(simple_command(mysql,COM_PROCESS_KILL,buff,sizeof(buff),0));
918
858
}
919
859
 
920
860
 
922
862
mysql_set_server_option(MYSQL *mysql, enum enum_mysql_set_option option)
923
863
{
924
864
  uchar buff[2];
925
 
  DBUG_ENTER("mysql_set_server_option");
926
865
  int2store(buff, (uint) option);
927
 
  DBUG_RETURN(simple_command(mysql, COM_SET_OPTION, buff, sizeof(buff), 0));
928
 
}
929
 
 
930
 
 
931
 
int STDCALL
932
 
mysql_dump_debug_info(MYSQL *mysql)
933
 
{
934
 
  DBUG_ENTER("mysql_dump_debug_info");
935
 
  DBUG_RETURN(simple_command(mysql,COM_DEBUG,0,0,0));
 
866
  return(simple_command(mysql, COM_SET_OPTION, buff, sizeof(buff), 0));
936
867
}
937
868
 
938
869
 
951
882
const char * STDCALL
952
883
mysql_stat(MYSQL *mysql)
953
884
{
954
 
  DBUG_ENTER("mysql_stat");
955
885
  if (simple_command(mysql,COM_STATISTICS,0,0,0))
956
 
    DBUG_RETURN(mysql->net.last_error);
957
 
  DBUG_RETURN((*mysql->methods->read_statistics)(mysql));
 
886
    return(mysql->net.last_error);
 
887
  return((*mysql->methods->read_statistics)(mysql));
958
888
}
959
889
 
960
890
 
962
892
mysql_ping(MYSQL *mysql)
963
893
{
964
894
  int res;
965
 
  DBUG_ENTER("mysql_ping");
966
895
  res= simple_command(mysql,COM_PING,0,0,0);
967
896
  if (res == CR_SERVER_LOST && mysql->reconnect)
968
897
    res= simple_command(mysql,COM_PING,0,0,0);
969
 
  DBUG_RETURN(res);
 
898
  return(res);
970
899
}
971
900
 
972
901
 
1222
1151
 
1223
1152
my_bool STDCALL mysql_commit(MYSQL * mysql)
1224
1153
{
1225
 
  DBUG_ENTER("mysql_commit");
1226
 
  DBUG_RETURN((my_bool) mysql_real_query(mysql, "commit", 6));
 
1154
  return((my_bool) mysql_real_query(mysql, "commit", 6));
1227
1155
}
1228
1156
 
1229
1157
/*
1232
1160
 
1233
1161
my_bool STDCALL mysql_rollback(MYSQL * mysql)
1234
1162
{
1235
 
  DBUG_ENTER("mysql_rollback");
1236
 
  DBUG_RETURN((my_bool) mysql_real_query(mysql, "rollback", 8));
 
1163
  return((my_bool) mysql_real_query(mysql, "rollback", 8));
1237
1164
}
1238
1165
 
1239
1166
 
1243
1170
 
1244
1171
my_bool STDCALL mysql_autocommit(MYSQL * mysql, my_bool auto_mode)
1245
1172
{
1246
 
  DBUG_ENTER("mysql_autocommit");
1247
 
  DBUG_PRINT("enter", ("mode : %d", auto_mode));
1248
 
 
1249
 
  DBUG_RETURN((my_bool) mysql_real_query(mysql, auto_mode ?
 
1173
  return((my_bool) mysql_real_query(mysql, auto_mode ?
1250
1174
                                         "set autocommit=1":"set autocommit=0",
1251
1175
                                         16));
1252
1176
}
1264
1188
my_bool STDCALL mysql_more_results(MYSQL *mysql)
1265
1189
{
1266
1190
  my_bool res;
1267
 
  DBUG_ENTER("mysql_more_results");
1268
1191
 
1269
1192
  res= ((mysql->server_status & SERVER_MORE_RESULTS_EXISTS) ? 1: 0);
1270
 
  DBUG_PRINT("exit",("More results exists ? %d", res));
1271
 
  DBUG_RETURN(res);
 
1193
  return(res);
1272
1194
}
1273
1195
 
1274
1196
 
1277
1199
*/
1278
1200
int STDCALL mysql_next_result(MYSQL *mysql)
1279
1201
{
1280
 
  DBUG_ENTER("mysql_next_result");
1281
 
 
1282
1202
  if (mysql->status != MYSQL_STATUS_READY)
1283
1203
  {
1284
1204
    set_mysql_error(mysql, CR_COMMANDS_OUT_OF_SYNC, unknown_sqlstate);
1285
 
    DBUG_RETURN(1);
 
1205
    return(1);
1286
1206
  }
1287
1207
 
1288
1208
  net_clear_error(&mysql->net);
1289
1209
  mysql->affected_rows= ~(uint64_t) 0;
1290
1210
 
1291
1211
  if (mysql->server_status & SERVER_MORE_RESULTS_EXISTS)
1292
 
    DBUG_RETURN((*mysql->methods->next_result)(mysql));
 
1212
    return((*mysql->methods->next_result)(mysql));
1293
1213
 
1294
 
  DBUG_RETURN(-1);                              /* No more results */
 
1214
  return(-1);                           /* No more results */
1295
1215
}
1296
1216
 
1297
1217