~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/function/get_user_var.cc

  • Committer: Stewart Smith
  • Author(s): Vasil Dimov, Stewart Smith
  • Date: 2010-12-20 02:24:00 UTC
  • mto: (2021.1.2 build)
  • mto: This revision was merged to the branch mainline in revision 2022.
  • Revision ID: stewart@flamingspork.com-20101220022400-0p9lvvppwgaowdju
Merge Revision revid:vasil.dimov@oracle.com-20101102165720-164z3666y3tut4c2 from MySQL InnoDB

Original revid:vasil.dimov@oracle.com-20101102165720-164z3666y3tut4c2

Original Authors: Vasil Dimov <vasil.dimov@oracle.com>
Original commit message:
Fix Bug#53046 dict_update_statistics_low can still be run concurrently on same table

Replace the array of mutexes that used to protect
dict_index_t::stat_n_diff_key_vals[] with an array of rw locks that protects
all the stats related members in dict_table_t and all of its indexes.

Approved by:    Jimmy (rb://503)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
2
 *  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
3
3
 *
4
 
 *  Copyright (C) 2008 Sun Microsystems, Inc.
 
4
 *  Copyright (C) 2008 Sun Microsystems
5
5
 *
6
6
 *  This program is free software; you can redistribute it and/or modify
7
7
 *  it under the terms of the GNU General Public License as published by
17
17
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
18
18
 */
19
19
 
20
 
#include <config.h>
 
20
#include "config.h"
21
21
 
22
22
#include <float.h>
23
23
 
25
25
#include <drizzled/item/null.h>
26
26
#include <drizzled/sql_parse.h>
27
27
#include <drizzled/session.h>
28
 
#include <drizzled/user_var_entry.h>
29
28
 
30
29
namespace drizzled
31
30
{
48
47
}
49
48
 
50
49
 
51
 
type::Decimal *Item_func_get_user_var::val_decimal(type::Decimal *dec)
 
50
my_decimal *Item_func_get_user_var::val_decimal(my_decimal *dec)
52
51
{
53
52
  assert(fixed == 1);
54
53
  if (!var_entry)
89
88
    case REAL_RESULT:
90
89
      max_length= DBL_DIG + 8;
91
90
      break;
92
 
 
93
91
    case INT_RESULT:
94
92
      max_length= MAX_BIGINT_WIDTH;
95
93
      decimals=0;
97
95
    case STRING_RESULT:
98
96
      max_length= MAX_BLOB_WIDTH;
99
97
      break;
100
 
 
101
98
    case DECIMAL_RESULT:
102
99
      max_length= DECIMAL_MAX_STR_LENGTH;
103
100
      decimals= DECIMAL_MAX_SCALE;
104
101
      break;
105
 
 
106
102
    case ROW_RESULT:                            // Keep compiler happy
 
103
    default:
107
104
      assert(0);
108
105
      break;
109
106
    }