Merge lp:~stewart/drizzle/embedded-innodb-sec-index-prev into lp:~drizzle-trunk/drizzle/development

Proposed by Stewart Smith
Status: Merged
Approved by: Brian Aker
Approved revision: 1622
Merged at revision: 1711
Proposed branch: lp:~stewart/drizzle/embedded-innodb-sec-index-prev
Merge into: lp:~drizzle-trunk/drizzle/development
Prerequisite: lp:~stewart/drizzle/embedded-innodb-no-pkey-bug-fixes
Diff against target: 86 lines (+36/-15)
4 files modified
plugin/embedded_innodb/embedded_innodb_engine.cc (+18/-15)
plugin/embedded_innodb/test-suite-dir/embedded_innodb/tests/r/basic_sec_index_prev.result (+13/-0)
plugin/embedded_innodb/test-suite-dir/embedded_innodb/tests/t/basic_sec_index_prev-master.opt (+1/-0)
plugin/embedded_innodb/test-suite-dir/embedded_innodb/tests/t/basic_sec_index_prev.test (+4/-0)
To merge this branch: bzr merge lp:~stewart/drizzle/embedded-innodb-sec-index-prev
Reviewer Review Type Date Requested Status
Drizzle Developers Pending
Brian Aker Pending
Review via email: mp+32412@code.launchpad.net

Description of the change

Fix index_prev and index_last for secondary indexes in embedded_innodb

http://hudson.drizzle.org/view/Drizzle-param/job/drizzle-embedded-innodb-param/42/

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'plugin/embedded_innodb/embedded_innodb_engine.cc'
2--- plugin/embedded_innodb/embedded_innodb_engine.cc 2010-08-12 03:55:57 +0000
3+++ plugin/embedded_innodb/embedded_innodb_engine.cc 2010-08-12 03:55:57 +0000
4@@ -2418,16 +2418,22 @@
5 ib_err_t err;
6
7 if (advance_cursor)
8+ {
9 err= ib_cursor_prev(cursor);
10-
11- if (active_index == 0)
12- {
13- tuple= ib_tuple_clear(tuple);
14- ret= read_row_from_innodb(buf, cursor, tuple, table,
15- share->has_hidden_primary_key,
16- &hidden_autoinc_pkey_position);
17+ if (err != DB_SUCCESS)
18+ {
19+ if (err == DB_END_OF_INDEX)
20+ return HA_ERR_END_OF_FILE;
21+ else
22+ return -1; // FIXME
23+ }
24 }
25
26+ tuple= ib_tuple_clear(tuple);
27+ ret= read_row_from_innodb(buf, cursor, tuple, table,
28+ share->has_hidden_primary_key,
29+ &hidden_autoinc_pkey_position);
30+
31 advance_cursor= true;
32
33 return ret;
34@@ -2473,14 +2479,11 @@
35 return -1; // FIXME
36 }
37
38- if (active_index == 0)
39- {
40- tuple= ib_tuple_clear(tuple);
41- ret= read_row_from_innodb(buf, cursor, tuple, table,
42- share->has_hidden_primary_key,
43- &hidden_autoinc_pkey_position);
44- advance_cursor= true;
45- }
46+ tuple= ib_tuple_clear(tuple);
47+ ret= read_row_from_innodb(buf, cursor, tuple, table,
48+ share->has_hidden_primary_key,
49+ &hidden_autoinc_pkey_position);
50+ advance_cursor= true;
51
52 return ret;
53 }
54
55=== added file 'plugin/embedded_innodb/test-suite-dir/embedded_innodb/tests/r/basic_sec_index_prev.result'
56--- plugin/embedded_innodb/test-suite-dir/embedded_innodb/tests/r/basic_sec_index_prev.result 1970-01-01 00:00:00 +0000
57+++ plugin/embedded_innodb/test-suite-dir/embedded_innodb/tests/r/basic_sec_index_prev.result 2010-08-12 03:55:57 +0000
58@@ -0,0 +1,13 @@
59+create table t1 (a int auto_increment primary key, b int, key(b));
60+insert into t1 (b) values (2),(3),(100),(40),(400), (301), (56), (22);
61+select b from t1 order by b desc;
62+b
63+400
64+301
65+100
66+56
67+40
68+22
69+3
70+2
71+drop table t1;
72
73=== added file 'plugin/embedded_innodb/test-suite-dir/embedded_innodb/tests/t/basic_sec_index_prev-master.opt'
74--- plugin/embedded_innodb/test-suite-dir/embedded_innodb/tests/t/basic_sec_index_prev-master.opt 1970-01-01 00:00:00 +0000
75+++ plugin/embedded_innodb/test-suite-dir/embedded_innodb/tests/t/basic_sec_index_prev-master.opt 2010-08-12 03:55:57 +0000
76@@ -0,0 +1,1 @@
77+--plugin_add=embedded_innodb --plugin_remove=innobase
78
79=== added file 'plugin/embedded_innodb/test-suite-dir/embedded_innodb/tests/t/basic_sec_index_prev.test'
80--- plugin/embedded_innodb/test-suite-dir/embedded_innodb/tests/t/basic_sec_index_prev.test 1970-01-01 00:00:00 +0000
81+++ plugin/embedded_innodb/test-suite-dir/embedded_innodb/tests/t/basic_sec_index_prev.test 2010-08-12 03:55:57 +0000
82@@ -0,0 +1,4 @@
83+create table t1 (a int auto_increment primary key, b int, key(b));
84+insert into t1 (b) values (2),(3),(100),(40),(400), (301), (56), (22);
85+select b from t1 order by b desc;
86+drop table t1;