Linux ip-172-26-2-223 5.4.0-1018-aws #18-Ubuntu SMP Wed Jun 24 01:15:00 UTC 2020 x86_64
Apache
: 172.26.2.223 | : 13.58.117.102
Cant Read [ /etc/named.conf ]
8.1.13
www
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
BLACK DEFEND!
README
+ Create Folder
+ Create File
/
www /
server /
mysql /
mysql-test /
r /
[ HOME SHELL ]
Name
Size
Permission
Action
1st.result
597
B
-rw-r--r--
acl_tables_errors_debug.result
8.93
KB
-rw-r--r--
alias.result
13.58
KB
-rw-r--r--
almost_full.result
1.11
KB
-rw-r--r--
alter_table-big.result
5.45
KB
-rw-r--r--
alter_table.result
154.41
KB
-rw-r--r--
analyze.result
3.69
KB
-rw-r--r--
ansi.result
1.92
KB
-rw-r--r--
archive-big.result
616
B
-rw-r--r--
archive.result
525.18
KB
-rw-r--r--
archive_bitfield.result
4.26
KB
-rw-r--r--
archive_debug.result
355
B
-rw-r--r--
archive_gis.result
25.98
KB
-rw-r--r--
archive_no_symlink.result
882
B
-rw-r--r--
archive_plugin.result
531
B
-rw-r--r--
archive_symlink.result
2.3
KB
-rw-r--r--
auth_rpl.result
1.85
KB
-rw-r--r--
auto_increment.result
12.11
KB
-rw-r--r--
backup.result
4.29
KB
-rw-r--r--
bench_count_distinct.result
557
B
-rw-r--r--
big_test.require
17
B
-rw-r--r--
bigint.result
23.33
KB
-rw-r--r--
binary.result
6.09
KB
-rw-r--r--
binary_to_hex.result
5.87
KB
-rw-r--r--
binlog_tx_isolation.result
1.71
KB
-rw-r--r--
blackhole.result
613
B
-rw-r--r--
blackhole_plugin.result
565
B
-rw-r--r--
bool.result
2.67
KB
-rw-r--r--
bootstrap.result
525
B
-rw-r--r--
bug12368203.result
2.77
KB
-rw-r--r--
bug12427262.result
1.86
KB
-rw-r--r--
bug12969156.result
952
B
-rw-r--r--
bug17076131.result
322
B
-rw-r--r--
bug33509.result
2.31
KB
-rw-r--r--
bug39022.result
1.2
KB
-rw-r--r--
bug46080.result
669
B
-rw-r--r--
bug46261.result
353
B
-rw-r--r--
bug46760.result
1.26
KB
-rw-r--r--
bug47671.result
287
B
-rw-r--r--
bug58669.result
480
B
-rw-r--r--
bulk_replace.result
281
B
-rw-r--r--
cache_innodb.result
6.96
KB
-rw-r--r--
case.result
10.63
KB
-rw-r--r--
case_insensitive_file_system.r...
46
B
-rw-r--r--
case_sensitive_file_system.req...
47
B
-rw-r--r--
cast.result
16.27
KB
-rw-r--r--
change_user.result
2.82
KB
-rw-r--r--
charset.result
2.14
KB
-rw-r--r--
check.result
2.05
KB
-rw-r--r--
check_auto_permission.result
261
B
-rw-r--r--
check_var_limit.require
8
B
-rw-r--r--
client_xml.result
2.38
KB
-rw-r--r--
comment_column.result
141.21
KB
-rw-r--r--
comment_column2.result
355.68
KB
-rw-r--r--
comment_index.result
173.32
KB
-rw-r--r--
comment_table.result
28.95
KB
-rw-r--r--
comments.result
2.34
KB
-rw-r--r--
commit.result
14.83
KB
-rw-r--r--
commit_1innodb.result
19.59
KB
-rw-r--r--
compare.result
5.07
KB
-rw-r--r--
compress.result
66.24
KB
-rw-r--r--
concurrent_innodb_safelog.resu...
32.01
KB
-rw-r--r--
concurrent_innodb_unsafelog.re...
31.74
KB
-rw-r--r--
condition_filter.result
2.17
KB
-rw-r--r--
connect.result
11.02
KB
-rw-r--r--
connect_debug.result
1.46
KB
-rw-r--r--
consistent_snapshot.result
1.14
KB
-rw-r--r--
constraints.result
2.56
KB
-rw-r--r--
count_distinct.result
8.04
KB
-rw-r--r--
count_distinct2.result
2.21
KB
-rw-r--r--
count_distinct3.result
278
B
-rw-r--r--
create-big.result
7.6
KB
-rw-r--r--
create.result
71.42
KB
-rw-r--r--
create_not_windows.result
961
B
-rw-r--r--
create_select_tmp.result
846
B
-rw-r--r--
create_w_max_indexes_64.result
84.46
KB
-rw-r--r--
csv.result
59.08
KB
-rw-r--r--
csv_alter_table.result
1.17
KB
-rw-r--r--
csv_not_null.result
1.93
KB
-rw-r--r--
ctype_ascii.result
2.5
KB
-rw-r--r--
ctype_big5.result
34.28
KB
-rw-r--r--
ctype_binary.result
82.78
KB
-rw-r--r--
ctype_collate.result
18.3
KB
-rw-r--r--
ctype_cp1250_ch.result
22.29
KB
-rw-r--r--
ctype_cp1251.result
96.48
KB
-rw-r--r--
ctype_cp932.result
996
B
-rw-r--r--
ctype_cp932_binlog_row.result
734
B
-rw-r--r--
ctype_cp932_binlog_stm.result
251.36
KB
-rw-r--r--
ctype_create.result
3.12
KB
-rw-r--r--
ctype_errors.result
1.66
KB
-rw-r--r--
ctype_eucjpms.result
400.48
KB
-rw-r--r--
ctype_euckr.result
435.54
KB
-rw-r--r--
ctype_filename.result
324
B
-rw-r--r--
ctype_filesystem.result
341
B
-rw-r--r--
ctype_gb18030.result
69.33
KB
-rw-r--r--
ctype_gb18030_binlog.result
909
B
-rw-r--r--
ctype_gb18030_conversion.resul...
1.17
MB
-rw-r--r--
ctype_gb18030_encoding_cn.resu...
41.39
KB
-rw-r--r--
ctype_gb18030_encoding_utf8.re...
40.64
KB
-rw-r--r--
ctype_gb18030_ligatures.result
24.81
KB
-rw-r--r--
ctype_gb2312.result
33.73
KB
-rw-r--r--
ctype_gbk.result
50.07
KB
-rw-r--r--
ctype_gbk_binlog.result
633
B
-rw-r--r--
ctype_hebrew.result
254
B
-rw-r--r--
ctype_latin1.result
119.29
KB
-rw-r--r--
ctype_latin1_de.result
15.74
KB
-rw-r--r--
ctype_latin2.result
13.71
KB
-rw-r--r--
ctype_latin2_ch.result
25.11
KB
-rw-r--r--
ctype_ldml.result
28.13
KB
-rw-r--r--
ctype_like_range.result
80.89
KB
-rw-r--r--
ctype_many.result
41.87
KB
-rw-r--r--
ctype_mb.result
2.13
KB
-rw-r--r--
ctype_recoding.result
9.6
KB
-rw-r--r--
ctype_sjis.result
195.81
KB
-rw-r--r--
ctype_tis620.result
101.02
KB
-rw-r--r--
ctype_uca.result
155.4
KB
-rw-r--r--
ctype_ucs.result
143.96
KB
-rw-r--r--
ctype_ucs2_def.result
1.05
KB
-rw-r--r--
ctype_ujis.result
365.3
KB
-rw-r--r--
ctype_ujis_ucs2.result
548.6
KB
-rw-r--r--
ctype_utf16.result
47.3
KB
-rw-r--r--
ctype_utf16_def.result
273
B
-rw-r--r--
ctype_utf16_uca.result
72.47
KB
-rw-r--r--
ctype_utf16le.result
52.96
KB
-rw-r--r--
ctype_utf32.result
50.55
KB
-rw-r--r--
ctype_utf32_uca.result
75.29
KB
-rw-r--r--
ctype_utf8.result
169.69
KB
-rw-r--r--
ctype_utf8mb4.result
83.57
KB
-rw-r--r--
ctype_utf8mb4_heap.result
75.01
KB
-rw-r--r--
ctype_utf8mb4_innodb.result
77.85
KB
-rw-r--r--
ctype_utf8mb4_myisam.result
77.43
KB
-rw-r--r--
ctype_utf8mb4_uca.result
38.82
KB
-rw-r--r--
daemonize_opt.result
14
B
-rw-r--r--
datadir_permission.result
1.09
KB
-rw-r--r--
date_formats.result
28.69
KB
-rw-r--r--
ddl_i18n_koi8r.result
123.56
KB
-rw-r--r--
ddl_i18n_utf8.result
126.58
KB
-rw-r--r--
deadlock_innodb.result
2.35
KB
-rw-r--r--
debug_sync.result
12.18
KB
-rw-r--r--
debug_sync2.result
1.15
KB
-rw-r--r--
default.result
8.17
KB
-rw-r--r--
delete.result
22.7
KB
-rw-r--r--
delete_all_rows.result
2.26
KB
-rw-r--r--
deprecate_eof.result
8
KB
-rw-r--r--
deprecated_features.result
2.03
KB
-rw-r--r--
derived.result
172.18
KB
-rw-r--r--
dirty_close.result
345
B
-rw-r--r--
disabled_replication.result
4.82
KB
-rw-r--r--
disabled_storage_engines.resul...
3.28
KB
-rw-r--r--
disconnect_on_expired_password...
1.42
KB
-rw-r--r--
disconnect_on_expired_password...
1.49
KB
-rw-r--r--
distinct.result
80.43
KB
-rw-r--r--
drop-no_root.result
454
B
-rw-r--r--
drop.result
6.71
KB
-rw-r--r--
drop_debug.result
485
B
-rw-r--r--
ds_mrr-big.result
2.93
KB
-rw-r--r--
dynamic_tracing.result
813
B
-rw-r--r--
empty_table.result
229
B
-rw-r--r--
enable_cleartext_plugin.result
1.4
KB
-rw-r--r--
endspace.result
7.25
KB
-rw-r--r--
eq_range_idx_stat.result
6.56
KB
-rw-r--r--
error_simulation.result
3.17
KB
-rw-r--r--
errors.result
6.11
KB
-rw-r--r--
events_1.result
28.3
KB
-rw-r--r--
events_2.result
17.79
KB
-rw-r--r--
events_and_binlog.result
297
B
-rw-r--r--
events_bugs.result
40.94
KB
-rw-r--r--
events_embedded.result
86
B
-rw-r--r--
events_grant.result
10.33
KB
-rw-r--r--
events_logs_tests.result
2.37
KB
-rw-r--r--
events_microsec.result
810
B
-rw-r--r--
events_restart.result
4.36
KB
-rw-r--r--
events_scheduling.result
3.11
KB
-rw-r--r--
events_stress.result
2.39
KB
-rw-r--r--
events_time_zone.result
5.4
KB
-rw-r--r--
events_trans.result
3.61
KB
-rw-r--r--
events_trans_notembedded.resul...
1.88
KB
-rw-r--r--
examined_rows.result
6.73
KB
-rw-r--r--
execution_constants.result
1.03
KB
-rw-r--r--
explain.result
39.39
KB
-rw-r--r--
explain_for_connection_crash.r...
1004
B
-rw-r--r--
explain_for_connection_rqg_jso...
87.48
KB
-rw-r--r--
explain_for_connection_rqg_tra...
35.98
KB
-rw-r--r--
explain_for_connection_small_j...
25.46
KB
-rw-r--r--
explain_for_connection_small_t...
10.3
KB
-rw-r--r--
explain_json_all.result
98.36
KB
-rw-r--r--
explain_json_none.result
102.18
KB
-rw-r--r--
explain_other.result
42.23
KB
-rw-r--r--
file_contents.result
181
B
-rw-r--r--
filesort_debug.result
4.59
KB
-rw-r--r--
filesort_merge.result
2.02
KB
-rw-r--r--
filesort_pack.result
675
B
-rw-r--r--
filter_single_col_idx_big.resu...
38.05
KB
-rw-r--r--
filter_single_col_idx_small.re...
42.99
KB
-rw-r--r--
fix_priv_tables.result
1.96
KB
-rw-r--r--
flush.result
13.78
KB
-rw-r--r--
flush2.result
1.06
KB
-rw-r--r--
flush_block_commit.result
1.47
KB
-rw-r--r--
flush_block_commit_notembedded...
872
B
-rw-r--r--
flush_read_lock.result
73.94
KB
-rw-r--r--
flush_read_lock_kill.result
1.12
KB
-rw-r--r--
flush_table.result
12.33
KB
-rw-r--r--
foreign_key.result
4.84
KB
-rw-r--r--
fulltext.result
32.93
KB
-rw-r--r--
fulltext2.result
7.54
KB
-rw-r--r--
fulltext3.result
815
B
-rw-r--r--
fulltext_cache.result
2.67
KB
-rw-r--r--
fulltext_distinct.result
1.45
KB
-rw-r--r--
fulltext_left_join.result
4
KB
-rw-r--r--
fulltext_multi.result
766
B
-rw-r--r--
fulltext_order_by.result
6.05
KB
-rw-r--r--
fulltext_plugin.result
229
B
-rw-r--r--
fulltext_update.result
1.11
KB
-rw-r--r--
fulltext_var.result
1.3
KB
-rw-r--r--
func_aes.result
12.97
KB
-rw-r--r--
func_aes_cfb1.result
4.5
KB
-rw-r--r--
func_aes_cfb128.result
4.57
KB
-rw-r--r--
func_aes_cfb8.result
4.5
KB
-rw-r--r--
func_aes_kdf_hkdf.result
3.94
KB
-rw-r--r--
func_aes_kdf_pbkdf2_hmac.resul...
6.79
KB
-rw-r--r--
func_aes_misc.result
8.46
KB
-rw-r--r--
func_aes_ofb.result
4.47
KB
-rw-r--r--
func_analyse.result
23.09
KB
-rw-r--r--
func_bitwise_ops.result
80.6
KB
-rw-r--r--
func_compress.result
5.46
KB
-rw-r--r--
func_concat.result
4.37
KB
-rw-r--r--
func_crypt.result
2.05
KB
-rw-r--r--
func_date_add.result
3.74
KB
-rw-r--r--
func_default.result
1.45
KB
-rw-r--r--
func_des_encrypt.result
2.68
KB
-rw-r--r--
func_digest.result
122.35
KB
-rw-r--r--
func_encrypt.result
19.82
KB
-rw-r--r--
func_encrypt_nossl.result
7.75
KB
-rw-r--r--
func_encrypt_ucs2.result
1.21
KB
-rw-r--r--
func_equal.result
1.27
KB
-rw-r--r--
func_found_rows.result
285
B
-rw-r--r--
func_gconcat.result
49.9
KB
-rw-r--r--
func_group.result
66.46
KB
-rw-r--r--
func_group_innodb.result
6.07
KB
-rw-r--r--
func_group_innodb_16k.result
693
B
-rw-r--r--
func_if.result
6.29
KB
-rw-r--r--
func_in_all.result
49.27
KB
-rw-r--r--
func_in_icp.result
48.91
KB
-rw-r--r--
func_in_icp_mrr.result
49.21
KB
-rw-r--r--
func_in_mrr.result
48.93
KB
-rw-r--r--
func_in_mrr_cost.result
48.65
KB
-rw-r--r--
func_in_none.result
48.6
KB
-rw-r--r--
func_isnull.result
827
B
-rw-r--r--
func_like.result
7.78
KB
-rw-r--r--
func_math.result
42.22
KB
-rw-r--r--
func_misc.result
36.8
KB
-rw-r--r--
func_op.result
2.12
KB
-rw-r--r--
func_regexp.result
4.47
KB
-rw-r--r--
func_rollback.result
13.02
KB
-rw-r--r--
func_sapdb.result
12.49
KB
-rw-r--r--
func_set.result
8.9
KB
-rw-r--r--
func_str.result
174.94
KB
-rw-r--r--
func_str_debug.result
349
B
-rw-r--r--
func_str_no_ps.result
1.3
KB
-rw-r--r--
func_system.result
2.9
KB
-rw-r--r--
func_test.result
14.47
KB
-rw-r--r--
func_time.result
71.47
KB
-rw-r--r--
func_timestamp.result
518
B
-rw-r--r--
func_weight_string.result
11.56
KB
-rw-r--r--
function_defaults.result
109.58
KB
-rw-r--r--
gcc296.result
528
B
-rw-r--r--
get_diagnostics.result
28.42
KB
-rw-r--r--
get_table_share.result
20.56
KB
-rw-r--r--
gis-debug.result
10.1
KB
-rw-r--r--
gis-precise.result
162.17
KB
-rw-r--r--
gis-rt-precise.result
2.42
KB
-rw-r--r--
gis-rtree.result
102.08
KB
-rw-r--r--
gis.result
131.8
KB
-rw-r--r--
grant.result
121.17
KB
-rw-r--r--
grant2.result
36.52
KB
-rw-r--r--
grant3.result
8.41
KB
-rw-r--r--
grant4.result
9.36
KB
-rw-r--r--
grant_alter_user.result
40.96
KB
-rw-r--r--
grant_alter_user_qa.result
98.38
KB
-rw-r--r--
grant_cache.result
6.71
KB
-rw-r--r--
grant_debug.result
8.5
KB
-rw-r--r--
grant_explain_non_select.resul...
10.27
KB
-rw-r--r--
grant_lowercase_fs.result
1.2
KB
-rw-r--r--
grant_user_lock.result
16.9
KB
-rw-r--r--
grant_user_lock_qa.result
41.4
KB
-rw-r--r--
greedy_optimizer.result
632.59
KB
-rw-r--r--
greedy_search.result
31.05
KB
-rw-r--r--
group_by.result
120.07
KB
-rw-r--r--
group_by_fd_no_prot.result
81.15
KB
-rw-r--r--
group_by_fd_ps_prot.result
61.28
KB
-rw-r--r--
group_min_max.result
189.52
KB
-rw-r--r--
group_min_max_innodb.result
25.09
KB
-rw-r--r--
gtid_next_xa_binlog_off.result
30.9
KB
-rw-r--r--
gtids_anonymous_trxs_violation...
687
B
-rw-r--r--
handler_innodb.result
41.58
KB
-rw-r--r--
handler_myisam.result
45.48
KB
-rw-r--r--
handler_read_last.result
1.15
KB
-rw-r--r--
have_big5.require
79
B
-rw-r--r--
have_binlog_format_mixed.requi...
40
B
-rw-r--r--
have_binlog_format_row.require
38
B
-rw-r--r--
have_binlog_format_statement.r...
44
B
-rw-r--r--
have_compress.require
38
B
-rw-r--r--
have_cp1250_ch.require
79
B
-rw-r--r--
have_cp1251.require
84
B
-rw-r--r--
have_cp866.require
82
B
-rw-r--r--
have_cp932.require
83
B
-rw-r--r--
have_crypt.require
35
B
-rw-r--r--
have_debug.require
8
B
-rw-r--r--
have_debug_sync.require
13
B
-rw-r--r--
have_eucjpms.require
87
B
-rw-r--r--
have_euckr.require
81
B
-rw-r--r--
have_gb18030.require
87
B
-rw-r--r--
have_gb2312.require
84
B
-rw-r--r--
have_gbk.require
78
B
-rw-r--r--
have_geometry.require
38
B
-rw-r--r--
have_koi8r.require
81
B
-rw-r--r--
have_latin2_ch.require
78
B
-rw-r--r--
have_local_infile.require
36
B
-rw-r--r--
have_log_bin.require
31
B
-rw-r--r--
have_met_timezone.require
43
B
-rw-r--r--
have_moscow_leap_timezone.requ...
46
B
-rw-r--r--
have_mysql_upgrade.result
21
B
-rw-r--r--
have_ndb_debug.require
17
B
-rw-r--r--
have_ndb_extra.require
14
B
-rw-r--r--
have_ndbapi_examples.require
19
B
-rw-r--r--
have_nodebug.require
8
B
-rw-r--r--
have_optimizer_switch.require
19
B
-rw-r--r--
have_outfile.require
55
B
-rw-r--r--
have_partition.require
42
B
-rw-r--r--
have_perror.require
14
B
-rw-r--r--
have_profiling.require
39
B
-rw-r--r--
have_query_cache.require
41
B
-rw-r--r--
have_sjis.require
81
B
-rw-r--r--
have_ssl.require
33
B
-rw-r--r--
have_ssl_is_yes_or_disabled_on...
43
B
-rw-r--r--
have_statement_timeout.require
47
B
-rw-r--r--
have_symlink.require
37
B
-rw-r--r--
have_tis620.require
81
B
-rw-r--r--
have_ucs2.require
80
B
-rw-r--r--
have_ujis.require
81
B
-rw-r--r--
have_utf16.require
82
B
-rw-r--r--
have_utf32.require
82
B
-rw-r--r--
have_utf8.require
80
B
-rw-r--r--
have_utf8mb4.require
86
B
-rw-r--r--
having.result
24.34
KB
-rw-r--r--
heap.result
24.75
KB
-rw-r--r--
heap_auto_increment.result
894
B
-rw-r--r--
heap_btree.result
11.76
KB
-rw-r--r--
heap_hash.result
20.83
KB
-rw-r--r--
help.result
6.64
KB
-rw-r--r--
help_verbose.result
326
B
-rw-r--r--
host_cache_size_functionality....
3.32
KB
-rw-r--r--
ignore_strict.result
30.82
KB
-rw-r--r--
implicit_char_to_num_conversio...
6.44
KB
-rw-r--r--
implicit_commit.result
18.33
KB
-rw-r--r--
import_schema_mismatch.result
478
B
-rw-r--r--
index_merge_delete.result
25.04
KB
-rw-r--r--
index_merge_innodb.result
124.56
KB
-rw-r--r--
index_merge_insert-and-replace...
14.54
KB
-rw-r--r--
index_merge_intersect_dml.resu...
5.85
KB
-rw-r--r--
index_merge_myisam.result
144.52
KB
-rw-r--r--
index_merge_update.result
17.22
KB
-rw-r--r--
information_schema-big.result
2.81
KB
-rw-r--r--
information_schema.result
107.92
KB
-rw-r--r--
information_schema_chmod.resul...
182
B
-rw-r--r--
information_schema_db.result
9.98
KB
-rw-r--r--
information_schema_inno.result
4.33
KB
-rw-r--r--
information_schema_parameters....
22.49
KB
-rw-r--r--
information_schema_part.result
11.97
KB
-rw-r--r--
information_schema_routines.re...
30.81
KB
-rw-r--r--
init_connect.result
3.57
KB
-rw-r--r--
init_file.result
323
B
-rw-r--r--
initialize-bug20350099.result
1.04
KB
-rw-r--r--
initialize-bug20504142.result
1.17
KB
-rw-r--r--
initialize-bug21335821.result
895
B
-rw-r--r--
initialize-errors.result
578
B
-rw-r--r--
initialize-ignore-db.result
742
B
-rw-r--r--
initialize-init-acls.result
1.12
KB
-rw-r--r--
initialize-sha256.result
1.09
KB
-rw-r--r--
initialize.result
3.89
KB
-rw-r--r--
initialize_gtid.result
465
B
-rw-r--r--
innodb_deadlock.result
1.25
KB
-rw-r--r--
innodb_disabled.result
208
B
-rw-r--r--
innodb_explain_json_non_select...
293.06
KB
-rw-r--r--
innodb_explain_json_non_select...
299.29
KB
-rw-r--r--
innodb_explain_non_select_all....
136.52
KB
-rw-r--r--
innodb_explain_non_select_none...
136.37
KB
-rw-r--r--
innodb_icp.result
32.81
KB
-rw-r--r--
innodb_icp_all.result
32.88
KB
-rw-r--r--
innodb_icp_none.result
32.72
KB
-rw-r--r--
innodb_ignore_builtin.result
354
B
-rw-r--r--
innodb_log_file_size_functiona...
2.79
KB
-rw-r--r--
innodb_mrr.result
25.74
KB
-rw-r--r--
innodb_mrr_all.result
25.88
KB
-rw-r--r--
innodb_mrr_cost.result
25.71
KB
-rw-r--r--
innodb_mrr_cost_all.result
25.85
KB
-rw-r--r--
innodb_mrr_cost_icp.result
25.82
KB
-rw-r--r--
innodb_mrr_icp.result
25.85
KB
-rw-r--r--
innodb_mrr_none.result
25.66
KB
-rw-r--r--
innodb_mysql_lock.result
4.05
KB
-rw-r--r--
innodb_mysql_lock2.result
21.4
KB
-rw-r--r--
innodb_mysql_sync.result
25.87
KB
-rw-r--r--
innodb_pk_extension_off.result
20.33
KB
-rw-r--r--
innodb_pk_extension_on.result
20.58
KB
-rw-r--r--
innodb_recovery_with_upper_cas...
1.21
KB
-rw-r--r--
insert.result
30.75
KB
-rw-r--r--
insert_debug.result
1.29
KB
-rw-r--r--
insert_notembedded.result
5.58
KB
-rw-r--r--
insert_select.result
15.34
KB
-rw-r--r--
insert_update.result
18.89
KB
-rw-r--r--
installdb-bad-cipher.result
128
B
-rw-r--r--
internal_tmp_disk_storage_engi...
146.97
KB
-rw-r--r--
ipv4_as_ipv6.result
23.83
KB
-rw-r--r--
ipv6.result
13.89
KB
-rw-r--r--
is_debug_build.require
32
B
-rw-r--r--
is_deprecation.result
558
B
-rw-r--r--
is_embedded.require
16
B
-rw-r--r--
isam.result
15.65
KB
-rw-r--r--
join.result
55.68
KB
-rw-r--r--
join_cache_bka.result
108.89
KB
-rw-r--r--
join_cache_bka_nixbnl.result
108.17
KB
-rw-r--r--
join_cache_bkaunique.result
109.32
KB
-rw-r--r--
join_cache_bnl.result
107.23
KB
-rw-r--r--
join_cache_nojb.result
106.25
KB
-rw-r--r--
join_crash.result
4.53
KB
-rw-r--r--
join_file_handler.result
1.04
KB
-rw-r--r--
join_nested.result
86.66
KB
-rw-r--r--
join_nested_bka.result
92.75
KB
-rw-r--r--
join_nested_bka_nixbnl.result
89.71
KB
-rw-r--r--
join_optimizer.result
2.54
KB
-rw-r--r--
join_outer.result
96.52
KB
-rw-r--r--
join_outer_bka.result
96.89
KB
-rw-r--r--
join_outer_bka_nixbnl.result
94.69
KB
-rw-r--r--
join_outer_innodb.result
3.27
KB
-rw-r--r--
key.result
22.58
KB
-rw-r--r--
key_cache.result
11.88
KB
-rw-r--r--
key_diff.result
1.15
KB
-rw-r--r--
key_primary.result
890
B
-rw-r--r--
keywords.result
6.63
KB
-rw-r--r--
kill.result
8.88
KB
-rw-r--r--
kill_debug.result
1.58
KB
-rw-r--r--
limit.result
8.31
KB
-rw-r--r--
loaddata.result
20.8
KB
-rw-r--r--
loaddata_autocom_innodb.result
651
B
-rw-r--r--
loadxml.result
2.7
KB
-rw-r--r--
locale.result
5.59
KB
-rw-r--r--
lock.result
14.09
KB
-rw-r--r--
lock_multi.result
63.2
KB
-rw-r--r--
lock_multi_bug38499.result
964
B
-rw-r--r--
lock_multi_bug38691.result
812
B
-rw-r--r--
lock_sync.result
27.44
KB
-rw-r--r--
lock_tables_lost_commit.result
150
B
-rw-r--r--
locking_service.result
31.09
KB
-rw-r--r--
log_errchk.result
663
B
-rw-r--r--
log_state.result
9.66
KB
-rw-r--r--
log_state_bug33693.result
111
B
-rw-r--r--
log_tables-big.result
996
B
-rw-r--r--
log_tables.result
41.81
KB
-rw-r--r--
log_tables_debug.result
770
B
-rw-r--r--
log_tables_upgrade.result
2.35
KB
-rw-r--r--
log_timestamps.result
71
B
-rw-r--r--
long_tmpdir.result
99
B
-rw-r--r--
lowercase0.require
45
B
-rw-r--r--
lowercase1.require
45
B
-rw-r--r--
lowercase2.require
45
B
-rw-r--r--
lowercase_fs_off.result
3.46
KB
-rw-r--r--
lowercase_fs_on.result
75
B
-rw-r--r--
lowercase_mixed_tmpdir.result
162
B
-rw-r--r--
lowercase_mixed_tmpdir_innodb....
190
B
-rw-r--r--
lowercase_table.result
3.24
KB
-rw-r--r--
lowercase_table2.result
8.66
KB
-rw-r--r--
lowercase_table4.result
4.63
KB
-rw-r--r--
lowercase_table5.result
673
B
-rw-r--r--
lowercase_table_grant.result
2.01
KB
-rw-r--r--
lowercase_table_qcache.result
847
B
-rw-r--r--
lowercase_utf8.result
173
B
-rw-r--r--
lowercase_view.result
10.21
KB
-rw-r--r--
m_i_db.result
15.5
KB
-rw-r--r--
max_statement_time.result
12.81
KB
-rw-r--r--
mdl_sync.result
113.92
KB
-rw-r--r--
mdl_tablespace.result
34.72
KB
-rw-r--r--
merge-big.result
728
B
-rw-r--r--
merge.result
100.14
KB
-rw-r--r--
merge_innodb.result
1.31
KB
-rw-r--r--
merge_mmap.result
3.33
KB
-rw-r--r--
metadata.result
17.03
KB
-rw-r--r--
mix2_myisam.result
66.36
KB
-rw-r--r--
mix2_myisam_ucs2.result
15.35
KB
-rw-r--r--
multi_plugin_load.result
347
B
-rw-r--r--
multi_plugin_load_add.result
455
B
-rw-r--r--
multi_plugin_load_add2.result
455
B
-rw-r--r--
multi_statement.result
563
B
-rw-r--r--
multi_update.result
26.47
KB
-rw-r--r--
multi_update2.result
1016
B
-rw-r--r--
multi_update_innodb.result
4.52
KB
-rw-r--r--
multi_update_tiny_hash.result
1.5
KB
-rw-r--r--
myisam-blob.result
1.41
KB
-rw-r--r--
myisam-system.result
394
B
-rw-r--r--
myisam.result
96.84
KB
-rw-r--r--
myisam_crash_before_flush_keys...
1.15
KB
-rw-r--r--
myisam_debug.result
1.21
KB
-rw-r--r--
myisam_explain_json_non_select...
287.97
KB
-rw-r--r--
myisam_explain_json_non_select...
294.08
KB
-rw-r--r--
myisam_explain_non_select_all....
133.64
KB
-rw-r--r--
myisam_explain_non_select_none...
133.36
KB
-rw-r--r--
myisam_icp.result
31.96
KB
-rw-r--r--
myisam_icp_all.result
32.02
KB
-rw-r--r--
myisam_icp_none.result
31.84
KB
-rw-r--r--
myisam_mrr.result
24.26
KB
-rw-r--r--
myisam_mrr_all.result
24.43
KB
-rw-r--r--
myisam_mrr_cost.result
24.21
KB
-rw-r--r--
myisam_mrr_cost_all.result
24.38
KB
-rw-r--r--
myisam_mrr_cost_icp.result
24.35
KB
-rw-r--r--
myisam_mrr_icp.result
24.4
KB
-rw-r--r--
myisam_mrr_none.result
24.16
KB
-rw-r--r--
myisam_recover.result
4.57
KB
-rw-r--r--
myisam_row_rpl.result
2.04
KB
-rw-r--r--
myisampack.result
7.56
KB
-rw-r--r--
mysql-bug41486.result
465
B
-rw-r--r--
mysql-bug45236.result
329
B
-rw-r--r--
mysql.result
9.77
KB
-rw-r--r--
mysql_batch_mode.result
84
B
-rw-r--r--
mysql_binary_mode.result
1.52
KB
-rw-r--r--
mysql_client_test.result
8.92
KB
-rw-r--r--
mysql_client_test_embedded.res...
111
B
-rw-r--r--
mysql_client_test_qcache.resul...
500
B
-rw-r--r--
mysql_comments.result
6.68
KB
-rw-r--r--
mysql_config_editor.result
8.01
KB
-rw-r--r--
mysql_cp932.result
37
B
-rw-r--r--
mysql_embedded.result
181
B
-rw-r--r--
mysql_embedded_client_test.res...
153
B
-rw-r--r--
mysql_locale_posix.result
973
B
-rw-r--r--
mysql_not_windows.result
477
B
-rw-r--r--
mysql_plugin.result
4.92
KB
-rw-r--r--
mysql_protocols.result
208
B
-rw-r--r--
mysql_ssl.result
152
B
-rw-r--r--
mysql_ssl_default.result
889
B
-rw-r--r--
mysql_tzinfo_to_sql.result
22.11
KB
-rw-r--r--
mysql_tzinfo_to_sql_sys.result
1.28
KB
-rw-r--r--
mysql_upgrade.result
136.32
KB
-rw-r--r--
mysql_upgrade_slave_master_inf...
5
KB
-rw-r--r--
mysql_upgrade_ssl.result
5.65
KB
-rw-r--r--
mysql_upgrade_with_session_use...
2.77
KB
-rw-r--r--
mysqladmin.result
1.22
KB
-rw-r--r--
mysqladmin_shutdown.result
170
B
-rw-r--r--
mysqlbinlog.result
31.28
KB
-rw-r--r--
mysqlbinlog_base64_flag.result
3.89
KB
-rw-r--r--
mysqlbinlog_debug.result
235
B
-rw-r--r--
mysqlbinlog_hexdump.result
6.5
KB
-rw-r--r--
mysqlbinlog_mixed_or_statment....
855
B
-rw-r--r--
mysqlbinlog_raw_mode.result
8.32
KB
-rw-r--r--
mysqlbinlog_raw_mode_win.resul...
8.08
KB
-rw-r--r--
mysqlbinlog_row_big.result
2.42
KB
-rw-r--r--
mysqlcheck.result
19.17
KB
-rw-r--r--
mysqld--defaults-file.result
908
B
-rw-r--r--
mysqld--help-notwin.result
67.99
KB
-rw-r--r--
mysqld--help-win.result
68.06
KB
-rw-r--r--
mysqld_daemon.result
66
B
-rw-r--r--
mysqld_safe.result
142
B
-rw-r--r--
mysqldump-binary.result
3.51
KB
-rw-r--r--
mysqldump-compat.result
111
B
-rw-r--r--
mysqldump-max.result
11.33
KB
-rw-r--r--
mysqldump-no-binlog.result
50
B
-rw-r--r--
mysqldump.result
295.21
KB
-rw-r--r--
mysqldump_bug29998457.result
3.47
KB
-rw-r--r--
mysqldump_bug30042589.result
3.05
KB
-rw-r--r--
mysqldump_bugs.result
5.04
KB
-rw-r--r--
mysqldump_gtid_state.result
2.69
KB
-rw-r--r--
mysqldump_restore.result
4.01
KB
-rw-r--r--
mysqldumpslow.result
1.13
KB
-rw-r--r--
mysqlimport.result
833
B
-rw-r--r--
mysqlpump.result
16.38
KB
-rw-r--r--
mysqlpump_basic.result
23.91
KB
-rw-r--r--
mysqlpump_bugs.result
850
B
-rw-r--r--
mysqlpump_charset.result
15.54
KB
-rw-r--r--
mysqlpump_concurrency.result
11.41
KB
-rw-r--r--
mysqlpump_extended.result
13.01
KB
-rw-r--r--
mysqlpump_filters.result
11.34
KB
-rw-r--r--
mysqlpump_multi_thread.result
11.53
KB
-rw-r--r--
mysqlpump_partial_bkp.result
797
B
-rw-r--r--
mysqlshow.result
9.96
KB
-rw-r--r--
mysqlslap.result
7.53
KB
-rw-r--r--
mysqltest.result
33.29
KB
-rw-r--r--
named_pipe.result
65.98
KB
-rw-r--r--
negation_elimination.result
13
KB
-rw-r--r--
no-threads.result
329
B
-rw-r--r--
no_binlog.result
64
B
-rw-r--r--
no_binlog_gtid_empty_statement...
675
B
-rw-r--r--
no_binlog_gtid_empty_transacti...
683
B
-rw-r--r--
no_binlog_gtid_mode_on.result
4.75
KB
-rw-r--r--
no_binlog_gtid_mode_on_explici...
3.84
KB
-rw-r--r--
no_binlog_gtid_next_begin_caus...
1.4
KB
-rw-r--r--
no_binlog_gtid_next_partially_...
11.91
KB
-rw-r--r--
no_binlog_gtid_next_partially_...
1.13
KB
-rw-r--r--
no_binlog_gtid_next_partially_...
2.3
KB
-rw-r--r--
no_binlog_gtid_next_single_stm...
9.6
KB
-rw-r--r--
no_binlog_gtid_next_temporary_...
1.1
KB
-rw-r--r--
no_engine_substitution.result
6.01
KB
-rw-r--r--
not_asan.require
7
B
-rw-r--r--
not_embedded.require
16
B
-rw-r--r--
not_embedded_server.result
5.86
KB
-rw-r--r--
not_ndb.require
39
B
-rw-r--r--
not_openssl.require
36
B
-rw-r--r--
not_partition.result
5.75
KB
-rw-r--r--
not_ssl.require
32
B
-rw-r--r--
not_true.require
10
B
-rw-r--r--
not_valgrind.require
17
B
-rw-r--r--
not_windows.require
7
B
-rw-r--r--
null.result
16.17
KB
-rw-r--r--
null_key_all.result
27.81
KB
-rw-r--r--
null_key_icp.result
27.74
KB
-rw-r--r--
null_key_none.result
27.68
KB
-rw-r--r--
odbc.result
1.41
KB
-rw-r--r--
olap.result
20.44
KB
-rw-r--r--
one_thread_per_connection.requ...
44
B
-rw-r--r--
openssl.require
37
B
-rw-r--r--
openssl_1.result
9.65
KB
-rw-r--r--
opt_costmodel.result
11.47
KB
-rw-r--r--
opt_costmodel_downgrade.result
2.55
KB
-rw-r--r--
opt_costmodel_flush.result
27.03
KB
-rw-r--r--
opt_costmodel_pfs.result
296
B
-rw-r--r--
opt_costmodel_restart.result
7.52
KB
-rw-r--r--
opt_costmodel_tables.result
5.59
KB
-rw-r--r--
opt_costmodel_warnings.result
2.52
KB
-rw-r--r--
opt_hint_timeout.result
3.21
KB
-rw-r--r--
opt_hints.result
110.61
KB
-rw-r--r--
opt_hints_lowercase.result
1.95
KB
-rw-r--r--
opt_hints_pfs.result
1.93
KB
-rw-r--r--
opt_hints_subquery.result
135.37
KB
-rw-r--r--
optimizer_bug12837084.result
13.97
KB
-rw-r--r--
optimizer_debug_sync.result
1.32
KB
-rw-r--r--
optimizer_switch.result
30.14
KB
-rw-r--r--
order_by_all.result
78.98
KB
-rw-r--r--
order_by_icp_mrr.result
78.93
KB
-rw-r--r--
order_by_limit.result
18.46
KB
-rw-r--r--
order_by_none.result
78.59
KB
-rw-r--r--
order_by_sortkey.result
3.19
KB
-rw-r--r--
order_fill_sortbuf.result
262
B
-rw-r--r--
outfile.result
2.2
KB
-rw-r--r--
outfile_loaddata.result
11.02
KB
-rw-r--r--
overflow.result
235
B
-rw-r--r--
packet.result
9.48
KB
-rw-r--r--
parser-big-32bit.result
1.35
KB
-rw-r--r--
parser-big-64bit.result
1.35
KB
-rw-r--r--
parser.result
60.1
KB
-rw-r--r--
parser_bug21114_innodb.result
25.39
KB
-rw-r--r--
parser_not_embedded.result
4.42
KB
-rw-r--r--
parser_precedence.result
23.96
KB
-rw-r--r--
parser_stack.result
9.54
KB
-rw-r--r--
partition.result
124.74
KB
-rw-r--r--
partition_archive.result
7.74
KB
-rw-r--r--
partition_binlog.result
2.41
KB
-rw-r--r--
partition_binlog_stmt.result
955
B
-rw-r--r--
partition_blackhole.result
531
B
-rw-r--r--
partition_bug18198.result
8.07
KB
-rw-r--r--
partition_cache.result
7.16
KB
-rw-r--r--
partition_charset.result
434
B
-rw-r--r--
partition_column.result
25.2
KB
-rw-r--r--
partition_column_prune.result
4.39
KB
-rw-r--r--
partition_csv.result
2.69
KB
-rw-r--r--
partition_datatype.result
47.14
KB
-rw-r--r--
partition_debug.result
985
B
-rw-r--r--
partition_debug_sync.result
6.26
KB
-rw-r--r--
partition_debug_sync_stmt.resu...
3.65
KB
-rw-r--r--
partition_deprecation.result
4.88
KB
-rw-r--r--
partition_error.result
84.03
KB
-rw-r--r--
partition_exchange.result
65.43
KB
-rw-r--r--
partition_explicit_prune.resul...
57.97
KB
-rw-r--r--
partition_federated.result
271
B
-rw-r--r--
partition_grant.result
1.67
KB
-rw-r--r--
partition_hash.result
11.15
KB
-rw-r--r--
partition_index_innodb.result
6.16
KB
-rw-r--r--
partition_index_myisam.result
5.35
KB
-rw-r--r--
partition_innodb.result
50.73
KB
-rw-r--r--
partition_innodb_plugin.result
3.11
KB
-rw-r--r--
partition_innodb_semi_consiste...
2.92
KB
-rw-r--r--
partition_innodb_stmt.result
1.12
KB
-rw-r--r--
partition_innodb_tablespace.re...
35.12
KB
-rw-r--r--
partition_key_cache.result
22.78
KB
-rw-r--r--
partition_list.result
13.93
KB
-rw-r--r--
partition_locking.result
246.59
KB
-rw-r--r--
partition_locking_4.result
1.7
KB
-rw-r--r--
partition_mgm.result
9.83
KB
-rw-r--r--
partition_mgm_err.result
7.48
KB
-rw-r--r--
partition_mgm_err2.result
373
B
-rw-r--r--
partition_myisam.result
10.25
KB
-rw-r--r--
partition_not_blackhole.result
456
B
-rw-r--r--
partition_not_windows.result
4.27
KB
-rw-r--r--
partition_order.result
16.29
KB
-rw-r--r--
partition_plugin.result
4.48
KB
-rw-r--r--
partition_pruning.result
290.58
KB
-rw-r--r--
partition_range.result
46.69
KB
-rw-r--r--
partition_rename_longfilename....
1.91
KB
-rw-r--r--
partition_symlink.result
6.25
KB
-rw-r--r--
partition_sync.result
1.35
KB
-rw-r--r--
partition_truncate.result
675
B
-rw-r--r--
partition_utf8.result
2.01
KB
-rw-r--r--
partition_windows.result
3.3
KB
-rw-r--r--
per_thread_connection_handler....
1.45
KB
-rw-r--r--
perror-win.result
453
B
-rw-r--r--
perror.result
471
B
-rw-r--r--
plugin.result
8.52
KB
-rw-r--r--
plugin_auth.result
33.72
KB
-rw-r--r--
plugin_auth_expire.result
644
B
-rw-r--r--
plugin_auth_qa.result
24.47
KB
-rw-r--r--
plugin_auth_qa_1.result
16.11
KB
-rw-r--r--
plugin_auth_qa_2.result
11.17
KB
-rw-r--r--
plugin_auth_qa_3.result
1.29
KB
-rw-r--r--
plugin_auth_sha256.result
5.52
KB
-rw-r--r--
plugin_auth_sha256_2.result
1.96
KB
-rw-r--r--
plugin_auth_sha256_server_defa...
3.7
KB
-rw-r--r--
plugin_auth_sha256_server_defa...
4.02
KB
-rw-r--r--
plugin_auth_sha256_tls.result
2.53
KB
-rw-r--r--
plugin_auth_user_lock.result
1
KB
-rw-r--r--
plugin_load.result
76
B
-rw-r--r--
plugin_load_option.result
321
B
-rw-r--r--
plugin_not_embedded.result
995
B
-rw-r--r--
preload.result
3.84
KB
-rw-r--r--
profiling.result
16.4
KB
-rw-r--r--
ps.result
125.1
KB
-rw-r--r--
ps_10nestset.result
2.08
KB
-rw-r--r--
ps_11bugs.result
6.01
KB
-rw-r--r--
ps_1general.result
35.8
KB
-rw-r--r--
ps_2myisam.result
103.52
KB
-rw-r--r--
ps_3innodb.result
103.06
KB
-rw-r--r--
ps_4heap.result
102.98
KB
-rw-r--r--
ps_5merge.result
201.74
KB
-rw-r--r--
ps_ddl.result
53.74
KB
-rw-r--r--
ps_ddl1.result
11.06
KB
-rw-r--r--
ps_grant.result
3.99
KB
-rw-r--r--
ps_not_windows.result
516
B
-rw-r--r--
ps_w_max_indexes_64.result
189.58
KB
-rw-r--r--
python_with_json.require
27
B
-rw-r--r--
query_cache.result
89.5
KB
-rw-r--r--
query_cache_28249.result
3.58
KB
-rw-r--r--
query_cache_debug.result
11.1
KB
-rw-r--r--
query_cache_disabled.result
1.96
KB
-rw-r--r--
query_cache_merge.result
32.8
KB
-rw-r--r--
query_cache_notembedded.result
11.37
KB
-rw-r--r--
query_cache_ps_no_prot.result
12.26
KB
-rw-r--r--
query_cache_ps_ps_prot.result
11.09
KB
-rw-r--r--
query_cache_size_functionality...
7.69
KB
-rw-r--r--
query_cache_type_functionality...
9.19
KB
-rw-r--r--
query_cache_with_views.result
6.02
KB
-rw-r--r--
range_all.result
145.86
KB
-rw-r--r--
range_icp.result
145.41
KB
-rw-r--r--
range_icp_mrr.result
145.8
KB
-rw-r--r--
range_mrr.result
145.32
KB
-rw-r--r--
range_mrr_cost.result
144.95
KB
-rw-r--r--
range_none.result
144.9
KB
-rw-r--r--
range_with_memory_limit.result
190.38
KB
-rw-r--r--
read_many_rows_innodb.result
2.83
KB
-rw-r--r--
read_only.result
23.09
KB
-rw-r--r--
read_only_innodb.result
5.42
KB
-rw-r--r--
relay_log_index_variables.resu...
469
B
-rw-r--r--
relay_log_variables.result
475
B
-rw-r--r--
rename.result
1.58
KB
-rw-r--r--
renamedb.result
880
B
-rw-r--r--
repair.result
6.43
KB
-rw-r--r--
replace.result
1.27
KB
-rw-r--r--
reset_connection.result
6.46
KB
-rw-r--r--
rewrite_general_log.result
6.48
KB
-rw-r--r--
rewrite_slow_log.result
3.75
KB
-rw-r--r--
rollback.result
574
B
-rw-r--r--
round.result
6.92
KB
-rw-r--r--
row.result
23.11
KB
-rw-r--r--
rowid_order_innodb.result
3.6
KB
-rw-r--r--
rpl_colSize.result
4.39
KB
-rw-r--r--
rpl_connect_attr.result
1.21
KB
-rw-r--r--
rpl_extraColmaster_innodb.resu...
23.85
KB
-rw-r--r--
rpl_extraColmaster_myisam.resu...
23.85
KB
-rw-r--r--
rpl_multi_source_mysqldump_sla...
1.5
KB
-rw-r--r--
rpl_mysqldump_slave.result
867
B
-rw-r--r--
schema.result
2.34
KB
-rw-r--r--
secure_file_priv_win.result
1.43
KB
-rw-r--r--
select_all.result
180.1
KB
-rw-r--r--
select_all_bka.result
180.83
KB
-rw-r--r--
select_all_bka_nixbnl.result
180.1
KB
-rw-r--r--
select_for_update.result
755
B
-rw-r--r--
select_found.result
6.96
KB
-rw-r--r--
select_icp_mrr.result
180.04
KB
-rw-r--r--
select_icp_mrr_bka.result
180.77
KB
-rw-r--r--
select_icp_mrr_bka_nixbnl.resu...
180.04
KB
-rw-r--r--
select_none.result
179.38
KB
-rw-r--r--
select_none_bka.result
179.47
KB
-rw-r--r--
select_none_bka_nixbnl.result
178.64
KB
-rw-r--r--
select_safe.result
9.97
KB
-rw-r--r--
server_id.require
32
B
-rw-r--r--
server_id1.require
34
B
-rw-r--r--
server_offline_1.result
2.03
KB
-rw-r--r--
server_offline_2.result
1.28
KB
-rw-r--r--
server_offline_3.result
1.31
KB
-rw-r--r--
server_offline_4.result
958
B
-rw-r--r--
server_offline_5.result
7.23
KB
-rw-r--r--
server_offline_6.result
1.2
KB
-rw-r--r--
server_uuid.result
785
B
-rw-r--r--
server_uuid_embedded.result
325
B
-rw-r--r--
session_tracker.result
23.61
KB
-rw-r--r--
session_tracker_trx_state.resu...
38.38
KB
-rw-r--r--
shm.result
66.48
KB
-rw-r--r--
shm_server_restart.result
20
B
-rw-r--r--
show_check.result
78.63
KB
-rw-r--r--
show_processlist_state.result
150
B
-rw-r--r--
show_profile.result
491
B
-rw-r--r--
show_variables.result
372
B
-rw-r--r--
shutdown.result
325
B
-rw-r--r--
signal.result
71.01
KB
-rw-r--r--
signal_code.result
1020
B
-rw-r--r--
signal_demo1.result
6.25
KB
-rw-r--r--
signal_demo2.result
3.86
KB
-rw-r--r--
signal_demo3.result
3.33
KB
-rw-r--r--
signal_sqlmode.result
2.63
KB
-rw-r--r--
single_delete_update.result
24.5
KB
-rw-r--r--
skip_grants.result
2.7
KB
-rw-r--r--
skip_grants_flush.result
352
B
-rw-r--r--
skip_log_bin.result
167
B
-rw-r--r--
skip_name_resolve.result
2.51
KB
-rw-r--r--
slave-running.result
71
B
-rw-r--r--
slave-stopped.result
72
B
-rw-r--r--
slow_log.result
2.57
KB
-rw-r--r--
sort_buffer_size_functionality...
6.61
KB
-rw-r--r--
sp-big.result
1.47
KB
-rw-r--r--
sp-bugs.result
11.46
KB
-rw-r--r--
sp-code.result
29.86
KB
-rw-r--r--
sp-destruct.result
7.02
KB
-rw-r--r--
sp-dynamic.result
9.73
KB
-rw-r--r--
sp-error.result
84.05
KB
-rw-r--r--
sp-fib.result
656
B
-rw-r--r--
sp-lock.result
21.56
KB
-rw-r--r--
sp-no-code.result
307
B
-rw-r--r--
sp-prelocking.result
7
KB
-rw-r--r--
sp-security.result
26.42
KB
-rw-r--r--
sp-threads.result
2.01
KB
-rw-r--r--
sp-ucs2.result
5.45
KB
-rw-r--r--
sp-vars.result
30.01
KB
-rw-r--r--
sp.result
192.98
KB
-rw-r--r--
sp_debug.result
735
B
-rw-r--r--
sp_gis.result
853
B
-rw-r--r--
sp_notembedded.result
14.61
KB
-rw-r--r--
sp_stress_case.result
2.53
KB
-rw-r--r--
sp_sync.result
3.17
KB
-rw-r--r--
sp_trans.result
14.83
KB
-rw-r--r--
sp_trans_log.result
891
B
-rw-r--r--
sp_validation.result
34.85
KB
-rw-r--r--
sql_mode.result
23.42
KB
-rw-r--r--
sql_mode_default.result
3.39
KB
-rw-r--r--
ssl-big.result
69
B
-rw-r--r--
ssl-crl-revoked-crl.result
76
B
-rw-r--r--
ssl-sha512.result
636
B
-rw-r--r--
ssl.result
66.63
KB
-rw-r--r--
ssl_8k_key.result
42
B
-rw-r--r--
ssl_and_innodb.result
306
B
-rw-r--r--
ssl_auto_detect_openssl.result
361
B
-rw-r--r--
ssl_ca.result
857
B
-rw-r--r--
ssl_cipher.result
295
B
-rw-r--r--
ssl_compress.result
66.25
KB
-rw-r--r--
ssl_connect.result
10
B
-rw-r--r--
ssl_crl.result
1.21
KB
-rw-r--r--
ssl_crl_clients-valid.result
1.01
KB
-rw-r--r--
ssl_crl_clients.result
427
B
-rw-r--r--
ssl_crl_clients_valid.result
673
B
-rw-r--r--
ssl_crl_crlpath.result
808
B
-rw-r--r--
ssl_deprecated_tls_versions.re...
334
B
-rw-r--r--
ssl_verify_identity.result
1.35
KB
-rw-r--r--
status.result
11.15
KB
-rw-r--r--
status2.result
1.35
KB
-rw-r--r--
status_bug17954.result
582
B
-rw-r--r--
status_debug.result
3.48
KB
-rw-r--r--
strict.result
78.07
KB
-rw-r--r--
strict_autoinc_1myisam.result
1.05
KB
-rw-r--r--
strict_autoinc_2innodb.result
1.05
KB
-rw-r--r--
strict_autoinc_3heap.result
1.05
KB
-rw-r--r--
subquery_all.result
298.58
KB
-rw-r--r--
subquery_all_bka.result
298.82
KB
-rw-r--r--
subquery_all_bka_nixbnl.result
298.37
KB
-rw-r--r--
subquery_bugs.result
4.36
KB
-rw-r--r--
subquery_mat.result
133.51
KB
-rw-r--r--
subquery_mat_all.result
123.66
KB
-rw-r--r--
subquery_mat_none.result
122.3
KB
-rw-r--r--
subquery_nomat_nosj.result
297.96
KB
-rw-r--r--
subquery_nomat_nosj_bka.result
298.16
KB
-rw-r--r--
subquery_nomat_nosj_bka_nixbnl...
297.81
KB
-rw-r--r--
subquery_none.result
297.84
KB
-rw-r--r--
subquery_none_bka.result
297.94
KB
-rw-r--r--
subquery_none_bka_nixbnl.resul...
297.58
KB
-rw-r--r--
subquery_sj_all.result
500.49
KB
-rw-r--r--
subquery_sj_all_bka.result
502.11
KB
-rw-r--r--
subquery_sj_all_bka_nixbnl.res...
490.45
KB
-rw-r--r--
subquery_sj_all_bkaunique.resu...
498.68
KB
-rw-r--r--
subquery_sj_dupsweed.result
502.87
KB
-rw-r--r--
subquery_sj_dupsweed_bka.resul...
502.97
KB
-rw-r--r--
subquery_sj_dupsweed_bka_nixbn...
484.75
KB
-rw-r--r--
subquery_sj_dupsweed_bkaunique...
503
KB
-rw-r--r--
subquery_sj_firstmatch.result
487.96
KB
-rw-r--r--
subquery_sj_firstmatch_bka.res...
488.05
KB
-rw-r--r--
subquery_sj_firstmatch_bka_nix...
480.97
KB
-rw-r--r--
subquery_sj_firstmatch_bkauniq...
488.09
KB
-rw-r--r--
subquery_sj_innodb_all.result
6.38
KB
-rw-r--r--
subquery_sj_innodb_all_bka.res...
6.57
KB
-rw-r--r--
subquery_sj_innodb_all_bka_nix...
6.6
KB
-rw-r--r--
subquery_sj_innodb_all_bkauniq...
6.63
KB
-rw-r--r--
subquery_sj_innodb_none.result
6.66
KB
-rw-r--r--
subquery_sj_innodb_none_bka.re...
6.75
KB
-rw-r--r--
subquery_sj_innodb_none_bka_ni...
6.74
KB
-rw-r--r--
subquery_sj_innodb_none_bkauni...
6.79
KB
-rw-r--r--
subquery_sj_loosescan.result
502.69
KB
-rw-r--r--
subquery_sj_loosescan_bka.resu...
502.79
KB
-rw-r--r--
subquery_sj_loosescan_bka_nixb...
484.38
KB
-rw-r--r--
subquery_sj_loosescan_bkauniqu...
502.82
KB
-rw-r--r--
subquery_sj_mat.result
522.25
KB
-rw-r--r--
subquery_sj_mat_bka.result
522.34
KB
-rw-r--r--
subquery_sj_mat_bka_nixbnl.res...
505.5
KB
-rw-r--r--
subquery_sj_mat_bkaunique.resu...
522.38
KB
-rw-r--r--
subquery_sj_mat_nosj.result
549.88
KB
-rw-r--r--
subquery_sj_none.result
516.26
KB
-rw-r--r--
subquery_sj_none_bka.result
516.35
KB
-rw-r--r--
subquery_sj_none_bka_nixbnl.re...
509.41
KB
-rw-r--r--
subquery_sj_none_bkaunique.res...
516.38
KB
-rw-r--r--
subselect_debug.result
662
B
-rw-r--r--
subselect_gis.result
320
B
-rw-r--r--
subselect_innodb.result
28.76
KB
-rw-r--r--
subselect_notembedded.result
752
B
-rw-r--r--
sum_distinct-big.result
2
KB
-rw-r--r--
sum_distinct.result
3.14
KB
-rw-r--r--
symlink.result
8.12
KB
-rw-r--r--
synchronization.result
4.05
KB
-rw-r--r--
sysdate_is_now.result
76
B
-rw-r--r--
system_mysql_db.result
13.71
KB
-rw-r--r--
system_mysql_db_refs.result
3.14
KB
-rw-r--r--
table_definition_cache_functio...
6.9
KB
-rw-r--r--
table_open_cache_functionality...
12.92
KB
-rw-r--r--
tablelock.result
1.5
KB
-rw-r--r--
tablespace.result
10.57
KB
-rw-r--r--
temp_pool.result
646
B
-rw-r--r--
temp_table.result
8.18
KB
-rw-r--r--
temporal_literal.result
13.62
KB
-rw-r--r--
test_security_context.result
1.06
KB
-rw-r--r--
testdb_only.require
45
B
-rw-r--r--
timezone.result
2.58
KB
-rw-r--r--
timezone2.result
13.21
KB
-rw-r--r--
timezone3.result
2.21
KB
-rw-r--r--
timezone4.result
148
B
-rw-r--r--
timezone_debug.result
926
B
-rw-r--r--
timezone_grant.result
4.42
KB
-rw-r--r--
trans_read_only.result
1.38
KB
-rw-r--r--
transaction_isolation.result
4.3
KB
-rw-r--r--
transaction_read_only.result
5.39
KB
-rw-r--r--
trigger-compat.result
7.98
KB
-rw-r--r--
trigger-trans.result
6.45
KB
-rw-r--r--
trigger.result
87.73
KB
-rw-r--r--
trigger_debug.result
627
B
-rw-r--r--
trigger_notembedded.result
19.95
KB
-rw-r--r--
trigger_wl3253.result
26.27
KB
-rw-r--r--
trigger_wl6030.result
53.61
KB
-rw-r--r--
true.require
7
B
-rw-r--r--
truncate.result
3.7
KB
-rw-r--r--
truncate_coverage.result
2.4
KB
-rw-r--r--
type_binary.result
9.62
KB
-rw-r--r--
type_bit.result
18.23
KB
-rw-r--r--
type_bit_innodb.result
8.2
KB
-rw-r--r--
type_blob.result
40.47
KB
-rw-r--r--
type_date.result
21.96
KB
-rw-r--r--
type_datetime.result
34.39
KB
-rw-r--r--
type_decimal.result
36.16
KB
-rw-r--r--
type_enum.result
101.64
KB
-rw-r--r--
type_float.result
12.43
KB
-rw-r--r--
type_nchar.result
1.44
KB
-rw-r--r--
type_newdecimal-big.result
678
B
-rw-r--r--
type_newdecimal.result
68.9
KB
-rw-r--r--
type_ranges.result
17.61
KB
-rw-r--r--
type_set.result
4.58
KB
-rw-r--r--
type_string.result
139
B
-rw-r--r--
type_temporal_fractional.resul...
645.37
KB
-rw-r--r--
type_temporal_upgrade.result
13.45
KB
-rw-r--r--
type_time.result
120.35
KB
-rw-r--r--
type_timestamp.result
25.71
KB
-rw-r--r--
type_timestamp_explicit.result
31.6
KB
-rw-r--r--
type_uint.result
380
B
-rw-r--r--
type_varchar.result
22.85
KB
-rw-r--r--
type_year.result
7.16
KB
-rw-r--r--
udf.result
17.31
KB
-rw-r--r--
udf_services.result
499
B
-rw-r--r--
udf_skip_grants.result
223
B
-rw-r--r--
union.result
87.33
KB
-rw-r--r--
unsafe_binlog_innodb.result
4.36
KB
-rw-r--r--
update.result
24.32
KB
-rw-r--r--
upgrade.result
5.28
KB
-rw-r--r--
user_if_exists.result
9.13
KB
-rw-r--r--
user_limits.result
5.82
KB
-rw-r--r--
user_lock.result
23.14
KB
-rw-r--r--
user_var-binlog.result
2.21
KB
-rw-r--r--
user_var.result
18.95
KB
-rw-r--r--
utility_warnings.result
7
KB
-rw-r--r--
validate_password_plugin.resul...
12.25
KB
-rw-r--r--
validate_password_plugin_check...
3.69
KB
-rw-r--r--
varbinary.result
58
KB
-rw-r--r--
variables-big.result
972
B
-rw-r--r--
variables-notembedded.result
5.97
KB
-rw-r--r--
variables-win.result
347
B
-rw-r--r--
variables.result
63.66
KB
-rw-r--r--
variables_community.result
182
B
-rw-r--r--
variables_debug.result
2.13
KB
-rw-r--r--
version_token.result
11.29
KB
-rw-r--r--
version_token_bug21280801.resu...
2.72
KB
-rw-r--r--
version_token_errors.result
2.21
KB
-rw-r--r--
view.result
258
KB
-rw-r--r--
view_alias.result
6.19
KB
-rw-r--r--
view_grant.result
126.95
KB
-rw-r--r--
view_gtid_mode_on_debug.result
1.37
KB
-rw-r--r--
wait_timeout.result
1.07
KB
-rw-r--r--
warnings.result
11.89
KB
-rw-r--r--
warnings_engine_disabled.resul...
475
B
-rw-r--r--
windows.require
7
B
-rw-r--r--
windows.result
1.98
KB
-rw-r--r--
wl3836.result
2.71
KB
-rw-r--r--
wl5928.result
15.47
KB
-rw-r--r--
wl6219-csv.result
5.16
KB
-rw-r--r--
wl6219-innodb.result
5.18
KB
-rw-r--r--
wl6219-memory.result
5.18
KB
-rw-r--r--
wl6219-merge.result
3.87
KB
-rw-r--r--
wl6219-myisam.result
5.18
KB
-rw-r--r--
wl6219-upgrade.result
10.52
KB
-rw-r--r--
wl6301_1_not_windows.result
44
B
-rw-r--r--
wl6301_2_not_windows.result
46
B
-rw-r--r--
wl6301_3.result
89
B
-rw-r--r--
wl6443_deprecation.result
10.81
KB
-rw-r--r--
wl6661.result
6.33
KB
-rw-r--r--
wl6711_heap_to_disk.result
6.07
KB
-rw-r--r--
wl6978.result
214
B
-rw-r--r--
xa.result
13.51
KB
-rw-r--r--
xa_deadlock_binlog.result
3.08
KB
-rw-r--r--
xa_debug.result
3.18
KB
-rw-r--r--
xa_gtid.result
878
B
-rw-r--r--
xa_prepared_binlog_off.result
19.77
KB
-rw-r--r--
xml.result
41.94
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : function_defaults.result
# # Test of function defaults for any server, including embedded. # We run the same tests with different settings for better coverage. # # # Function defaults run 1. No microsecond precision. MyISAM. # set default_storage_engine=myisam; SET TIME_ZONE = "+00:00"; SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; Warnings: Warning 3090 Changing sql mode 'NO_AUTO_CREATE_USER' is deprecated. It will be removed in a future release. # # Test of errors for column data types that dont support function # defaults. # CREATE TABLE t1( a BIT DEFAULT CURRENT_TIMESTAMP ); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1( a TINYINT DEFAULT CURRENT_TIMESTAMP ); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1( a SMALLINT DEFAULT CURRENT_TIMESTAMP ); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1( a MEDIUMINT DEFAULT CURRENT_TIMESTAMP ); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1( a INT DEFAULT CURRENT_TIMESTAMP ); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1( a BIGINT DEFAULT CURRENT_TIMESTAMP ); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1( a FLOAT DEFAULT CURRENT_TIMESTAMP ); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1( a DECIMAL DEFAULT CURRENT_TIMESTAMP ); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1( a DATE DEFAULT CURRENT_TIMESTAMP ); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1( a TIME DEFAULT CURRENT_TIMESTAMP ); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1( a YEAR DEFAULT CURRENT_TIMESTAMP ); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1( a BIT ON UPDATE CURRENT_TIMESTAMP ); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1( a TINYINT ON UPDATE CURRENT_TIMESTAMP ); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1( a SMALLINT ON UPDATE CURRENT_TIMESTAMP ); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1( a MEDIUMINT ON UPDATE CURRENT_TIMESTAMP ); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1( a INT ON UPDATE CURRENT_TIMESTAMP ); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1( a BIGINT ON UPDATE CURRENT_TIMESTAMP ); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1( a FLOAT ON UPDATE CURRENT_TIMESTAMP ); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1( a DECIMAL ON UPDATE CURRENT_TIMESTAMP ); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1( a DATE ON UPDATE CURRENT_TIMESTAMP ); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1( a TIME ON UPDATE CURRENT_TIMESTAMP ); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1( a YEAR ON UPDATE CURRENT_TIMESTAMP ); ERROR HY000: Invalid ON UPDATE clause for 'a' column # # Test that the default clause behaves like NOW() regarding time zones. # CREATE TABLE t1 ( a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, c TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP, d TIMESTAMP NULL, e DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, f DATETIME DEFAULT CURRENT_TIMESTAMP, g DATETIME ON UPDATE CURRENT_TIMESTAMP, h DATETIME ); # 2011-09-27 14:11:08 UTC SET TIMESTAMP = 1317132668.654321; SET @old_time_zone = @@TIME_ZONE; SET TIME_ZONE = "+05:00"; INSERT INTO t1( d, h ) VALUES ( NOW(), NOW() ); SELECT * FROM t1; a b c d e f g h 2011-09-27 19:11:08 2011-09-27 19:11:08 0000-00-00 00:00:00 2011-09-27 19:11:08 2011-09-27 19:11:08 2011-09-27 19:11:08 NULL 2011-09-27 19:11:08 # 1989-05-13 01:02:03 SET TIMESTAMP = 611017323.543212; UPDATE t1 SET d = NOW(), h = NOW(); SELECT * FROM t1; a b c d e f g h 1989-05-13 04:02:03 2011-09-27 19:11:08 1989-05-13 04:02:03 1989-05-13 04:02:03 1989-05-13 04:02:03 2011-09-27 19:11:08 1989-05-13 04:02:03 1989-05-13 04:02:03 SET TIME_ZONE = @old_time_zone; DROP TABLE t1; # # Test of several TIMESTAMP columns with different function defaults. # CREATE TABLE t1 ( a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, c TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, d TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP, e TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP, f INT ); # 2011-04-19 07:22:02 UTC SET TIMESTAMP = 1303197722.534231; INSERT INTO t1 ( f ) VALUES (1); SELECT * FROM t1; a b c d e f 2011-04-19 07:22:02 2011-04-19 07:22:02 2011-04-19 07:22:02 0000-00-00 00:00:00 0000-00-00 00:00:00 1 # 2011-04-19 07:23:18 UTC SET TIMESTAMP = 1303197798.132435; UPDATE t1 SET f = 2; SELECT * FROM t1; a b c d e f 2011-04-19 07:23:18 2011-04-19 07:23:18 2011-04-19 07:22:02 2011-04-19 07:23:18 2011-04-19 07:23:18 2 DROP TABLE t1; # # Test of inserted values out of order. # CREATE TABLE t1 ( a INT, b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, c TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, d TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP, e TIMESTAMP NULL, f DATETIME, g DATETIME DEFAULT CURRENT_TIMESTAMP, h DATETIME ON UPDATE CURRENT_TIMESTAMP, i DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, j INT ); # 2011-04-19 07:22:02 UTC SET TIMESTAMP = 1303197722.534231; INSERT INTO t1 ( j, a ) VALUES ( 1, 1 ); SELECT * FROM t1; a b c d e f g h i j 1 2011-04-19 07:22:02 2011-04-19 07:22:02 0000-00-00 00:00:00 NULL NULL 2011-04-19 07:22:02 NULL 2011-04-19 07:22:02 1 DROP TABLE t1; # # Test of ON DUPLICATE KEY UPDATE # CREATE TABLE t1 ( a INT PRIMARY KEY, b INT, c TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, d TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, e TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP, f TIMESTAMP NOT NULL DEFAULT '1986-09-27 03:00:00.098765', g TIMESTAMP NULL, h DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, i DATETIME DEFAULT CURRENT_TIMESTAMP, j DATETIME ON UPDATE CURRENT_TIMESTAMP, k DATETIME NULL, l DATETIME DEFAULT '1986-09-27 03:00:00.098765' ); # 1977-12-21 23:00:00 UTC SET TIMESTAMP = 251593200.192837; INSERT INTO t1(a) VALUES (1) ON DUPLICATE KEY UPDATE b = 2; SELECT * FROM t1; a b c d e f g h i j k l 1 NULL 1977-12-21 23:00:00 1977-12-21 23:00:00 0000-00-00 00:00:00 1986-09-27 03:00:00 NULL 1977-12-21 23:00:00 1977-12-21 23:00:00 NULL NULL 1986-09-27 03:00:00 # 1975-05-21 23:00:00 UTC SET TIMESTAMP = 169945200.918273; INSERT INTO t1(a) VALUES (1) ON DUPLICATE KEY UPDATE b = 2; SELECT * FROM t1; a b c d e f g h i j k l 1 2 1975-05-21 23:00:00 1977-12-21 23:00:00 1975-05-21 23:00:00 1986-09-27 03:00:00 NULL 1975-05-21 23:00:00 1977-12-21 23:00:00 1975-05-21 23:00:00 NULL 1986-09-27 03:00:00 # 1973-08-14 09:11:22 UTC SET TIMESTAMP = 114167482.534231; INSERT INTO t1(a) VALUES (2) ON DUPLICATE KEY UPDATE b = 2; SELECT * FROM t1; a b c d e f g h i j k l 1 2 1975-05-21 23:00:00 1977-12-21 23:00:00 1975-05-21 23:00:00 1986-09-27 03:00:00 NULL 1975-05-21 23:00:00 1977-12-21 23:00:00 1975-05-21 23:00:00 NULL 1986-09-27 03:00:00 2 NULL 1973-08-14 09:11:22 1973-08-14 09:11:22 0000-00-00 00:00:00 1986-09-27 03:00:00 NULL 1973-08-14 09:11:22 1973-08-14 09:11:22 NULL NULL 1986-09-27 03:00:00 DROP TABLE t1; CREATE TABLE t1 ( a INT PRIMARY KEY, b INT, c TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ); # 2011-04-19 07:23:18 UTC SET TIMESTAMP = 1303197798.945156; INSERT INTO t1 VALUES (1, 0, '2001-01-01 01:01:01.111111'), (2, 0, '2002-02-02 02:02:02.222222'), (3, 0, '2003-03-03 03:03:03.333333'); SELECT * FROM t1; a b c 1 0 2001-01-01 01:01:01 2 0 2002-02-02 02:02:02 3 0 2003-03-03 03:03:03 UPDATE t1 SET b = 2, c = c WHERE a = 2; SELECT * FROM t1; a b c 1 0 2001-01-01 01:01:01 2 2 2002-02-02 02:02:02 3 0 2003-03-03 03:03:03 INSERT INTO t1 (a) VALUES (4); SELECT * FROM t1; a b c 1 0 2001-01-01 01:01:01 2 2 2002-02-02 02:02:02 3 0 2003-03-03 03:03:03 4 NULL 2011-04-19 07:23:18 UPDATE t1 SET c = '2004-04-04 04:04:04.444444' WHERE a = 4; SELECT * FROM t1; a b c 1 0 2001-01-01 01:01:01 2 2 2002-02-02 02:02:02 3 0 2003-03-03 03:03:03 4 NULL 2004-04-04 04:04:04 INSERT INTO t1 ( a ) VALUES ( 3 ), ( 5 ) ON DUPLICATE KEY UPDATE b = 3, c = c; SELECT * FROM t1; a b c 1 0 2001-01-01 01:01:01 2 2 2002-02-02 02:02:02 3 3 2003-03-03 03:03:03 4 NULL 2004-04-04 04:04:04 5 NULL 2011-04-19 07:23:18 INSERT INTO t1 (a, c) VALUES (4, '2004-04-04 00:00:00.444444'), (6, '2006-06-06 06:06:06.666666') ON DUPLICATE KEY UPDATE b = 4; SELECT * FROM t1; a b c 1 0 2001-01-01 01:01:01 2 2 2002-02-02 02:02:02 3 3 2003-03-03 03:03:03 4 4 2011-04-19 07:23:18 5 NULL 2011-04-19 07:23:18 6 NULL 2006-06-06 06:06:07 DROP TABLE t1; # # Test of REPLACE INTO executed as UPDATE. # CREATE TABLE t1 ( a INT PRIMARY KEY, b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, c DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, d TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, e DATETIME DEFAULT CURRENT_TIMESTAMP, f TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP, g DATETIME ON UPDATE CURRENT_TIMESTAMP, h TIMESTAMP NULL, i DATETIME ); # 1970-09-21 09:11:12 UTC SET TIMESTAMP = 22756272.163584; REPLACE INTO t1 ( a ) VALUES ( 1 ); SELECT * FROM t1; a b c d e f g h i 1 1970-09-21 09:11:12 1970-09-21 09:11:12 1970-09-21 09:11:12 1970-09-21 09:11:12 0000-00-00 00:00:00 NULL NULL NULL # 1970-11-10 14:16:17 UTC SET TIMESTAMP = 27094577.852954; REPLACE INTO t1 ( a ) VALUES ( 1 ); SELECT * FROM t1; a b c d e f g h i 1 1970-11-10 14:16:17 1970-11-10 14:16:17 1970-11-10 14:16:17 1970-11-10 14:16:17 0000-00-00 00:00:00 NULL NULL NULL DROP TABLE t1; # # Test of insertion of NULL, DEFAULT and an empty row for DEFAULT # CURRENT_TIMESTAMP. # CREATE TABLE t1 ( a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, b DATETIME DEFAULT CURRENT_TIMESTAMP, c INT ); # 2011-04-20 09:53:41 UTC SET TIMESTAMP = 1303293221.163578; INSERT INTO t1 VALUES (NULL, NULL, 1), (DEFAULT, DEFAULT, 2); INSERT INTO t1 ( a, b, c ) VALUES (NULL, NULL, 3), (DEFAULT, DEFAULT, 4); SELECT * FROM t1; a b c 2011-04-20 09:53:41 NULL 1 2011-04-20 09:53:41 2011-04-20 09:53:41 2 2011-04-20 09:53:41 NULL 3 2011-04-20 09:53:41 2011-04-20 09:53:41 4 SET TIME_ZONE = "+03:00"; SELECT * FROM t1; a b c 2011-04-20 12:53:41 NULL 1 2011-04-20 12:53:41 2011-04-20 09:53:41 2 2011-04-20 12:53:41 NULL 3 2011-04-20 12:53:41 2011-04-20 09:53:41 4 SET TIME_ZONE = "+00:00"; DROP TABLE t1; # 2011-04-20 07:05:39 UTC SET TIMESTAMP = 1303283139.195624; CREATE TABLE t1 ( a TIMESTAMP NOT NULL DEFAULT '2010-10-11 12:34:56' ON UPDATE CURRENT_TIMESTAMP, b DATETIME DEFAULT '2010-10-11 12:34:56' ); INSERT INTO t1 VALUES (NULL, NULL), (DEFAULT, DEFAULT); INSERT INTO t1 ( a, b ) VALUES (NULL, NULL), (DEFAULT, DEFAULT); SELECT * FROM t1; a b 2011-04-20 07:05:39 NULL 2010-10-11 12:34:56 2010-10-11 12:34:56 2011-04-20 07:05:39 NULL 2010-10-11 12:34:56 2010-10-11 12:34:56 DROP TABLE t1; # 2011-04-20 09:53:41 UTC SET TIMESTAMP = 1303293221.136952; CREATE TABLE t1 ( a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, c TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP, d TIMESTAMP NOT NULL DEFAULT '1986-09-27 03:00:00.098765', e TIMESTAMP NULL, f DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, g DATETIME DEFAULT CURRENT_TIMESTAMP, h DATETIME ON UPDATE CURRENT_TIMESTAMP, i DATETIME NULL, j DATETIME DEFAULT '1986-09-27 03:00:00.098765' ); INSERT INTO t1 VALUES (); INSERT INTO t1 SELECT NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL; SELECT * FROM t1; a b c d e f g h i j 2011-04-20 09:53:41 2011-04-20 09:53:41 0000-00-00 00:00:00 1986-09-27 03:00:00 NULL 2011-04-20 09:53:41 2011-04-20 09:53:41 NULL NULL 1986-09-27 03:00:00 2011-04-20 09:53:41 2011-04-20 09:53:41 2011-04-20 09:53:41 2011-04-20 09:53:41 NULL NULL NULL NULL NULL NULL DROP TABLE t1; # # Test of multiple-table UPDATE for DEFAULT CURRENT_TIMESTAMP # CREATE TABLE t1 ( a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, b DATETIME DEFAULT CURRENT_TIMESTAMP, c INT ); INSERT INTO t1 ( c ) VALUES (1); SELECT * FROM t1; a b c 2011-04-20 09:53:41 2011-04-20 09:53:41 1 # 2011-04-20 17:06:13 UTC SET TIMESTAMP = 1303311973.163587; UPDATE t1 t11, t1 t12 SET t11.c = 1; SELECT * FROM t1; a b c 2011-04-20 09:53:41 2011-04-20 09:53:41 1 UPDATE t1 t11, t1 t12 SET t11.c = 2; SELECT * FROM t1; a b c 2011-04-20 15:06:13 2011-04-20 09:53:41 2 DROP TABLE t1; CREATE TABLE t1 ( a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, b TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP, c DATETIME DEFAULT CURRENT_TIMESTAMP, d DATETIME ON UPDATE CURRENT_TIMESTAMP, e INT ); CREATE TABLE t2 ( f INT, g DATETIME ON UPDATE CURRENT_TIMESTAMP, h DATETIME DEFAULT CURRENT_TIMESTAMP, i TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP, j TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ); # 1995-03-11 00:02:03 UTC SET TIMESTAMP = 794880123.195676; INSERT INTO t1 ( e ) VALUES ( 1 ), ( 2 ); INSERT INTO t2 ( f ) VALUES ( 1 ), ( 2 ); SELECT * FROM t1; a b c d e 1995-03-11 00:02:03 0000-00-00 00:00:00 1995-03-11 00:02:03 NULL 1 1995-03-11 00:02:03 0000-00-00 00:00:00 1995-03-11 00:02:03 NULL 2 SELECT * FROM t2; f g h i j 1 NULL 1995-03-11 00:02:03 0000-00-00 00:00:00 1995-03-11 00:02:03 2 NULL 1995-03-11 00:02:03 0000-00-00 00:00:00 1995-03-11 00:02:03 # 1980-12-13 02:02:01 UTC SET TIMESTAMP = 345520921.196755; UPDATE t1, t2 SET t1.e = 3, t2.f = 4; SELECT * FROM t1; a b c d e 1995-03-11 00:02:03 1980-12-13 02:02:01 1995-03-11 00:02:03 1980-12-13 02:02:01 3 1995-03-11 00:02:03 1980-12-13 02:02:01 1995-03-11 00:02:03 1980-12-13 02:02:01 3 SELECT * FROM t2; f g h i j 4 1980-12-13 02:02:01 1995-03-11 00:02:03 1980-12-13 02:02:01 1995-03-11 00:02:03 4 1980-12-13 02:02:01 1995-03-11 00:02:03 1980-12-13 02:02:01 1995-03-11 00:02:03 DROP TABLE t1, t2; # # Test of multiple table update with temporary table and on the fly. # CREATE TABLE t1 ( a TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP, b DATETIME ON UPDATE CURRENT_TIMESTAMP, c INT, d INT ); CREATE TABLE t2 ( a TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP, b DATETIME ON UPDATE CURRENT_TIMESTAMP, c INT KEY, d INT ); INSERT INTO t1 ( c ) VALUES (1), (2); INSERT INTO t2 ( c ) VALUES (1), (2); # Test of multiple table update done on the fly # 2011-04-20 15:06:13 UTC SET TIMESTAMP = 1303311973.194685; UPDATE t1 JOIN t2 USING ( c ) SET t2.d = 1; SELECT * FROM t1; a b c d 0000-00-00 00:00:00 NULL 1 NULL 0000-00-00 00:00:00 NULL 2 NULL SELECT * FROM t2; a b c d 2011-04-20 15:06:13 2011-04-20 15:06:13 1 1 2011-04-20 15:06:13 2011-04-20 15:06:13 2 1 # Test of multiple table update done with temporary table. # 1979-01-15 03:02:01 SET TIMESTAMP = 285213721.134679; UPDATE t1 JOIN t2 USING ( c ) SET t1.d = 1; SELECT * FROM t1; a b c d 1979-01-15 02:02:01 1979-01-15 02:02:01 1 1 1979-01-15 02:02:01 1979-01-15 02:02:01 2 1 SELECT * FROM t2; a b c d 2011-04-20 15:06:13 2011-04-20 15:06:13 1 1 2011-04-20 15:06:13 2011-04-20 15:06:13 2 1 DROP TABLE t1, t2; # # Test of ON UPDATE CURRENT_TIMESTAMP. # CREATE TABLE t1 ( a TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP, b DATETIME ON UPDATE CURRENT_TIMESTAMP, c INT ); # 2011-04-20 09:53:41 UTC SET TIMESTAMP = 1303293221.794613; INSERT INTO t1 ( c ) VALUES ( 1 ); SELECT * FROM t1; a b c 0000-00-00 00:00:00 NULL 1 UPDATE t1 SET c = 1; SELECT * FROM t1; a b c 0000-00-00 00:00:00 NULL 1 UPDATE t1 SET c = 2; SELECT * FROM t1; a b c 2011-04-20 09:53:41 2011-04-20 09:53:41 2 # # Test of multiple-table UPDATE for ON UPDATE CURRENT_TIMESTAMP # # 2011-04-20 15:06:13 UTC SET TIMESTAMP = 1303311973.534231; UPDATE t1 t11, t1 t12 SET t11.c = 2; SELECT * FROM t1; a b c 2011-04-20 09:53:41 2011-04-20 09:53:41 2 UPDATE t1 t11, t1 t12 SET t11.c = 3; SELECT * FROM t1; a b c 2011-04-20 15:06:13 2011-04-20 15:06:13 3 DROP TABLE t1; # # Test of a multiple-table update where only one table is updated and # the updated table has a primary key. # CREATE TABLE t1 ( a INT, b INT, PRIMARY KEY (a) ); INSERT INTO t1 VALUES (1, 1),(2, 2),(3, 3),(4, 4); CREATE TABLE t2 ( a INT, b INT ); INSERT INTO t2 VALUES (1, 1),(2, 2),(3, 3),(4, 4),(5, 5); UPDATE t1, t2 SET t1.b = 100 WHERE t1.a = t2.a; SELECT * FROM t1; a b 1 100 2 100 3 100 4 100 SELECT * FROM t2; a b 1 1 2 2 3 3 4 4 5 5 DROP TABLE t1, t2; # # Test of ALTER TABLE, reordering columns. # CREATE TABLE t1 ( a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, b INT ); ALTER TABLE t1 MODIFY a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP AFTER b; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `b` int(11) DEFAULT NULL, `a` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; CREATE TABLE t1 ( a INT, b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, c TIMESTAMP NULL ); ALTER TABLE t1 MODIFY b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP FIRST; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `b` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `a` int(11) DEFAULT NULL, `c` timestamp NULL DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; CREATE TABLE t1 ( a INT, b TIMESTAMP NULL ); ALTER TABLE t1 MODIFY b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP FIRST; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `b` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `a` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; CREATE TABLE t1 ( a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, b TIMESTAMP NULL ); ALTER TABLE t1 MODIFY a TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER b; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `b` timestamp NULL DEFAULT NULL, `a` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; CREATE TABLE t1 ( a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, b TIMESTAMP NULL ); ALTER TABLE t1 MODIFY a TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER b; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `b` timestamp NULL DEFAULT NULL, `a` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; CREATE TABLE t1 ( a TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE NOW(), b INT, c TIMESTAMP NULL ); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP, `b` int(11) DEFAULT NULL, `c` timestamp NULL DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 ALTER TABLE t1 MODIFY a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP AFTER b; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `b` int(11) DEFAULT NULL, `a` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `c` timestamp NULL DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; CREATE TABLE t1 ( a TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE NOW(), b INT, c TIMESTAMP NULL ); ALTER TABLE t1 MODIFY c TIMESTAMP NULL FIRST; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `c` timestamp NULL DEFAULT NULL, `a` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP, `b` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; CREATE TABLE t1 ( a TIMESTAMP NOT NULL DEFAULT NOW() ON UPDATE CURRENT_TIMESTAMP, b INT, c TIMESTAMP NULL ); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `b` int(11) DEFAULT NULL, `c` timestamp NULL DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 ALTER TABLE t1 MODIFY a TIMESTAMP NOT NULL DEFAULT NOW() ON UPDATE CURRENT_TIMESTAMP AFTER b; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `b` int(11) DEFAULT NULL, `a` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `c` timestamp NULL DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; CREATE TABLE t1 ( a TIMESTAMP NOT NULL DEFAULT NOW() ON UPDATE CURRENT_TIMESTAMP, b INT, c TIMESTAMP NULL ); ALTER TABLE t1 MODIFY c TIMESTAMP NULL FIRST; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `c` timestamp NULL DEFAULT NULL, `a` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `b` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; # # Test of ALTER TABLE, adding columns. # CREATE TABLE t1 ( a INT ); ALTER TABLE t1 ADD COLUMN b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; # # Test of INSERT SELECT. # CREATE TABLE t1 ( a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, c DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, d DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ); CREATE TABLE t2 ( placeholder1 INT, placeholder2 INT, placeholder3 INT, placeholder4 INT, a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, b TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00', c DATETIME, d DATETIME ); # 1977-08-16 15:30:01 UTC SET TIMESTAMP = 240589801.654312; INSERT INTO t2 (a, b, c, d) VALUES ( '1977-08-16 15:30:01.123456', '1977-08-16 15:30:01.234567', '1977-08-16 15:30:01.345678', '1977-08-16 15:30:01.456789' ); # 1986-09-27 01:00:00 UTC SET TIMESTAMP = 528166800.132435; INSERT INTO t1 ( a, c ) SELECT a, c FROM t2; SELECT * FROM t1; a b c d 1977-08-16 15:30:01 1986-09-27 01:00:00 1977-08-16 15:30:01 1986-09-27 01:00:00 DROP TABLE t1, t2; # # Test of CREATE TABLE SELECT. # # We test that the columns of the source table are used to determine # function defaults for the receiving table. # # 1970-04-11 20:13:57 UTC SET TIMESTAMP = 8712837.657898; CREATE TABLE t1 ( a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, c TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP, d TIMESTAMP NOT NULL DEFAULT '1986-09-27 03:00:00.098765', e TIMESTAMP NULL, f DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, g DATETIME DEFAULT CURRENT_TIMESTAMP, h DATETIME ON UPDATE CURRENT_TIMESTAMP, i DATETIME NULL, j DATETIME DEFAULT '1986-09-27 03:00:00.098765' ); INSERT INTO t1 VALUES (); # 1971-01-31 21:13:57 UTC SET TIMESTAMP = 34200837.164937; CREATE TABLE t2 SELECT a FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t2; a 1970-04-11 20:13:57 CREATE TABLE t3 SELECT b FROM t1; SHOW CREATE TABLE t3; Table Create Table t3 CREATE TABLE `t3` ( `b` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t3; b 1970-04-11 20:13:57 CREATE TABLE t4 SELECT c FROM t1; SHOW CREATE TABLE t4; Table Create Table t4 CREATE TABLE `t4` ( `c` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t4; c 0000-00-00 00:00:00 CREATE TABLE t5 SELECT d FROM t1; SHOW CREATE TABLE t5; Table Create Table t5 CREATE TABLE `t5` ( `d` timestamp NOT NULL DEFAULT '1986-09-27 03:00:00' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t5; d 1986-09-27 03:00:00 CREATE TABLE t6 SELECT e FROM t1; SHOW CREATE TABLE t6; Table Create Table t6 CREATE TABLE `t6` ( `e` timestamp NULL DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t6; e NULL CREATE TABLE t7 SELECT f FROM t1; SHOW CREATE TABLE t7; Table Create Table t7 CREATE TABLE `t7` ( `f` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t7; f 1970-04-11 20:13:57 CREATE TABLE t8 SELECT g FROM t1; SHOW CREATE TABLE t8; Table Create Table t8 CREATE TABLE `t8` ( `g` datetime DEFAULT CURRENT_TIMESTAMP ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t8; g 1970-04-11 20:13:57 CREATE TABLE t9 SELECT h FROM t1; SHOW CREATE TABLE t9; Table Create Table t9 CREATE TABLE `t9` ( `h` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t9; h NULL CREATE TABLE t10 SELECT i FROM t1; SHOW CREATE TABLE t10; Table Create Table t10 CREATE TABLE `t10` ( `i` datetime DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t10; i NULL CREATE TABLE t11 SELECT j FROM t1; SHOW CREATE TABLE t11; Table Create Table t11 CREATE TABLE `t11` ( `j` datetime DEFAULT '1986-09-27 03:00:00' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t11; j 1986-09-27 03:00:00 CREATE TABLE t12 ( k TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, l TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, m TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, n TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP, o TIMESTAMP NOT NULL DEFAULT '1986-09-27 03:00:00.098765', p TIMESTAMP NULL, q DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, r DATETIME DEFAULT CURRENT_TIMESTAMP, s DATETIME ON UPDATE CURRENT_TIMESTAMP, t DATETIME NULL, u DATETIME DEFAULT '1986-09-27 03:00:00.098765' ) SELECT * FROM t1; SHOW CREATE TABLE t12; Table Create Table t12 CREATE TABLE `t12` ( `k` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `l` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `m` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `n` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP, `o` timestamp NOT NULL DEFAULT '1986-09-27 03:00:00', `p` timestamp NULL DEFAULT NULL, `q` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `r` datetime DEFAULT CURRENT_TIMESTAMP, `s` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, `t` datetime DEFAULT NULL, `u` datetime DEFAULT '1986-09-27 03:00:00', `a` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `b` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `c` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP, `d` timestamp NOT NULL DEFAULT '1986-09-27 03:00:00', `e` timestamp NULL DEFAULT NULL, `f` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `g` datetime DEFAULT CURRENT_TIMESTAMP, `h` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, `i` datetime DEFAULT NULL, `j` datetime DEFAULT '1986-09-27 03:00:00' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 # No function default for non-column expressions: CREATE TABLE t13 SELECT COALESCE(a,a) FROM t1; SHOW CREATE TABLE t13; Table Create Table t13 CREATE TABLE `t13` ( `COALESCE(a,a)` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t13; COALESCE(a,a) 1970-04-11 20:13:57 DROP TABLE t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13; # 1970-04-11 20:13:57 UTC SET TIMESTAMP = 8712837.164953; CREATE TABLE t1 ( a DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, b DATETIME DEFAULT CURRENT_TIMESTAMP, c DATETIME ON UPDATE CURRENT_TIMESTAMP, d DATETIME NULL, e DATETIME DEFAULT '1986-09-27 03:00:00.098765' ); INSERT INTO t1 VALUES (); # 1971-01-31 20:13:57 UTC SET TIMESTAMP = 34200837.915736; CREATE TABLE t2 SELECT a FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t2; a 1970-04-11 20:13:57 CREATE TABLE t3 SELECT b FROM t1; SHOW CREATE TABLE t3; Table Create Table t3 CREATE TABLE `t3` ( `b` datetime DEFAULT CURRENT_TIMESTAMP ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t3; b 1970-04-11 20:13:57 CREATE TABLE t4 SELECT c FROM t1; SHOW CREATE TABLE t4; Table Create Table t4 CREATE TABLE `t4` ( `c` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t4; c NULL CREATE TABLE t5 SELECT d FROM t1; SHOW CREATE TABLE t5; Table Create Table t5 CREATE TABLE `t5` ( `d` datetime DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t5; d NULL CREATE TABLE t6 SELECT e FROM t1; SHOW CREATE TABLE t6; Table Create Table t6 CREATE TABLE `t6` ( `e` datetime DEFAULT '1986-09-27 03:00:00' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t6; e 1986-09-27 03:00:00 # Test CREATE TABLE LIKE CREATE TABLE t7 LIKE t1; SHOW CREATE TABLE t7; Table Create Table t7 CREATE TABLE `t7` ( `a` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `b` datetime DEFAULT CURRENT_TIMESTAMP, `c` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, `d` datetime DEFAULT NULL, `e` datetime DEFAULT '1986-09-27 03:00:00' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1, t2, t3, t4, t5, t6, t7; # # Test of a CREATE TABLE SELECT that also declared columns. In this case # the function default for them should be activated during the execution of the # CREATE TABLE statement. # # 1970-01-01 03:16:40 SET TIMESTAMP = 1000.987654; CREATE TABLE t1 ( a INT ); INSERT INTO t1 VALUES ( 1 ), ( 2 ); CREATE TABLE t2 ( b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP) SELECT a FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `b` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `a` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SET TIMESTAMP = 2000.876543; INSERT INTO t2( a ) VALUES ( 3 ); SELECT * FROM t2; b a 1970-01-01 00:16:40 1 1970-01-01 00:16:40 2 1970-01-01 00:33:20 3 DROP TABLE t1, t2; # # Test of updating a view. # CREATE TABLE t1 ( a INT, b DATETIME DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE t2 ( a INT, b DATETIME ON UPDATE CURRENT_TIMESTAMP ); CREATE VIEW v1 AS SELECT * FROM t1; SHOW CREATE VIEW v1; View Create View character_set_client collation_connection v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a`,`t1`.`b` AS `b` from `t1` latin1 latin1_swedish_ci CREATE VIEW v2 AS SELECT * FROM t2; SHOW CREATE VIEW v2; View Create View character_set_client collation_connection v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `t2`.`a` AS `a`,`t2`.`b` AS `b` from `t2` latin1 latin1_swedish_ci # 1971-01-31 21:13:57 UTC SET TIMESTAMP = 34200837.348564; INSERT INTO v1 ( a ) VALUES ( 1 ); INSERT INTO v2 ( a ) VALUES ( 1 ); SELECT * FROM t1; a b 1 1971-01-31 20:13:57 SELECT * FROM v1; a b 1 1971-01-31 20:13:57 SELECT * FROM t2; a b 1 NULL SELECT * FROM v2; a b 1 NULL # 1970-04-11 20:13:57 UTC SET TIMESTAMP = 8712837.567332; UPDATE v1 SET a = 2; UPDATE v2 SET a = 2; SELECT * FROM t1; a b 2 1971-01-31 20:13:57 SELECT * FROM v1; a b 2 1971-01-31 20:13:57 SELECT * FROM t2; a b 2 1970-04-11 20:13:57 SELECT * FROM v2; a b 2 1970-04-11 20:13:57 DROP VIEW v1, v2; DROP TABLE t1, t2; # # Test with stored procedures. # CREATE TABLE t1 ( a INT, b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, c TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, d TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP, e TIMESTAMP NULL, f DATETIME DEFAULT CURRENT_TIMESTAMP, g DATETIME ON UPDATE CURRENT_TIMESTAMP ); CREATE PROCEDURE p1() INSERT INTO test.t1( a ) VALUES ( 1 ); CREATE PROCEDURE p2() UPDATE t1 SET a = 2 WHERE a = 1; # 1971-01-31 20:13:57 UTC SET TIMESTAMP = 34200837.876544; CALL p1(); SELECT * FROM t1; a b c d e f g 1 1971-01-31 20:13:57 1971-01-31 20:13:57 0000-00-00 00:00:00 NULL 1971-01-31 20:13:57 NULL # 1970-04-11 21:13:57 UTC SET TIMESTAMP = 8712837.143546; CALL p2(); SELECT * FROM t1; a b c d e f g 2 1970-04-11 20:13:57 1971-01-31 20:13:57 1970-04-11 20:13:57 NULL 1971-01-31 20:13:57 1970-04-11 20:13:57 DROP PROCEDURE p1; DROP PROCEDURE p2; DROP TABLE t1; # # Test with triggers. # CREATE TABLE t1 ( a INT, b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, c TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, d TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP, e TIMESTAMP NULL, f DATETIME, g DATETIME DEFAULT CURRENT_TIMESTAMP, h DATETIME ON UPDATE CURRENT_TIMESTAMP, i DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ); CREATE TABLE t2 ( a INT ); CREATE TRIGGER t2_trg BEFORE INSERT ON t2 FOR EACH ROW BEGIN INSERT INTO t1 ( a ) VALUES ( 1 ); END| # 1971-01-31 21:13:57 UTC SET TIMESTAMP = 34200837.978675; INSERT INTO t2 ( a ) VALUES ( 1 ); SELECT * FROM t1; a b c d e f g h i 1 1971-01-31 20:13:57 1971-01-31 20:13:57 0000-00-00 00:00:00 NULL NULL 1971-01-31 20:13:57 NULL 1971-01-31 20:13:57 DROP TRIGGER t2_trg; CREATE TRIGGER t2_trg BEFORE INSERT ON t2 FOR EACH ROW BEGIN UPDATE t1 SET a = 2; END| # 1970-04-11 21:13:57 UTC SET TIMESTAMP = 8712837.456789; INSERT INTO t2 ( a ) VALUES ( 1 ); SELECT * FROM t1; a b c d e f g h i 2 1970-04-11 20:13:57 1971-01-31 20:13:57 1970-04-11 20:13:57 NULL NULL 1971-01-31 20:13:57 1970-04-11 20:13:57 1970-04-11 20:13:57 DROP TABLE t1, t2; # # Test where the assignment target is not a column. # CREATE TABLE t1 ( a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ); CREATE TABLE t2 ( a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ); CREATE TABLE t3 ( a TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP ); CREATE TABLE t4 ( a TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP ); CREATE VIEW v1 AS SELECT a COLLATE latin1_german1_ci AS b FROM t1; CREATE VIEW v2 ( b ) AS SELECT a COLLATE latin1_german1_ci FROM t2; CREATE VIEW v3 AS SELECT a COLLATE latin1_german1_ci AS b FROM t3; CREATE VIEW v4 ( b ) AS SELECT a COLLATE latin1_german1_ci FROM t4; INSERT INTO v1 ( b ) VALUES ( '2007-10-24 00:03:34.010203' ); SELECT a FROM t1; a 2007-10-24 00:03:34 INSERT INTO v2 ( b ) VALUES ( '2007-10-24 00:03:34.010203' ); SELECT a FROM t2; a 2007-10-24 00:03:34 INSERT INTO t3 VALUES (); UPDATE v3 SET b = '2007-10-24 00:03:34.010203'; SELECT a FROM t3; a 2007-10-24 00:03:34 INSERT INTO t4 VALUES (); UPDATE v4 SET b = '2007-10-24 00:03:34.010203'; SELECT a FROM t4; a 2007-10-24 00:03:34 DROP VIEW v1, v2, v3, v4; DROP TABLE t1, t2, t3, t4; # # Test of LOAD DATA/XML INFILE # This tests behavior of function defaults for TIMESTAMP and DATETIME # columns. during LOAD ... INFILE. # As can be seen here, a TIMESTAMP column with only ON UPDATE # CURRENT_TIMESTAMP will still have CURRENT_TIMESTAMP inserted on LOAD # ... INFILE if the value is missing. For DATETIME columns a NULL value # is inserted instead. # CREATE TABLE t1 ( a INT, b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, c TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, d TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP, e TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, f DATETIME, g DATETIME DEFAULT CURRENT_TIMESTAMP, h DATETIME ON UPDATE CURRENT_TIMESTAMP, i DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ); CREATE TABLE t2 ( a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, c TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP, d TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, e DATETIME NOT NULL, f DATETIME NOT NULL DEFAULT '1977-01-02 12:13:14', g DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL, h DATETIME ON UPDATE CURRENT_TIMESTAMP NOT NULL, i DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL ); SELECT 1 INTO OUTFILE 't3.dat' FROM dual; SELECT NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL INTO OUTFILE 't4.dat' FROM dual; SELECT 1, 2 INTO OUTFILE 't5.dat' FROM dual; # Mon Aug 1 15:11:19 2011 UTC SET TIMESTAMP = 1312211479.918273; LOAD DATA INFILE 't3.dat' INTO TABLE t1; Warnings: Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns SELECT * FROM t1; a 1 b 2011-08-01 15:11:19 c 2011-08-01 15:11:19 d 2011-08-01 15:11:19 e 2011-08-01 15:11:19 f NULL g NULL h NULL i NULL LOAD DATA INFILE 't4.dat' INTO TABLE t2; Warnings: Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'e' at row 1 Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'f' at row 1 Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'g' at row 1 Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'h' at row 1 Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'i' at row 1 SELECT a FROM t2; a 2011-08-01 15:11:19 SELECT b FROM t2; b 2011-08-01 15:11:19 SELECT c FROM t2; c 2011-08-01 15:11:19 SELECT d FROM t2; d 2011-08-01 15:11:19 # As shown here, supplying a NULL value to a non-nullable # column with no default value results in the zero date. SELECT e FROM t2; e 0000-00-00 00:00:00 # As shown here, supplying a NULL value to a non-nullable column with a # default value results in the zero date. SELECT f FROM t2; f 0000-00-00 00:00:00 # As shown here, supplying a NULL value to a non-nullable column with a # default function results in the zero date. SELECT g FROM t2; g 0000-00-00 00:00:00 # As shown here, supplying a NULL value to a non-nullable DATETIME ON # UPDATE CURRENT_TIMESTAMP column with no default value results in the # zero date. SELECT h FROM t2; h 0000-00-00 00:00:00 SELECT i FROM t2; i 0000-00-00 00:00:00 DELETE FROM t1; DELETE FROM t2; # Read t3 file into t1 # The syntax will cause a different code path to be taken # (read_fixed_length()) than under the LOAD ... INTO TABLE t1 command # above. The code in this path is copy-pasted code from the path taken # under the syntax used in the previous LOAD command. LOAD DATA INFILE 't3.dat' INTO TABLE t1 FIELDS TERMINATED BY '' ENCLOSED BY ''; Warnings: Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns SELECT b FROM t1; b 2011-08-01 15:11:19 SELECT c FROM t1; c 2011-08-01 15:11:19 SELECT d FROM t1; d 2011-08-01 15:11:19 SELECT e FROM t1; e 2011-08-01 15:11:19 # Yes, a missing field cannot be NULL using this syntax, so it will # zero date instead. Says a comment in read_fixed_length() : "No fields # specified in fields_vars list can be NULL in this format." # It appears to be by design. This is inconsistent with LOAD DATA INFILE # syntax in previous test. SELECT f FROM t1; f 0000-00-00 00:00:00 SELECT g FROM t1; g 0000-00-00 00:00:00 # See comment above "SELECT f FROM f1". SELECT h FROM t1; h 0000-00-00 00:00:00 SELECT i FROM t1; i 0000-00-00 00:00:00 DELETE FROM t1; LOAD DATA INFILE 't5.dat' INTO TABLE t1 ( a, @dummy ); SELECT * FROM t1; a b c d e f g h i 1 2011-08-01 15:11:19 2011-08-01 15:11:19 0000-00-00 00:00:00 2011-08-01 15:11:19 NULL 2011-08-01 15:11:19 NULL 2011-08-01 15:11:19 SELECT @dummy; @dummy 2 DELETE FROM t1; LOAD DATA INFILE 't3.dat' INTO TABLE t1 ( a ) SET c = '2005-06-06 08:09:10'; SELECT * FROM t1; a b c d e f g h i 1 2011-08-01 15:11:19 2005-06-06 08:09:10 0000-00-00 00:00:00 2011-08-01 15:11:19 NULL 2011-08-01 15:11:19 NULL 2011-08-01 15:11:19 DELETE FROM t1; LOAD DATA INFILE 't3.dat' INTO TABLE t1 ( a ) SET g = '2005-06-06 08:09:10'; SELECT * FROM t1; a b c d e f g h i 1 2011-08-01 15:11:19 2011-08-01 15:11:19 0000-00-00 00:00:00 2011-08-01 15:11:19 NULL 2005-06-06 08:09:10 NULL 2011-08-01 15:11:19 DELETE FROM t1; # Load a static XML file LOAD XML INFILE '../../std_data/onerow.xml' INTO TABLE t1 ROWS IDENTIFIED BY '<row>'; Missing tags are treated as NULL SELECT * FROM t1; a 1 b 2011-08-01 15:11:19 c 2011-08-01 15:11:19 d 2011-08-01 15:11:19 e 2011-08-01 15:11:19 f NULL g NULL h NULL i NULL DROP TABLE t1, t2; # # Similar LOAD DATA tests in another form # # All of this test portion has been run on a pre-WL5874 trunk # (except that like_b and like_c didn't exist) and all result # differences are a bug. # Regarding like_b its definition is the same as b's except # that the constant default is replaced with a function # default. Our expectation is that like_b would behave # like b: if b is set to NULL, or set to 0000-00-00, or set to # its default, then the same should apply to like_b. Same for # like_c vs c. # Mon Aug 1 15:11:19 2011 UTC SET TIMESTAMP = 1312211479.089786; SELECT 1 INTO OUTFILE "file1.dat" FROM dual; SELECT NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL INTO OUTFILE "file2.dat" FROM dual; # Too short row CREATE TABLE t1 ( dummy INT, a DATETIME NULL DEFAULT NULL, b DATETIME NULL DEFAULT "2011-11-18", like_b DATETIME NULL DEFAULT CURRENT_TIMESTAMP, c DATETIME NOT NULL DEFAULT "2011-11-18", like_c DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, d TIMESTAMP NULL DEFAULT "2011-05-03" ON UPDATE CURRENT_TIMESTAMP, e TIMESTAMP NOT NULL DEFAULT "2011-05-03", f TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, g TIMESTAMP NULL DEFAULT NULL, h INT NULL, i INT NOT NULL DEFAULT 42 ); # There is no promotion SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `dummy` int(11) DEFAULT NULL, `a` datetime DEFAULT NULL, `b` datetime DEFAULT '2011-11-18 00:00:00', `like_b` datetime DEFAULT CURRENT_TIMESTAMP, `c` datetime NOT NULL DEFAULT '2011-11-18 00:00:00', `like_c` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `d` timestamp NULL DEFAULT '2011-05-03 00:00:00' ON UPDATE CURRENT_TIMESTAMP, `e` timestamp NOT NULL DEFAULT '2011-05-03 00:00:00', `f` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `g` timestamp NULL DEFAULT NULL, `h` int(11) DEFAULT NULL, `i` int(11) NOT NULL DEFAULT '42' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 LOAD DATA INFILE "file1.dat" INTO table t1; Warnings: Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns # It is strange that "like_b" gets NULL when "b" gets 0. But # this is consistent with how "a" gets NULL when "b" gets 0, # with how "g" gets NULL when "d" gets 0, and with how "h" gets # NULL when "i" gets 0. Looks like "DEFAULT # <non-NULL-constant>" is changed to 0, whereas DEFAULT NULL # and DEFAULT NOW are changed to NULL. SELECT * FROM t1; dummy 1 a NULL b 0000-00-00 00:00:00 like_b NULL c 0000-00-00 00:00:00 like_c 0000-00-00 00:00:00 d 0000-00-00 00:00:00 e 2011-08-01 15:11:19 f 2011-08-01 15:11:19 g NULL h NULL i 0 delete from t1; alter table t1 modify f TIMESTAMP NULL default CURRENT_TIMESTAMP; # There is no promotion SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `dummy` int(11) DEFAULT NULL, `a` datetime DEFAULT NULL, `b` datetime DEFAULT '2011-11-18 00:00:00', `like_b` datetime DEFAULT CURRENT_TIMESTAMP, `c` datetime NOT NULL DEFAULT '2011-11-18 00:00:00', `like_c` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `d` timestamp NULL DEFAULT '2011-05-03 00:00:00' ON UPDATE CURRENT_TIMESTAMP, `e` timestamp NOT NULL DEFAULT '2011-05-03 00:00:00', `f` timestamp NULL DEFAULT CURRENT_TIMESTAMP, `g` timestamp NULL DEFAULT NULL, `h` int(11) DEFAULT NULL, `i` int(11) NOT NULL DEFAULT '42' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 LOAD DATA INFILE "file1.dat" INTO table t1; Warnings: Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns SELECT * FROM t1; dummy 1 a NULL b 0000-00-00 00:00:00 like_b NULL c 0000-00-00 00:00:00 like_c 0000-00-00 00:00:00 d 0000-00-00 00:00:00 e 2011-08-01 15:11:19 f NULL g NULL h NULL i 0 delete from t1; drop table t1; # Conclusion derived from trunk's results: # DATETIME DEFAULT <non-NULL-constant> (b,c) gets 0000-00-00, # DATETIME DEFAULT NULL (a) gets NULL, # TIMESTAMP NULL DEFAULT <non-NULL-constant> (d) gets 0000-00-00, # TIMESTAMP NULL DEFAULT NULL (g) gets NULL, # TIMESTAMP NULL DEFAULT NOW (f after ALTER) gets NULL, # TIMESTAMP NOT NULL (f before ALTER, e) gets NOW. ### Loading NULL ### CREATE TABLE t1 ( dummy INT, a DATETIME NULL DEFAULT NULL, b DATETIME NULL DEFAULT "2011-11-18", like_b DATETIME NULL DEFAULT CURRENT_TIMESTAMP, c DATETIME NOT NULL DEFAULT "2011-11-18", like_c DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, d TIMESTAMP NULL DEFAULT "2011-05-03" ON UPDATE CURRENT_TIMESTAMP, e TIMESTAMP NOT NULL DEFAULT "2011-05-03", f TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, g TIMESTAMP NULL DEFAULT NULL, h INT NULL, i INT NOT NULL DEFAULT 42 ); # There is no promotion SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `dummy` int(11) DEFAULT NULL, `a` datetime DEFAULT NULL, `b` datetime DEFAULT '2011-11-18 00:00:00', `like_b` datetime DEFAULT CURRENT_TIMESTAMP, `c` datetime NOT NULL DEFAULT '2011-11-18 00:00:00', `like_c` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `d` timestamp NULL DEFAULT '2011-05-03 00:00:00' ON UPDATE CURRENT_TIMESTAMP, `e` timestamp NOT NULL DEFAULT '2011-05-03 00:00:00', `f` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `g` timestamp NULL DEFAULT NULL, `h` int(11) DEFAULT NULL, `i` int(11) NOT NULL DEFAULT '42' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 LOAD DATA INFILE "file2.dat" INTO table t1; Warnings: Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'c' at row 1 Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'like_c' at row 1 Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'i' at row 1 SELECT * FROM t1; dummy NULL a NULL b NULL like_b NULL c 0000-00-00 00:00:00 like_c 0000-00-00 00:00:00 d NULL e 2011-08-01 15:11:19 f 2011-08-01 15:11:19 g NULL h NULL i 0 delete from t1; alter table t1 modify f TIMESTAMP NULL default CURRENT_TIMESTAMP; # There is no promotion SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `dummy` int(11) DEFAULT NULL, `a` datetime DEFAULT NULL, `b` datetime DEFAULT '2011-11-18 00:00:00', `like_b` datetime DEFAULT CURRENT_TIMESTAMP, `c` datetime NOT NULL DEFAULT '2011-11-18 00:00:00', `like_c` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `d` timestamp NULL DEFAULT '2011-05-03 00:00:00' ON UPDATE CURRENT_TIMESTAMP, `e` timestamp NOT NULL DEFAULT '2011-05-03 00:00:00', `f` timestamp NULL DEFAULT CURRENT_TIMESTAMP, `g` timestamp NULL DEFAULT NULL, `h` int(11) DEFAULT NULL, `i` int(11) NOT NULL DEFAULT '42' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 LOAD DATA INFILE "file2.dat" INTO table t1; Warnings: Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'c' at row 1 Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'like_c' at row 1 Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'i' at row 1 SELECT * FROM t1; dummy NULL a NULL b NULL like_b NULL c 0000-00-00 00:00:00 like_c 0000-00-00 00:00:00 d NULL e 2011-08-01 15:11:19 f NULL g NULL h NULL i 0 delete from t1; # Conclusion derived from trunk's results: # DATETIME NULL (a,b) gets NULL, # DATETIME NOT NULL (c) gets 0000-00-00, # TIMESTAMP NULL (d,f,g) gets NULL, # TIMESTAMP NOT NULL (e) gets NOW. drop table t1; # # Test of updatable views with check options. The option can be violated # using ON UPDATE updates which is very strange as this offers a loophole # in this integrity check. # SET TIME_ZONE = "+03:00"; # 1970-01-01 03:16:40 SET TIMESTAMP = 1000.123456; CREATE TABLE t1 ( a INT, b TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=MyISAM DEFAULT CHARSET=latin1 INSERT INTO t1 ( a ) VALUES ( 1 ); SELECT * FROM t1; a b 1 1970-01-01 03:16:40 CREATE VIEW v1 AS SELECT * FROM t1 WHERE b <= '1970-01-01 03:16:40.123456' WITH CHECK OPTION; SELECT * FROM v1; a b 1 1970-01-01 03:16:40 # 1970-01-01 03:33:20 SET TIMESTAMP = 2000.000234; Logically, there should be an ER_VIEW_CHECK_FAILED here. UPDATE v1 SET a = 2; SELECT * FROM t1; a b 2 1970-01-01 03:33:20 DROP VIEW v1; DROP TABLE t1; CREATE TABLE t1 ( a TIMESTAMP NOT NULL DEFAULT '1973-08-14 09:11:22.089786' ON UPDATE CURRENT_TIMESTAMP, c INT KEY ); # 1973-08-14 09:11:22 UTC SET TIMESTAMP = 114167482.534231; INSERT INTO t1 ( c ) VALUES ( 1 ); CREATE VIEW v1 AS SELECT * FROM t1 WHERE a >= '1973-08-14 09:11:22' WITH LOCAL CHECK OPTION; SELECT * FROM v1; a c 1973-08-14 09:11:22 1 SET TIMESTAMP = 1.126789; Logically, there should be an ER_VIEW_CHECK_FAILED here. INSERT INTO v1 ( c ) VALUES ( 1 ) ON DUPLICATE KEY UPDATE c = 2; SELECT * FROM v1; a c DROP VIEW v1; DROP TABLE t1; # # Bug 13095459 - MULTI-TABLE UPDATE MODIFIES A ROW TWICE # CREATE TABLE t1 ( a INT, b INT, ts TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY ( a, ts ) ); INSERT INTO t1( a, b, ts ) VALUES ( 1, 0, '2000-09-28 17:44:34' ); CREATE TABLE t2 ( a INT ); INSERT INTO t2 VALUES ( 1 ); UPDATE t1 STRAIGHT_JOIN t2 SET t1.b = t1.b + 1 WHERE t1.a = 1 AND t1.ts >= '2000-09-28 00:00:00'; SELECT b FROM t1; b 1 DROP TABLE t1, t2; # # Bug#11745578: 17392: ALTER TABLE ADD COLUMN TIMESTAMP DEFAULT # CURRENT_TIMESTAMP INSERTS ZERO # SET timestamp = 1000; CREATE TABLE t1 ( b INT ); INSERT INTO t1 VALUES (1),(2); ALTER TABLE t1 ADD COLUMN a6 DATETIME DEFAULT NOW() ON UPDATE NOW() FIRST; ALTER TABLE t1 ADD COLUMN a5 DATETIME DEFAULT NOW() FIRST; ALTER TABLE t1 ADD COLUMN a4 DATETIME ON UPDATE NOW() FIRST; ALTER TABLE t1 ADD COLUMN a3 TIMESTAMP NOT NULL DEFAULT NOW() ON UPDATE NOW() FIRST; ALTER TABLE t1 ADD COLUMN a2 TIMESTAMP NOT NULL DEFAULT NOW() FIRST; ALTER TABLE t1 ADD COLUMN a1 TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE NOW() FIRST; ALTER TABLE t1 ADD COLUMN c1 TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE NOW() AFTER b; ALTER TABLE t1 ADD COLUMN c2 TIMESTAMP NOT NULL DEFAULT NOW() AFTER c1; ALTER TABLE t1 ADD COLUMN c3 TIMESTAMP NOT NULL DEFAULT NOW() ON UPDATE NOW() AFTER c2; ALTER TABLE t1 ADD COLUMN c4 DATETIME ON UPDATE NOW() AFTER c3; ALTER TABLE t1 ADD COLUMN c5 DATETIME DEFAULT NOW() AFTER c4; ALTER TABLE t1 ADD COLUMN c6 DATETIME DEFAULT NOW() ON UPDATE NOW() AFTER c5; SELECT * FROM t1; a1 a2 a3 a4 a5 a6 b c1 c2 c3 c4 c5 c6 0000-00-00 00:00:00 1970-01-01 03:16:40 1970-01-01 03:16:40 NULL 1970-01-01 03:16:40 1970-01-01 03:16:40 1 0000-00-00 00:00:00 1970-01-01 03:16:40 1970-01-01 03:16:40 NULL 1970-01-01 03:16:40 1970-01-01 03:16:40 0000-00-00 00:00:00 1970-01-01 03:16:40 1970-01-01 03:16:40 NULL 1970-01-01 03:16:40 1970-01-01 03:16:40 2 0000-00-00 00:00:00 1970-01-01 03:16:40 1970-01-01 03:16:40 NULL 1970-01-01 03:16:40 1970-01-01 03:16:40 DROP TABLE t1; CREATE TABLE t1 ( a TIMESTAMP NOT NULL DEFAULT NOW() ON UPDATE CURRENT_TIMESTAMP, b DATETIME DEFAULT NOW() ); INSERT INTO t1 VALUES (); SET timestamp = 1000000000; ALTER TABLE t1 MODIFY COLUMN a TIMESTAMP(3) DEFAULT CURRENT_TIMESTAMP(3); ALTER TABLE t1 MODIFY COLUMN b DATETIME(3) DEFAULT CURRENT_TIMESTAMP(3); SELECT * FROM t1; a b 1970-01-01 03:16:40.000 1970-01-01 03:16:40.000 DROP TABLE t1; CREATE TABLE t1 ( a TIMESTAMP NOT NULL DEFAULT '1999-12-01 11:22:33' ON UPDATE CURRENT_TIMESTAMP, b DATETIME DEFAULT '1999-12-01 11:22:33' ); INSERT INTO t1 VALUES (); ALTER TABLE t1 MODIFY COLUMN a TIMESTAMP DEFAULT NOW(); ALTER TABLE t1 MODIFY COLUMN b DATETIME DEFAULT NOW(); INSERT INTO t1 VALUES (); SELECT * FROM t1; a b 1999-12-01 11:22:33 1999-12-01 11:22:33 2001-09-09 04:46:40 2001-09-09 04:46:40 DROP TABLE t1; SET sql_mode = default; # # Function defaults run 2. Six digits scale on seconds # precision. InnoDB. # set default_storage_engine=innodb; SET TIME_ZONE = "+00:00"; SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; Warnings: Warning 3090 Changing sql mode 'NO_AUTO_CREATE_USER' is deprecated. It will be removed in a future release. # # Test of errors for column data types that dont support function # defaults. # CREATE TABLE t1( a BIT DEFAULT CURRENT_TIMESTAMP(6) ); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1( a TINYINT DEFAULT CURRENT_TIMESTAMP(6) ); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1( a SMALLINT DEFAULT CURRENT_TIMESTAMP(6) ); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1( a MEDIUMINT DEFAULT CURRENT_TIMESTAMP(6) ); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1( a INT DEFAULT CURRENT_TIMESTAMP(6) ); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1( a BIGINT DEFAULT CURRENT_TIMESTAMP(6) ); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1( a FLOAT DEFAULT CURRENT_TIMESTAMP(6) ); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1( a DECIMAL DEFAULT CURRENT_TIMESTAMP(6) ); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1( a DATE DEFAULT CURRENT_TIMESTAMP(6) ); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1( a TIME DEFAULT CURRENT_TIMESTAMP(6) ); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1( a YEAR DEFAULT CURRENT_TIMESTAMP(6) ); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1( a BIT ON UPDATE CURRENT_TIMESTAMP(6) ); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1( a TINYINT ON UPDATE CURRENT_TIMESTAMP(6) ); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1( a SMALLINT ON UPDATE CURRENT_TIMESTAMP(6) ); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1( a MEDIUMINT ON UPDATE CURRENT_TIMESTAMP(6) ); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1( a INT ON UPDATE CURRENT_TIMESTAMP(6) ); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1( a BIGINT ON UPDATE CURRENT_TIMESTAMP(6) ); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1( a FLOAT ON UPDATE CURRENT_TIMESTAMP(6) ); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1( a DECIMAL ON UPDATE CURRENT_TIMESTAMP(6) ); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1( a DATE ON UPDATE CURRENT_TIMESTAMP(6) ); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1( a TIME ON UPDATE CURRENT_TIMESTAMP(6) ); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1( a YEAR ON UPDATE CURRENT_TIMESTAMP(6) ); ERROR HY000: Invalid ON UPDATE clause for 'a' column # # Test that the default clause behaves like NOW() regarding time zones. # CREATE TABLE t1 ( a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), c TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6), d TIMESTAMP(6) NULL, e DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), f DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6), g DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6), h DATETIME(6) ); # 2011-09-27 14:11:08 UTC SET TIMESTAMP = 1317132668.654321; SET @old_time_zone = @@TIME_ZONE; SET TIME_ZONE = "+05:00"; INSERT INTO t1( d, h ) VALUES ( NOW(6), NOW(6) ); SELECT * FROM t1; a b c d e f g h 2011-09-27 19:11:08.654321 2011-09-27 19:11:08.654321 0000-00-00 00:00:00.000000 2011-09-27 19:11:08.654321 2011-09-27 19:11:08.654321 2011-09-27 19:11:08.654321 NULL 2011-09-27 19:11:08.654321 # 1989-05-13 01:02:03 SET TIMESTAMP = 611017323.543212; UPDATE t1 SET d = NOW(6), h = NOW(6); SELECT * FROM t1; a b c d e f g h 1989-05-13 04:02:03.543212 2011-09-27 19:11:08.654321 1989-05-13 04:02:03.543212 1989-05-13 04:02:03.543212 1989-05-13 04:02:03.543212 2011-09-27 19:11:08.654321 1989-05-13 04:02:03.543212 1989-05-13 04:02:03.543212 SET TIME_ZONE = @old_time_zone; DROP TABLE t1; # # Test of several TIMESTAMP columns with different function defaults. # CREATE TABLE t1 ( a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), c TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), d TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6), e TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6), f INT ); # 2011-04-19 07:22:02 UTC SET TIMESTAMP = 1303197722.534231; INSERT INTO t1 ( f ) VALUES (1); SELECT * FROM t1; a b c d e f 2011-04-19 07:22:02.534231 2011-04-19 07:22:02.534231 2011-04-19 07:22:02.534231 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 1 # 2011-04-19 07:23:18 UTC SET TIMESTAMP = 1303197798.132435; UPDATE t1 SET f = 2; SELECT * FROM t1; a b c d e f 2011-04-19 07:23:18.132435 2011-04-19 07:23:18.132435 2011-04-19 07:22:02.534231 2011-04-19 07:23:18.132435 2011-04-19 07:23:18.132435 2 DROP TABLE t1; # # Test of inserted values out of order. # CREATE TABLE t1 ( a INT, b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), c TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), d TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6), e TIMESTAMP(6) NULL, f DATETIME(6), g DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6), h DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6), i DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), j INT ); # 2011-04-19 07:22:02 UTC SET TIMESTAMP = 1303197722.534231; INSERT INTO t1 ( j, a ) VALUES ( 1, 1 ); SELECT * FROM t1; a b c d e f g h i j 1 2011-04-19 07:22:02.534231 2011-04-19 07:22:02.534231 0000-00-00 00:00:00.000000 NULL NULL 2011-04-19 07:22:02.534231 NULL 2011-04-19 07:22:02.534231 1 DROP TABLE t1; # # Test of ON DUPLICATE KEY UPDATE # CREATE TABLE t1 ( a INT PRIMARY KEY, b INT, c TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), d TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), e TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6), f TIMESTAMP(6) NOT NULL DEFAULT '1986-09-27 03:00:00.098765', g TIMESTAMP(6) NULL, h DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), i DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6), j DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6), k DATETIME(6) NULL, l DATETIME(6) DEFAULT '1986-09-27 03:00:00.098765' ); # 1977-12-21 23:00:00 UTC SET TIMESTAMP = 251593200.192837; INSERT INTO t1(a) VALUES (1) ON DUPLICATE KEY UPDATE b = 2; SELECT * FROM t1; a b c d e f g h i j k l 1 NULL 1977-12-21 23:00:00.192837 1977-12-21 23:00:00.192837 0000-00-00 00:00:00.000000 1986-09-27 03:00:00.098765 NULL 1977-12-21 23:00:00.192837 1977-12-21 23:00:00.192837 NULL NULL 1986-09-27 03:00:00.098765 # 1975-05-21 23:00:00 UTC SET TIMESTAMP = 169945200.918273; INSERT INTO t1(a) VALUES (1) ON DUPLICATE KEY UPDATE b = 2; SELECT * FROM t1; a b c d e f g h i j k l 1 2 1975-05-21 23:00:00.918273 1977-12-21 23:00:00.192837 1975-05-21 23:00:00.918273 1986-09-27 03:00:00.098765 NULL 1975-05-21 23:00:00.918273 1977-12-21 23:00:00.192837 1975-05-21 23:00:00.918273 NULL 1986-09-27 03:00:00.098765 # 1973-08-14 09:11:22 UTC SET TIMESTAMP = 114167482.534231; INSERT INTO t1(a) VALUES (2) ON DUPLICATE KEY UPDATE b = 2; SELECT * FROM t1; a b c d e f g h i j k l 1 2 1975-05-21 23:00:00.918273 1977-12-21 23:00:00.192837 1975-05-21 23:00:00.918273 1986-09-27 03:00:00.098765 NULL 1975-05-21 23:00:00.918273 1977-12-21 23:00:00.192837 1975-05-21 23:00:00.918273 NULL 1986-09-27 03:00:00.098765 2 NULL 1973-08-14 09:11:22.534231 1973-08-14 09:11:22.534231 0000-00-00 00:00:00.000000 1986-09-27 03:00:00.098765 NULL 1973-08-14 09:11:22.534231 1973-08-14 09:11:22.534231 NULL NULL 1986-09-27 03:00:00.098765 DROP TABLE t1; CREATE TABLE t1 ( a INT PRIMARY KEY, b INT, c TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) ); # 2011-04-19 07:23:18 UTC SET TIMESTAMP = 1303197798.945156; INSERT INTO t1 VALUES (1, 0, '2001-01-01 01:01:01.111111'), (2, 0, '2002-02-02 02:02:02.222222'), (3, 0, '2003-03-03 03:03:03.333333'); SELECT * FROM t1; a b c 1 0 2001-01-01 01:01:01.111111 2 0 2002-02-02 02:02:02.222222 3 0 2003-03-03 03:03:03.333333 UPDATE t1 SET b = 2, c = c WHERE a = 2; SELECT * FROM t1; a b c 1 0 2001-01-01 01:01:01.111111 2 2 2002-02-02 02:02:02.222222 3 0 2003-03-03 03:03:03.333333 INSERT INTO t1 (a) VALUES (4); SELECT * FROM t1; a b c 1 0 2001-01-01 01:01:01.111111 2 2 2002-02-02 02:02:02.222222 3 0 2003-03-03 03:03:03.333333 4 NULL 2011-04-19 07:23:18.945156 UPDATE t1 SET c = '2004-04-04 04:04:04.444444' WHERE a = 4; SELECT * FROM t1; a b c 1 0 2001-01-01 01:01:01.111111 2 2 2002-02-02 02:02:02.222222 3 0 2003-03-03 03:03:03.333333 4 NULL 2004-04-04 04:04:04.444444 INSERT INTO t1 ( a ) VALUES ( 3 ), ( 5 ) ON DUPLICATE KEY UPDATE b = 3, c = c; SELECT * FROM t1; a b c 1 0 2001-01-01 01:01:01.111111 2 2 2002-02-02 02:02:02.222222 3 3 2003-03-03 03:03:03.333333 4 NULL 2004-04-04 04:04:04.444444 5 NULL 2011-04-19 07:23:18.945156 INSERT INTO t1 (a, c) VALUES (4, '2004-04-04 00:00:00.444444'), (6, '2006-06-06 06:06:06.666666') ON DUPLICATE KEY UPDATE b = 4; SELECT * FROM t1; a b c 1 0 2001-01-01 01:01:01.111111 2 2 2002-02-02 02:02:02.222222 3 3 2003-03-03 03:03:03.333333 4 4 2011-04-19 07:23:18.945156 5 NULL 2011-04-19 07:23:18.945156 6 NULL 2006-06-06 06:06:06.666666 DROP TABLE t1; # # Test of REPLACE INTO executed as UPDATE. # CREATE TABLE t1 ( a INT PRIMARY KEY, b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), c DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), d TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), e DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6), f TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6), g DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6), h TIMESTAMP(6) NULL, i DATETIME(6) ); # 1970-09-21 09:11:12 UTC SET TIMESTAMP = 22756272.163584; REPLACE INTO t1 ( a ) VALUES ( 1 ); SELECT * FROM t1; a b c d e f g h i 1 1970-09-21 09:11:12.163584 1970-09-21 09:11:12.163584 1970-09-21 09:11:12.163584 1970-09-21 09:11:12.163584 0000-00-00 00:00:00.000000 NULL NULL NULL # 1970-11-10 14:16:17 UTC SET TIMESTAMP = 27094577.852954; REPLACE INTO t1 ( a ) VALUES ( 1 ); SELECT * FROM t1; a b c d e f g h i 1 1970-11-10 14:16:17.852954 1970-11-10 14:16:17.852954 1970-11-10 14:16:17.852954 1970-11-10 14:16:17.852954 0000-00-00 00:00:00.000000 NULL NULL NULL DROP TABLE t1; # # Test of insertion of NULL, DEFAULT and an empty row for DEFAULT # CURRENT_TIMESTAMP. # CREATE TABLE t1 ( a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), b DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6), c INT ); # 2011-04-20 09:53:41 UTC SET TIMESTAMP = 1303293221.163578; INSERT INTO t1 VALUES (NULL, NULL, 1), (DEFAULT, DEFAULT, 2); INSERT INTO t1 ( a, b, c ) VALUES (NULL, NULL, 3), (DEFAULT, DEFAULT, 4); SELECT * FROM t1; a b c 2011-04-20 09:53:41.163578 NULL 1 2011-04-20 09:53:41.163578 2011-04-20 09:53:41.163578 2 2011-04-20 09:53:41.163578 NULL 3 2011-04-20 09:53:41.163578 2011-04-20 09:53:41.163578 4 SET TIME_ZONE = "+03:00"; SELECT * FROM t1; a b c 2011-04-20 12:53:41.163578 NULL 1 2011-04-20 12:53:41.163578 2011-04-20 09:53:41.163578 2 2011-04-20 12:53:41.163578 NULL 3 2011-04-20 12:53:41.163578 2011-04-20 09:53:41.163578 4 SET TIME_ZONE = "+00:00"; DROP TABLE t1; # 2011-04-20 07:05:39 UTC SET TIMESTAMP = 1303283139.195624; CREATE TABLE t1 ( a TIMESTAMP(6) NOT NULL DEFAULT '2010-10-11 12:34:56' ON UPDATE CURRENT_TIMESTAMP(6), b DATETIME(6) DEFAULT '2010-10-11 12:34:56' ); INSERT INTO t1 VALUES (NULL, NULL), (DEFAULT, DEFAULT); INSERT INTO t1 ( a, b ) VALUES (NULL, NULL), (DEFAULT, DEFAULT); SELECT * FROM t1; a b 2011-04-20 07:05:39.195624 NULL 2010-10-11 12:34:56.000000 2010-10-11 12:34:56.000000 2011-04-20 07:05:39.195624 NULL 2010-10-11 12:34:56.000000 2010-10-11 12:34:56.000000 DROP TABLE t1; # 2011-04-20 09:53:41 UTC SET TIMESTAMP = 1303293221.136952; CREATE TABLE t1 ( a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), c TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6), d TIMESTAMP(6) NOT NULL DEFAULT '1986-09-27 03:00:00.098765', e TIMESTAMP(6) NULL, f DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), g DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6), h DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6), i DATETIME(6) NULL, j DATETIME(6) DEFAULT '1986-09-27 03:00:00.098765' ); INSERT INTO t1 VALUES (); INSERT INTO t1 SELECT NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL; SELECT * FROM t1; a b c d e f g h i j 2011-04-20 09:53:41.136952 2011-04-20 09:53:41.136952 0000-00-00 00:00:00.000000 1986-09-27 03:00:00.098765 NULL 2011-04-20 09:53:41.136952 2011-04-20 09:53:41.136952 NULL NULL 1986-09-27 03:00:00.098765 2011-04-20 09:53:41.136952 2011-04-20 09:53:41.136952 2011-04-20 09:53:41.136952 2011-04-20 09:53:41.136952 NULL NULL NULL NULL NULL NULL DROP TABLE t1; # # Test of multiple-table UPDATE for DEFAULT CURRENT_TIMESTAMP # CREATE TABLE t1 ( a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), b DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6), c INT ); INSERT INTO t1 ( c ) VALUES (1); SELECT * FROM t1; a b c 2011-04-20 09:53:41.136952 2011-04-20 09:53:41.136952 1 # 2011-04-20 17:06:13 UTC SET TIMESTAMP = 1303311973.163587; UPDATE t1 t11, t1 t12 SET t11.c = 1; SELECT * FROM t1; a b c 2011-04-20 09:53:41.136952 2011-04-20 09:53:41.136952 1 UPDATE t1 t11, t1 t12 SET t11.c = 2; SELECT * FROM t1; a b c 2011-04-20 15:06:13.163587 2011-04-20 09:53:41.136952 2 DROP TABLE t1; CREATE TABLE t1 ( a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), b TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6), c DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6), d DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6), e INT ); CREATE TABLE t2 ( f INT, g DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6), h DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6), i TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6), j TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ); # 1995-03-11 00:02:03 UTC SET TIMESTAMP = 794880123.195676; INSERT INTO t1 ( e ) VALUES ( 1 ), ( 2 ); INSERT INTO t2 ( f ) VALUES ( 1 ), ( 2 ); SELECT * FROM t1; a b c d e 1995-03-11 00:02:03.195676 0000-00-00 00:00:00.000000 1995-03-11 00:02:03.195676 NULL 1 1995-03-11 00:02:03.195676 0000-00-00 00:00:00.000000 1995-03-11 00:02:03.195676 NULL 2 SELECT * FROM t2; f g h i j 1 NULL 1995-03-11 00:02:03.195676 0000-00-00 00:00:00.000000 1995-03-11 00:02:03.195676 2 NULL 1995-03-11 00:02:03.195676 0000-00-00 00:00:00.000000 1995-03-11 00:02:03.195676 # 1980-12-13 02:02:01 UTC SET TIMESTAMP = 345520921.196755; UPDATE t1, t2 SET t1.e = 3, t2.f = 4; SELECT * FROM t1; a b c d e 1995-03-11 00:02:03.195676 1980-12-13 02:02:01.196755 1995-03-11 00:02:03.195676 1980-12-13 02:02:01.196755 3 1995-03-11 00:02:03.195676 1980-12-13 02:02:01.196755 1995-03-11 00:02:03.195676 1980-12-13 02:02:01.196755 3 SELECT * FROM t2; f g h i j 4 1980-12-13 02:02:01.196755 1995-03-11 00:02:03.195676 1980-12-13 02:02:01.196755 1995-03-11 00:02:03.195676 4 1980-12-13 02:02:01.196755 1995-03-11 00:02:03.195676 1980-12-13 02:02:01.196755 1995-03-11 00:02:03.195676 DROP TABLE t1, t2; # # Test of multiple table update with temporary table and on the fly. # CREATE TABLE t1 ( a TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6), b DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6), c INT, d INT ); CREATE TABLE t2 ( a TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6), b DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6), c INT KEY, d INT ); INSERT INTO t1 ( c ) VALUES (1), (2); INSERT INTO t2 ( c ) VALUES (1), (2); # Test of multiple table update done on the fly # 2011-04-20 15:06:13 UTC SET TIMESTAMP = 1303311973.194685; UPDATE t1 JOIN t2 USING ( c ) SET t2.d = 1; SELECT * FROM t1; a b c d 0000-00-00 00:00:00.000000 NULL 1 NULL 0000-00-00 00:00:00.000000 NULL 2 NULL SELECT * FROM t2; a b c d 2011-04-20 15:06:13.194685 2011-04-20 15:06:13.194685 1 1 2011-04-20 15:06:13.194685 2011-04-20 15:06:13.194685 2 1 # Test of multiple table update done with temporary table. # 1979-01-15 03:02:01 SET TIMESTAMP = 285213721.134679; UPDATE t1 JOIN t2 USING ( c ) SET t1.d = 1; SELECT * FROM t1; a b c d 1979-01-15 02:02:01.134679 1979-01-15 02:02:01.134679 1 1 1979-01-15 02:02:01.134679 1979-01-15 02:02:01.134679 2 1 SELECT * FROM t2; a b c d 2011-04-20 15:06:13.194685 2011-04-20 15:06:13.194685 1 1 2011-04-20 15:06:13.194685 2011-04-20 15:06:13.194685 2 1 DROP TABLE t1, t2; # # Test of ON UPDATE CURRENT_TIMESTAMP. # CREATE TABLE t1 ( a TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6), b DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6), c INT ); # 2011-04-20 09:53:41 UTC SET TIMESTAMP = 1303293221.794613; INSERT INTO t1 ( c ) VALUES ( 1 ); SELECT * FROM t1; a b c 0000-00-00 00:00:00.000000 NULL 1 UPDATE t1 SET c = 1; SELECT * FROM t1; a b c 0000-00-00 00:00:00.000000 NULL 1 UPDATE t1 SET c = 2; SELECT * FROM t1; a b c 2011-04-20 09:53:41.794613 2011-04-20 09:53:41.794613 2 # # Test of multiple-table UPDATE for ON UPDATE CURRENT_TIMESTAMP # # 2011-04-20 15:06:13 UTC SET TIMESTAMP = 1303311973.534231; UPDATE t1 t11, t1 t12 SET t11.c = 2; SELECT * FROM t1; a b c 2011-04-20 09:53:41.794613 2011-04-20 09:53:41.794613 2 UPDATE t1 t11, t1 t12 SET t11.c = 3; SELECT * FROM t1; a b c 2011-04-20 15:06:13.534231 2011-04-20 15:06:13.534231 3 DROP TABLE t1; # # Test of a multiple-table update where only one table is updated and # the updated table has a primary key. # CREATE TABLE t1 ( a INT, b INT, PRIMARY KEY (a) ); INSERT INTO t1 VALUES (1, 1),(2, 2),(3, 3),(4, 4); CREATE TABLE t2 ( a INT, b INT ); INSERT INTO t2 VALUES (1, 1),(2, 2),(3, 3),(4, 4),(5, 5); UPDATE t1, t2 SET t1.b = 100 WHERE t1.a = t2.a; SELECT * FROM t1; a b 1 100 2 100 3 100 4 100 SELECT * FROM t2; a b 1 1 2 2 3 3 4 4 5 5 DROP TABLE t1, t2; # # Test of ALTER TABLE, reordering columns. # CREATE TABLE t1 ( a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), b INT ); ALTER TABLE t1 MODIFY a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) AFTER b; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `b` int(11) DEFAULT NULL, `a` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 DROP TABLE t1; CREATE TABLE t1 ( a INT, b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), c TIMESTAMP(6) NULL ); ALTER TABLE t1 MODIFY b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) FIRST; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `b` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), `a` int(11) DEFAULT NULL, `c` timestamp(6) NULL DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 DROP TABLE t1; CREATE TABLE t1 ( a INT, b TIMESTAMP(6) NULL ); ALTER TABLE t1 MODIFY b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) FIRST; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `b` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), `a` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 DROP TABLE t1; CREATE TABLE t1 ( a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), b TIMESTAMP(6) NULL ); ALTER TABLE t1 MODIFY a TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER b; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `b` timestamp(6) NULL DEFAULT NULL, `a` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 DROP TABLE t1; CREATE TABLE t1 ( a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), b TIMESTAMP(6) NULL ); ALTER TABLE t1 MODIFY a TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER b; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `b` timestamp(6) NULL DEFAULT NULL, `a` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 DROP TABLE t1; CREATE TABLE t1 ( a TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE NOW(6), b INT, c TIMESTAMP(6) NULL ); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ON UPDATE CURRENT_TIMESTAMP(6), `b` int(11) DEFAULT NULL, `c` timestamp(6) NULL DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ALTER TABLE t1 MODIFY a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) AFTER b; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `b` int(11) DEFAULT NULL, `a` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), `c` timestamp(6) NULL DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 DROP TABLE t1; CREATE TABLE t1 ( a TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE NOW(6), b INT, c TIMESTAMP(6) NULL ); ALTER TABLE t1 MODIFY c TIMESTAMP(6) NULL FIRST; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `c` timestamp(6) NULL DEFAULT NULL, `a` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ON UPDATE CURRENT_TIMESTAMP(6), `b` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 DROP TABLE t1; CREATE TABLE t1 ( a TIMESTAMP(6) NOT NULL DEFAULT NOW(6) ON UPDATE CURRENT_TIMESTAMP(6), b INT, c TIMESTAMP(6) NULL ); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), `b` int(11) DEFAULT NULL, `c` timestamp(6) NULL DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ALTER TABLE t1 MODIFY a TIMESTAMP(6) NOT NULL DEFAULT NOW(6) ON UPDATE CURRENT_TIMESTAMP(6) AFTER b; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `b` int(11) DEFAULT NULL, `a` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), `c` timestamp(6) NULL DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 DROP TABLE t1; CREATE TABLE t1 ( a TIMESTAMP(6) NOT NULL DEFAULT NOW(6) ON UPDATE CURRENT_TIMESTAMP(6), b INT, c TIMESTAMP(6) NULL ); ALTER TABLE t1 MODIFY c TIMESTAMP(6) NULL FIRST; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `c` timestamp(6) NULL DEFAULT NULL, `a` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), `b` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 DROP TABLE t1; # # Test of ALTER TABLE, adding columns. # CREATE TABLE t1 ( a INT ); ALTER TABLE t1 ADD COLUMN b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 DROP TABLE t1; # # Test of INSERT SELECT. # CREATE TABLE t1 ( a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), c DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), d DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) ); CREATE TABLE t2 ( placeholder1 INT, placeholder2 INT, placeholder3 INT, placeholder4 INT, a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), b TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00', c DATETIME(6), d DATETIME(6) ); # 1977-08-16 15:30:01 UTC SET TIMESTAMP = 240589801.654312; INSERT INTO t2 (a, b, c, d) VALUES ( '1977-08-16 15:30:01.123456', '1977-08-16 15:30:01.234567', '1977-08-16 15:30:01.345678', '1977-08-16 15:30:01.456789' ); # 1986-09-27 01:00:00 UTC SET TIMESTAMP = 528166800.132435; INSERT INTO t1 ( a, c ) SELECT a, c FROM t2; SELECT * FROM t1; a b c d 1977-08-16 15:30:01.123456 1986-09-27 01:00:00.132435 1977-08-16 15:30:01.345678 1986-09-27 01:00:00.132435 DROP TABLE t1, t2; # # Test of CREATE TABLE SELECT. # # We test that the columns of the source table are used to determine # function defaults for the receiving table. # # 1970-04-11 20:13:57 UTC SET TIMESTAMP = 8712837.657898; CREATE TABLE t1 ( a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), c TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6), d TIMESTAMP(6) NOT NULL DEFAULT '1986-09-27 03:00:00.098765', e TIMESTAMP(6) NULL, f DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), g DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6), h DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6), i DATETIME(6) NULL, j DATETIME(6) DEFAULT '1986-09-27 03:00:00.098765' ); INSERT INTO t1 VALUES (); # 1971-01-31 21:13:57 UTC SET TIMESTAMP = 34200837.164937; CREATE TABLE t2 SELECT a FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 SELECT * FROM t2; a 1970-04-11 20:13:57.657898 CREATE TABLE t3 SELECT b FROM t1; SHOW CREATE TABLE t3; Table Create Table t3 CREATE TABLE `t3` ( `b` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 SELECT * FROM t3; b 1970-04-11 20:13:57.657898 CREATE TABLE t4 SELECT c FROM t1; SHOW CREATE TABLE t4; Table Create Table t4 CREATE TABLE `t4` ( `c` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ON UPDATE CURRENT_TIMESTAMP(6) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 SELECT * FROM t4; c 0000-00-00 00:00:00.000000 CREATE TABLE t5 SELECT d FROM t1; SHOW CREATE TABLE t5; Table Create Table t5 CREATE TABLE `t5` ( `d` timestamp(6) NOT NULL DEFAULT '1986-09-27 03:00:00.098765' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 SELECT * FROM t5; d 1986-09-27 03:00:00.098765 CREATE TABLE t6 SELECT e FROM t1; SHOW CREATE TABLE t6; Table Create Table t6 CREATE TABLE `t6` ( `e` timestamp(6) NULL DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 SELECT * FROM t6; e NULL CREATE TABLE t7 SELECT f FROM t1; SHOW CREATE TABLE t7; Table Create Table t7 CREATE TABLE `t7` ( `f` datetime(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 SELECT * FROM t7; f 1970-04-11 20:13:57.657898 CREATE TABLE t8 SELECT g FROM t1; SHOW CREATE TABLE t8; Table Create Table t8 CREATE TABLE `t8` ( `g` datetime(6) DEFAULT CURRENT_TIMESTAMP(6) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 SELECT * FROM t8; g 1970-04-11 20:13:57.657898 CREATE TABLE t9 SELECT h FROM t1; SHOW CREATE TABLE t9; Table Create Table t9 CREATE TABLE `t9` ( `h` datetime(6) DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(6) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 SELECT * FROM t9; h NULL CREATE TABLE t10 SELECT i FROM t1; SHOW CREATE TABLE t10; Table Create Table t10 CREATE TABLE `t10` ( `i` datetime(6) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 SELECT * FROM t10; i NULL CREATE TABLE t11 SELECT j FROM t1; SHOW CREATE TABLE t11; Table Create Table t11 CREATE TABLE `t11` ( `j` datetime(6) DEFAULT '1986-09-27 03:00:00.098765' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 SELECT * FROM t11; j 1986-09-27 03:00:00.098765 CREATE TABLE t12 ( k TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), l TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), m TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), n TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6), o TIMESTAMP(6) NOT NULL DEFAULT '1986-09-27 03:00:00.098765', p TIMESTAMP(6) NULL, q DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), r DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6), s DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6), t DATETIME(6) NULL, u DATETIME(6) DEFAULT '1986-09-27 03:00:00.098765' ) SELECT * FROM t1; SHOW CREATE TABLE t12; Table Create Table t12 CREATE TABLE `t12` ( `k` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), `l` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), `m` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), `n` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ON UPDATE CURRENT_TIMESTAMP(6), `o` timestamp(6) NOT NULL DEFAULT '1986-09-27 03:00:00.098765', `p` timestamp(6) NULL DEFAULT NULL, `q` datetime(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), `r` datetime(6) DEFAULT CURRENT_TIMESTAMP(6), `s` datetime(6) DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(6), `t` datetime(6) DEFAULT NULL, `u` datetime(6) DEFAULT '1986-09-27 03:00:00.098765', `a` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), `b` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), `c` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ON UPDATE CURRENT_TIMESTAMP(6), `d` timestamp(6) NOT NULL DEFAULT '1986-09-27 03:00:00.098765', `e` timestamp(6) NULL DEFAULT NULL, `f` datetime(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), `g` datetime(6) DEFAULT CURRENT_TIMESTAMP(6), `h` datetime(6) DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(6), `i` datetime(6) DEFAULT NULL, `j` datetime(6) DEFAULT '1986-09-27 03:00:00.098765' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 # No function default for non-column expressions: CREATE TABLE t13 SELECT COALESCE(a,a) FROM t1; SHOW CREATE TABLE t13; Table Create Table t13 CREATE TABLE `t13` ( `COALESCE(a,a)` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 SELECT * FROM t13; COALESCE(a,a) 1970-04-11 20:13:57.657898 DROP TABLE t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13; # 1970-04-11 20:13:57 UTC SET TIMESTAMP = 8712837.164953; CREATE TABLE t1 ( a DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), b DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6), c DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6), d DATETIME(6) NULL, e DATETIME(6) DEFAULT '1986-09-27 03:00:00.098765' ); INSERT INTO t1 VALUES (); # 1971-01-31 20:13:57 UTC SET TIMESTAMP = 34200837.915736; CREATE TABLE t2 SELECT a FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` datetime(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 SELECT * FROM t2; a 1970-04-11 20:13:57.164953 CREATE TABLE t3 SELECT b FROM t1; SHOW CREATE TABLE t3; Table Create Table t3 CREATE TABLE `t3` ( `b` datetime(6) DEFAULT CURRENT_TIMESTAMP(6) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 SELECT * FROM t3; b 1970-04-11 20:13:57.164953 CREATE TABLE t4 SELECT c FROM t1; SHOW CREATE TABLE t4; Table Create Table t4 CREATE TABLE `t4` ( `c` datetime(6) DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(6) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 SELECT * FROM t4; c NULL CREATE TABLE t5 SELECT d FROM t1; SHOW CREATE TABLE t5; Table Create Table t5 CREATE TABLE `t5` ( `d` datetime(6) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 SELECT * FROM t5; d NULL CREATE TABLE t6 SELECT e FROM t1; SHOW CREATE TABLE t6; Table Create Table t6 CREATE TABLE `t6` ( `e` datetime(6) DEFAULT '1986-09-27 03:00:00.098765' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 SELECT * FROM t6; e 1986-09-27 03:00:00.098765 # Test CREATE TABLE LIKE CREATE TABLE t7 LIKE t1; SHOW CREATE TABLE t7; Table Create Table t7 CREATE TABLE `t7` ( `a` datetime(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), `b` datetime(6) DEFAULT CURRENT_TIMESTAMP(6), `c` datetime(6) DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(6), `d` datetime(6) DEFAULT NULL, `e` datetime(6) DEFAULT '1986-09-27 03:00:00.098765' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 DROP TABLE t1, t2, t3, t4, t5, t6, t7; # # Test of a CREATE TABLE SELECT that also declared columns. In this case # the function default for them should be activated during the execution of the # CREATE TABLE statement. # # 1970-01-01 03:16:40 SET TIMESTAMP = 1000.987654; CREATE TABLE t1 ( a INT ); INSERT INTO t1 VALUES ( 1 ), ( 2 ); CREATE TABLE t2 ( b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)) SELECT a FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `b` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), `a` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 SET TIMESTAMP = 2000.876543; INSERT INTO t2( a ) VALUES ( 3 ); SELECT * FROM t2; b a 1970-01-01 00:16:40.987654 1 1970-01-01 00:16:40.987654 2 1970-01-01 00:33:20.876543 3 DROP TABLE t1, t2; # # Test of updating a view. # CREATE TABLE t1 ( a INT, b DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6) ); CREATE TABLE t2 ( a INT, b DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6) ); CREATE VIEW v1 AS SELECT * FROM t1; SHOW CREATE VIEW v1; View Create View character_set_client collation_connection v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a`,`t1`.`b` AS `b` from `t1` latin1 latin1_swedish_ci CREATE VIEW v2 AS SELECT * FROM t2; SHOW CREATE VIEW v2; View Create View character_set_client collation_connection v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `t2`.`a` AS `a`,`t2`.`b` AS `b` from `t2` latin1 latin1_swedish_ci # 1971-01-31 21:13:57 UTC SET TIMESTAMP = 34200837.348564; INSERT INTO v1 ( a ) VALUES ( 1 ); INSERT INTO v2 ( a ) VALUES ( 1 ); SELECT * FROM t1; a b 1 1971-01-31 20:13:57.348564 SELECT * FROM v1; a b 1 1971-01-31 20:13:57.348564 SELECT * FROM t2; a b 1 NULL SELECT * FROM v2; a b 1 NULL # 1970-04-11 20:13:57 UTC SET TIMESTAMP = 8712837.567332; UPDATE v1 SET a = 2; UPDATE v2 SET a = 2; SELECT * FROM t1; a b 2 1971-01-31 20:13:57.348564 SELECT * FROM v1; a b 2 1971-01-31 20:13:57.348564 SELECT * FROM t2; a b 2 1970-04-11 20:13:57.567332 SELECT * FROM v2; a b 2 1970-04-11 20:13:57.567332 DROP VIEW v1, v2; DROP TABLE t1, t2; # # Test with stored procedures. # CREATE TABLE t1 ( a INT, b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), c TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), d TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6), e TIMESTAMP(6) NULL, f DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6), g DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6) ); CREATE PROCEDURE p1() INSERT INTO test.t1( a ) VALUES ( 1 ); CREATE PROCEDURE p2() UPDATE t1 SET a = 2 WHERE a = 1; # 1971-01-31 20:13:57 UTC SET TIMESTAMP = 34200837.876544; CALL p1(); SELECT * FROM t1; a b c d e f g 1 1971-01-31 20:13:57.876544 1971-01-31 20:13:57.876544 0000-00-00 00:00:00.000000 NULL 1971-01-31 20:13:57.876544 NULL # 1970-04-11 21:13:57 UTC SET TIMESTAMP = 8712837.143546; CALL p2(); SELECT * FROM t1; a b c d e f g 2 1970-04-11 20:13:57.143546 1971-01-31 20:13:57.876544 1970-04-11 20:13:57.143546 NULL 1971-01-31 20:13:57.876544 1970-04-11 20:13:57.143546 DROP PROCEDURE p1; DROP PROCEDURE p2; DROP TABLE t1; # # Test with triggers. # CREATE TABLE t1 ( a INT, b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), c TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), d TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6), e TIMESTAMP(6) NULL, f DATETIME(6), g DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6), h DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6), i DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) ); CREATE TABLE t2 ( a INT ); CREATE TRIGGER t2_trg BEFORE INSERT ON t2 FOR EACH ROW BEGIN INSERT INTO t1 ( a ) VALUES ( 1 ); END| # 1971-01-31 21:13:57 UTC SET TIMESTAMP = 34200837.978675; INSERT INTO t2 ( a ) VALUES ( 1 ); SELECT * FROM t1; a b c d e f g h i 1 1971-01-31 20:13:57.978675 1971-01-31 20:13:57.978675 0000-00-00 00:00:00.000000 NULL NULL 1971-01-31 20:13:57.978675 NULL 1971-01-31 20:13:57.978675 DROP TRIGGER t2_trg; CREATE TRIGGER t2_trg BEFORE INSERT ON t2 FOR EACH ROW BEGIN UPDATE t1 SET a = 2; END| # 1970-04-11 21:13:57 UTC SET TIMESTAMP = 8712837.456789; INSERT INTO t2 ( a ) VALUES ( 1 ); SELECT * FROM t1; a b c d e f g h i 2 1970-04-11 20:13:57.456789 1971-01-31 20:13:57.978675 1970-04-11 20:13:57.456789 NULL NULL 1971-01-31 20:13:57.978675 1970-04-11 20:13:57.456789 1970-04-11 20:13:57.456789 DROP TABLE t1, t2; # # Test where the assignment target is not a column. # CREATE TABLE t1 ( a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) ); CREATE TABLE t2 ( a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) ); CREATE TABLE t3 ( a TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6) ); CREATE TABLE t4 ( a TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6) ); CREATE VIEW v1 AS SELECT a COLLATE latin1_german1_ci AS b FROM t1; CREATE VIEW v2 ( b ) AS SELECT a COLLATE latin1_german1_ci FROM t2; CREATE VIEW v3 AS SELECT a COLLATE latin1_german1_ci AS b FROM t3; CREATE VIEW v4 ( b ) AS SELECT a COLLATE latin1_german1_ci FROM t4; INSERT INTO v1 ( b ) VALUES ( '2007-10-24 00:03:34.010203' ); SELECT a FROM t1; a 2007-10-24 00:03:34.010203 INSERT INTO v2 ( b ) VALUES ( '2007-10-24 00:03:34.010203' ); SELECT a FROM t2; a 2007-10-24 00:03:34.010203 INSERT INTO t3 VALUES (); UPDATE v3 SET b = '2007-10-24 00:03:34.010203'; SELECT a FROM t3; a 2007-10-24 00:03:34.010203 INSERT INTO t4 VALUES (); UPDATE v4 SET b = '2007-10-24 00:03:34.010203'; SELECT a FROM t4; a 2007-10-24 00:03:34.010203 DROP VIEW v1, v2, v3, v4; DROP TABLE t1, t2, t3, t4; # # Test of LOAD DATA/XML INFILE # This tests behavior of function defaults for TIMESTAMP and DATETIME # columns. during LOAD ... INFILE. # As can be seen here, a TIMESTAMP column with only ON UPDATE # CURRENT_TIMESTAMP will still have CURRENT_TIMESTAMP inserted on LOAD # ... INFILE if the value is missing. For DATETIME columns a NULL value # is inserted instead. # CREATE TABLE t1 ( a INT, b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), c TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), d TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6), e TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), f DATETIME(6), g DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6), h DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6), i DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) ); CREATE TABLE t2 ( a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), c TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP(6), d TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), e DATETIME(6) NOT NULL, f DATETIME(6) NOT NULL DEFAULT '1977-01-02 12:13:14', g DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6) NOT NULL, h DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6) NOT NULL, i DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) NOT NULL ); SELECT 1 INTO OUTFILE 't3.dat' FROM dual; SELECT NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL INTO OUTFILE 't4.dat' FROM dual; SELECT 1, 2 INTO OUTFILE 't5.dat' FROM dual; # Mon Aug 1 15:11:19 2011 UTC SET TIMESTAMP = 1312211479.918273; LOAD DATA INFILE 't3.dat' INTO TABLE t1; Warnings: Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns SELECT * FROM t1; a 1 b 2011-08-01 15:11:19.918273 c 2011-08-01 15:11:19.918273 d 2011-08-01 15:11:19.918273 e 2011-08-01 15:11:19.918273 f NULL g NULL h NULL i NULL LOAD DATA INFILE 't4.dat' INTO TABLE t2; Warnings: Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'e' at row 1 Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'f' at row 1 Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'g' at row 1 Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'h' at row 1 Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'i' at row 1 SELECT a FROM t2; a 2011-08-01 15:11:19.918273 SELECT b FROM t2; b 2011-08-01 15:11:19.918273 SELECT c FROM t2; c 2011-08-01 15:11:19.918273 SELECT d FROM t2; d 2011-08-01 15:11:19.918273 # As shown here, supplying a NULL value to a non-nullable # column with no default value results in the zero date. SELECT e FROM t2; e 0000-00-00 00:00:00.000000 # As shown here, supplying a NULL value to a non-nullable column with a # default value results in the zero date. SELECT f FROM t2; f 0000-00-00 00:00:00.000000 # As shown here, supplying a NULL value to a non-nullable column with a # default function results in the zero date. SELECT g FROM t2; g 0000-00-00 00:00:00.000000 # As shown here, supplying a NULL value to a non-nullable DATETIME ON # UPDATE CURRENT_TIMESTAMP column with no default value results in the # zero date. SELECT h FROM t2; h 0000-00-00 00:00:00.000000 SELECT i FROM t2; i 0000-00-00 00:00:00.000000 DELETE FROM t1; DELETE FROM t2; # Read t3 file into t1 # The syntax will cause a different code path to be taken # (read_fixed_length()) than under the LOAD ... INTO TABLE t1 command # above. The code in this path is copy-pasted code from the path taken # under the syntax used in the previous LOAD command. LOAD DATA INFILE 't3.dat' INTO TABLE t1 FIELDS TERMINATED BY '' ENCLOSED BY ''; Warnings: Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns SELECT b FROM t1; b 2011-08-01 15:11:19.918273 SELECT c FROM t1; c 2011-08-01 15:11:19.918273 SELECT d FROM t1; d 2011-08-01 15:11:19.918273 SELECT e FROM t1; e 2011-08-01 15:11:19.918273 # Yes, a missing field cannot be NULL using this syntax, so it will # zero date instead. Says a comment in read_fixed_length() : "No fields # specified in fields_vars list can be NULL in this format." # It appears to be by design. This is inconsistent with LOAD DATA INFILE # syntax in previous test. SELECT f FROM t1; f 0000-00-00 00:00:00.000000 SELECT g FROM t1; g 0000-00-00 00:00:00.000000 # See comment above "SELECT f FROM f1". SELECT h FROM t1; h 0000-00-00 00:00:00.000000 SELECT i FROM t1; i 0000-00-00 00:00:00.000000 DELETE FROM t1; LOAD DATA INFILE 't5.dat' INTO TABLE t1 ( a, @dummy ); SELECT * FROM t1; a b c d e f g h i 1 2011-08-01 15:11:19.918273 2011-08-01 15:11:19.918273 0000-00-00 00:00:00.000000 2011-08-01 15:11:19.918273 NULL 2011-08-01 15:11:19.918273 NULL 2011-08-01 15:11:19.918273 SELECT @dummy; @dummy 2 DELETE FROM t1; LOAD DATA INFILE 't3.dat' INTO TABLE t1 ( a ) SET c = '2005-06-06 08:09:10'; SELECT * FROM t1; a b c d e f g h i 1 2011-08-01 15:11:19.918273 2005-06-06 08:09:10.000000 0000-00-00 00:00:00.000000 2011-08-01 15:11:19.918273 NULL 2011-08-01 15:11:19.918273 NULL 2011-08-01 15:11:19.918273 DELETE FROM t1; LOAD DATA INFILE 't3.dat' INTO TABLE t1 ( a ) SET g = '2005-06-06 08:09:10'; SELECT * FROM t1; a b c d e f g h i 1 2011-08-01 15:11:19.918273 2011-08-01 15:11:19.918273 0000-00-00 00:00:00.000000 2011-08-01 15:11:19.918273 NULL 2005-06-06 08:09:10.000000 NULL 2011-08-01 15:11:19.918273 DELETE FROM t1; # Load a static XML file LOAD XML INFILE '../../std_data/onerow.xml' INTO TABLE t1 ROWS IDENTIFIED BY '<row>'; Missing tags are treated as NULL SELECT * FROM t1; a 1 b 2011-08-01 15:11:19.918273 c 2011-08-01 15:11:19.918273 d 2011-08-01 15:11:19.918273 e 2011-08-01 15:11:19.918273 f NULL g NULL h NULL i NULL DROP TABLE t1, t2; # # Similar LOAD DATA tests in another form # # All of this test portion has been run on a pre-WL5874 trunk # (except that like_b and like_c didn't exist) and all result # differences are a bug. # Regarding like_b its definition is the same as b's except # that the constant default is replaced with a function # default. Our expectation is that like_b would behave # like b: if b is set to NULL, or set to 0000-00-00, or set to # its default, then the same should apply to like_b. Same for # like_c vs c. # Mon Aug 1 15:11:19 2011 UTC SET TIMESTAMP = 1312211479.089786; SELECT 1 INTO OUTFILE "file1.dat" FROM dual; SELECT NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL INTO OUTFILE "file2.dat" FROM dual; # Too short row CREATE TABLE t1 ( dummy INT, a DATETIME(6) NULL DEFAULT NULL, b DATETIME(6) NULL DEFAULT "2011-11-18", like_b DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6), c DATETIME(6) NOT NULL DEFAULT "2011-11-18", like_c DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), d TIMESTAMP(6) NULL DEFAULT "2011-05-03" ON UPDATE CURRENT_TIMESTAMP(6), e TIMESTAMP(6) NOT NULL DEFAULT "2011-05-03", f TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), g TIMESTAMP(6) NULL DEFAULT NULL, h INT NULL, i INT NOT NULL DEFAULT 42 ); # There is no promotion SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `dummy` int(11) DEFAULT NULL, `a` datetime(6) DEFAULT NULL, `b` datetime(6) DEFAULT '2011-11-18 00:00:00.000000', `like_b` datetime(6) DEFAULT CURRENT_TIMESTAMP(6), `c` datetime(6) NOT NULL DEFAULT '2011-11-18 00:00:00.000000', `like_c` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), `d` timestamp(6) NULL DEFAULT '2011-05-03 00:00:00.000000' ON UPDATE CURRENT_TIMESTAMP(6), `e` timestamp(6) NOT NULL DEFAULT '2011-05-03 00:00:00.000000', `f` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), `g` timestamp(6) NULL DEFAULT NULL, `h` int(11) DEFAULT NULL, `i` int(11) NOT NULL DEFAULT '42' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 LOAD DATA INFILE "file1.dat" INTO table t1; Warnings: Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns # It is strange that "like_b" gets NULL when "b" gets 0. But # this is consistent with how "a" gets NULL when "b" gets 0, # with how "g" gets NULL when "d" gets 0, and with how "h" gets # NULL when "i" gets 0. Looks like "DEFAULT # <non-NULL-constant>" is changed to 0, whereas DEFAULT NULL # and DEFAULT NOW are changed to NULL. SELECT * FROM t1; dummy 1 a NULL b 0000-00-00 00:00:00.000000 like_b NULL c 0000-00-00 00:00:00.000000 like_c 0000-00-00 00:00:00.000000 d 0000-00-00 00:00:00.000000 e 2011-08-01 15:11:19.089786 f 2011-08-01 15:11:19.089786 g NULL h NULL i 0 delete from t1; alter table t1 modify f TIMESTAMP NULL default CURRENT_TIMESTAMP; # There is no promotion SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `dummy` int(11) DEFAULT NULL, `a` datetime(6) DEFAULT NULL, `b` datetime(6) DEFAULT '2011-11-18 00:00:00.000000', `like_b` datetime(6) DEFAULT CURRENT_TIMESTAMP(6), `c` datetime(6) NOT NULL DEFAULT '2011-11-18 00:00:00.000000', `like_c` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), `d` timestamp(6) NULL DEFAULT '2011-05-03 00:00:00.000000' ON UPDATE CURRENT_TIMESTAMP(6), `e` timestamp(6) NOT NULL DEFAULT '2011-05-03 00:00:00.000000', `f` timestamp NULL DEFAULT CURRENT_TIMESTAMP, `g` timestamp(6) NULL DEFAULT NULL, `h` int(11) DEFAULT NULL, `i` int(11) NOT NULL DEFAULT '42' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 LOAD DATA INFILE "file1.dat" INTO table t1; Warnings: Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns Warning 1261 Row 1 doesn't contain data for all columns SELECT * FROM t1; dummy 1 a NULL b 0000-00-00 00:00:00.000000 like_b NULL c 0000-00-00 00:00:00.000000 like_c 0000-00-00 00:00:00.000000 d 0000-00-00 00:00:00.000000 e 2011-08-01 15:11:19.089786 f NULL g NULL h NULL i 0 delete from t1; drop table t1; # Conclusion derived from trunk's results: # DATETIME DEFAULT <non-NULL-constant> (b,c) gets 0000-00-00, # DATETIME DEFAULT NULL (a) gets NULL, # TIMESTAMP NULL DEFAULT <non-NULL-constant> (d) gets 0000-00-00, # TIMESTAMP NULL DEFAULT NULL (g) gets NULL, # TIMESTAMP NULL DEFAULT NOW (f after ALTER) gets NULL, # TIMESTAMP NOT NULL (f before ALTER, e) gets NOW. ### Loading NULL ### CREATE TABLE t1 ( dummy INT, a DATETIME(6) NULL DEFAULT NULL, b DATETIME(6) NULL DEFAULT "2011-11-18", like_b DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6), c DATETIME(6) NOT NULL DEFAULT "2011-11-18", like_c DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), d TIMESTAMP(6) NULL DEFAULT "2011-05-03" ON UPDATE CURRENT_TIMESTAMP(6), e TIMESTAMP(6) NOT NULL DEFAULT "2011-05-03", f TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), g TIMESTAMP(6) NULL DEFAULT NULL, h INT NULL, i INT NOT NULL DEFAULT 42 ); # There is no promotion SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `dummy` int(11) DEFAULT NULL, `a` datetime(6) DEFAULT NULL, `b` datetime(6) DEFAULT '2011-11-18 00:00:00.000000', `like_b` datetime(6) DEFAULT CURRENT_TIMESTAMP(6), `c` datetime(6) NOT NULL DEFAULT '2011-11-18 00:00:00.000000', `like_c` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), `d` timestamp(6) NULL DEFAULT '2011-05-03 00:00:00.000000' ON UPDATE CURRENT_TIMESTAMP(6), `e` timestamp(6) NOT NULL DEFAULT '2011-05-03 00:00:00.000000', `f` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), `g` timestamp(6) NULL DEFAULT NULL, `h` int(11) DEFAULT NULL, `i` int(11) NOT NULL DEFAULT '42' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 LOAD DATA INFILE "file2.dat" INTO table t1; Warnings: Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'c' at row 1 Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'like_c' at row 1 Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'i' at row 1 SELECT * FROM t1; dummy NULL a NULL b NULL like_b NULL c 0000-00-00 00:00:00.000000 like_c 0000-00-00 00:00:00.000000 d NULL e 2011-08-01 15:11:19.089786 f 2011-08-01 15:11:19.089786 g NULL h NULL i 0 delete from t1; alter table t1 modify f TIMESTAMP NULL default CURRENT_TIMESTAMP; # There is no promotion SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `dummy` int(11) DEFAULT NULL, `a` datetime(6) DEFAULT NULL, `b` datetime(6) DEFAULT '2011-11-18 00:00:00.000000', `like_b` datetime(6) DEFAULT CURRENT_TIMESTAMP(6), `c` datetime(6) NOT NULL DEFAULT '2011-11-18 00:00:00.000000', `like_c` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), `d` timestamp(6) NULL DEFAULT '2011-05-03 00:00:00.000000' ON UPDATE CURRENT_TIMESTAMP(6), `e` timestamp(6) NOT NULL DEFAULT '2011-05-03 00:00:00.000000', `f` timestamp NULL DEFAULT CURRENT_TIMESTAMP, `g` timestamp(6) NULL DEFAULT NULL, `h` int(11) DEFAULT NULL, `i` int(11) NOT NULL DEFAULT '42' ) ENGINE=InnoDB DEFAULT CHARSET=latin1 LOAD DATA INFILE "file2.dat" INTO table t1; Warnings: Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'c' at row 1 Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'like_c' at row 1 Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'i' at row 1 SELECT * FROM t1; dummy NULL a NULL b NULL like_b NULL c 0000-00-00 00:00:00.000000 like_c 0000-00-00 00:00:00.000000 d NULL e 2011-08-01 15:11:19.089786 f NULL g NULL h NULL i 0 delete from t1; # Conclusion derived from trunk's results: # DATETIME NULL (a,b) gets NULL, # DATETIME NOT NULL (c) gets 0000-00-00, # TIMESTAMP NULL (d,f,g) gets NULL, # TIMESTAMP NOT NULL (e) gets NOW. drop table t1; # # Test of updatable views with check options. The option can be violated # using ON UPDATE updates which is very strange as this offers a loophole # in this integrity check. # SET TIME_ZONE = "+03:00"; # 1970-01-01 03:16:40 SET TIMESTAMP = 1000.123456; CREATE TABLE t1 ( a INT, b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` int(11) DEFAULT NULL, `b` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 INSERT INTO t1 ( a ) VALUES ( 1 ); SELECT * FROM t1; a b 1 1970-01-01 03:16:40.123456 CREATE VIEW v1 AS SELECT * FROM t1 WHERE b <= '1970-01-01 03:16:40.123456' WITH CHECK OPTION; SELECT * FROM v1; a b 1 1970-01-01 03:16:40.123456 # 1970-01-01 03:33:20 SET TIMESTAMP = 2000.000234; Logically, there should be an ER_VIEW_CHECK_FAILED here. UPDATE v1 SET a = 2; SELECT * FROM t1; a b 2 1970-01-01 03:33:20.000234 DROP VIEW v1; DROP TABLE t1; CREATE TABLE t1 ( a TIMESTAMP(6) NOT NULL DEFAULT '1973-08-14 09:11:22.089786' ON UPDATE CURRENT_TIMESTAMP(6), c INT KEY ); # 1973-08-14 09:11:22 UTC SET TIMESTAMP = 114167482.534231; INSERT INTO t1 ( c ) VALUES ( 1 ); CREATE VIEW v1 AS SELECT * FROM t1 WHERE a >= '1973-08-14 09:11:22' WITH LOCAL CHECK OPTION; SELECT * FROM v1; a c 1973-08-14 09:11:22.089786 1 SET TIMESTAMP = 1.126789; Logically, there should be an ER_VIEW_CHECK_FAILED here. INSERT INTO v1 ( c ) VALUES ( 1 ) ON DUPLICATE KEY UPDATE c = 2; SELECT * FROM v1; a c DROP VIEW v1; DROP TABLE t1; # # Bug 13095459 - MULTI-TABLE UPDATE MODIFIES A ROW TWICE # CREATE TABLE t1 ( a INT, b INT, ts TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), PRIMARY KEY ( a, ts ) ); INSERT INTO t1( a, b, ts ) VALUES ( 1, 0, '2000-09-28 17:44:34' ); CREATE TABLE t2 ( a INT ); INSERT INTO t2 VALUES ( 1 ); UPDATE t1 STRAIGHT_JOIN t2 SET t1.b = t1.b + 1 WHERE t1.a = 1 AND t1.ts >= '2000-09-28 00:00:00'; SELECT b FROM t1; b 1 DROP TABLE t1, t2; # # Bug#11745578: 17392: ALTER TABLE ADD COLUMN TIMESTAMP DEFAULT # CURRENT_TIMESTAMP INSERTS ZERO # SET timestamp = 1000; CREATE TABLE t1 ( b INT ); INSERT INTO t1 VALUES (1),(2); ALTER TABLE t1 ADD COLUMN a6 DATETIME(6) DEFAULT NOW(6) ON UPDATE NOW(6) FIRST; ALTER TABLE t1 ADD COLUMN a5 DATETIME(6) DEFAULT NOW(6) FIRST; ALTER TABLE t1 ADD COLUMN a4 DATETIME(6) ON UPDATE NOW(6) FIRST; ALTER TABLE t1 ADD COLUMN a3 TIMESTAMP(6) NOT NULL DEFAULT NOW(6) ON UPDATE NOW(6) FIRST; ALTER TABLE t1 ADD COLUMN a2 TIMESTAMP(6) NOT NULL DEFAULT NOW(6) FIRST; ALTER TABLE t1 ADD COLUMN a1 TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE NOW(6) FIRST; ALTER TABLE t1 ADD COLUMN c1 TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE NOW(6) AFTER b; ALTER TABLE t1 ADD COLUMN c2 TIMESTAMP(6) NOT NULL DEFAULT NOW(6) AFTER c1; ALTER TABLE t1 ADD COLUMN c3 TIMESTAMP(6) NOT NULL DEFAULT NOW(6) ON UPDATE NOW(6) AFTER c2; ALTER TABLE t1 ADD COLUMN c4 DATETIME(6) ON UPDATE NOW(6) AFTER c3; ALTER TABLE t1 ADD COLUMN c5 DATETIME(6) DEFAULT NOW(6) AFTER c4; ALTER TABLE t1 ADD COLUMN c6 DATETIME(6) DEFAULT NOW(6) ON UPDATE NOW(6) AFTER c5; SELECT * FROM t1; a1 a2 a3 a4 a5 a6 b c1 c2 c3 c4 c5 c6 0000-00-00 00:00:00.000000 1970-01-01 03:16:40.000000 1970-01-01 03:16:40.000000 NULL 1970-01-01 03:16:40.000000 1970-01-01 03:16:40.000000 1 0000-00-00 00:00:00.000000 1970-01-01 03:16:40.000000 1970-01-01 03:16:40.000000 NULL 1970-01-01 03:16:40.000000 1970-01-01 03:16:40.000000 0000-00-00 00:00:00.000000 1970-01-01 03:16:40.000000 1970-01-01 03:16:40.000000 NULL 1970-01-01 03:16:40.000000 1970-01-01 03:16:40.000000 2 0000-00-00 00:00:00.000000 1970-01-01 03:16:40.000000 1970-01-01 03:16:40.000000 NULL 1970-01-01 03:16:40.000000 1970-01-01 03:16:40.000000 DROP TABLE t1; CREATE TABLE t1 ( a TIMESTAMP(6) NOT NULL DEFAULT NOW(6) ON UPDATE CURRENT_TIMESTAMP(6), b DATETIME(6) DEFAULT NOW(6) ); INSERT INTO t1 VALUES (); SET timestamp = 1000000000; ALTER TABLE t1 MODIFY COLUMN a TIMESTAMP(3) DEFAULT CURRENT_TIMESTAMP(3); ALTER TABLE t1 MODIFY COLUMN b DATETIME(3) DEFAULT CURRENT_TIMESTAMP(3); SELECT * FROM t1; a b 1970-01-01 03:16:40.000 1970-01-01 03:16:40.000 DROP TABLE t1; CREATE TABLE t1 ( a TIMESTAMP(6) NOT NULL DEFAULT '1999-12-01 11:22:33' ON UPDATE CURRENT_TIMESTAMP(6), b DATETIME(6) DEFAULT '1999-12-01 11:22:33' ); INSERT INTO t1 VALUES (); ALTER TABLE t1 MODIFY COLUMN a TIMESTAMP(6) DEFAULT NOW(6); ALTER TABLE t1 MODIFY COLUMN b DATETIME(6) DEFAULT NOW(6); INSERT INTO t1 VALUES (); SELECT * FROM t1; a b 1999-12-01 11:22:33.000000 1999-12-01 11:22:33.000000 2001-09-09 04:46:40.000000 2001-09-09 04:46:40.000000 DROP TABLE t1; SET sql_mode = default;
Close