summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorevgen@moonbone.local <>2005-11-16 02:08:20 +0300
committerevgen@moonbone.local <>2005-11-16 02:08:20 +0300
commit7749b8d15b6bd7490be2b0afc636e09f7168abe0 (patch)
treed99833389492c7d58b799afe2da88bb8b5443c4d
parent13ae8d8d7096cf9eff7952f176a4e81cd0afc777 (diff)
parent35f7b50b181ec58f149a8f0bfc720ab81f762695 (diff)
downloadmariadb-git-7749b8d15b6bd7490be2b0afc636e09f7168abe0.tar.gz
Merge
-rw-r--r--mysql-test/r/view.result8
-rw-r--r--mysql-test/t/view.test10
-rw-r--r--sql/sql_select.cc2
3 files changed, 19 insertions, 1 deletions
diff --git a/mysql-test/r/view.result b/mysql-test/r/view.result
index ded9eb199f7..42708a7c835 100644
--- a/mysql-test/r/view.result
+++ b/mysql-test/r/view.result
@@ -2385,6 +2385,14 @@ show create view v1;
View Create View
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY INVOKER VIEW `v1` AS select 1 AS `1`
drop view v1;
+create table t1 (id INT, primary key(id));
+insert into t1 values (1),(2);
+create view v1 as select * from t1;
+explain select id from v1 order by id;
+id select_type table type possible_keys key key_len ref rows Extra
+1 PRIMARY t1 index NULL PRIMARY 4 NULL 2 Using index
+drop view v1;
+drop table t1;
create table t1(f1 int, f2 int);
insert into t1 values (null, 10), (null,2);
create view v1 as select * from t1;
diff --git a/mysql-test/t/view.test b/mysql-test/t/view.test
index 899279dc912..7608d121c55 100644
--- a/mysql-test/t/view.test
+++ b/mysql-test/t/view.test
@@ -2255,6 +2255,16 @@ show create view v1;
drop view v1;
#
+# Bug #14816 test_if_order_by_key() expected only Item_fields.
+#
+create table t1 (id INT, primary key(id));
+insert into t1 values (1),(2);
+create view v1 as select * from t1;
+explain select id from v1 order by id;
+drop view v1;
+drop table t1;
+
+#
# Bug #14850 Item_ref's values wasn't updated
#
create table t1(f1 int, f2 int);
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index 44c4ec998bb..b65e25335fc 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -10988,7 +10988,7 @@ static int test_if_order_by_key(ORDER *order, TABLE *table, uint idx,
for (; order ; order=order->next, const_key_parts>>=1)
{
- Field *field=((Item_field*) (*order->item))->field;
+ Field *field=((Item_field*) (*order->item)->real_item())->field;
int flag;
/*