mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
106 lines
3.3 KiB
Text
106 lines
3.3 KiB
Text
#
|
|
# DEFAULT clause with functions that depend on the current session state
|
|
#
|
|
|
|
source include/not_embedded.inc;
|
|
|
|
create database mysqltest1;
|
|
|
|
create user ''@localhost;
|
|
create user foo@localhost;
|
|
create role bar;
|
|
grant select on *.* to ''@localhost;
|
|
grant select,insert on *.* to foo@localhost;
|
|
grant select,insert on *.* to bar;
|
|
grant bar to ''@localhost;
|
|
|
|
create table t1 (n varchar(100),
|
|
u varchar(100) default user(),
|
|
cu varchar(100) default current_user(),
|
|
cr varchar(100) default current_role(),
|
|
d varchar(100) default database());
|
|
|
|
create definer=foo@localhost view mysqltest1.v1 as select * from t1;
|
|
create definer=bar view v2 as select * from t1;
|
|
create view v3 as select * from v2;
|
|
|
|
create definer=foo@localhost view mysqltest1.v4 as select default(n),default(u),default(cu),default(cr), default(d) from t1;
|
|
create definer=bar view v5 as select default(n),default(u),default(cu),default(cr), default(d) from t1;
|
|
create view v6 as select * from v5;
|
|
|
|
insert t1 (n) values ('t1');
|
|
insert mysqltest1.v1 (n) values ('v1');
|
|
insert v2 (n) values ('v2');
|
|
insert v3 (n) values ('v3');
|
|
|
|
select default(n),default(u),default(cu),default(cr), default(d) from t1 limit 1;
|
|
select * from mysqltest1.v4 limit 1;
|
|
select * from v5 limit 1;
|
|
select * from v6 limit 1;
|
|
|
|
connect (conn,localhost,conn,,mysqltest1);
|
|
set role bar;
|
|
insert test.t1 (n) values ('t1');
|
|
insert v1 (n) values ('v1');
|
|
insert test.v2 (n) values ('v2');
|
|
insert test.v3 (n) values ('v3');
|
|
|
|
select default(n),default(u),default(cu),default(cr), default(d) from test.t1 limit 1;
|
|
select * from v4 limit 1;
|
|
select * from test.v5 limit 1;
|
|
select * from test.v6 limit 1;
|
|
connection default;
|
|
disconnect conn;
|
|
|
|
select * from t1;
|
|
drop database mysqltest1;
|
|
drop view v2, v3, v5, v6;
|
|
drop table t1;
|
|
drop user ''@localhost;
|
|
drop user foo@localhost;
|
|
drop role bar;
|
|
|
|
create table t1 (a date,
|
|
mn varchar(100) default monthname(a),
|
|
dn varchar(100) default dayname(a),
|
|
df varchar(100) default date_format(a, "%a, %b"));
|
|
|
|
insert t1 (a) values ('2010-12-2');
|
|
set lc_time_names=de_DE;
|
|
insert t1 (a) values ('2010-12-2');
|
|
set lc_time_names=default;
|
|
|
|
select * from t1;
|
|
drop table t1;
|
|
|
|
create table t1 (a varchar(100) default @@sql_mode);
|
|
insert t1 () values ();
|
|
set sql_mode=ansi;
|
|
insert t1 () values ();
|
|
set sql_mode=default;
|
|
select * from t1;
|
|
drop table t1;
|
|
|
|
#
|
|
# MDEV-21249 MariaDB 10.3.10 When referring to bigint to generate timestamp data in the virtual generated column, the value of the generated column does not change when the time zone changes
|
|
#
|
|
set time_zone='+00:00';
|
|
create table t1 (a int, b datetime default from_unixtime(a), c datetime);
|
|
insert t1 (a, c) values (1569495327, from_unixtime(1569495327));
|
|
set time_zone='+01:00';
|
|
insert t1 (a, c) values (1569495327, from_unixtime(1569495327));
|
|
flush tables;
|
|
insert t1 (a, c) values (1569495327, from_unixtime(1569495327));
|
|
select * from t1;
|
|
drop table t1;
|
|
|
|
# same with vcols
|
|
set time_zone = "+00:00";
|
|
create table t1 (a int, b timestamp as (from_unixtime(a)) virtual);
|
|
insert into t1 (a) value (1569495327);
|
|
select a, b, from_unixtime(a) from t1;
|
|
set time_zone = "+01:00";
|
|
select a, b, from_unixtime(a) from t1;
|
|
flush tables;
|
|
select a, b, from_unixtime(a) from t1;
|
|
drop table t1;
|