~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/t/year.test

  • Committer: Stewart Smith
  • Date: 2009-05-15 06:57:12 UTC
  • mto: (991.1.5 for-brian)
  • mto: This revision was merged to the branch mainline in revision 1022.
  • Revision ID: stewart@flamingspork.com-20090515065712-bmionylacjmexmmm
Make sql_mode=NO_AUTO_VALUE_ON_ZERO default for Drizzle.

Also fix DEFAULT keyword handling for auto-increment so that it defaults to
NULL and not 0 so that the following is valid and generates two auto-inc
values:

create table t1 (a int auto_increment primary key)
insert into t1 (a) values (default);
insert into t1 (a) values (default);

Important to note that 0 is no longer magic. So this gives you duplicate
primary key error:

insert into t1 (a) values(0);
insert into t1 (a) values(0);

as you've inserted the explicit value of 0 twice.

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
# Test improper argument list 
17
17
#
18
18
# 1 arg is required.
19
 
--error ER_PARSE_ERROR 
 
19
--error 1064 
20
20
# Wrong parameter count...but unfortunately produces 1064 Syntax Error due to limitations of 
21
21
# the SQL parser, which considers YEAR a keyword before being a function symbol
22
22
SELECT YEAR();
23
 
--error ER_PARSE_ERROR
 
23
--error 1064
24
24
# Wrong parameter count...but unfortunately produces 1064 Syntax Error due to limitations of 
25
25
# the SQL parser, which considers YEAR a keyword before being a function symbol
26
26
SELECT YEAR(1, 0);
30
30
# produce an error, not a NULL or anything
31
31
# else...
32
32
#
33
 
--error ER_INVALID_DATETIME_VALUE
 
33
--error 1686
34
34
SELECT YEAR("xxx");
35
35
 
36
36
# Indy, bad dates!
37
 
--error ER_INVALID_DATETIME_VALUE
 
37
--error 1686
38
38
SELECT YEAR("0000-00-00"); # No 0000-00-00 dates!...
39
 
--error ER_INVALID_DATETIME_VALUE
 
39
--error 1686
40
40
SELECT YEAR("0000-01-01"); # No zero year parts
41
 
--error ER_INVALID_DATETIME_VALUE
 
41
--error 1686
42
42
SELECT YEAR("0001-00-01"); # No zero month parts
43
 
--error ER_INVALID_DATETIME_VALUE
 
43
--error 1686
44
44
SELECT YEAR("0001-01-00"); # No zero day parts
45
 
--error ER_INVALID_DATETIME_VALUE
 
45
--error 1686
46
46
SELECT YEAR("2000-02-30"); # No Feb 30th!
47
 
--error ER_INVALID_DATETIME_VALUE
 
47
--error 1686
48
48
SELECT YEAR("1900-02-29"); # Not a leap YEAR since not divisible evenly by 400...
49
 
--error ER_INVALID_DATETIME_VALUE
 
49
--error 1686
50
50
SELECT YEAR('1976-15-15'); # No 15th month!
51
51
 
52
52
# A good date, which should output 2009