Commit 6cac08bc authored by Sergey Petrunia's avatar Sergey Petrunia
Browse files

Merge BUG#35478 into mysql-5.1-bugteam

parents e8a5662e e443cafb
Loading
Loading
Loading
Loading
+63 −55
Original line number Diff line number Diff line
############## mysql-test\t\query_prealloc_size_basic.test ###############
################# mysql-test\t\query_prealloc_size_basic.test ##################
#                                                                              #
# Variable Name: query_prealloc_size                                           #
# Scope: GLOBAL | SESSION                                                      #
@@ -18,10 +18,13 @@
#              * Scope & Access method                                         #
#              * Data Integrity                                                #
#                                                                              #
# Reference: http://dev.mysql.com/doc/refman/5.1/en/                          #
#  server-system-variables.html                                               #
# Reference:                                                                   #
#      http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html     #
#                                                                              #
###############################################################################
# Last Modification:                                                           #
# 2008-07-14 hhunger removed values for 64 bit platforms.                      #
#                                                                              #
################################################################################

--source include/load_sysvars.inc

@@ -67,30 +70,32 @@ SELECT @@session.query_prealloc_size = 8192;


--echo '#--------------------FN_DYNVARS_005_03-------------------------#'
##################################################################################
################################################################################
# Change the value of query_prealloc_size   to a valid value for GLOBAL Scope  #
##################################################################################
################################################################################

SET @@global.query_prealloc_size   = 8192;
SELECT @@global.query_prealloc_size  ;

SET @@global.query_prealloc_size   = 4294967295;
SELECT @@global.query_prealloc_size  ;
# Due to problems with 64 bit machines having less than 6 GB main memory.
#SET @@global.query_prealloc_size   = 4294967295;
#SELECT @@global.query_prealloc_size  ;

SET @@global.query_prealloc_size   = 655354;
SELECT @@global.query_prealloc_size  ;


--echo '#--------------------FN_DYNVARS_005_04-------------------------#'
###################################################################################
##################################################################################
# Change the value of query_prealloc_size   to a valid value for SESSION Scope   #
###################################################################################
##################################################################################

SET @@session.query_prealloc_size   = 8192;
SELECT @@session.query_prealloc_size  ;

SET @@session.query_prealloc_size   = 4294967295;
SELECT @@session.query_prealloc_size  ;
# Due to problems with 64 bit machines having less than 6 GB main memory.
#SET @@session.query_prealloc_size   = 4294967295;
#SELECT @@session.query_prealloc_size  ;

SET @@session.query_prealloc_size   = 655345;
SELECT @@session.query_prealloc_size  ;
@@ -109,8 +114,9 @@ SELECT @@global.query_prealloc_size ;
SET @@global.query_prealloc_size   = -1024;
SELECT @@global.query_prealloc_size  ;

SET @@global.query_prealloc_size   = 429496729533;
SELECT @@global.query_prealloc_size  ;
# Due to problems with 64 bit machines having less than 6 GB main memory.
#SET @@global.query_prealloc_size   = 429496729533;
#SELECT @@global.query_prealloc_size  ;


--Error ER_PARSE_ERROR
@@ -188,18 +194,19 @@ SELECT @@global.query_prealloc_size ;


--echo '#---------------------FN_DYNVARS_001_09----------------------#'
#################################################################################### 
################################################################################
# Check if accessing variable with and without GLOBAL point to same variable   #
#################################################################################### 
################################################################################

SET @@global.query_prealloc_size   = 10;
SELECT @@query_prealloc_size   = @@global.query_prealloc_size  ;


--echo '#---------------------FN_DYNVARS_001_10----------------------#'
########################################################################################################
#    Check if accessing variable with SESSION,LOCAL and without SCOPE points to same session variable  #
########################################################################################################
##############################################################################
# Check if accessing variable with SESSION,LOCAL and without SCOPE points to #
# to the same session variable                                               #
##############################################################################

SET @@query_prealloc_size   = 100;
SELECT @@query_prealloc_size   = @@local.query_prealloc_size  ;
@@ -207,9 +214,9 @@ SELECT @@local.query_prealloc_size = @@session.query_prealloc_size ;


--echo '#---------------------FN_DYNVARS_001_11----------------------#'
###################################################################################  
################################################################################
#    Check if query_prealloc_size   can be accessed with and without @@ sign   #
###################################################################################
################################################################################

SET query_prealloc_size   = 1;
SELECT @@query_prealloc_size  ;
@@ -237,3 +244,4 @@ SELECT @@session.query_prealloc_size ;
#############################################################
#                 END OF query_prealloc_size   TESTS        #
#############################################################
+9 −23
Original line number Diff line number Diff line
@@ -35,10 +35,6 @@ SET @@global.query_prealloc_size = 8192;
SELECT @@global.query_prealloc_size  ;
@@global.query_prealloc_size
8192
SET @@global.query_prealloc_size   = 4294967295;
SELECT @@global.query_prealloc_size  ;
@@global.query_prealloc_size
4294966272
SET @@global.query_prealloc_size   = 655354;
SELECT @@global.query_prealloc_size  ;
@@global.query_prealloc_size
@@ -48,10 +44,6 @@ SET @@session.query_prealloc_size = 8192;
SELECT @@session.query_prealloc_size  ;
@@session.query_prealloc_size
8192
SET @@session.query_prealloc_size   = 4294967295;
SELECT @@session.query_prealloc_size  ;
@@session.query_prealloc_size
4294966272
SET @@session.query_prealloc_size   = 655345;
SELECT @@session.query_prealloc_size  ;
@@session.query_prealloc_size
@@ -69,37 +61,31 @@ Warning 1292 Truncated incorrect query_prealloc_size value: '0'
SELECT @@global.query_prealloc_size  ;
@@global.query_prealloc_size
8192
SET @@global.query_prealloc_size   = 429496729533;
Warnings:
Warning	1292	Truncated incorrect query_prealloc_size value: '429496729533'
SELECT @@global.query_prealloc_size  ;
@@global.query_prealloc_size
4294966272
SET @@global.query_prealloc_size   = 65530.34.;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.' at line 1
SELECT @@global.query_prealloc_size  ;
@@global.query_prealloc_size
4294966272
8192
SET @@global.query_prealloc_size   = test;
ERROR 42000: Incorrect argument type to variable 'query_prealloc_size'
SELECT @@global.query_prealloc_size  ;
@@global.query_prealloc_size
4294966272
8192
SET @@global.query_prealloc_size   = "test";
ERROR 42000: Incorrect argument type to variable 'query_prealloc_size'
SELECT @@global.query_prealloc_size  ;
@@global.query_prealloc_size
4294966272
8192
SET @@global.query_prealloc_size   = 'test';
ERROR 42000: Incorrect argument type to variable 'query_prealloc_size'
SELECT @@global.query_prealloc_size  ;
@@global.query_prealloc_size
4294966272
8192
SET @@global.query_prealloc_size   = ON;
ERROR 42000: Incorrect argument type to variable 'query_prealloc_size'
SELECT @@global.query_prealloc_size  ;
@@global.query_prealloc_size
4294966272
8192
SET @@session.query_prealloc_size   = 0;
Warnings:
Warning	1292	Truncated incorrect query_prealloc_size value: '0'
+9 −21
Original line number Diff line number Diff line
@@ -35,10 +35,6 @@ SET @@global.query_prealloc_size = 8192;
SELECT @@global.query_prealloc_size  ;
@@global.query_prealloc_size
8192
SET @@global.query_prealloc_size   = 4294967295;
SELECT @@global.query_prealloc_size  ;
@@global.query_prealloc_size
4294966272
SET @@global.query_prealloc_size   = 655354;
SELECT @@global.query_prealloc_size  ;
@@global.query_prealloc_size
@@ -48,10 +44,6 @@ SET @@session.query_prealloc_size = 8192;
SELECT @@session.query_prealloc_size  ;
@@session.query_prealloc_size
8192
SET @@session.query_prealloc_size   = 4294967295;
SELECT @@session.query_prealloc_size  ;
@@session.query_prealloc_size
4294966272
SET @@session.query_prealloc_size   = 655345;
SELECT @@session.query_prealloc_size  ;
@@session.query_prealloc_size
@@ -69,35 +61,31 @@ Warning 1292 Truncated incorrect query_prealloc_size value: '0'
SELECT @@global.query_prealloc_size  ;
@@global.query_prealloc_size
8192
SET @@global.query_prealloc_size   = 429496729533;
SELECT @@global.query_prealloc_size  ;
@@global.query_prealloc_size
429496728576
SET @@global.query_prealloc_size   = 65530.34.;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.' at line 1
SELECT @@global.query_prealloc_size  ;
@@global.query_prealloc_size
429496728576
8192
SET @@global.query_prealloc_size   = test;
ERROR 42000: Incorrect argument type to variable 'query_prealloc_size'
SELECT @@global.query_prealloc_size  ;
@@global.query_prealloc_size
429496728576
8192
SET @@global.query_prealloc_size   = "test";
ERROR 42000: Incorrect argument type to variable 'query_prealloc_size'
SELECT @@global.query_prealloc_size  ;
@@global.query_prealloc_size
429496728576
8192
SET @@global.query_prealloc_size   = 'test';
ERROR 42000: Incorrect argument type to variable 'query_prealloc_size'
SELECT @@global.query_prealloc_size  ;
@@global.query_prealloc_size
429496728576
8192
SET @@global.query_prealloc_size   = ON;
ERROR 42000: Incorrect argument type to variable 'query_prealloc_size'
SELECT @@global.query_prealloc_size  ;
@@global.query_prealloc_size
429496728576
8192
SET @@session.query_prealloc_size   = 0;
Warnings:
Warning	1292	Truncated incorrect query_prealloc_size value: '0'
+2 −2
Original line number Diff line number Diff line
@@ -3758,8 +3758,6 @@ longlong Item_func_in::val_int()
    return (longlong) (!null_value && tmp != negated);
  }

  if ((null_value= args[0]->null_value))
    return 0;
  have_null= 0;
  for (uint i= 1 ; i < arg_count ; i++)
  {
@@ -3769,6 +3767,8 @@ longlong Item_func_in::val_int()
    if (!(value_added_map & (1 << (uint)cmp_type)))
    {
      in_item->store_value(args[0]);
      if ((null_value= args[0]->null_value))
        return 0;
      value_added_map|= 1 << (uint)cmp_type;
    }
    if (!in_item->cmp(args[i]) && !args[i]->null_value)
+1 −1
Original line number Diff line number Diff line
@@ -7936,7 +7936,7 @@ int QUICK_INDEX_MERGE_SELECT::read_keys_and_merge()
  handler *file= head->file;
  DBUG_ENTER("QUICK_INDEX_MERGE_SELECT::read_keys_and_merge");


  /* We're going to just read rowids. */
  file->extra(HA_EXTRA_KEYREAD);
  head->prepare_for_position();