From svnnotify @ sourceforge.jp Mon Jun 2 18:47:47 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Mon, 02 Jun 2008 18:47:47 +0900 Subject: [Tritonn-commit 103] [svn] [116] removed bootstrap file Message-ID: <1212400067.910409.19824.nullmailer@users.sourceforge.jp> Revision: 116 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=116 Author: mir Date: 2008-06-02 18:47:47 +0900 (Mon, 02 Jun 2008) Log Message: ----------- removed bootstrap file Removed Paths: ------------- trunk/bootstrap -------------- next part -------------- Deleted: trunk/bootstrap =================================================================== --- trunk/bootstrap 2008-05-29 06:53:40 UTC (rev 115) +++ trunk/bootstrap 2008-06-02 09:47:47 UTC (rev 116) @@ -1,6 +0,0 @@ -#!/bin/sh -libtoolize -c -f -aclocal-1.9 -autoheader -automake-1.9 -c -a -i -autoconf From svnnotify @ sourceforge.jp Thu Jun 5 19:40:43 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Thu, 05 Jun 2008 19:40:43 +0900 Subject: [Tritonn-commit 104] [svn] [118] protptype for development Message-ID: <1212662443.504263.11760.nullmailer@users.sourceforge.jp> Revision: 118 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=118 Author: mir Date: 2008-06-05 19:40:43 +0900 (Thu, 05 Jun 2008) Log Message: ----------- protptype for development Modified Paths: -------------- trunk/src/Makefile.am trunk/src/ha_tritonn.cc trunk/src/ha_tritonn.h From svnnotify @ sourceforge.jp Thu Jun 5 19:51:04 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Thu, 05 Jun 2008 19:51:04 +0900 Subject: [Tritonn-commit 105] [svn] [119] * moritapo joined! Message-ID: <1212663064.505010.21013.nullmailer@users.sourceforge.jp> Revision: 119 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=119 Author: moritapo Date: 2008-06-05 19:51:04 +0900 (Thu, 05 Jun 2008) Log Message: ----------- * moritapo joined! Modified Paths: -------------- trunk/AUTHORS From svnnotify @ sourceforge.jp Thu Jun 5 20:18:43 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Thu, 05 Jun 2008 20:18:43 +0900 Subject: [Tritonn-commit 106] [svn] [120] added sample autotools.sh Message-ID: <1212664723.339681.9035.nullmailer@users.sourceforge.jp> Revision: 120 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=120 Author: mir Date: 2008-06-05 20:18:43 +0900 (Thu, 05 Jun 2008) Log Message: ----------- added sample autotools.sh Added Paths: ----------- build/cfg/autotools.sh From svnnotify @ sourceforge.jp Thu Jun 5 20:20:12 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Thu, 05 Jun 2008 20:20:12 +0900 Subject: [Tritonn-commit 107] [svn] [121] added scrits for autotools Message-ID: <1212664812.726048.10463.nullmailer@users.sourceforge.jp> Revision: 121 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=121 Author: mir Date: 2008-06-05 20:20:12 +0900 (Thu, 05 Jun 2008) Log Message: ----------- added scrits for autotools Removed Paths: ------------- build/cfg/autotools.sh From svnnotify @ sourceforge.jp Thu Jun 5 20:21:24 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Thu, 05 Jun 2008 20:21:24 +0900 Subject: [Tritonn-commit 108] [svn] [122] test Message-ID: <1212664884.579675.10810.nullmailer@users.sourceforge.jp> Revision: 122 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=122 Author: mir Date: 2008-06-05 20:21:24 +0900 (Thu, 05 Jun 2008) Log Message: ----------- test Added Paths: ----------- trunk/autotools.sh From svnnotify @ sourceforge.jp Thu Jun 5 20:23:14 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Thu, 05 Jun 2008 20:23:14 +0900 Subject: [Tritonn-commit 109] [svn] [123] removed make clean from autotools.sh Message-ID: <1212664994.676163.12128.nullmailer@users.sourceforge.jp> Revision: 123 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=123 Author: mir Date: 2008-06-05 20:23:14 +0900 (Thu, 05 Jun 2008) Log Message: ----------- removed make clean from autotools.sh Modified Paths: -------------- trunk/autotools.sh From svnnotify @ sourceforge.jp Thu Jun 5 20:23:34 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Thu, 05 Jun 2008 20:23:34 +0900 Subject: [Tritonn-commit 110] [svn] [124] renamed autotools.sh to autogen.sh Message-ID: <1212665014.159790.12213.nullmailer@users.sourceforge.jp> Revision: 124 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=124 Author: mir Date: 2008-06-05 20:23:34 +0900 (Thu, 05 Jun 2008) Log Message: ----------- renamed autotools.sh to autogen.sh Added Paths: ----------- trunk/autogen.sh Removed Paths: ------------- trunk/autotools.sh From svnnotify @ sourceforge.jp Fri Jun 6 13:40:10 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Fri, 06 Jun 2008 13:40:10 +0900 Subject: [Tritonn-commit 111] [svn] [125] removed some files from svn control Message-ID: <1212727210.659947.590.nullmailer@users.sourceforge.jp> Revision: 125 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=125 Author: mir Date: 2008-06-06 13:40:10 +0900 (Fri, 06 Jun 2008) Log Message: ----------- removed some files from svn control Removed Paths: ------------- tags/tritonn-1.0.10-mysql-5.0.51a/client/my_user.c tags/tritonn-1.0.10-mysql-5.0.51a/libmysql/password.c tags/tritonn-1.0.10-mysql-5.0.51a/libmysql_r/conf_to_src.c tags/tritonn-1.0.10-mysql-5.0.51a/libmysql_r/errmsg.c tags/tritonn-1.0.10-mysql-5.0.51a/libmysql_r/get_password.c tags/tritonn-1.0.10-mysql-5.0.51a/libmysql_r/libmysql.c tags/tritonn-1.0.10-mysql-5.0.51a/libmysql_r/manager.c tags/tritonn-1.0.10-mysql-5.0.51a/libmysql_r/password.c tags/tritonn-1.0.10-mysql-5.0.51a/sql/client.c tags/tritonn-1.0.10-mysql-5.0.51a/sql/mini_client_errors.c tags/tritonn-1.0.10-mysql-5.0.51a/sql/my_time.c tags/tritonn-1.0.10-mysql-5.0.51a/sql/my_user.c tags/tritonn-1.0.10-mysql-5.0.51a/sql/pack.c Property Changed: ---------------- tags/tritonn-1.0.10-mysql-5.0.51a/ From svnnotify @ sourceforge.jp Fri Jun 6 13:59:59 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Fri, 06 Jun 2008 13:59:59 +0900 Subject: [Tritonn-commit 112] [svn] [126] removed auto-generated file from version control Message-ID: <1212728399.075417.17423.nullmailer@users.sourceforge.jp> Revision: 126 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=126 Author: mir Date: 2008-06-06 13:59:58 +0900 (Fri, 06 Jun 2008) Log Message: ----------- removed auto-generated file from version control Removed Paths: ------------- tags/tritonn-1.0.10-mysql-5.0.51a/scripts/mysqlbug From svnnotify @ sourceforge.jp Fri Jun 6 14:02:55 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Fri, 06 Jun 2008 14:02:55 +0900 Subject: [Tritonn-commit 113] [svn] [127] removed auto-generated file from version control Message-ID: <1212728575.959679.20583.nullmailer@users.sourceforge.jp> Revision: 127 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=127 Author: mir Date: 2008-06-06 14:02:55 +0900 (Fri, 06 Jun 2008) Log Message: ----------- removed auto-generated file from version control Removed Paths: ------------- tags/tritonn-1.0.10-mysql-5.0.51a/support-files/MacOSX/ReadMe.txt Property Changed: ---------------- tags/tritonn-1.0.10-mysql-5.0.51a/ From svnnotify @ sourceforge.jp Fri Jun 6 15:32:50 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Fri, 06 Jun 2008 15:32:50 +0900 Subject: [Tritonn-commit 114] [svn] [128] updated members of MI_KEYDEF for senna 1.1. 1 new signature of sen_index_info() Message-ID: <1212733970.671913.18875.nullmailer@users.sourceforge.jp> Revision: 128 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=128 Author: mir Date: 2008-06-06 15:32:50 +0900 (Fri, 06 Jun 2008) Log Message: ----------- updated members of MI_KEYDEF for senna 1.1.1 new signature of sen_index_info() Modified Paths: -------------- tags/tritonn-1.0.10-mysql-5.0.51a/include/myisam.h From svnnotify @ sourceforge.jp Fri Jun 6 17:26:02 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Fri, 06 Jun 2008 17:26:02 +0900 Subject: [Tritonn-commit 115] [svn] [129] upgraded process of MECAB_STATIC for using sen_lex_set_mecab_args. Message-ID: <1212740762.943144.14007.nullmailer@users.sourceforge.jp> Revision: 129 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=129 Author: mir Date: 2008-06-06 17:26:02 +0900 (Fri, 06 Jun 2008) Log Message: ----------- upgraded process of MECAB_STATIC for using sen_lex_set_mecab_args. After this commit, tritonn requires senna-1.1.3 or later. Modified Paths: -------------- tags/tritonn-1.0.10-mysql-5.0.51a/sql/mysqld.cc From svnnotify @ sourceforge.jp Fri Jun 6 20:05:03 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Fri, 06 Jun 2008 20:05:03 +0900 Subject: [Tritonn-commit 116] [svn] [130] added flag= SEN_SNIP_SKIP_LEADING_SPACES for sen_snip_open in KWIC function Message-ID: <1212750303.131408.13156.nullmailer@users.sourceforge.jp> Revision: 130 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=130 Author: mir Date: 2008-06-06 20:05:02 +0900 (Fri, 06 Jun 2008) Log Message: ----------- added flag=SEN_SNIP_SKIP_LEADING_SPACES for sen_snip_open in KWIC function Modified Paths: -------------- tags/tritonn-1.0.10-mysql-5.0.51a/sql/item_strfunc.cc From svnnotify @ sourceforge.jp Mon Jun 9 12:36:22 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Mon, 09 Jun 2008 12:36:22 +0900 Subject: [Tritonn-commit 117] [svn] [131] added DEBUG_2IND macro for debugging my_thread_var->sen_flags. Message-ID: <1212982582.421854.28708.nullmailer@users.sourceforge.jp> Revision: 131 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=131 Author: mir Date: 2008-06-09 12:36:22 +0900 (Mon, 09 Jun 2008) Log Message: ----------- added DEBUG_2IND macro for debugging my_thread_var->sen_flags. DEBUG_2IND is activated only with -DSENNA_DEBUG_2IND. Modified Paths: -------------- tags/tritonn-1.0.10-mysql-5.0.51a/include/my_global.h tags/tritonn-1.0.10-mysql-5.0.51a/sql/filesort.cc tags/tritonn-1.0.10-mysql-5.0.51a/sql/item_sum.cc tags/tritonn-1.0.10-mysql-5.0.51a/sql/records.cc tags/tritonn-1.0.10-mysql-5.0.51a/sql/set_var.cc tags/tritonn-1.0.10-mysql-5.0.51a/sql/sql_parse.cc tags/tritonn-1.0.10-mysql-5.0.51a/sql/sql_select.cc From svnnotify @ sourceforge.jp Mon Jun 9 13:06:05 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Mon, 09 Jun 2008 13:06:05 +0900 Subject: [Tritonn-commit 118] [svn] [132] upgraded DEBUG_2IND macro for easy reading Message-ID: <1212984365.650104.19508.nullmailer@users.sourceforge.jp> Revision: 132 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=132 Author: mir Date: 2008-06-09 13:06:05 +0900 (Mon, 09 Jun 2008) Log Message: ----------- upgraded DEBUG_2IND macro for easy reading Modified Paths: -------------- tags/tritonn-1.0.10-mysql-5.0.51a/include/my_global.h -------------- next part -------------- Modified: tags/tritonn-1.0.10-mysql-5.0.51a/include/my_global.h =================================================================== --- tags/tritonn-1.0.10-mysql-5.0.51a/include/my_global.h 2008-06-09 03:36:22 UTC (rev 131) +++ tags/tritonn-1.0.10-mysql-5.0.51a/include/my_global.h 2008-06-09 04:06:05 UTC (rev 132) @@ -1358,8 +1358,19 @@ #ifdef ENABLE_SENNA #ifdef SENNA_DEBUG_2IND -#define DEBUG_2IND(x) x; \ - printf("DEBUG_2IND=%d, at %s:%d\n", my_thread_var->sen_flags, __FILE__, __LINE__) +#define DEBUG_2IND(sxp) sxp; \ + { \ + int sf = my_thread_var->sen_flags; \ + printf("%s:%d sen_flags=%d (",__FILE__, __LINE__, sf); \ + if (sf & SENNA_USE_2IND) printf("USE2IND "); \ + if (sf & SENNA_MATCH) printf("MATCH "); \ + if (sf & SENNA_FILESORT) printf("FILESORT "); \ + if (sf & SENNA_DO_READ_RECORD) printf("DO_READ_RECORD "); \ + if (sf & SENNA_IF_READ_RECORD) printf("IF_READ_RECORD "); \ + if (sf & SENNA_DISTINCT) printf("DISTINCT "); \ + if (sf & SENNA_FIRST_CALL) printf("FIRST_CALL "); \ + printf(")\n"); \ + } #else #define DEBUG_2IND(x) x #endif From svnnotify @ sourceforge.jp Mon Jun 9 14:46:36 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Mon, 09 Jun 2008 14:46:36 +0900 Subject: [Tritonn-commit 119] [svn] [133] added comments for senna_2ind flags Message-ID: <1212990396.225480.563.nullmailer@users.sourceforge.jp> Revision: 133 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=133 Author: mir Date: 2008-06-09 14:46:36 +0900 (Mon, 09 Jun 2008) Log Message: ----------- added comments for senna_2ind flags Modified Paths: -------------- tags/tritonn-1.0.10-mysql-5.0.51a/include/my_base.h -------------- next part -------------- Modified: tags/tritonn-1.0.10-mysql-5.0.51a/include/my_base.h =================================================================== --- tags/tritonn-1.0.10-mysql-5.0.51a/include/my_base.h 2008-06-09 04:06:05 UTC (rev 132) +++ tags/tritonn-1.0.10-mysql-5.0.51a/include/my_base.h 2008-06-09 05:46:36 UTC (rev 133) @@ -336,16 +336,20 @@ #define HA_STATUS_SENNA (1 << 31) #endif -/* +/* The following defines are for senna.2ind patch. + + 1. For (output|filesort|grouping), record value is needed? + 2. If so, each code checks if filescan is needed. + 3. If filescan is needed, read_record will be executed. */ #ifdef ENABLE_SENNA -#define SENNA_USE_2IND (1 << 0) -#define SENNA_MATCH (1 << 1) -#define SENNA_FILESORT (1 << 2) -#define SENNA_DO_READ_RECORD (1 << 3) -#define SENNA_IF_READ_RECORD (1 << 4) -#define SENNA_DISTINCT (1 << 5) +#define SENNA_USE_2IND (1 << 0) /* senna_2ind is on */ +#define SENNA_MATCH (1 << 1) /* query has match...agains */ +#define SENNA_FILESORT (1 << 2) /* query needs filesort */ +#define SENNA_DO_READ_RECORD (1 << 3) /* query needs read_record when filescan, ft_read_next */ +#define SENNA_IF_READ_RECORD (1 << 4) /* decide_read_or_skip told read_record is needed */ +#define SENNA_DISTINCT (1 << 5) /* query has distict */ #define SENNA_FIRST_CALL (1 << 6) #endif From svnnotify @ sourceforge.jp Mon Jun 9 15:31:03 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Mon, 09 Jun 2008 15:31:03 +0900 Subject: [Tritonn-commit 120] [svn] [134] added caling DEBUG_2IND in sql_select.cc Message-ID: <1212993063.289021.6442.nullmailer@users.sourceforge.jp> Revision: 134 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=134 Author: mir Date: 2008-06-09 15:31:03 +0900 (Mon, 09 Jun 2008) Log Message: ----------- added caling DEBUG_2IND in sql_select.cc Modified Paths: -------------- tags/tritonn-1.0.10-mysql-5.0.51a/libmysqld/sql_select.cc -------------- next part -------------- Modified: tags/tritonn-1.0.10-mysql-5.0.51a/libmysqld/sql_select.cc =================================================================== --- tags/tritonn-1.0.10-mysql-5.0.51a/libmysqld/sql_select.cc 2008-06-09 05:46:36 UTC (rev 133) +++ tags/tritonn-1.0.10-mysql-5.0.51a/libmysqld/sql_select.cc 2008-06-09 06:31:03 UTC (rev 134) @@ -12726,7 +12726,7 @@ #ifdef ENABLE_SENNA if (tab->select_cond && tab->select_cond->needs_record()) { - my_thread_var->sen_flags |= SENNA_IF_READ_RECORD; + DEBUG_2IND(my_thread_var->sen_flags |= SENNA_IF_READ_RECORD); } #endif /* ENABLE_SENNA */ From svnnotify @ sourceforge.jp Mon Jun 9 17:00:56 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Mon, 09 Jun 2008 17:00:56 +0900 Subject: [Tritonn-commit 121] [svn] [135] fixed 2ind for group functions sum, count ... Message-ID: <1212998456.611493.18912.nullmailer@users.sourceforge.jp> Revision: 135 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=135 Author: mir Date: 2008-06-09 17:00:56 +0900 (Mon, 09 Jun 2008) Log Message: ----------- fixed 2ind for group functions sum, count ... Modified Paths: -------------- tags/tritonn-1.0.10-mysql-5.0.51a/sql/sql_select.cc -------------- next part -------------- Modified: tags/tritonn-1.0.10-mysql-5.0.51a/sql/sql_select.cc =================================================================== --- tags/tritonn-1.0.10-mysql-5.0.51a/sql/sql_select.cc 2008-06-09 06:31:03 UTC (rev 134) +++ tags/tritonn-1.0.10-mysql-5.0.51a/sql/sql_select.cc 2008-06-09 08:00:56 UTC (rev 135) @@ -10458,8 +10458,7 @@ decide_read_or_skip(JOIN *join,JOIN_TAB *join_tab,bool needs_record) { if (needs_record || (my_thread_var->sen_flags & (SENNA_DISTINCT | SENNA_FIRST_CALL)) || - (join_tab->next_select != end_send_group && - !join->unit->offset_limit_cnt && + (!join->unit->offset_limit_cnt && join->send_records < join->unit->select_limit_cnt)) { DEBUG_2IND(my_thread_var->sen_flags |= SENNA_IF_READ_RECORD); } else { From svnnotify @ sourceforge.jp Mon Jun 9 17:10:08 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Mon, 09 Jun 2008 17:10:08 +0900 Subject: [Tritonn-commit 122] [svn] [136] added testcase file for 2ind and testcase for bugfix of group functions. Message-ID: <1212999008.209323.26642.nullmailer@users.sourceforge.jp> Revision: 136 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=136 Author: mir Date: 2008-06-09 17:10:08 +0900 (Mon, 09 Jun 2008) Log Message: ----------- added testcase file for 2ind and testcase for bugfix of group functions. Added Paths: ----------- tags/tritonn-1.0.10-mysql-5.0.51a/mysql-test/suite/senna/r/senna_2ind.result tags/tritonn-1.0.10-mysql-5.0.51a/mysql-test/suite/senna/t/senna_2ind.test -------------- next part -------------- Added: tags/tritonn-1.0.10-mysql-5.0.51a/mysql-test/suite/senna/r/senna_2ind.result =================================================================== --- tags/tritonn-1.0.10-mysql-5.0.51a/mysql-test/suite/senna/r/senna_2ind.result (rev 0) +++ tags/tritonn-1.0.10-mysql-5.0.51a/mysql-test/suite/senna/r/senna_2ind.result 2008-06-09 08:10:08 UTC (rev 136) @@ -0,0 +1,20 @@ +SET NAMES utf8; +DROP TABLE IF EXISTS t1; +drop table if exists t1; +Warnings: +Note 1051 Unknown table 't1' +create table t1(c1 int, c2 varchar(255), index(c1)) default charset utf8; +insert into t1 values (1,"aaa"); +insert into t1 values (2,"aaa"); +insert into t1 values (3,"bbb"); +insert into t1 values (4,"bbb"); +create fulltext index ft using +ngram,split_alpha,split_digit,split_symbol on t1(c2); +set senna_2ind=OFF; +select sum(c1) from t1 where match(c2) against("a"); +sum(c1) +3 +set senna_2ind=ON; +select sum(c1) from t1 where match(c2) against("a"); +sum(c1) +3 Added: tags/tritonn-1.0.10-mysql-5.0.51a/mysql-test/suite/senna/t/senna_2ind.test =================================================================== --- tags/tritonn-1.0.10-mysql-5.0.51a/mysql-test/suite/senna/t/senna_2ind.test (rev 0) +++ tags/tritonn-1.0.10-mysql-5.0.51a/mysql-test/suite/senna/t/senna_2ind.test 2008-06-09 08:10:08 UTC (rev 136) @@ -0,0 +1,21 @@ +SET NAMES utf8; + +--disable_warnings +DROP TABLE IF EXISTS t1; +--enable_warnings + +# bugfix for 2ind, group functions. sum, count ... +drop table if exists t1; +create table t1(c1 int, c2 varchar(255), index(c1)) default charset utf8; +insert into t1 values (1,"aaa"); +insert into t1 values (2,"aaa"); +insert into t1 values (3,"bbb"); +insert into t1 values (4,"bbb"); + +create fulltext index ft using +ngram,split_alpha,split_digit,split_symbol on t1(c2); + +set senna_2ind=OFF; +select sum(c1) from t1 where match(c2) against("a"); +set senna_2ind=ON; +select sum(c1) from t1 where match(c2) against("a"); From svnnotify @ sourceforge.jp Mon Jun 9 17:11:56 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Mon, 09 Jun 2008 17:11:56 +0900 Subject: [Tritonn-commit 123] [svn] [137] updated expected test file for senna_kwic regarding to SEN_SNIP_SKIP_LEADING_SPACES . Message-ID: <1212999116.397286.27377.nullmailer@users.sourceforge.jp> Revision: 137 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=137 Author: mir Date: 2008-06-09 17:11:56 +0900 (Mon, 09 Jun 2008) Log Message: ----------- updated expected test file for senna_kwic regarding to SEN_SNIP_SKIP_LEADING_SPACES. Modified Paths: -------------- tags/tritonn-1.0.10-mysql-5.0.51a/mysql-test/suite/senna/r/senna_kwic.result -------------- next part -------------- Modified: tags/tritonn-1.0.10-mysql-5.0.51a/mysql-test/suite/senna/r/senna_kwic.result =================================================================== --- tags/tritonn-1.0.10-mysql-5.0.51a/mysql-test/suite/senna/r/senna_kwic.result 2008-06-09 08:10:08 UTC (rev 136) +++ tags/tritonn-1.0.10-mysql-5.0.51a/mysql-test/suite/senna/r/senna_kwic.result 2008-06-09 08:11:56 UTC (rev 137) @@ -158,8 +158,8 @@ insert into t1 (c1, time) VALUES('B A B', 1191299722); select kwic(c1, 120, 3, 0, "", "", "B", "[", "]") from t1; kwic(c1, 120, 3, 0, "", "", "B", "[", "]") -[B] A[ B] -[B] A[ B] +[B] A [B] +[B] A [B] drop table t1; create table t1 (c1 longtext) default charset utf8 engine=myisam; insert into t1 (c1) VALUES('アイコンメニュー と ポートレット から検索'); @@ -171,7 +171,7 @@ [アイコンメニュー] と ポートレット から検索 select kwic(c1, 120, 3, 0, "", "", "から", "[", "]") from t1; kwic(c1, 120, 3, 0, "", "", "から", "[", "]") -アイコンメニュー と ポートレット[ から]検索 +アイコンメニュー と ポートレット [から]検索 select kwic(c1, 120, 3, 0, "", "", "検索", "[", "]") from t1; kwic(c1, 120, 3, 0, "", "", "検索", "[", "]") アイコンメニュー と ポートレット から[検索] From svnnotify @ sourceforge.jp Tue Jun 10 11:04:07 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Tue, 10 Jun 2008 11:04:07 +0900 Subject: [Tritonn-commit 124] [svn] [138] upgraded DEBUG_2IND Message-ID: <1213063447.273072.5495.nullmailer@users.sourceforge.jp> Revision: 138 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=138 Author: mir Date: 2008-06-10 11:04:07 +0900 (Tue, 10 Jun 2008) Log Message: ----------- upgraded DEBUG_2IND Modified Paths: -------------- tags/tritonn-1.0.10-mysql-5.0.51a/include/my_global.h -------------- next part -------------- Modified: tags/tritonn-1.0.10-mysql-5.0.51a/include/my_global.h =================================================================== --- tags/tritonn-1.0.10-mysql-5.0.51a/include/my_global.h 2008-06-09 08:11:56 UTC (rev 137) +++ tags/tritonn-1.0.10-mysql-5.0.51a/include/my_global.h 2008-06-10 02:04:07 UTC (rev 138) @@ -1361,7 +1361,7 @@ #define DEBUG_2IND(sxp) sxp; \ { \ int sf = my_thread_var->sen_flags; \ - printf("%s:%d sen_flags=%d (",__FILE__, __LINE__, sf); \ + printf("%s#%s:%d sen_flags=%d (",__FUNCTION__,__FILE__, __LINE__, sf); \ if (sf & SENNA_USE_2IND) printf("USE2IND "); \ if (sf & SENNA_MATCH) printf("MATCH "); \ if (sf & SENNA_FILESORT) printf("FILESORT "); \ From svnnotify @ sourceforge.jp Tue Jun 10 18:20:15 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Tue, 10 Jun 2008 18:20:15 +0900 Subject: [Tritonn-commit 125] [svn] [139] removed testing function "func_snip" Message-ID: <1213089615.837763.12548.nullmailer@users.sourceforge.jp> Revision: 139 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=139 Author: mir Date: 2008-06-10 18:20:15 +0900 (Tue, 10 Jun 2008) Log Message: ----------- removed testing function "func_snip" Modified Paths: -------------- trunk/src/ha_tritonn.cc -------------- next part -------------- Modified: trunk/src/ha_tritonn.cc =================================================================== --- trunk/src/ha_tritonn.cc 2008-06-10 02:04:07 UTC (rev 138) +++ trunk/src/ha_tritonn.cc 2008-06-10 09:20:15 UTC (rev 139) @@ -28,56 +28,6 @@ static HASH tritonn_open_tables; ///< Hash used to track the number of open tables; variable for tritonn share methods pthread_mutex_t tritonn_mutex; ///< This is the mutex used to init the hash; variable for tritonn share methods -#include -#include - -const char *path = "hoge"; -int key_size = 4; -int flags = SEN_INDEX_NORMALIZE | SEN_INDEX_NGRAM; -int initial_n_segments = 512; -sen_encoding encoding = sen_enc_utf8; - -int key_1 = 100; -int key_2 = 200; -int key_3 = 300; -int key_4 = 400; - -int keybuf; -int bufsize = 4; -int score; -int key; -int hits; - -int func_snip() -{ - printf("func_snip started\n"); - sen_init(); - sen_index_remove(path); - sen_index *index = sen_index_create(path, key_size, flags, initial_n_segments, encoding); - - sen_index_upd(index, &key_1, NULL, 0, "aaa", 3); - sen_index_upd(index, &key_2, NULL, 0, "bbb", 3); - sen_index_upd(index, &key_3, NULL, 0, "ccc", 3); - sen_index_upd(index, &key_4, NULL, 0, "ddd", 3); - - sen_records *records = sen_index_sel(index, "aaa", 3); - - hits = sen_records_nhits(records); - printf("number of hit is %d\n", hits); - - while ((key = sen_records_next(records, &keybuf, bufsize, &score))) - { - printf("key=%d, keybuf=%d, score=%d\n", key, keybuf, score); - } - - sen_records_close(records); - sen_index_close(index); - sen_fin(); - printf("func_snip finished\n"); - return 0; -} - - static uchar* get_key(TRITONN_SHARE *share, size_t *length, my_bool not_used __attribute__((unused))) { @@ -267,7 +217,6 @@ { DBUG_ENTER("ha_tritonn::create"); /* This is not implemented but we want someone to be able to see that it works. */ - /*func_snip();*/ DBUG_RETURN(0); } From svnnotify @ sourceforge.jp Wed Jun 11 10:30:18 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Wed, 11 Jun 2008 10:30:18 +0900 Subject: [Tritonn-commit 126] [svn] [140] fixed bug for 2ind + sum(), this fix should be better than r135 . Message-ID: <1213147818.281216.16334.nullmailer@users.sourceforge.jp> Revision: 140 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=140 Author: mir Date: 2008-06-11 10:30:18 +0900 (Wed, 11 Jun 2008) Log Message: ----------- fixed bug for 2ind + sum(), this fix should be better than r135. Modified Paths: -------------- tags/tritonn-1.0.10-mysql-5.0.51a/sql/sql_select.cc -------------- next part -------------- Modified: tags/tritonn-1.0.10-mysql-5.0.51a/sql/sql_select.cc =================================================================== --- tags/tritonn-1.0.10-mysql-5.0.51a/sql/sql_select.cc 2008-06-10 09:20:15 UTC (rev 139) +++ tags/tritonn-1.0.10-mysql-5.0.51a/sql/sql_select.cc 2008-06-11 01:30:18 UTC (rev 140) @@ -10458,7 +10458,8 @@ decide_read_or_skip(JOIN *join,JOIN_TAB *join_tab,bool needs_record) { if (needs_record || (my_thread_var->sen_flags & (SENNA_DISTINCT | SENNA_FIRST_CALL)) || - (!join->unit->offset_limit_cnt && + (*join->sum_funcs && (*join->sum_funcs)->sum_func() != Item_sum::COUNT_FUNC && + !join->unit->offset_limit_cnt && join->send_records < join->unit->select_limit_cnt)) { DEBUG_2IND(my_thread_var->sen_flags |= SENNA_IF_READ_RECORD); } else { From svnnotify @ sourceforge.jp Wed Jun 11 15:17:38 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Wed, 11 Jun 2008 15:17:38 +0900 Subject: [Tritonn-commit 127] [svn] [141] added engine grobal init/deinit process Message-ID: <1213165058.375208.10569.nullmailer@users.sourceforge.jp> Revision: 141 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=141 Author: mir Date: 2008-06-11 15:17:38 +0900 (Wed, 11 Jun 2008) Log Message: ----------- added engine grobal init/deinit process Modified Paths: -------------- trunk/src/ha_tritonn.cc -------------- next part -------------- Modified: trunk/src/ha_tritonn.cc =================================================================== --- trunk/src/ha_tritonn.cc 2008-06-11 01:30:18 UTC (rev 140) +++ trunk/src/ha_tritonn.cc 2008-06-11 06:17:38 UTC (rev 141) @@ -18,11 +18,18 @@ #include "ha_tritonn.h" #include +#include +char *dbpath="tritonn.db"; +sen_db *db; +int dbcreate_flag = 0; +sen_encoding db_encoding = sen_enc_utf8; +int ctx_flag = SEN_CTX_USEQL; + static handler *create_handler(handlerton *hton, TABLE_SHARE *table, MEM_ROOT *mem_root); -static int init_func(); +static int init_tritonn_func(); /* Variables for tritonn share methods */ static HASH tritonn_open_tables; ///< Hash used to track the number of open tables; variable for tritonn share methods @@ -35,7 +42,7 @@ return (uchar*) share->table_name; } -static int init_func(void *p) +static int init_tritonn_engine(void *p) { DBUG_ENTER("init_func"); @@ -50,10 +57,17 @@ hton->create= create_handler; hton->flags= HTON_CAN_RECREATE; + sen_init(); + + db = sen_db_open(dbpath); + if (!db) { + db = sen_db_create(dbpath,dbcreate_flag,db_encoding); + } + DBUG_RETURN(0); } -static int deinit_func(void *p) +static int deinit_tritonn_engine(void *p) { int error= 0; DBUG_ENTER("deinit_func"); @@ -63,6 +77,9 @@ hash_free(&tritonn_open_tables); pthread_mutex_destroy(&tritonn_mutex); + sen_db_close(db); + sen_fin(); + DBUG_RETURN(0); } @@ -216,7 +233,9 @@ HA_CREATE_INFO *create_info) { DBUG_ENTER("ha_tritonn::create"); - /* This is not implemented but we want someone to be able to see that it works. */ + + + DBUG_RETURN(0); } @@ -228,11 +247,11 @@ MYSQL_STORAGE_ENGINE_PLUGIN, &storage_engine_structure, "TRITONN", - "Brian Aker, TangentOrg", - "Skeleton storage engine", + "Tritonn Project", + "Tritonn storage engine", PLUGIN_LICENSE_BSD, - init_func, /* Plugin Init */ - deinit_func, /* Plugin Deinit */ + init_tritonn_engine, /* Plugin Init */ + deinit_tritonn_engine, /* Plugin Deinit */ 0x0001 /* 0.1 */, NULL, /* status variables */ NULL, /* system variables */ From svnnotify @ sourceforge.jp Thu Jun 12 15:20:52 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Thu, 12 Jun 2008 15:20:52 +0900 Subject: [Tritonn-commit 128] [svn] [142] redefined handlerton and plugin init/deinit Message-ID: <1213251652.489603.2287.nullmailer@users.sourceforge.jp> Revision: 142 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=142 Author: mir Date: 2008-06-12 15:20:52 +0900 (Thu, 12 Jun 2008) Log Message: ----------- redefined handlerton and plugin init/deinit Modified Paths: -------------- trunk/src/ha_tritonn.cc -------------- next part -------------- Modified: trunk/src/ha_tritonn.cc =================================================================== --- trunk/src/ha_tritonn.cc 2008-06-11 06:17:38 UTC (rev 141) +++ trunk/src/ha_tritonn.cc 2008-06-12 06:20:52 UTC (rev 142) @@ -29,7 +29,6 @@ static handler *create_handler(handlerton *hton, TABLE_SHARE *table, MEM_ROOT *mem_root); -static int init_tritonn_func(); /* Variables for tritonn share methods */ static HASH tritonn_open_tables; ///< Hash used to track the number of open tables; variable for tritonn share methods @@ -42,9 +41,9 @@ return (uchar*) share->table_name; } -static int init_tritonn_engine(void *p) +static int tritonn_init_hton(void *p) { - DBUG_ENTER("init_func"); + DBUG_ENTER("tritonn_init_hton"); handlerton *hton; @@ -53,33 +52,27 @@ (void) hash_init(&tritonn_open_tables, system_charset_info, 32, 0, 0, (hash_get_key) get_key, 0, 0); - hton->state= SHOW_OPTION_YES; - hton->create= create_handler; - hton->flags= HTON_CAN_RECREATE; + hton->state = SHOW_OPTION_YES; + hton->create = tritonn_create_handler; + hton->drop_database = tritonn_drop_database; + hton->flush_logs = tritonn_flush_logs; + hton->show_status = tritonn_show_status; + hton->flags = HTON_ALTER_NOT_SUPPORTED | HTON_CAN_RECREATE | + HTON_TEMPORARY_NOT_SUPPORTED | HTON_NO_PARTITION; - sen_init(); - - db = sen_db_open(dbpath); - if (!db) { - db = sen_db_create(dbpath,dbcreate_flag,db_encoding); - } - DBUG_RETURN(0); } -static int deinit_tritonn_engine(void *p) +static int tritonn_deinit_hton(void *p) { int error= 0; - DBUG_ENTER("deinit_func"); + DBUG_ENTER("tritonn_deinit_hton"); if (tritonn_open_tables.records) error= 1; hash_free(&tritonn_open_tables); pthread_mutex_destroy(&tritonn_mutex); - sen_db_close(db); - sen_fin(); - DBUG_RETURN(0); } @@ -250,8 +243,8 @@ "Tritonn Project", "Tritonn storage engine", PLUGIN_LICENSE_BSD, - init_tritonn_engine, /* Plugin Init */ - deinit_tritonn_engine, /* Plugin Deinit */ + tritonn_init_hton, /* Plugin Init */ + tritonn_deinit_hton, /* Plugin Deinit */ 0x0001 /* 0.1 */, NULL, /* status variables */ NULL, /* system variables */ From svnnotify @ sourceforge.jp Thu Jun 12 15:45:24 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Thu, 12 Jun 2008 15:45:24 +0900 Subject: [Tritonn-commit 129] [svn] [143] added handlerton->XXX definitions Message-ID: <1213253124.903176.21646.nullmailer@users.sourceforge.jp> Revision: 143 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=143 Author: mir Date: 2008-06-12 15:45:24 +0900 (Thu, 12 Jun 2008) Log Message: ----------- added handlerton->XXX definitions Modified Paths: -------------- trunk/src/ha_tritonn.cc -------------- next part -------------- Modified: trunk/src/ha_tritonn.cc =================================================================== --- trunk/src/ha_tritonn.cc 2008-06-12 06:20:52 UTC (rev 142) +++ trunk/src/ha_tritonn.cc 2008-06-12 06:45:24 UTC (rev 143) @@ -26,10 +26,27 @@ sen_encoding db_encoding = sen_enc_utf8; int ctx_flag = SEN_CTX_USEQL; -static handler *create_handler(handlerton *hton, - TABLE_SHARE *table, +/* create ha_tritonn instance */ +static handler *tritonn_create_handler(handlerton *hton, + TABLE_SHARE *table, MEM_ROOT *mem_root); +/* delete database files */ +static void tritonn_drop_database(handlerton *hton, char* path); + +/* flush logfile */ +static bool tritonn_flush_logs(handlerton *hton); + +/* show engine status */ +static bool tritonn_show_status(handlerton *hton, THD *thd, stat_print_fn *print, + enum ha_stat_type stat); + +/* handlerton capability flags. see handler.h for more information */ +static int tritonn_hton_flags = HTON_ALTER_NOT_SUPPORTED | HTON_CAN_RECREATE | + HTON_TEMPORARY_NOT_SUPPORTED | HTON_NO_PARTITION; + + + /* Variables for tritonn share methods */ static HASH tritonn_open_tables; ///< Hash used to track the number of open tables; variable for tritonn share methods pthread_mutex_t tritonn_mutex; ///< This is the mutex used to init the hash; variable for tritonn share methods @@ -57,9 +74,7 @@ hton->drop_database = tritonn_drop_database; hton->flush_logs = tritonn_flush_logs; hton->show_status = tritonn_show_status; - hton->flags = HTON_ALTER_NOT_SUPPORTED | HTON_CAN_RECREATE | - HTON_TEMPORARY_NOT_SUPPORTED | HTON_NO_PARTITION; - + hton->flags = tritonn_hton_flags; DBUG_RETURN(0); } @@ -145,13 +160,31 @@ return 0; } -static handler* create_handler(handlerton *hton, - TABLE_SHARE *table, - MEM_ROOT *mem_root) +/* create ha_tritonn instance */ +static handler* tritonn_create_handler(handlerton *hton, + TABLE_SHARE *table, + MEM_ROOT *mem_root) { return new (mem_root) ha_tritonn(hton, table); } +/* delete database files */ +static void tritonn_drop_database(handlerton *hton, char* path) +{} + +/* flush logfile */ +static bool tritonn_flush_logs(handlerton *hton) +{ + return true; +} + +/* show engine status */ +static bool tritonn_show_status(handlerton *hton, THD *thd, stat_print_fn *print, + enum ha_stat_type stat) +{ + return true; +} + ha_tritonn::ha_tritonn(handlerton *hton, TABLE_SHARE *table_arg) :handler(hton, table_arg) {} From svnnotify @ sourceforge.jp Thu Jun 12 15:52:21 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Thu, 12 Jun 2008 15:52:21 +0900 Subject: [Tritonn-commit 130] [svn] [144] defined svn:ignore Message-ID: <1213253541.491103.26963.nullmailer@users.sourceforge.jp> Revision: 144 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=144 Author: mir Date: 2008-06-12 15:52:21 +0900 (Thu, 12 Jun 2008) Log Message: ----------- defined svn:ignore Property Changed: ---------------- trunk/ trunk/src/ -------------- next part -------------- Property changes on: trunk ___________________________________________________________________ Name: svn:ignore + Makefile.in Makefile configure config.status config.log cfg-ha_tritonn-g config.guess ltmain.sh config.sub autom4te.cache libtool missing aclocal.m4 install-sh src/Makefile.in src/cscope.out src/.libs src/tritonn_config.h src/stamp-h1 src/Makefile src/tritonn_config.h.in Property changes on: trunk/src ___________________________________________________________________ Name: svn:ignore + Makefile.in cscope.out .libs tritonn_config.h stamp-h1 Makefile tritonn_config.h.in From svnnotify @ sourceforge.jp Thu Jun 12 15:53:26 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Thu, 12 Jun 2008 15:53:26 +0900 Subject: [Tritonn-commit 131] [svn] [145] updated svn:ignore Message-ID: <1213253606.290847.27486.nullmailer@users.sourceforge.jp> Revision: 145 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=145 Author: mir Date: 2008-06-12 15:53:26 +0900 (Thu, 12 Jun 2008) Log Message: ----------- updated svn:ignore Property Changed: ---------------- trunk/ -------------- next part -------------- Property changes on: trunk ___________________________________________________________________ Name: svn:ignore - Makefile.in Makefile configure config.status config.log cfg-ha_tritonn-g config.guess ltmain.sh config.sub autom4te.cache libtool missing aclocal.m4 install-sh src/Makefile.in src/cscope.out src/.libs src/tritonn_config.h src/stamp-h1 src/Makefile src/tritonn_config.h.in + Makefile.in Makefile configure config.status config.log config.guess ltmain.sh config.sub autom4te.cache libtool missing aclocal.m4 install-sh From svnnotify @ sourceforge.jp Thu Jun 12 17:26:50 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Thu, 12 Jun 2008 17:26:50 +0900 Subject: [Tritonn-commit 132] [svn] [146] prototype development Message-ID: <1213259210.205461.18672.nullmailer@users.sourceforge.jp> Revision: 146 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=146 Author: mir Date: 2008-06-12 17:26:50 +0900 (Thu, 12 Jun 2008) Log Message: ----------- prototype development Modified Paths: -------------- trunk/src/ha_tritonn.cc trunk/src/ha_tritonn.h -------------- next part -------------- Modified: trunk/src/ha_tritonn.cc =================================================================== --- trunk/src/ha_tritonn.cc 2008-06-12 06:53:26 UTC (rev 145) +++ trunk/src/ha_tritonn.cc 2008-06-12 08:26:50 UTC (rev 146) @@ -61,6 +61,7 @@ static int tritonn_init_hton(void *p) { DBUG_ENTER("tritonn_init_hton"); + DBTN; handlerton *hton; @@ -82,6 +83,7 @@ { int error= 0; DBUG_ENTER("tritonn_deinit_hton"); + DBTN; if (tritonn_open_tables.records) error= 1; @@ -102,6 +104,8 @@ uint length; char *tmp_name; + DBTN; + pthread_mutex_lock(&tritonn_mutex); length=(uint) strlen(table_name); @@ -147,6 +151,7 @@ */ static int free_share(TRITONN_SHARE *share) { + DBTN; pthread_mutex_lock(&tritonn_mutex); if (!--share->use_count) { @@ -165,16 +170,20 @@ TABLE_SHARE *table, MEM_ROOT *mem_root) { + DBTN; return new (mem_root) ha_tritonn(hton, table); } /* delete database files */ static void tritonn_drop_database(handlerton *hton, char* path) -{} +{ + DBTN; +} /* flush logfile */ static bool tritonn_flush_logs(handlerton *hton) { + DBTN; return true; } @@ -182,25 +191,79 @@ static bool tritonn_show_status(handlerton *hton, THD *thd, stat_print_fn *print, enum ha_stat_type stat) { + DBTN; return true; } ha_tritonn::ha_tritonn(handlerton *hton, TABLE_SHARE *table_arg) :handler(hton, table_arg) -{} +{ + DBTN; +} +ha_tritonn::~ha_tritonn() +{ + DBTN; +} + +const char *ha_tritonn::table_type() const +{ + DBTN; + return "TRITONN"; +} + +const char *ha_tritonn::index_type(uint inx) const +{ + DBTN; + return "SENNA"; +} + static const char *ha_tritonn_exts[] = { NullS }; const char **ha_tritonn::bas_ext() const { + DBTN; return ha_tritonn_exts; } +// see $MYSQL_SRC/sql/handler.h "bits in table_flags" +ulonglong ha_tritonn::table_flags() const { + DBTN; + return (HA_NO_TRANSACTIONS | HA_NO_BLOBS | HA_REQUIRE_PRIMARY_KEY | + HA_STATS_RECORDS_IS_EXACT | HA_NO_PREFIX_CHAR_KEYS | HA_CAN_FULLTEXT | + HA_NO_AUTO_INCREMENT); +} + +// see $MYSQL_SRC/sql/handler.h, "bits in index_flags" +ulong ha_tritonn::index_flags(uint inx, uint part, bool all_parts) const { + DBTN; + return (HA_ONLY_WHOLE_INDEX); +} + +int ha_tritonn::add_index(TABLE *table_arg, KEY *key_info, uint num_of_keys) { + DBTN; + return HA_ERR_WRONG_COMMAND; +} + +int ha_tritonn::prepare_drop_index(TABLE *table_arg, uint *key_num, uint num_of_keys) +{ + DBTN; + return HA_ERR_WRONG_COMMAND; +} + +int ha_tritonn::final_drop_index(TABLE *table_arg) +{ + DBTN; + return HA_ERR_WRONG_COMMAND; +} + + int ha_tritonn::open(const char *name, int mode, uint test_if_locked) { DBUG_ENTER("ha_tritonn::open"); + DBTN; if (!(share = get_share(name, table))) DBUG_RETURN(HA_ERR_OUT_OF_MEM); @@ -212,36 +275,42 @@ int ha_tritonn::close(void) { DBUG_ENTER("ha_tritonn::close"); + DBTN; DBUG_RETURN(free_share(share)); } int ha_tritonn::rnd_init(bool scan) { DBUG_ENTER("ha_tritonn::rnd_init"); + DBTN; DBUG_RETURN(HA_ERR_WRONG_COMMAND); } int ha_tritonn::rnd_next(uchar *buf) { DBUG_ENTER("ha_tritonn::rnd_next"); + DBTN; DBUG_RETURN(HA_ERR_END_OF_FILE); } void ha_tritonn::position(const uchar *record) { DBUG_ENTER("ha_tritonn::position"); + DBTN; DBUG_VOID_RETURN; } int ha_tritonn::rnd_pos(uchar * buf, uchar *pos) { DBUG_ENTER("ha_tritonn::rnd_pos"); + DBTN; DBUG_RETURN(HA_ERR_WRONG_COMMAND); } int ha_tritonn::info(uint flag) { DBUG_ENTER("ha_tritonn::info"); + DBTN; DBUG_RETURN(0); } @@ -249,6 +318,7 @@ THR_LOCK_DATA **to, enum thr_lock_type lock_type) { + DBTN; if (lock_type != TL_IGNORE && lock.type == TL_UNLOCK) lock.type=lock_type; *to++= &lock; @@ -259,12 +329,29 @@ HA_CREATE_INFO *create_info) { DBUG_ENTER("ha_tritonn::create"); + DBTN; + DBUG_RETURN(0); +} - +uint ha_tritonn::max_supported_keys() const +{ + DBTN; + return 1024; +} - DBUG_RETURN(0); +uint ha_tritonn::max_supported_key_length() const +{ + DBTN; + return 1024; } +uint ha_tritonn::max_supported_key_part_length() const +{ + DBTN; + return 1024; +} + + struct st_mysql_storage_engine storage_engine_structure= { MYSQL_HANDLERTON_INTERFACE_VERSION }; Modified: trunk/src/ha_tritonn.h =================================================================== --- trunk/src/ha_tritonn.h 2008-06-12 06:53:26 UTC (rev 145) +++ trunk/src/ha_tritonn.h 2008-06-12 08:26:50 UTC (rev 146) @@ -19,34 +19,35 @@ TRITONN_SHARE *share; // Shared lock info public: + /* constructor */ ha_tritonn(handlerton *hton, TABLE_SHARE *table_arg); - ~ha_tritonn() - { - } - - const char *table_type() const { return "TRITONN"; } - const char *index_type(uint inx) { return "NONE"; } + /* destructor */ + ~ha_tritonn(); + /* engine name */ + const char *table_type() const; + /* index type in string for specified number */ + const char *index_type(uint inx) const; + /* file extantion for storage */ const char **bas_ext() const; // see $MYSQL_SRC/sql/handler.h "bits in table_flags" - ulonglong table_flags() const { - return (HA_NULL_IN_KEY | HA_CAN_FULLTEXT | HA_CAN_SQL_HANDLER | - HA_BINLOG_ROW_CAPABLE | HA_BINLOG_STMT_CAPABLE | - HA_DUPLICATE_POS | HA_CAN_INDEX_BLOBS | HA_AUTO_PART_KEY | - HA_FILE_BASED | HA_CAN_GEOMETRY | HA_NO_TRANSACTIONS | - HA_CAN_INSERT_DELAYED | HA_CAN_BIT_FIELD | HA_CAN_RTREEKEYS | - HA_HAS_RECORDS | HA_STATS_RECORDS_IS_EXACT); - } + ulonglong table_flags() const; // see $MYSQL_SRC/sql/handler.h, "bits in index_flags" - ulong index_flags(uint inx, uint part, bool all_parts) const { - return ((table_share->key_info[inx].algorithm == HA_KEY_ALG_FULLTEXT) ? - 0 : HA_READ_NEXT | HA_READ_PREV | HA_READ_RANGE | - HA_READ_ORDER | HA_KEYREAD_ONLY); - } + ulong index_flags(uint inx, uint part, bool all_parts) const; - int open(const char *name, int mode, uint test_if_locked); // required - int close(void); // required + /* add index */ + int add_index(TABLE *table_arg, KEY *key_info, uint num_of_keys); + + /* drop index */ + int prepare_drop_index(TABLE *table_arg, uint *key_num, uint num_of_keys); + int final_drop_index(TABLE *table_arg); + + /* open table */ + int open(const char *name, int mode, uint test_if_locked); + /* close table */ + int close(void); + int rnd_init(bool scan); // required int rnd_next(uchar *buf); // required int rnd_pos(uchar *buf, uchar *pos); // required @@ -57,7 +58,15 @@ const COND *cond_push(const COND *cond); // condition pushdown THR_LOCK_DATA **store_lock(THD *thd, THR_LOCK_DATA **to, enum thr_lock_type lock_type); // required - uint max_supported_keys() const { return 1024; } - uint max_supported_key_length() const { return 1024; } - uint max_supported_key_part_length() const { return 1024; } + uint max_supported_keys() const; + uint max_supported_key_length() const; + uint max_supported_key_part_length() const; }; + +#ifdef DEBUG_TRITONN +#define DBTN printf("[DBTN] %s#%s:%d\n",__FUNCTION__,__FILE__,__LINE__) +#define DBTN2(x) printf("[DBTN2] %s#%s:%d msg=%s\n",__FUNCTION__,__FILE__,__LINE__,x) +#else +#define DBTN +#define DBTN2(x) +#endif From svnnotify @ sourceforge.jp Fri Jun 13 17:25:50 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Fri, 13 Jun 2008 17:25:50 +0900 Subject: [Tritonn-commit 133] [svn] [147] updated SPEC files for tritonn-1.0.10 Message-ID: <1213345550.930381.25793.nullmailer@users.sourceforge.jp> Revision: 147 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=147 Author: mir Date: 2008-06-13 17:25:50 +0900 (Fri, 13 Jun 2008) Log Message: ----------- updated SPEC files for tritonn-1.0.10 Modified Paths: -------------- build/SPECS/mecab-ipadic.spec build/SPECS/mecab.spec build/SPECS/mysql.spec build/SPECS/senna.spec -------------- next part -------------- Modified: build/SPECS/mecab-ipadic.spec =================================================================== --- build/SPECS/mecab-ipadic.spec 2008-06-12 08:26:50 UTC (rev 146) +++ build/SPECS/mecab-ipadic.spec 2008-06-13 08:25:50 UTC (rev 147) @@ -2,9 +2,9 @@ %define prefix /usr %define config --with-charset=utf8 %define version 2.7.0.20070801 -%define release tritonn.1.0.9 +%define release tritonn.1.0.10 %define file_suffix 2.7.0-20070801 -%define mecab-version 0.96 +%define mecab-version 0.97 Name: %{name} Version: %{version} @@ -16,7 +16,7 @@ Source: %{name}-%{file_suffix}.tar.gz Packager: Tritonn Project BuildRoot: /tmp/%{name}-%{version}-root -Requires: mecab >= 0.96 +Requires: mecab >= 0.97 %description MeCab IPA is a dictionary for MeCab using CRF estimation @@ -32,6 +32,8 @@ %install [ -d $RPM_BUILD_ROOT ] && rm -fr $RPM_BUILD_ROOT make -e prefix=${RPM_BUILD_ROOT}%{prefix} DESTDIR=${RPM_BUILD_ROOT} install +cp *.def ${RPM_BUILD_ROOT}%{prefix}/lib/mecab/dic/ipadic/ +cp *.csv ${RPM_BUILD_ROOT}%{prefix}/lib/mecab/dic/ipadic/ %clean [ -d $RPM_BUILD_ROOT ] && rm -fr $RPM_BUILD_ROOT @@ -51,9 +53,14 @@ %{prefix}/lib/mecab/dic/ipadic/unk.def %{prefix}/lib/mecab/dic/ipadic/char.def %{prefix}/lib/mecab/dic/ipadic/matrix.def +%{prefix}/lib/mecab/dic/ipadic/feature.def %changelog -* Fri Feb 1 2008 Tetsuro IKEDA - 2.7.0.20070801-tritonn.1.0.8 +* Fri Jun 13 2008 Tetsuro IKEDA 2.7.0.20070801-tritonn-1.0.10 +- Added *.csv files, *.def files for make install +- Tritonn 1.0.10 + +* Fri Feb 1 2008 Tetsuro IKEDA - 2.7.0.20070801-tritonn.1.0.9 - Added *.csv files, a few *.def files into %files. - Tritonn 1.0.9 Modified: build/SPECS/mecab.spec =================================================================== --- build/SPECS/mecab.spec 2008-06-12 08:26:50 UTC (rev 146) +++ build/SPECS/mecab.spec 2008-06-13 08:25:50 UTC (rev 147) @@ -1,7 +1,7 @@ %define name mecab %define prefix /usr -%define version 0.96 -%define release tritonn.1.0.9 +%define version 0.97 +%define release tritonn.1.0.10 Name: %{name} Version: %{version} @@ -59,6 +59,9 @@ %{prefix}/bin/mecab %changelog +* Fri Jun 13 2008 Tetsuro IKEDA - 0.97-tritonn-1.0.10 +- Tritonn 1.0.10 + * Fri Feb 1 2008 Tetsuro IKEDA - 0.96-tritonn.1.0.9 - Tritonn 1.0.9 Modified: build/SPECS/mysql.spec =================================================================== --- build/SPECS/mysql.spec 2008-06-12 08:26:50 UTC (rev 146) +++ build/SPECS/mysql.spec 2008-06-13 08:25:50 UTC (rev 147) @@ -14,8 +14,8 @@ # Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston # MA 02110-1301 USA. -%define mysql_version 5.0.51a-tritonn-1.0.9a -%define srcdir tritonn-1.0.9a-mysql-5.0.51a +%define mysql_version 5.0.51a-tritonn-1.0.10 +%define srcdir tritonn-1.0.10-mysql-5.0.51a # use "rpmbuild --with static" or "rpm --define '_with_static 1'" (for RPM 3.x) # to enable static linking (off by default) @@ -30,7 +30,7 @@ %if %{STATIC_BUILD} %define release 0 %else -%define release tritonn.1.0.9a +%define release tritonn.1.0.10 %endif %define license GPL %define mysqld_user mysql @@ -727,6 +727,9 @@ # itself - note that they must be ordered by date (important when # merging BK trees) %changelog +* Fri Jun 13 2008 Tetsuro IKEDA +- Tritonn 1.0.10 + * Tue Feb 5 2008 Tetsuro IKEDA - tritonn-1.0.9a-mysql-5.0.51a - this release is only for source package bugfix. Modified: build/SPECS/senna.spec =================================================================== --- build/SPECS/senna.spec 2008-06-12 08:26:50 UTC (rev 146) +++ build/SPECS/senna.spec 2008-06-13 08:25:50 UTC (rev 147) @@ -1,7 +1,7 @@ %define name senna %define prefix /usr -%define version 1.1.0 -%define release tritonn.1.0.9 +%define version 1.1.3 +%define release tritonn.1.0.10 Name: %{name} Version: %{version} @@ -48,9 +48,14 @@ %{prefix}/bin/senna-cfg %{prefix}/bin/sennachk %{prefix}/bin/senna +%{prefix}/lib/pkgconfig/senna.pc %changelog +* Fri Jun 13 2008 Tetsuro IKEDA - 1.1.3-tritonn.1.0.10 +- Added senna.pc to files section +- Tritonn 1.0.10 + * Fri Feb 1 2008 Tetsuro IKEDA - 1.1.0-tritonn.1.0.9 - Tritonn 1.0.9 From svnnotify @ sourceforge.jp Fri Jun 13 17:26:06 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Fri, 13 Jun 2008 17:26:06 +0900 Subject: [Tritonn-commit 134] [svn] [148] deleted senna-nomecab.spec Message-ID: <1213345566.502459.26729.nullmailer@users.sourceforge.jp> Revision: 148 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=148 Author: mir Date: 2008-06-13 17:26:06 +0900 (Fri, 13 Jun 2008) Log Message: ----------- deleted senna-nomecab.spec Removed Paths: ------------- build/SPECS/senna-nomecab.spec -------------- next part -------------- Deleted: build/SPECS/senna-nomecab.spec =================================================================== --- build/SPECS/senna-nomecab.spec 2008-06-13 08:25:50 UTC (rev 147) +++ build/SPECS/senna-nomecab.spec 2008-06-13 08:26:06 UTC (rev 148) @@ -1,58 +0,0 @@ -%define name senna -%define prefix /usr -%define version 1.0.9 -%define release tritonn.1.0.7a.nomecab - -Name: %{name} -Version: %{version} -Release: %{release} -Group: Development/Library -Summary: Embeddable fulltext search engine -License: LGPL -URL: http://qwik.jp/senna/ -Source: %{name}-%{version}.tar.gz -BuildRoot: /tmp/%{name}-%{version}-root - -%description -Senna is an embeddable fulltext search engine, which you -can use in conjuction with various scripting languages -and databases. - -This package is built with --without-mecab, so mecab isn't needed. - -%prep -%setup -q -n %{name}-%{version} - -%build -./configure --prefix=%{prefix} --without-mecab -make - -%install -[ -d $RPM_BUILD_ROOT ] && rm -fr $RPM_BUILD_ROOT -make -e prefix=${RPM_BUILD_ROOT}%{prefix} install - -%clean -[ -d $RPM_BUILD_ROOT ] && rm -fr $RPM_BUILD_ROOT - -%post -p /sbin/ldconfig -%postun -p /sbin/ldconfig - -%files -%defattr(-,root,root) -%{prefix}/lib/libsenna.a -%{prefix}/lib/libsenna.la -%{prefix}/lib/libsenna.so.0.0.0 -%{prefix}/lib/libsenna.so.0 -%{prefix}/lib/libsenna.so -%{prefix}/include/senna/senna.h -%{prefix}/bin/senna-cfg -%{prefix}/bin/sennachk -%{prefix}/bin/senna - - -%changelog -* Tue Nov 06 2007 Tetsuro IKEDA - 1.0.9-tritonn.1.0.7a.nomecab -- added "defattr" to files section. - -* Tue Oct 23 2007 Tetsuro IKEDA - 1.0.9-tritonn.1.0.7.nomecab -- Initial build. From svnnotify @ sourceforge.jp Wed Jun 18 13:46:05 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Wed, 18 Jun 2008 13:46:05 +0900 Subject: [Tritonn-commit 135] [svn] [149] added dump function for handler::create Message-ID: <1213764365.153586.23047.nullmailer@users.sourceforge.jp> Revision: 149 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=149 Author: mir Date: 2008-06-18 13:46:04 +0900 (Wed, 18 Jun 2008) Log Message: ----------- added dump function for handler::create Modified Paths: -------------- trunk/src/ha_tritonn.cc -------------- next part -------------- Modified: trunk/src/ha_tritonn.cc =================================================================== --- trunk/src/ha_tritonn.cc 2008-06-13 08:26:06 UTC (rev 148) +++ trunk/src/ha_tritonn.cc 2008-06-18 04:46:04 UTC (rev 149) @@ -41,6 +41,9 @@ static bool tritonn_show_status(handlerton *hton, THD *thd, stat_print_fn *print, enum ha_stat_type stat); +static void dump_create(const char *name, TABLE *table_arg, + HA_CREATE_INFO *create_info); + /* handlerton capability flags. see handler.h for more information */ static int tritonn_hton_flags = HTON_ALTER_NOT_SUPPORTED | HTON_CAN_RECREATE | HTON_TEMPORARY_NOT_SUPPORTED | HTON_NO_PARTITION; @@ -330,6 +333,8 @@ { DBUG_ENTER("ha_tritonn::create"); DBTN; + dump_create(name,table_arg,create_info); + DBUG_RETURN(0); } @@ -433,3 +438,60 @@ dump_condition(item); return cond; } + +static void dump_create(const char *name, TABLE *table_arg, + HA_CREATE_INFO *create_info) +{ + int i; + printf("===dump_create is called===\n"); + printf("argments:: name=%s, table_arg=%p, create_info=%p\n",name,table_arg,create_info); + printf("table_arg->s->table_name = %s\n",table_arg->s->table_name); + printf("table_arg->s->db = %s\n", table_arg->s->db); + printf("table_arg->s->path = %s\n", table_arg->s->path); + printf("table_arg->s->fields = %d\n", table_arg->s->fields); + printf("table_arg->s->keys = %d\n", table_arg->s->keys); + printf("table_arg->s->primary_key = %d\n", table_arg->s->primary_key); + printf("table_arg->s->row_type = %d\n", table_arg->s->row_type); + printf("create_info->alias = %s\n", create_info->alias); + printf("create_info->table_charset = %p\n", create_info->table_charset); + printf("create_info->default_table_charset = %p\n", create_info->default_table_charset); + printf("create_info->connect_string.str = %s\n",create_info->connect_string.str); + printf("create_info->comment.str = %s\n", create_info->comment.str); + + for (i=0; i < table_arg->s->fieldnames.count; i++) { + printf(" table_arg->s->fieldnames.type_names=%s\n", table_arg->s->fieldnames.type_names[i]); + } + for (i=0; i < table_arg->s->keynames.count; i++) { + printf(" table_arg->s->keynames.type_names=%s\n", table_arg->s->keynames.type_names[i]); + } + + for (i=0; i < table_arg->s->fields; i++) { + Field *field = table_arg->s->field[i]; + printf(" field=%p\n",field); + printf(" field->field_name = %s\n", field->field_name); + printf(" field->comment.str = %s\n", field->comment.str); + printf(" field->field_length = %d\n", field->field_length); + printf(" field->unireg_chekc = %d\n", field->unireg_check); + printf(" field->flags = %d\n", field->flags); + printf(" field->field_index = %d\n", field->field_index); + printf(" field->type() = %d\n", field->type()); + printf(" field->result_type() = %d\n", field->result_type()); + } + + int keys = table_arg->s->keys; + for (i=0; i < keys; i++) { + KEY *key = table_arg->key_info+i; + printf(" key=%p\n",key); + printf(" key->name = %s\n", key->name); + printf(" key->algorithm = %d\n", key->algorithm); + printf(" key->key_parts = %d\n", key->key_parts); + int j; + for (j=0; j < key->key_parts; j++) { + KEY_PART_INFO *part = key->key_part+j; + printf(" part=%p\n",part); + printf(" part->fieldnr=%d\n",part->fieldnr); + printf(" part->field->field_name=%s\n",part->field->field_name); + printf(" part->field->comment.str=%s\n",part->field->comment.str); + } + } +} From svnnotify @ sourceforge.jp Wed Jun 18 13:55:51 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Wed, 18 Jun 2008 13:55:51 +0900 Subject: [Tritonn-commit 136] [svn] [150] enabled BLOB/TEXT. Message-ID: <1213764951.621048.32531.nullmailer@users.sourceforge.jp> Revision: 150 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=150 Author: mir Date: 2008-06-18 13:55:51 +0900 (Wed, 18 Jun 2008) Log Message: ----------- enabled BLOB/TEXT. Modified Paths: -------------- trunk/src/ha_tritonn.cc -------------- next part -------------- Modified: trunk/src/ha_tritonn.cc =================================================================== --- trunk/src/ha_tritonn.cc 2008-06-18 04:46:04 UTC (rev 149) +++ trunk/src/ha_tritonn.cc 2008-06-18 04:55:51 UTC (rev 150) @@ -234,7 +234,7 @@ // see $MYSQL_SRC/sql/handler.h "bits in table_flags" ulonglong ha_tritonn::table_flags() const { DBTN; - return (HA_NO_TRANSACTIONS | HA_NO_BLOBS | HA_REQUIRE_PRIMARY_KEY | + return (HA_NO_TRANSACTIONS | HA_REQUIRE_PRIMARY_KEY | HA_STATS_RECORDS_IS_EXACT | HA_NO_PREFIX_CHAR_KEYS | HA_CAN_FULLTEXT | HA_NO_AUTO_INCREMENT); } From svnnotify @ sourceforge.jp Wed Jun 18 17:22:22 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Wed, 18 Jun 2008 17:22:22 +0900 Subject: [Tritonn-commit 137] [svn] [151] prototype Message-ID: <1213777342.827240.18380.nullmailer@users.sourceforge.jp> Revision: 151 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=151 Author: mir Date: 2008-06-18 17:22:22 +0900 (Wed, 18 Jun 2008) Log Message: ----------- prototype Modified Paths: -------------- trunk/src/ha_tritonn.cc trunk/src/ha_tritonn.h -------------- next part -------------- Modified: trunk/src/ha_tritonn.cc =================================================================== --- trunk/src/ha_tritonn.cc 2008-06-18 04:55:51 UTC (rev 150) +++ trunk/src/ha_tritonn.cc 2008-06-18 08:22:22 UTC (rev 151) @@ -18,14 +18,7 @@ #include "ha_tritonn.h" #include -#include -char *dbpath="tritonn.db"; -sen_db *db; -int dbcreate_flag = 0; -sen_encoding db_encoding = sen_enc_utf8; -int ctx_flag = SEN_CTX_USEQL; - /* create ha_tritonn instance */ static handler *tritonn_create_handler(handlerton *hton, TABLE_SHARE *table, @@ -79,6 +72,8 @@ hton->flush_logs = tritonn_flush_logs; hton->show_status = tritonn_show_status; hton->flags = tritonn_hton_flags; + + sen_init(); DBUG_RETURN(0); } @@ -93,6 +88,7 @@ hash_free(&tritonn_open_tables); pthread_mutex_destroy(&tritonn_mutex); + sen_fin(); DBUG_RETURN(0); } @@ -272,6 +268,8 @@ DBUG_RETURN(HA_ERR_OUT_OF_MEM); thr_lock_data_init(&share->lock,&lock,NULL); + + DBUG_RETURN(0); } @@ -333,7 +331,13 @@ { DBUG_ENTER("ha_tritonn::create"); DBTN; - dump_create(name,table_arg,create_info); + //dump_create(name,table_arg,create_info); + char buf[200]; + my_snprintf(buf,200,"%s/tritonn.db",table_arg->s->db); + db = sen_db_open(buf); + if (!db) { + db = sen_db_create(buf,0,sen_enc_utf8); + } DBUG_RETURN(0); } Modified: trunk/src/ha_tritonn.h =================================================================== --- trunk/src/ha_tritonn.h 2008-06-18 04:55:51 UTC (rev 150) +++ trunk/src/ha_tritonn.h 2008-06-18 08:22:22 UTC (rev 151) @@ -2,6 +2,8 @@ #pragma interface /* gcc class implementation */ #endif +#include + /** @brief TRITONN_SHARE is a structure that will be shared among all open handlers. This implements the minimum of what you will probably need. @@ -18,6 +20,9 @@ THR_LOCK_DATA lock; // MySQL lock TRITONN_SHARE *share; // Shared lock info + sen_db *db; + sen_ctx *ctx; + public: /* constructor */ ha_tritonn(handlerton *hton, TABLE_SHARE *table_arg); From svnnotify @ sourceforge.jp Wed Jun 18 17:31:23 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Wed, 18 Jun 2008 17:31:23 +0900 Subject: [Tritonn-commit 138] [svn] [152] sen_ctx open and close Message-ID: <1213777883.419014.24585.nullmailer@users.sourceforge.jp> Revision: 152 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=152 Author: mir Date: 2008-06-18 17:31:23 +0900 (Wed, 18 Jun 2008) Log Message: ----------- sen_ctx open and close Modified Paths: -------------- trunk/src/ha_tritonn.cc -------------- next part -------------- Modified: trunk/src/ha_tritonn.cc =================================================================== --- trunk/src/ha_tritonn.cc 2008-06-18 08:22:22 UTC (rev 151) +++ trunk/src/ha_tritonn.cc 2008-06-18 08:31:23 UTC (rev 152) @@ -268,7 +268,7 @@ DBUG_RETURN(HA_ERR_OUT_OF_MEM); thr_lock_data_init(&share->lock,&lock,NULL); - + ctx = sen_ctx_open(db,SEN_CTX_USEQL); DBUG_RETURN(0); } @@ -277,6 +277,7 @@ { DBUG_ENTER("ha_tritonn::close"); DBTN; + sen_ctx_close(ctx); DBUG_RETURN(free_share(share)); } @@ -338,7 +339,9 @@ if (!db) { db = sen_db_create(buf,0,sen_enc_utf8); } + ctx = sen_ctx_open(db,SEN_CTX_USEQL); + sen_ctx_close(ctx); DBUG_RETURN(0); } From svnnotify @ sourceforge.jp Wed Jun 18 17:49:59 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Wed, 18 Jun 2008 17:49:59 +0900 Subject: [Tritonn-commit 139] [svn] [153] call_senna_ql appeared Message-ID: <1213778999.940095.7505.nullmailer@users.sourceforge.jp> Revision: 153 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=153 Author: mir Date: 2008-06-18 17:49:59 +0900 (Wed, 18 Jun 2008) Log Message: ----------- call_senna_ql appeared Modified Paths: -------------- trunk/src/ha_tritonn.cc -------------- next part -------------- Modified: trunk/src/ha_tritonn.cc =================================================================== --- trunk/src/ha_tritonn.cc 2008-06-18 08:31:23 UTC (rev 152) +++ trunk/src/ha_tritonn.cc 2008-06-18 08:49:59 UTC (rev 153) @@ -37,6 +37,8 @@ static void dump_create(const char *name, TABLE *table_arg, HA_CREATE_INFO *create_info); +static void call_senna_ql(sen_ctx *ctx, const char *str); + /* handlerton capability flags. see handler.h for more information */ static int tritonn_hton_flags = HTON_ALTER_NOT_SUPPORTED | HTON_CAN_RECREATE | HTON_TEMPORARY_NOT_SUPPORTED | HTON_NO_PARTITION; @@ -341,6 +343,9 @@ } ctx = sen_ctx_open(db,SEN_CTX_USEQL); + my_snprintf(buf,200,"(ptable '<%s>)",table_arg->s->table_name); + call_senna_ql(ctx,buf); + sen_ctx_close(ctx); DBUG_RETURN(0); } @@ -502,3 +507,23 @@ } } } + +void call_senna_ql(sen_ctx *ctx, const char *str) +{ + char *ql; + char *res; + unsigned int res_len; + int res_flags; + char *buf; + unsigned int ql_len = strlen(str); + ql = (char*) malloc(ql_len); + strncpy(ql,str,ql_len); + sen_ctx_send(ctx,ql,ql_len,0); + do { + sen_ctx_recv(ctx,&res,&res_len,&res_flags); + buf = (char*) calloc(1,1024); + printf("[SennaQL] %s => %s\n",str,strncat(buf,res,res_len)); + free(buf); + } while (res_flags & SEN_CTX_MORE); + free(ql); +} From svnnotify @ sourceforge.jp Thu Jun 19 12:32:06 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Thu, 19 Jun 2008 12:32:06 +0900 Subject: [Tritonn-commit 140] [svn] [154] added table creation Message-ID: <1213846326.992567.2841.nullmailer@users.sourceforge.jp> Revision: 154 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=154 Author: mir Date: 2008-06-19 12:32:06 +0900 (Thu, 19 Jun 2008) Log Message: ----------- added table creation Modified Paths: -------------- trunk/src/ha_tritonn.cc -------------- next part -------------- Modified: trunk/src/ha_tritonn.cc =================================================================== --- trunk/src/ha_tritonn.cc 2008-06-18 08:49:59 UTC (rev 153) +++ trunk/src/ha_tritonn.cc 2008-06-19 03:32:06 UTC (rev 154) @@ -39,12 +39,12 @@ static void call_senna_ql(sen_ctx *ctx, const char *str); +static char *mysqltype2sennatype_string(enum_field_types types); + /* handlerton capability flags. see handler.h for more information */ static int tritonn_hton_flags = HTON_ALTER_NOT_SUPPORTED | HTON_CAN_RECREATE | HTON_TEMPORARY_NOT_SUPPORTED | HTON_NO_PARTITION; - - /* Variables for tritonn share methods */ static HASH tritonn_open_tables; ///< Hash used to track the number of open tables; variable for tritonn share methods pthread_mutex_t tritonn_mutex; ///< This is the mutex used to init the hash; variable for tritonn share methods @@ -335,17 +335,25 @@ DBUG_ENTER("ha_tritonn::create"); DBTN; //dump_create(name,table_arg,create_info); - char buf[200]; - my_snprintf(buf,200,"%s/tritonn.db",table_arg->s->db); + char buf[1024]; + my_snprintf(buf,1024,"%s/tritonn.db",table_arg->s->db); db = sen_db_open(buf); if (!db) { db = sen_db_create(buf,0,sen_enc_utf8); } ctx = sen_ctx_open(db,SEN_CTX_USEQL); - my_snprintf(buf,200,"(ptable '<%s>)",table_arg->s->table_name); + my_snprintf(buf,1024,"(ptable '<%s>)",table_arg->s->table_name); call_senna_ql(ctx,buf); - + int i; + for (i=0; i < table_arg->s->fields; i++) { + Field *field = table_arg->s->field[i]; + my_snprintf(buf,1024,"(<%s> ::def :%s <%s>)", + create_info->alias, + field->field_name, + mysqltype2sennatype_string(field->type())); + call_senna_ql(ctx,buf); + } sen_ctx_close(ctx); DBUG_RETURN(0); } @@ -527,3 +535,23 @@ } while (res_flags & SEN_CTX_MORE); free(ql); } + +static char *mysqltype2sennatype_string(enum_field_types types) +{ + switch(types) { + case MYSQL_TYPE_TINY: + case MYSQL_TYPE_SHORT: + case MYSQL_TYPE_INT24: + case MYSQL_TYPE_LONG: + return "int"; + case MYSQL_TYPE_FLOAT: + case MYSQL_TYPE_DOUBLE: + return "float"; + case MYSQL_TYPE_STRING: + case MYSQL_TYPE_VAR_STRING: + case MYSQL_TYPE_VARCHAR: + return "text"; + default: + return "null"; + } +} From svnnotify @ sourceforge.jp Fri Jun 20 16:12:00 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Fri, 20 Jun 2008 16:12:00 +0900 Subject: [Tritonn-commit 141] [svn] [155] improved handling of sen_db isntance. Message-ID: <1213945920.863922.17103.nullmailer@users.sourceforge.jp> Revision: 155 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=155 Author: mir Date: 2008-06-20 16:12:00 +0900 (Fri, 20 Jun 2008) Log Message: ----------- improved handling of sen_db isntance. Modified Paths: -------------- trunk/src/ha_tritonn.cc trunk/src/ha_tritonn.h -------------- next part -------------- Modified: trunk/src/ha_tritonn.cc =================================================================== --- trunk/src/ha_tritonn.cc 2008-06-19 03:32:06 UTC (rev 154) +++ trunk/src/ha_tritonn.cc 2008-06-20 07:12:00 UTC (rev 155) @@ -24,6 +24,9 @@ TABLE_SHARE *table, MEM_ROOT *mem_root); +static TRITONN_DB *tdb; +static sen_db *get_sen_db(const char *db_name); + /* delete database files */ static void tritonn_drop_database(handlerton *hton, char* path); @@ -88,6 +91,10 @@ if (tritonn_open_tables.records) error= 1; hash_free(&tritonn_open_tables); + while (tdb != NULL) { + sen_db_close(tdb->db); + tdb = tdb->next; + } pthread_mutex_destroy(&tritonn_mutex); sen_fin(); @@ -219,6 +226,7 @@ return "SENNA"; } +/* TODO: examin this feature */ static const char *ha_tritonn_exts[] = { NullS }; @@ -232,9 +240,8 @@ // see $MYSQL_SRC/sql/handler.h "bits in table_flags" ulonglong ha_tritonn::table_flags() const { DBTN; - return (HA_NO_TRANSACTIONS | HA_REQUIRE_PRIMARY_KEY | - HA_STATS_RECORDS_IS_EXACT | HA_NO_PREFIX_CHAR_KEYS | HA_CAN_FULLTEXT | - HA_NO_AUTO_INCREMENT); + return (HA_NO_TRANSACTIONS | HA_STATS_RECORDS_IS_EXACT | + HA_NO_PREFIX_CHAR_KEYS | HA_CAN_FULLTEXT | HA_NO_AUTO_INCREMENT); } // see $MYSQL_SRC/sql/handler.h, "bits in index_flags" @@ -270,7 +277,7 @@ DBUG_RETURN(HA_ERR_OUT_OF_MEM); thr_lock_data_init(&share->lock,&lock,NULL); - ctx = sen_ctx_open(db,SEN_CTX_USEQL); + ctx = sen_ctx_open(get_sen_db(table_share->db.str),SEN_CTX_USEQL); DBUG_RETURN(0); } @@ -334,15 +341,9 @@ { DBUG_ENTER("ha_tritonn::create"); DBTN; + char buf[FN_REFLEN]; //dump_create(name,table_arg,create_info); - char buf[1024]; - my_snprintf(buf,1024,"%s/tritonn.db",table_arg->s->db); - db = sen_db_open(buf); - if (!db) { - db = sen_db_create(buf,0,sen_enc_utf8); - } - ctx = sen_ctx_open(db,SEN_CTX_USEQL); - + ctx = sen_ctx_open(get_sen_db(table_share->db.str),SEN_CTX_USEQL); my_snprintf(buf,1024,"(ptable '<%s>)",table_arg->s->table_name); call_senna_ql(ctx,buf); int i; @@ -355,7 +356,7 @@ call_senna_ql(ctx,buf); } sen_ctx_close(ctx); - DBUG_RETURN(0); + DBUG_RETURN(0); } uint ha_tritonn::max_supported_keys() const @@ -550,8 +551,64 @@ case MYSQL_TYPE_STRING: case MYSQL_TYPE_VAR_STRING: case MYSQL_TYPE_VARCHAR: + case MYSQL_TYPE_BLOB: return "text"; default: return "null"; } } + +int ha_tritonn::write_row(uchar* buf) +{ + DBTN; + for (Field **field=table->field; *field; field++) { + String str; + (*field)->val_str(&str); + // printf("[%s]\n",(*field)->val_str(new String[1])->ptr()); + } + + return 0; +} + +TRITONN_DB *open_or_create_db(const char *db_name) +{ + char file_name[FN_REFLEN]; + TRITONN_DB *d = (TRITONN_DB*) my_malloc(sizeof(TRITONN_DB), MYF(0)); + d->db_name_length = strlen(db_name); + d->db_name = (char*) my_malloc(d->db_name_length,MYF(0)); + memcpy(d->db_name,db_name,d->db_name_length); + my_snprintf(file_name,FN_REFLEN,"%s/tritonn.db",d->db_name); + d->db = sen_db_open(file_name); + if (d->db == NULL) { + d->db = sen_db_create(file_name,0,sen_enc_utf8); + } + d->next = NULL; + pthread_mutex_unlock(&tritonn_mutex); + return d; +} + +sen_db *get_sen_db(const char *db_name) +{ + pthread_mutex_lock(&tritonn_mutex); + /* case1: no instance created yet */ + if (tdb == NULL) { + tdb = open_or_create_db(db_name); + return tdb->db; + } + /* case2: instance hit */ + TRITONN_DB *cur = tdb; + while (true) { + if (strcmp(cur->db_name,db_name) == 0) { + pthread_mutex_unlock(&tritonn_mutex); + return cur->db; + } else if (cur->next != NULL) { + cur = cur->next; + } else { + break; + } + } + /* case3: instance not hit */ + cur->next = open_or_create_db(db_name); + pthread_mutex_unlock(&tritonn_mutex); + return cur->next->db; +} Modified: trunk/src/ha_tritonn.h =================================================================== --- trunk/src/ha_tritonn.h 2008-06-19 03:32:06 UTC (rev 154) +++ trunk/src/ha_tritonn.h 2008-06-20 07:12:00 UTC (rev 155) @@ -4,6 +4,13 @@ #include +typedef struct st_tritonn_db { + char *db_name; + uint db_name_length; + sen_db *db; + st_tritonn_db *next; +} TRITONN_DB; + /** @brief TRITONN_SHARE is a structure that will be shared among all open handlers. This implements the minimum of what you will probably need. @@ -19,8 +26,6 @@ { THR_LOCK_DATA lock; // MySQL lock TRITONN_SHARE *share; // Shared lock info - - sen_db *db; sen_ctx *ctx; public: @@ -66,6 +71,7 @@ uint max_supported_keys() const; uint max_supported_key_length() const; uint max_supported_key_part_length() const; + int write_row(uchar *buf); }; #ifdef DEBUG_TRITONN From svnnotify @ sourceforge.jp Fri Jun 20 18:08:42 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Fri, 20 Jun 2008 18:08:42 +0900 Subject: [Tritonn-commit 142] [svn] [156] added write_row. Message-ID: <1213952922.190497.15636.nullmailer@users.sourceforge.jp> Revision: 156 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=156 Author: mir Date: 2008-06-20 18:08:42 +0900 (Fri, 20 Jun 2008) Log Message: ----------- added write_row. Modified Paths: -------------- trunk/src/ha_tritonn.cc trunk/src/ha_tritonn.h -------------- next part -------------- Modified: trunk/src/ha_tritonn.cc =================================================================== --- trunk/src/ha_tritonn.cc 2008-06-20 07:12:00 UTC (rev 155) +++ trunk/src/ha_tritonn.cc 2008-06-20 09:08:42 UTC (rev 156) @@ -276,7 +276,7 @@ if (!(share = get_share(name, table))) DBUG_RETURN(HA_ERR_OUT_OF_MEM); thr_lock_data_init(&share->lock,&lock,NULL); - + share->short_name = table_share->table_name.str; ctx = sen_ctx_open(get_sen_db(table_share->db.str),SEN_CTX_USEQL); DBUG_RETURN(0); @@ -561,10 +561,23 @@ int ha_tritonn::write_row(uchar* buf) { DBTN; + int i=0; + char ql[1024]; + char *pkey_str; for (Field **field=table->field; *field; field++) { String str; (*field)->val_str(&str); - // printf("[%s]\n",(*field)->val_str(new String[1])->ptr()); + str.chop(); + if (i==0) { + pkey_str = (char*) sql_alloc(str.length()+1); + strncpy(pkey_str,str.ptr(),str.length()+1); + my_snprintf(ql,1024,"(<%s> ::new \"%s\")",share->short_name,pkey_str); + } else { + my_snprintf(ql,1024,"((<%s> : \"%s\") :%s \"%s\")", + share->short_name,pkey_str, (*field)->field_name,str.ptr()); + } + call_senna_ql(ctx,ql); + i++; } return 0; @@ -577,7 +590,7 @@ d->db_name_length = strlen(db_name); d->db_name = (char*) my_malloc(d->db_name_length,MYF(0)); memcpy(d->db_name,db_name,d->db_name_length); - my_snprintf(file_name,FN_REFLEN,"%s/tritonn.db",d->db_name); + my_snprintf(file_name,FN_REFLEN,"%s/tritonn.db",db_name); d->db = sen_db_open(file_name); if (d->db == NULL) { d->db = sen_db_create(file_name,0,sen_enc_utf8); @@ -593,6 +606,7 @@ /* case1: no instance created yet */ if (tdb == NULL) { tdb = open_or_create_db(db_name); + pthread_mutex_unlock(&tritonn_mutex); return tdb->db; } /* case2: instance hit */ Modified: trunk/src/ha_tritonn.h =================================================================== --- trunk/src/ha_tritonn.h 2008-06-20 07:12:00 UTC (rev 155) +++ trunk/src/ha_tritonn.h 2008-06-20 09:08:42 UTC (rev 156) @@ -17,6 +17,7 @@ */ typedef struct st_tritonn_share { char *table_name; + char *short_name; uint table_name_length,use_count; pthread_mutex_t mutex; THR_LOCK lock; From svnnotify @ sourceforge.jp Wed Jun 25 15:30:37 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Wed, 25 Jun 2008 15:30:37 +0900 Subject: [Tritonn-commit 143] [svn] [157] removed senna ql for first column because first column is assignded as pkey Message-ID: <1214375437.316773.5854.nullmailer@users.sourceforge.jp> Revision: 157 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=157 Author: mir Date: 2008-06-25 15:30:37 +0900 (Wed, 25 Jun 2008) Log Message: ----------- removed senna ql for first column because first column is assignded as pkey Modified Paths: -------------- trunk/src/ha_tritonn.cc -------------- next part -------------- Modified: trunk/src/ha_tritonn.cc =================================================================== --- trunk/src/ha_tritonn.cc 2008-06-20 09:08:42 UTC (rev 156) +++ trunk/src/ha_tritonn.cc 2008-06-25 06:30:37 UTC (rev 157) @@ -347,7 +347,8 @@ my_snprintf(buf,1024,"(ptable '<%s>)",table_arg->s->table_name); call_senna_ql(ctx,buf); int i; - for (i=0; i < table_arg->s->fields; i++) { + /* col1 is assigned to pkey so i=1 here */ + for (i=1; i < table_arg->s->fields; i++) { Field *field = table_arg->s->field[i]; my_snprintf(buf,1024,"(<%s> ::def :%s <%s>)", create_info->alias, From svnnotify @ sourceforge.jp Wed Jun 25 17:04:58 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Wed, 25 Jun 2008 17:04:58 +0900 Subject: [Tritonn-commit 144] [svn] [158] upgraded ha_tritonn::write_row Message-ID: <1214381098.074445.13310.nullmailer@users.sourceforge.jp> Revision: 158 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=158 Author: mir Date: 2008-06-25 17:04:57 +0900 (Wed, 25 Jun 2008) Log Message: ----------- upgraded ha_tritonn::write_row Modified Paths: -------------- trunk/src/ha_tritonn.cc -------------- next part -------------- Modified: trunk/src/ha_tritonn.cc =================================================================== --- trunk/src/ha_tritonn.cc 2008-06-25 06:30:37 UTC (rev 157) +++ trunk/src/ha_tritonn.cc 2008-06-25 08:04:57 UTC (rev 158) @@ -559,28 +559,53 @@ } } +const char* tritonn_escape_string(const char* str){ + int i,len,cnt,offset; + for (i=0,len=strlen(str),cnt=0; ifield; *field; field++) { String str; (*field)->val_str(&str); str.chop(); if (i==0) { - pkey_str = (char*) sql_alloc(str.length()+1); - strncpy(pkey_str,str.ptr(),str.length()+1); - my_snprintf(ql,1024,"(<%s> ::new \"%s\")",share->short_name,pkey_str); + pkey = (char*) sql_alloc(strlen(str.ptr())); + strcpy(pkey,str.ptr()); + my_snprintf(ql,1024,"(<%s> ::new \"%s\")",share->short_name, + tritonn_escape_string(str.ptr())); } else { my_snprintf(ql,1024,"((<%s> : \"%s\") :%s \"%s\")", - share->short_name,pkey_str, (*field)->field_name,str.ptr()); + share->short_name, + tritonn_escape_string(pkey), (*field)->field_name, + tritonn_escape_string(str.ptr())); } call_senna_ql(ctx,ql); i++; } - return 0; } From svnnotify @ sourceforge.jp Wed Jun 25 18:23:52 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Wed, 25 Jun 2008 18:23:52 +0900 Subject: [Tritonn-commit 145] [svn] [159] first implementation of table scan (under development) Message-ID: <1214385832.400779.7075.nullmailer@users.sourceforge.jp> Revision: 159 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=159 Author: mir Date: 2008-06-25 18:23:52 +0900 (Wed, 25 Jun 2008) Log Message: ----------- first implementation of table scan (under development) Modified Paths: -------------- trunk/src/ha_tritonn.cc -------------- next part -------------- Modified: trunk/src/ha_tritonn.cc =================================================================== --- trunk/src/ha_tritonn.cc 2008-06-25 08:04:57 UTC (rev 158) +++ trunk/src/ha_tritonn.cc 2008-06-25 09:23:52 UTC (rev 159) @@ -40,7 +40,7 @@ static void dump_create(const char *name, TABLE *table_arg, HA_CREATE_INFO *create_info); -static void call_senna_ql(sen_ctx *ctx, const char *str); +static void call_senna_ql(sen_ctx *ctx, const char *str, bool disp=true); static char *mysqltype2sennatype_string(enum_field_types types); @@ -278,6 +278,16 @@ thr_lock_data_init(&share->lock,&lock,NULL); share->short_name = table_share->table_name.str; ctx = sen_ctx_open(get_sen_db(table_share->db.str),SEN_CTX_USEQL); + call_senna_ql(ctx, "(define (select recs expr) (reverse (letrec " + "((func (lambda (r x) (if x (let ((y (expr x))) " + "(func (if y (cons y r) r) (recs ::+ x))) r)))) " + "(func () (recs ::)))))"); + call_senna_ql(ctx, "(define (slot-exps class) (select " + "(lambda (x) (let ((s (x ::schema))) (and (pair? s) " + "(eq? class (car s)) (list () (car (cdr (cdr s)))))))))"); + call_senna_ql(ctx, "(define (dump-table class) (if (< 0 class.:nrecords) " + "(begin (disp `(: ,class (.:key ,@(slot-exps class)) 0 0) " + ":tsv))))"); DBUG_RETURN(0); } @@ -294,14 +304,27 @@ { DBUG_ENTER("ha_tritonn::rnd_init"); DBTN; - DBUG_RETURN(HA_ERR_WRONG_COMMAND); + call_senna_ql(ctx,"(dump-table )", false); + DBUG_RETURN(0); } int ha_tritonn::rnd_next(uchar *buf) { DBUG_ENTER("ha_tritonn::rnd_next"); DBTN; - DBUG_RETURN(HA_ERR_END_OF_FILE); + char *res; + unsigned int res_len; + int res_flags; + char *row; + sen_ctx_recv(ctx,&res,&res_len,&res_flags); + if (res_flags & SEN_CTX_MORE) { + row = (char*) calloc(1,1024); + printf("[SennaQL] returned row => %s\n",strncat(row,res,res_len)); + free(row); + DBUG_RETURN(0); + } else { + DBUG_RETURN(HA_ERR_END_OF_FILE); + } } void ha_tritonn::position(const uchar *record) @@ -322,6 +345,7 @@ { DBUG_ENTER("ha_tritonn::info"); DBTN; + stats.records=100; DBUG_RETURN(0); } @@ -518,7 +542,7 @@ } } -void call_senna_ql(sen_ctx *ctx, const char *str) +void call_senna_ql(sen_ctx *ctx, const char *str, bool disp) { char *ql; char *res; @@ -529,12 +553,14 @@ ql = (char*) malloc(ql_len); strncpy(ql,str,ql_len); sen_ctx_send(ctx,ql,ql_len,0); - do { - sen_ctx_recv(ctx,&res,&res_len,&res_flags); - buf = (char*) calloc(1,1024); - printf("[SennaQL] %s => %s\n",str,strncat(buf,res,res_len)); - free(buf); - } while (res_flags & SEN_CTX_MORE); + if (disp == true) { + do { + sen_ctx_recv(ctx,&res,&res_len,&res_flags); + buf = (char*) calloc(1,1024); + printf("[SennaQL] %s => %s\n",str,strncat(buf,res,res_len)); + free(buf); + } while (res_flags & SEN_CTX_MORE); + } free(ql); } @@ -652,3 +678,4 @@ pthread_mutex_unlock(&tritonn_mutex); return cur->next->db; } + From svnnotify @ sourceforge.jp Thu Jun 26 11:26:01 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Thu, 26 Jun 2008 11:26:01 +0900 Subject: [Tritonn-commit 146] [svn] [160] upgraded tritonn:: info now set correct number of records to stats.records Message-ID: <1214447161.009121.23035.nullmailer@users.sourceforge.jp> Revision: 160 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=160 Author: mir Date: 2008-06-26 11:26:00 +0900 (Thu, 26 Jun 2008) Log Message: ----------- upgraded tritonn::info now set correct number of records to stats.records Modified Paths: -------------- trunk/src/ha_tritonn.cc -------------- next part -------------- Modified: trunk/src/ha_tritonn.cc =================================================================== --- trunk/src/ha_tritonn.cc 2008-06-25 09:23:52 UTC (rev 159) +++ trunk/src/ha_tritonn.cc 2008-06-26 02:26:00 UTC (rev 160) @@ -345,7 +345,21 @@ { DBUG_ENTER("ha_tritonn::info"); DBTN; - stats.records=100; + char buf[1024]; + char *res; + unsigned int res_len; + int res_flag; + int i; + my_snprintf(buf,1024,"(<%s> ::nrecords)", share->short_name); + call_senna_ql(ctx,buf,false); + sen_ctx_recv(ctx,&res,&res_len,&res_flag); + char *res2 = (char*) sql_alloc(res_len+1); + for (i=0; i Revision: 161 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=161 Author: mir Date: 2008-06-27 12:32:53 +0900 (Fri, 27 Jun 2008) Log Message: ----------- upgraded ha_tritonn::rnd_next. now returns dummy data Modified Paths: -------------- trunk/src/ha_tritonn.cc -------------- next part -------------- Modified: trunk/src/ha_tritonn.cc =================================================================== --- trunk/src/ha_tritonn.cc 2008-06-26 02:26:00 UTC (rev 160) +++ trunk/src/ha_tritonn.cc 2008-06-27 03:32:53 UTC (rev 161) @@ -304,7 +304,9 @@ { DBUG_ENTER("ha_tritonn::rnd_init"); DBTN; - call_senna_ql(ctx,"(dump-table )", false); + char buf[1024]; + my_snprintf(buf,1024,"(dump-table <%s>)", share->short_name); + call_senna_ql(ctx,buf, false); DBUG_RETURN(0); } @@ -316,11 +318,17 @@ unsigned int res_len; int res_flags; char *row; + *(buf) &= ~0x1; + *(buf) &= ~0x2; sen_ctx_recv(ctx,&res,&res_len,&res_flags); if (res_flags & SEN_CTX_MORE) { row = (char*) calloc(1,1024); printf("[SennaQL] returned row => %s\n",strncat(row,res,res_len)); free(row); + for (Field **field=table->field; *field ; field++) { + (*field)->store("dummy",5,system_charset_info); + printf("hoge\n"); + } DBUG_RETURN(0); } else { DBUG_RETURN(HA_ERR_END_OF_FILE); From svnnotify @ sourceforge.jp Fri Jun 27 14:08:16 2008 From: svnnotify @ sourceforge.jp (svnnotify @ sourceforge.jp) Date: Fri, 27 Jun 2008 14:08:16 +0900 Subject: [Tritonn-commit 148] [svn] [162] ha_tritonn::rnd_next returns table scan Message-ID: <1214543296.944141.24480.nullmailer@users.sourceforge.jp> Revision: 162 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=tritonn&view=rev&rev=162 Author: mir Date: 2008-06-27 14:08:16 +0900 (Fri, 27 Jun 2008) Log Message: ----------- ha_tritonn::rnd_next returns table scan Modified Paths: -------------- trunk/src/ha_tritonn.cc -------------- next part -------------- Modified: trunk/src/ha_tritonn.cc =================================================================== --- trunk/src/ha_tritonn.cc 2008-06-27 03:32:53 UTC (rev 161) +++ trunk/src/ha_tritonn.cc 2008-06-27 05:08:16 UTC (rev 162) @@ -40,7 +40,7 @@ static void dump_create(const char *name, TABLE *table_arg, HA_CREATE_INFO *create_info); -static void call_senna_ql(sen_ctx *ctx, const char *str, bool disp=true); +static void call_senna_ql(sen_ctx *ctx, const char *str, bool disp=false); static char *mysqltype2sennatype_string(enum_field_types types); @@ -318,17 +318,37 @@ unsigned int res_len; int res_flags; char *row; - *(buf) &= ~0x1; - *(buf) &= ~0x2; sen_ctx_recv(ctx,&res,&res_len,&res_flags); if (res_flags & SEN_CTX_MORE) { - row = (char*) calloc(1,1024); - printf("[SennaQL] returned row => %s\n",strncat(row,res,res_len)); - free(row); + char token[1024]; + int offset=0; + int i; for (Field **field=table->field; *field ; field++) { - (*field)->store("dummy",5,system_charset_info); - printf("hoge\n"); + for (i=0; offset < res_len && *(res+offset) != '\t'; offset++,i++) { + token[i] = *(res+offset); + } + offset++; + switch((*field)->result_type()) { + case STRING_RESULT: + (*field)->store(token,i,system_charset_info); + break; + case REAL_RESULT: + token[i] = '\0'; + (*field)->store(atof(token)); + break; + case INT_RESULT: + token[i] = '\0'; + (*field)->store(atoi(token),false); + break; + case ROW_RESULT: + (*field)->store("row_result",10,system_charset_info); + break; + case DECIMAL_RESULT: + (*field)->store("decimal",7,system_charset_info); + break; + } } + memset(buf, 0, table->s->null_bytes); DBUG_RETURN(0); } else { DBUG_RETURN(HA_ERR_END_OF_FILE); @@ -367,7 +387,7 @@ } *(res2+res_len) = '\0'; stats.records=atoi(res2); - printf("[SennaQL] returned nrecords = %d\n",stats.records); + // printf("[SennaQL] returned nrecords = %d\n",stats.records); DBUG_RETURN(0); }