~ubuntu-branches/ubuntu/maverick/mysql-5.1/maverick-proposed

« back to all changes in this revision

Viewing changes to sql/item.h

  • Committer: Package Import Robot
  • Author(s): Marc Deslauriers
  • Date: 2012-02-22 14:16:05 UTC
  • mfrom: (1.2.3)
  • Revision ID: package-import@ubuntu.com-20120222141605-5xu64xtalgrxgoie
Tags: 5.1.61-0ubuntu0.10.10.1
* SECURITY UPDATE: Update to 5.1.61 to fix multiple security issues
  (LP: #937869)
  - http://www.oracle.com/technetwork/topics/security/cpujan2012-366304.html
  - CVE-2011-2262
  - CVE-2012-0075
  - CVE-2012-0112
  - CVE-2012-0113
  - CVE-2012-0114
  - CVE-2012-0115
  - CVE-2012-0116
  - CVE-2012-0117
  - CVE-2012-0118
  - CVE-2012-0119
  - CVE-2012-0120
  - CVE-2012-0484
  - CVE-2012-0485
  - CVE-2012-0486
  - CVE-2012-0487
  - CVE-2012-0488
  - CVE-2012-0489
  - CVE-2012-0490
  - CVE-2012-0491
  - CVE-2012-0492
  - CVE-2012-0493
  - CVE-2012-0494
  - CVE-2012-0495
  - CVE-2012-0496
* Dropped patches unnecessary with 5.1.61:
  - debian/patches/61_CVE-2010-3833.dpatch
  - debian/patches/61_CVE-2010-3834.dpatch
  - debian/patches/61_CVE-2010-3835.dpatch
  - debian/patches/61_CVE-2010-3836.dpatch
  - debian/patches/61_CVE-2010-3837.dpatch
  - debian/patches/61_CVE-2010-3838.dpatch
  - debian/patches/61_CVE-2010-3839.dpatch
  - debian/patches/61_CVE-2010-3840.dpatch
  - debian/patches/60_abi-check-include.dpatch
  - debian/patches/62_disable_longfilename_test.dpatch
  - debian/patches/90_fix_testsuite_for_installed_env.dpatch
* debian/mysql-client-5.1.docs: removed EXCEPTIONS-CLIENT file
* debian/mysql-server-5.1.docs,debian/libmysqlclient16.docs,
  debian/libmysqlclient-dev.docs: removed, no longer necessary.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* Copyright (c) 2000, 2010 Oracle and/or its affiliates. All rights reserved.
 
1
/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
2
2
 
3
3
   This program is free software; you can redistribute it and/or modify
4
4
   it under the terms of the GNU General Public License as published by
515
515
   */
516
516
  Item *next;
517
517
  uint32 max_length;
 
518
  /*
 
519
    TODO: convert name and name_length fields into String to keep them in sync
 
520
    (see bug #11829681/60295 etc).
 
521
  */
518
522
  uint name_length;                     /* Length of name */
519
523
  int8 marker;
520
524
  uint8 decimals;
966
970
  virtual bool set_no_const_sub(uchar *arg) { return FALSE; }
967
971
  virtual Item *replace_equal_field(uchar * arg) { return this; }
968
972
  /*
969
 
    Check if an expression value depends on the current timezone. Used by
970
 
    partitioning code to reject timezone-dependent expressions in a
971
 
    (sub)partitioning function.
 
973
    Check if an expression value has allowed arguments, like DATE/DATETIME
 
974
    for date functions. Also used by partitioning code to reject
 
975
    timezone-dependent expressions in a (sub)partitioning function.
972
976
  */
973
 
  virtual bool is_timezone_dependent_processor(uchar *bool_arg)
 
977
  virtual bool check_valid_arguments_processor(uchar *bool_arg)
974
978
  {
975
979
    return FALSE;
976
980
  }
2740
2744
class Cached_item_str :public Cached_item
2741
2745
{
2742
2746
  Item *item;
 
2747
  uint32 value_max_length;
2743
2748
  String value,tmp_value;
2744
2749
public:
2745
2750
  Cached_item_str(THD *thd, Item *arg);
2959
2964
protected:
2960
2965
  Item *example;
2961
2966
  table_map used_table_map;
2962
 
  /*
2963
 
    Field that this object will get value from. This is set/used by 
 
2967
  /**
 
2968
    Field that this object will get value from. This is used by 
2964
2969
    index-based subquery engines to detect and remove the equality injected 
2965
2970
    by IN->EXISTS transformation.
2966
 
    For all other uses of Item_cache, cached_field doesn't matter.
2967
2971
  */  
2968
2972
  Field *cached_field;
2969
2973
  enum enum_field_types cached_field_type;
3020
3024
  {
3021
3025
    return this == item;
3022
3026
  }
 
3027
 
 
3028
  /** 
 
3029
    If this item caches a field value, return pointer to underlying field.
 
3030
 
 
3031
    @return Pointer to field, or NULL if this is not a cache for a field value.
 
3032
  */
 
3033
  Field* field() { return cached_field; }
 
3034
 
3023
3035
  virtual void store(Item *item);
3024
3036
  virtual bool cache_value()= 0;
3025
3037
};