~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to mysql-test/t/varbinary.test

  • Committer: brian
  • Date: 2008-06-25 05:29:13 UTC
  • Revision ID: brian@localhost.localdomain-20080625052913-6upwo0jsrl4lnapl
clean slate

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# This test uses chmod, can't be run with root permissions
 
2
-- source include/not_as_root.inc
 
3
 
 
4
 
 
5
# Initialise
 
6
--disable_warnings
 
7
drop table if exists t1;
 
8
--enable_warnings
 
9
 
 
10
#
 
11
# varbinary as string and number
 
12
#
 
13
 
 
14
select 0x41,0x41+0,0x41 | 0x7fffffffffffffff | 0,0xffffffffffffffff | 0 ;
 
15
select 0x31+1,concat(0x31)+1,-0xf;
 
16
select x'31',X'ffff'+0;
 
17
 
 
18
#
 
19
# Test of hex constants in WHERE:
 
20
#
 
21
 
 
22
create table t1 (ID int(8) unsigned zerofill not null auto_increment,UNIQ bigint(21) unsigned zerofill not null,primary key (ID),unique (UNIQ) );
 
23
insert into t1 set UNIQ=0x38afba1d73e6a18a;
 
24
insert into t1 set UNIQ=123; 
 
25
explain extended select * from t1 where UNIQ=0x38afba1d73e6a18a;
 
26
drop table t1;
 
27
 
 
28
#
 
29
# Test error conditions
 
30
#
 
31
--error 1064
 
32
select x'hello';
 
33
--error 1054
 
34
select 0xfg;
 
35
 
 
36
#
 
37
# Test likely error conditions
 
38
#
 
39
create table t1 select 1 as x, 2 as xx;
 
40
select x,xx from t1;
 
41
drop table t1;
 
42
 
 
43
# End of 4.1 tests
 
44
 
 
45
#
 
46
# Bug #19371 VARBINARY() have trailing zeros after upgrade from 4.1
 
47
#
 
48
 
 
49
# Test with a saved table from 4.1
 
50
copy_file std_data/bug19371.frm $MYSQLTEST_VARDIR/master-data/test/t1.frm;
 
51
chmod 0777 $MYSQLTEST_VARDIR/master-data/test/t1.frm;
 
52
copy_file std_data/bug19371.MYD $MYSQLTEST_VARDIR/master-data/test/t1.MYD;
 
53
chmod 0777 $MYSQLTEST_VARDIR/master-data/test/t1.MYD;
 
54
copy_file std_data/bug19371.MYI $MYSQLTEST_VARDIR/master-data/test/t1.MYI;
 
55
chmod 0777 $MYSQLTEST_VARDIR/master-data/test/t1.MYI;
 
56
 
 
57
# Everything _looks_ fine
 
58
show create table t1;
 
59
 
 
60
# But the length of the varbinary columns are too long
 
61
select length(a), length(b) from t1;
 
62
 
 
63
# Run CHECK TABLE, it should indicate table need a REPAIR TABLE
 
64
CHECK TABLE t1 FOR UPGRADE;
 
65
 
 
66
# Run REPAIR TABLE to alter the table and repair
 
67
# the varbinary fields
 
68
REPAIR TABLE t1;
 
69
 
 
70
# Now check it's back to normal
 
71
show create table t1;
 
72
select length(a), length(b) from t1;
 
73
insert into t1 values("ccc", "ddd");
 
74
select length(a), length(b) from t1;
 
75
select hex(a), hex(b) from t1;
 
76
select concat("'", a, "'"), concat("'", b, "'") from t1;
 
77
 
 
78
drop table t1;
 
79
 
 
80
# Check that the fix does not affect table created with current version
 
81
create table t1(a varbinary(255));
 
82
insert into t1 values("aaa   ");
 
83
select length(a) from t1;
 
84
alter table t1 modify a varchar(255);
 
85
select length(a) from t1;
 
86
drop table t1;
 
87
 
 
88
 
 
89
#
 
90
# Bug#28127 (Some valid identifiers names are not parsed correctly)
 
91
#
 
92
 
 
93
--disable_warnings
 
94
drop table if exists table_28127_a;
 
95
drop table if exists table_28127_b;
 
96
--enable_warnings
 
97
 
 
98
create table table_28127_a(0b02 int);
 
99
show create table table_28127_a;
 
100
 
 
101
create table table_28127_b(0b2 int);
 
102
show create table table_28127_b;
 
103
 
 
104
drop table table_28127_a;
 
105
drop table table_28127_b;
 
106