~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/t/range.test

  • Committer: Stewart Smith
  • Author(s): Marko Mäkelä, Stewart Smith
  • Date: 2010-11-17 05:52:09 UTC
  • mto: (2021.1.2 build)
  • mto: This revision was merged to the branch mainline in revision 1971.
  • Revision ID: stewart@flamingspork.com-20101117055209-69m035q6h7e1txrc
Merge Revision revid:marko.makela@oracle.com-20100629113248-fvl48lnzr44z94gg from MySQL InnoDB

Original revid:marko.makela@oracle.com-20100629113248-fvl48lnzr44z94gg

Original Authors: Marko Mkel <marko.makela@oracle.com>
Original commit message:
Bug#52199 utf32: mbminlen=4, mbmaxlen=4, type->mbminlen=0, type->mbmaxlen=4

Merge and adjust a forgotten change to fix this bug.
rb://393 approved by Jimmy Yang
  ------------------------------------------------------------------------
  r3794 | marko | 2009-01-07 14:14:53 +0000 (Wed, 07 Jan 2009) | 18 lines

  branches/6.0: Allow the minimum length of a multi-byte character to be
  up to 4 bytes. (Bug #35391)

  dtype_t, dict_col_t: Replace mbminlen:2, mbmaxlen:3 with mbminmaxlen:5.
  In this way, the 5 bits can hold two values of 0..4, and the storage size
  of the fields will not cross the 64-bit boundary.  Encode the values as
  DATA_MBMAX * mbmaxlen + mbminlen.  Define the auxiliary macros
  DB_MBMINLEN(mbminmaxlen), DB_MBMAXLEN(mbminmaxlen), and
  DB_MINMAXLEN(mbminlen, mbmaxlen).

  Try to trim and pad UTF-16 and UTF-32 with spaces as appropriate.

  Alexander Barkov suggested the use of cs->cset->fill(cs, buff, len, 0x20).
  ha_innobase::store_key_val_for_row() now does that, but the added function
  row_mysql_pad_col() does not, because it doesn't have the MySQL TABLE object.

  rb://49 approved by Heikki Tuuri
  ------------------------------------------------------------------------

Show diffs side-by-side

added added

removed removed

Lines of Context:
395
395
 
396
396
# Fix for bug#4488 
397
397
#
398
 
create table t1 (x bigint unsigned not null);
 
398
create table t1 (x bigint not null);
399
399
insert into t1(x) values (0x0ffffffffffffff0);
400
400
insert into t1(x) values (0x0ffffffffffffff1);
401
401
select * from t1;
440
440
#
441
441
# Bug #11185 incorrect comparison of int to signed constant
442
442
#
443
 
create table t1 (a bigint unsigned);
444
 
show create table t1;
 
443
create table t1 (a bigint);
445
444
create index t1i on t1(a);
446
 
show create table t1;
447
 
insert into t1 values (9223372036854775807);
448
 
truncate t1;
449
445
insert into t1 select 18446744073709551615;
450
446
insert into t1 select 18446744073709551614;
451
447
 
508
504
  PRIMARY KEY (pk1,pk2,pk3,pk4)
509
505
);
510
506
 
511
 
insert into t2 select 1, A.a+10*B.a, 432, 44, 'fillerZ' from t1 A CROSS JOIN t1 B;
 
507
insert into t2 select 1, A.a+10*B.a, 432, 44, 'fillerZ' from t1 A, t1 B;
512
508
INSERT INTO t2 VALUES (2621, 2635, 0, 0,'filler'), (2621, 2635, 1, 0,'filler'),
513
509
  (2621, 2635, 10, 0,'filler'), (2621, 2635, 11, 0,'filler'),
514
510
  (2621, 2635, 14, 0,'filler'), (2621, 2635, 1000015, 0,'filler');
792
788
insert into t1 values ('a ','');
793
789
insert into t1 values ('a  ', '');
794
790
insert into t1 select concat('a', 1000 + A.a + 10 * (B.a + 10 * C.a)), ''
795
 
  from t3 A CROSS JOIN t3 B CROSS JOIN t3 C;
 
791
  from t3 A, t3 B, t3 C;
796
792
 
797
793
create table t2 (a varchar(10), filler char(200), key(a));
798
794
insert into t2 select * from t1;