null+****@clear*****
null+****@clear*****
2011年 11月 10日 (木) 18:50:44 JST
Kouhei Sutou 2011-11-10 09:50:44 +0000 (Thu, 10 Nov 2011) New Revision: 48bebc0439609e87700035c470ac8085e3d6de58 Log: [test] add tests for a bug that wrong index is used for sort. refs #766 Reported by Horikoshi Yuki. Thanks!!! Modified files: test/unit/core/test-command-select-sort.c Modified: test/unit/core/test-command-select-sort.c (+60 -2) =================================================================== --- test/unit/core/test-command-select-sort.c 2011-11-10 09:30:51 +0000 (13c68f2) +++ test/unit/core/test-command-select-sort.c 2011-11-10 09:50:44 +0000 (e64d620) @@ -28,7 +28,9 @@ void test_drilldown(void); void test_score_without_query(void); void test_score_drilldown_without_query(void); void test_nonexistent(void); -void test_index(void); +void test_fulltext_search_index_with_query(void); +void test_pat_integer_index_with_query(void); +void test_pat_integer_index_without_query(void); static gchar *tmp_directory; @@ -264,7 +266,7 @@ test_nonexistent(void) } void -test_index(void) +test_fulltext_search_index_with_query(void) { cut_assert_equal_string( "[[[2]," @@ -279,3 +281,59 @@ test_index(void) "--match_columns \"description\" " "--query \"fulltext\"")); } + +void +test_pat_integer_index_with_query(void) +{ + assert_send_commands("table_create Ages TABLE_PAT_KEY Int32\n" + "column_create Ages site_index COLUMN_INDEX Sites age"); + assert_send_commands("load --table Sites\n" + "[\n" + "[\"_key\", \"score\", \"age\", \"description\"],\n" + "[\"mroonga.github.com\", 100, 2, " + "\"fast fulltext search on MySQL\"],\n" + "[\"groonga.rubyforge.org\", 100, 1, " + "\"Ruby bindings for groonga\"]\n" + "]"); + + cut_assert_equal_string( + "[[[5]," + "[[\"age\",\"Int32\"],[\"_key\",\"ShortText\"]]," + "[1,\"groonga.rubyforge.org\"]," + "[2,\"groonga.org\"]," + "[2,\"mroonga.github.com\"]," + "[5,\"qwik.jp/senna/FrontPageJ.html\"]," + "[11,\"2ch.net\"]]]", + send_command("select Sites " + "--sortby \"age\" " + "--output_columns \"age, _key\" " + "--match_columns \"description\" " + "--query \"fulltext OR BBS OR groonga\"")); +} + +void +test_pat_integer_index_without_query(void) +{ + assert_send_commands("table_create Ages TABLE_PAT_KEY Int32\n" + "column_create Ages site_index COLUMN_INDEX Sites age"); + assert_send_commands("load --table Sites\n" + "[\n" + "[\"_key\", \"score\", \"age\", \"description\"],\n" + "[\"mroonga.github.com\", 100, 2, " + "\"fast fulltext search on MySQL\"],\n" + "[\"groonga.rubyforge.org\", 100, 1, " + "\"Ruby bindings for groonga\"]\n" + "]"); + + cut_assert_equal_string( + "[[[5]," + "[[\"age\",\"Int32\"],[\"_key\",\"ShortText\"]]," + "[1,\"groonga.rubyforge.org\"]," + "[2,\"groonga.org\"]," + "[2,\"mroonga.github.com\"]," + "[5,\"qwik.jp/senna/FrontPageJ.html\"]," + "[11,\"2ch.net\"]]]", + send_command("select Sites " + "--sortby \"age\" " + "--output_columns \"age, _key\"")); +}