Commit 77577014 authored by Mattias Jonsson's avatar Mattias Jonsson

merge

parents e827b51f d53906e3
...@@ -218,6 +218,15 @@ a b ...@@ -218,6 +218,15 @@ a b
2007-07-30 17:35:48 p1 2007-07-30 17:35:48 p1
2009-07-14 17:35:55 pmax 2009-07-14 17:35:55 pmax
2009-09-21 17:31:42 pmax 2009-09-21 17:31:42 pmax
SELECT * FROM t1 where a between '2007-01-01' and '2007-08-01';
a b
2007-07-30 17:35:48 p1
EXPLAIN PARTITIONS SELECT * FROM t1 where a between '2007-01-01' and '2007-08-01';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p1 system PRIMARY NULL NULL NULL 1
EXPLAIN PARTITIONS SELECT * FROM t1 where a = '2007-07-30 17:35:48';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p1 system PRIMARY NULL NULL NULL 1
ALTER TABLE t1 REORGANIZE PARTITION pmax INTO ( ALTER TABLE t1 REORGANIZE PARTITION pmax INTO (
PARTITION p3 VALUES LESS THAN (1247688000), PARTITION p3 VALUES LESS THAN (1247688000),
PARTITION pmax VALUES LESS THAN MAXVALUE); PARTITION pmax VALUES LESS THAN MAXVALUE);
...@@ -226,6 +235,15 @@ a b ...@@ -226,6 +235,15 @@ a b
2007-07-30 17:35:48 p1 2007-07-30 17:35:48 p1
2009-07-14 17:35:55 pmax 2009-07-14 17:35:55 pmax
2009-09-21 17:31:42 pmax 2009-09-21 17:31:42 pmax
SELECT * FROM t1 where a between '2007-01-01' and '2007-08-01';
a b
2007-07-30 17:35:48 p1
EXPLAIN PARTITIONS SELECT * FROM t1 where a between '2007-01-01' and '2007-08-01';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p1 system PRIMARY NULL NULL NULL 1
EXPLAIN PARTITIONS SELECT * FROM t1 where a = '2007-07-30 17:35:48';
id select_type table partitions type possible_keys key key_len ref rows Extra
1 SIMPLE t1 p1 system PRIMARY NULL NULL NULL 1
SHOW CREATE TABLE t1; SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
......
This diff is collapsed.
...@@ -227,10 +227,16 @@ INSERT INTO t1 VALUES ('2009-07-14 17:35:55', 'pmax'); ...@@ -227,10 +227,16 @@ INSERT INTO t1 VALUES ('2009-07-14 17:35:55', 'pmax');
INSERT INTO t1 VALUES ('2009-09-21 17:31:42', 'pmax'); INSERT INTO t1 VALUES ('2009-09-21 17:31:42', 'pmax');
SELECT * FROM t1; SELECT * FROM t1;
SELECT * FROM t1 where a between '2007-01-01' and '2007-08-01';
EXPLAIN PARTITIONS SELECT * FROM t1 where a between '2007-01-01' and '2007-08-01';
EXPLAIN PARTITIONS SELECT * FROM t1 where a = '2007-07-30 17:35:48';
ALTER TABLE t1 REORGANIZE PARTITION pmax INTO ( ALTER TABLE t1 REORGANIZE PARTITION pmax INTO (
PARTITION p3 VALUES LESS THAN (1247688000), PARTITION p3 VALUES LESS THAN (1247688000),
PARTITION pmax VALUES LESS THAN MAXVALUE); PARTITION pmax VALUES LESS THAN MAXVALUE);
SELECT * FROM t1; SELECT * FROM t1;
SELECT * FROM t1 where a between '2007-01-01' and '2007-08-01';
EXPLAIN PARTITIONS SELECT * FROM t1 where a between '2007-01-01' and '2007-08-01';
EXPLAIN PARTITIONS SELECT * FROM t1 where a = '2007-07-30 17:35:48';
SHOW CREATE TABLE t1; SHOW CREATE TABLE t1;
DROP TABLE t1; DROP TABLE t1;
......
This diff is collapsed.
...@@ -1388,6 +1388,26 @@ longlong Item_func_unix_timestamp::val_int() ...@@ -1388,6 +1388,26 @@ longlong Item_func_unix_timestamp::val_int()
return (longlong) TIME_to_timestamp(current_thd, &ltime, &not_used); return (longlong) TIME_to_timestamp(current_thd, &ltime, &not_used);
} }
enum_monotonicity_info Item_func_unix_timestamp::get_monotonicity_info() const
{
if (args[0]->type() == Item::FIELD_ITEM &&
(args[0]->field_type() == MYSQL_TYPE_TIMESTAMP))
return MONOTONIC_INCREASING;
return NON_MONOTONIC;
}
longlong Item_func_unix_timestamp::val_int_endpoint(bool left_endp, bool *incl_endp)
{
DBUG_ASSERT(fixed == 1);
DBUG_ASSERT(arg_count == 1 &&
args[0]->type() == Item::FIELD_ITEM &&
args[0]->field_type() == MYSQL_TYPE_TIMESTAMP);
Field *field=((Item_field*) args[0])->field;
/* Leave the incl_endp intact */
return ((Field_timestamp*) field)->get_timestamp(&null_value);
}
longlong Item_func_time_to_sec::val_int() longlong Item_func_time_to_sec::val_int()
{ {
......
...@@ -391,6 +391,8 @@ class Item_func_unix_timestamp :public Item_int_func ...@@ -391,6 +391,8 @@ class Item_func_unix_timestamp :public Item_int_func
Item_func_unix_timestamp(Item *a) :Item_int_func(a) {} Item_func_unix_timestamp(Item *a) :Item_int_func(a) {}
longlong val_int(); longlong val_int();
const char *func_name() const { return "unix_timestamp"; } const char *func_name() const { return "unix_timestamp"; }
enum_monotonicity_info get_monotonicity_info() const;
longlong val_int_endpoint(bool left_endp, bool *incl_endp);
bool check_partition_func_processor(uchar *int_arg) {return FALSE;} bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
/* /*
UNIX_TIMESTAMP() depends on the current timezone UNIX_TIMESTAMP() depends on the current timezone
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment