mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 13:32:33 +01:00
8cfe729678
not default_charset_into. It fixes the problem that in some cases numbers where treated as CHAR(N), not as BINARY(N), e.g. wrong 'charsetnr' when sent to the client side. 2. IFNULL didn't aggregate argument charsets and collations, so IFNULL(1,'a') produced a CHAR(N). Now produces a BINARY(N). 3. SELECT PROCEDURE ANALIZE now returns BINARY columns, which is much better than it worked previously: CHAR with the default character set. But in the future it's worth to fix the fields 'Field_name' and 'Optimal_fieldtype' to use UTF8, and 'Min_value' and 'Max_value' to inherit their charsets from the original items. But it is not important, and BINARY(N) is OK for now. 4. Tests were fixed accordingly. No new tests were made, as the old onces cover everything.
62 lines
2.7 KiB
Text
62 lines
2.7 KiB
Text
drop table if exists t1,t2;
|
|
select 1, 1.0, -1, "hello", NULL;
|
|
Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr
|
|
def 1 8 1 1 N 32897 0 63
|
|
def 1.0 5 3 3 N 32897 1 63
|
|
def -1 8 2 2 N 32897 0 63
|
|
def hello 254 5 5 N 1 31 8
|
|
def NULL 6 0 0 Y 32896 0 63
|
|
1 1.0 -1 hello NULL
|
|
1 1.0 -1 hello NULL
|
|
create table t1 (a tinyint, b smallint, c mediumint, d int, e bigint, f float(3,2), g double(4,3), h decimal(5,4), i year, j date, k timestamp, l datetime, m enum('a','b'), n set('a','b'), o char(10));
|
|
select * from t1;
|
|
Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr
|
|
def test t1 t1 a a 1 4 0 Y 32768 0 63
|
|
def test t1 t1 b b 2 6 0 Y 32768 0 63
|
|
def test t1 t1 c c 9 9 0 Y 32768 0 63
|
|
def test t1 t1 d d 3 11 0 Y 32768 0 63
|
|
def test t1 t1 e e 8 20 0 Y 32768 0 63
|
|
def test t1 t1 f f 4 3 0 Y 32768 2 63
|
|
def test t1 t1 g g 5 4 0 Y 32768 3 63
|
|
def test t1 t1 h h 0 7 0 Y 32768 4 63
|
|
def test t1 t1 i i 13 4 0 Y 32864 0 63
|
|
def test t1 t1 j j 10 10 0 Y 128 0 63
|
|
def test t1 t1 k k 7 19 0 N 1249 0 63
|
|
def test t1 t1 l l 12 19 0 Y 128 0 63
|
|
def test t1 t1 m m 254 1 0 Y 256 0 8
|
|
def test t1 t1 n n 254 3 0 Y 2048 0 8
|
|
def test t1 t1 o o 254 10 0 Y 0 0 8
|
|
a b c d e f g h i j k l m n o
|
|
select a b, b c from t1 as t2;
|
|
Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr
|
|
def test t1 t2 a b 1 4 0 Y 32768 0 63
|
|
def test t1 t2 b c 2 6 0 Y 32768 0 63
|
|
b c
|
|
drop table t1;
|
|
CREATE TABLE t1 (id tinyint(3) default NULL, data varchar(255) default NULL);
|
|
INSERT INTO t1 VALUES (1,'male'),(2,'female');
|
|
CREATE TABLE t2 (id tinyint(3) unsigned default NULL, data char(3) default '0');
|
|
INSERT INTO t2 VALUES (1,'yes'),(2,'no');
|
|
select t1.id, t1.data, t2.data from t1, t2 where t1.id = t2.id;
|
|
Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr
|
|
def test t1 t1 id id 1 3 1 Y 32768 0 63
|
|
def test t1 t1 data data 253 255 6 Y 0 0 8
|
|
def test t2 t2 data data 254 3 3 Y 0 0 8
|
|
id data data
|
|
1 male yes
|
|
2 female no
|
|
select t1.id, t1.data, t2.data from t1, t2 where t1.id = t2.id order by t1.id;
|
|
Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr
|
|
def test t1 t1 id id 1 3 1 Y 32768 0 63
|
|
def test t1 t1 data data 253 255 6 Y 0 0 8
|
|
def test t2 t2 data data 254 3 3 Y 0 0 8
|
|
id data data
|
|
1 male yes
|
|
2 female no
|
|
select t1.id from t1 union select t2.id from t2;
|
|
Catalog Database Table Table_alias Column Column_alias Name Type Length Max length Is_null Flags Decimals Charsetnr
|
|
def test t1 t1 id id 1 3 1 Y 32768 0 63
|
|
id
|
|
1
|
|
2
|
|
drop table t1,t2;
|