1drop table if exists t1;
2set sql_mode="";
3flush status;
4show status like "feature%";
5Variable_name	Value
6Feature_application_time_periods	0
7Feature_check_constraint	0
8Feature_custom_aggregate_functions	0
9Feature_delay_key_write	0
10Feature_dynamic_columns	0
11Feature_fulltext	0
12Feature_gis	0
13Feature_invisible_columns	0
14Feature_json	0
15Feature_locale	0
16Feature_subquery	0
17Feature_system_versioning	0
18Feature_timezone	0
19Feature_trigger	0
20Feature_window_functions	0
21Feature_xml	0
22#
23# Feature GIS
24#
25CREATE TABLE t1 (g POINT);
26SHOW FIELDS FROM t1;
27Field	Type	Null	Key	Default	Extra
28g	point	YES		NULL
29INSERT INTO t1 VALUES
30(PointFromText('POINT(10 10)')),
31(PointFromText('POINT(20 10)')),
32(PointFromText('POINT(20 20)')),
33(PointFromWKB(AsWKB(PointFromText('POINT(10 20)'))));
34drop table t1;
35show status like "feature_gis";
36Variable_name	Value
37Feature_gis	3
38#
39# Feature dynamic columns
40#
41set @a= COLUMN_CREATE(1, 1212 AS int);
42set @b= column_add(@a, 2, 1212 as integer);
43select column_get(@b, 2 as integer);
44column_get(@b, 2 as integer)
451212
46show status like "feature_dynamic_columns";
47Variable_name	Value
48Feature_dynamic_columns	2
49#
50# Feature fulltext
51#
52CREATE TABLE t1 (a VARCHAR(200), b TEXT, FULLTEXT (a,b)) engine=myisam;
53INSERT INTO t1 VALUES('MySQL has now support', 'for full-text search'),
54('Full-text indexes', 'are called collections'),
55('Only MyISAM tables','support collections'),
56('Function MATCH ... AGAINST()','is used to do a search'),
57('Full-text search in MySQL', 'implements vector space model');
58select * from t1 where MATCH(a,b) AGAINST ("collections");
59a	b
60Only MyISAM tables	support collections
61Full-text indexes	are called collections
62select * from t1 where MATCH(a,b) AGAINST ("indexes");
63a	b
64Full-text indexes	are called collections
65drop table t1;
66show status like "feature_fulltext";
67Variable_name	Value
68Feature_fulltext	2
69#
70# Feature locale
71#
72SET lc_messages=sr_RS;
73SET lc_messages=en_US;
74show status like "feature_locale";
75Variable_name	Value
76Feature_locale	2
77#
78# Feature subquery
79#
80select (select 2);
81(select 2)
822
83SELECT (SELECT 1) UNION SELECT (SELECT 2);
84(SELECT 1)
851
862
87create table t1 (a int);
88insert into t1 values (2);
89select (select a from t1 where t1.a=t2.a), a from t1 as t2;
90(select a from t1 where t1.a=t2.a)	a
912	2
92drop table t1;
93show status like "feature_subquery";
94Variable_name	Value
95Feature_subquery	4
96#
97# Feature timezone
98#
99SELECT FROM_UNIXTIME(unix_timestamp()) > "1970-01-01";
100FROM_UNIXTIME(unix_timestamp()) > "1970-01-01"
1011
102set time_zone="+03:00";
103SELECT FROM_UNIXTIME(unix_timestamp()) > "1970-01-01";
104FROM_UNIXTIME(unix_timestamp()) > "1970-01-01"
1051
106set time_zone= @@global.time_zone;
107show status like "feature_timezone";
108Variable_name	Value
109Feature_timezone	1
110#
111# Feature triggers
112#
113create table t1 (i int);
114# let us test some very simple trigger
115create trigger trg before insert on t1 for each row set @a:=1;
116set @a:=0;
117select @a;
118@a
1190
120insert into t1 values (1),(2);
121select @a;
122@a
1231
124SHOW TRIGGERS IN test like 't1';
125Trigger	Event	Table	Statement	Timing	Created	sql_mode	Definer	character_set_client	collation_connection	Database Collation
126trg	INSERT	t1	set @a:=1	BEFORE	#		root@localhost	latin1	latin1_swedish_ci	latin1_swedish_ci
127drop trigger trg;
128drop table t1;
129show status like "%trigger%";
130Variable_name	Value
131Binlog_group_commit_trigger_count	0
132Binlog_group_commit_trigger_lock_wait	0
133Binlog_group_commit_trigger_timeout	0
134Com_create_trigger	1
135Com_drop_trigger	1
136Com_show_create_trigger	0
137Com_show_triggers	1
138Executed_triggers	2
139Feature_trigger	2
140#
141# Feature xml
142#
143SET @xml='<a aa1="aa1" aa2="aa2">a1<b ba1="ba1">b1<c>c1</c>b2</b>a2</a>';
144SELECT extractValue(@xml,'/a');
145extractValue(@xml,'/a')
146a1 a2
147select updatexml('<div><div><span>1</span><span>2</span></div></div>',
148'/','<tr><td>1</td><td>2</td></tr>') as upd1;
149upd1
150<tr><td>1</td><td>2</td></tr>
151show status like "feature_xml";
152Variable_name	Value
153Feature_xml	2
154#
155# Feature delayed_keys
156#
157create table t1 (a int, key(a)) engine=myisam delay_key_write=1;
158insert into t1 values(1);
159insert into t1 values(2);
160drop table t1;
161create table t1 (a int, key(a)) engine=aria delay_key_write=1;
162insert into t1 values(1);
163insert into t1 values(2);
164drop table t1;
165show status like "feature_delay_key_write";
166Variable_name	Value
167Feature_delay_key_write	2
168create table t1 (a int check (a > 5));
169create table t2 (b int, constraint foo check (b < 10));
170drop table t1, t2;
171show status like "feature_check_constraint";
172Variable_name	Value
173Feature_check_constraint	2
174