~mdcallag/+junk/5.1-map

« back to all changes in this revision

Viewing changes to sql-common/client.c

  • Committer: msvensson at pilot
  • Date: 2007-04-24 09:11:45 UTC
  • mfrom: (2469.1.106)
  • Revision ID: sp1r-msvensson@pilot.blaudden-20070424091145-10463
Merge pilot.blaudden:/home/msvensson/mysql/my51-m-mysql_upgrade
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.1-maint

Show diffs side-by-side

added added

removed removed

Lines of Context:
2596
2596
  SYNOPSYS
2597
2597
    mysql_detach_stmt_list()
2598
2598
      stmt_list  pointer to mysql->stmts
 
2599
      func_name  name of calling function
2599
2600
 
2600
2601
  NOTE
2601
2602
    There is similar code in mysql_reconnect(), so changes here
2602
2603
    should also be reflected there.
2603
2604
*/
2604
2605
 
2605
 
void mysql_detach_stmt_list(LIST **stmt_list __attribute__((unused)))
 
2606
void mysql_detach_stmt_list(LIST **stmt_list __attribute__((unused)),
 
2607
                            const char *func_name __attribute__((unused)))
2606
2608
{
2607
2609
#ifdef MYSQL_CLIENT
2608
2610
  /* Reset connection handle in all prepared statements. */
2609
2611
  LIST *element= *stmt_list;
 
2612
  char buff[MYSQL_ERRMSG_SIZE];
 
2613
  DBUG_ENTER("mysql_detach_stmt_list");
 
2614
 
 
2615
  my_snprintf(buff, sizeof(buff)-1, ER(CR_STMT_CLOSED), func_name);
2610
2616
  for (; element; element= element->next)
2611
2617
  {
2612
2618
    MYSQL_STMT *stmt= (MYSQL_STMT *) element->data;
 
2619
    set_stmt_errmsg(stmt, buff, CR_STMT_CLOSED, unknown_sqlstate);
2613
2620
    stmt->mysql= 0;
2614
2621
    /* No need to call list_delete for statement here */
2615
2622
  }
2616
2623
  *stmt_list= 0;
 
2624
  DBUG_VOID_RETURN;
2617
2625
#endif /* MYSQL_CLIENT */
2618
2626
}
2619
2627
 
2634
2642
    }
2635
2643
    mysql_close_free_options(mysql);
2636
2644
    mysql_close_free(mysql);
2637
 
    mysql_detach_stmt_list(&mysql->stmts);
 
2645
    mysql_detach_stmt_list(&mysql->stmts, "mysql_close");
2638
2646
#ifndef TO_BE_DELETED
2639
2647
    /* free/close slave list */
2640
2648
    if (mysql->rpl_pivot)
2820
2828
  result->field_count=  mysql->field_count;
2821
2829
  /* The rest of result members is bzeroed in malloc */
2822
2830
  mysql->fields=0;                              /* fields is now in result */
 
2831
  clear_alloc_root(&mysql->field_alloc);
2823
2832
  /* just in case this was mistakenly called after mysql_stmt_execute() */
2824
2833
  mysql->unbuffered_fetch_owner= 0;
2825
2834
  DBUG_RETURN(result);                          /* Data fetched */
2869
2878
  result->handle=       mysql;
2870
2879
  result->current_row=  0;
2871
2880
  mysql->fields=0;                      /* fields is now in result */
 
2881
  clear_alloc_root(&mysql->field_alloc);
2872
2882
  mysql->status=MYSQL_STATUS_USE_RESULT;
2873
2883
  mysql->unbuffered_fetch_owner= &result->unbuffered_fetch_cancelled;
2874
2884
  DBUG_RETURN(result);                  /* Data is read to be fetched */
2948
2958
 
2949
2959
 
2950
2960
int STDCALL
2951
 
mysql_options(MYSQL *mysql,enum mysql_option option, const char *arg)
 
2961
mysql_options(MYSQL *mysql,enum mysql_option option, const void *arg)
2952
2962
{
2953
2963
  DBUG_ENTER("mysql_option");
2954
2964
  DBUG_PRINT("enter",("option: %d",(int) option));
3022
3032
    mysql->reconnect= *(my_bool *) arg;
3023
3033
    break;
3024
3034
  case MYSQL_OPT_SSL_VERIFY_SERVER_CERT:
3025
 
    if (!arg || test(*(uint*) arg))
 
3035
    if (*(my_bool*) arg)
3026
3036
      mysql->options.client_flag|= CLIENT_SSL_VERIFY_SERVER_CERT;
3027
3037
    else
3028
3038
      mysql->options.client_flag&= ~CLIENT_SSL_VERIFY_SERVER_CERT;