~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/t/microsecond.test

  • Committer: Jay Pipes
  • Date: 2009-01-30 04:01:12 UTC
  • mto: This revision was merged to the branch mainline in revision 830.
  • Revision ID: jpipes@serialcoder-20090130040112-svbn774guj98pwi4
To remain in compatibility with MySQL, added ability to interpret
decimal arguments as datetime strings for temporal functions.

Fixed YEAR(), MONTH(), DAYOFMONTH(), DAYOFYEAR(), HOUR(), MINUTE(), SECOND(), and MICROSECOND()
to accept decimal parameters and interpret them the same way as MySQL.

Fixed an issue with the TemporalFormat::matches() method which was 
incorrectly assuming all microsecond arguments were specified as 6 digits.
Added power of 10 multiplier to usecond calculation. This fixes issues with
failures in type_date and func_sapdb test cases.

Show diffs side-by-side

added added

removed removed

Lines of Context:
86
86
# A good datetime, should output 123456
87
87
SELECT MICROSECOND("20081130033015.123456");
88
88
 
 
89
# A good datetime, should output 123450
 
90
SELECT MICROSECOND("20081130033015.12345");
 
91
 
 
92
# A good datetime, should output 123400
 
93
SELECT MICROSECOND("20081130033015.1234");
 
94
 
 
95
# A good datetime, should output 123000
 
96
SELECT MICROSECOND("20081130033015.123");
 
97
 
 
98
# A good datetime, should output 120000
 
99
SELECT MICROSECOND("20081130033015.12");
 
100
 
 
101
# A good datetime, should output 100000
 
102
SELECT MICROSECOND("20081130033015.1");
 
103
 
89
104
# A good datetime, interpreted int->string, should output 0 since no sub-second component
90
105
SELECT MICROSECOND(20081130033015);
91
106
 
 
107
# A good datetime, interpreted int->string, should output 123456
 
108
SELECT MICROSECOND(20081130033015.123456);
 
109
 
 
110
# A good datetime, interpreted int->string, should output 123450
 
111
SELECT MICROSECOND(20081130033015.12345);
 
112
 
 
113
# A good datetime, interpreted int->string, should output 123400
 
114
SELECT MICROSECOND(20081130033015.1234);
 
115
 
 
116
# A good datetime, interpreted int->string, should output 123000
 
117
SELECT MICROSECOND(20081130033015.123);
 
118
 
 
119
# A good datetime, interpreted int->string, should output 120000
 
120
SELECT MICROSECOND(20081130033015.12);
 
121
 
 
122
# A good datetime, interpreted int->string, should output 100000
 
123
SELECT MICROSECOND(20081130033015.1);
 
124
 
92
125
# A good time (according to MySQL, not Jay Pipes...), should output 0 since no sub-second component
93
126
SELECT MICROSECOND(231115);
94
127