Navigation Menu

Skip to content

Commit

Permalink
Merge pull request #46 from naoa/support-table-comment-for-hash-key
Browse files Browse the repository at this point in the history
Support specifying options by table comment when primary key is using hash

Patch by Naoya Murakami. Thanks!!!
  • Loading branch information
kou committed Mar 7, 2015
2 parents f3679df + c2cd04c commit e6d4243
Show file tree
Hide file tree
Showing 3 changed files with 68 additions and 1 deletion.
3 changes: 2 additions & 1 deletion ha_mroonga.cpp
Expand Up @@ -3027,7 +3027,8 @@ int ha_mroonga::storage_create(const char *name, TABLE *table,
DBUG_RETURN(error);
}

if (table_flags == (GRN_OBJ_PERSISTENT | GRN_OBJ_TABLE_PAT_KEY)) {
if (table_flags == (GRN_OBJ_PERSISTENT | GRN_OBJ_TABLE_PAT_KEY) ||
table_flags == (GRN_OBJ_PERSISTENT | GRN_OBJ_TABLE_HASH_KEY)) {
KEY key_info = table->s->key_info[pkey_nr];
int key_parts = KEY_N_KEY_PARTS(&key_info);
if (key_parts == 1) {
Expand Down
@@ -0,0 +1,19 @@
DROP TABLE IF EXISTS memos;
DROP TABLE IF EXISTS terms;
SET NAMES utf8;
CREATE TABLE terms (
term VARCHAR(64) NOT NULL,
PRIMARY KEY (term) USING HASH
) COMMENT='default_tokenizer "TokenBigram", normalizer "NormalizerAuto"' DEFAULT CHARSET=utf8;
CREATE TABLE memos (
id INT NOT NULL PRIMARY KEY,
content TEXT NOT NULL,
FULLTEXT INDEX (content) COMMENT 'table "terms"'
) DEFAULT CHARSET=utf8;
INSERT INTO memos VALUES (1, "1日の消費㌍は約2000㌔㌍");
SELECT * FROM memos
WHERE MATCH (content) AGAINST ("+カロリー" IN BOOLEAN MODE);
id content
1 1日の消費㌍は約2000㌔㌍
DROP TABLE memos;
DROP TABLE terms;
@@ -0,0 +1,47 @@
# Copyright(C) 2015 Naoya Murakami <naoya@createfield.com>
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

--source ../../../../../../include/mroonga/have_mroonga.inc
--source ../../../../../../include/mroonga/load_mroonga_functions.inc

--disable_warnings
DROP TABLE IF EXISTS memos;
DROP TABLE IF EXISTS terms;
--enable_warnings

SET NAMES utf8;

CREATE TABLE terms (
term VARCHAR(64) NOT NULL,
PRIMARY KEY (term) USING HASH
) COMMENT='default_tokenizer "TokenBigram", normalizer "NormalizerAuto"' DEFAULT CHARSET=utf8;

CREATE TABLE memos (
id INT NOT NULL PRIMARY KEY,
content TEXT NOT NULL,
FULLTEXT INDEX (content) COMMENT 'table "terms"'
) DEFAULT CHARSET=utf8;

INSERT INTO memos VALUES (1, "1日の消費㌍は約2000㌔㌍");

SELECT * FROM memos
WHERE MATCH (content) AGAINST ("+カロリー" IN BOOLEAN MODE);

DROP TABLE memos;
DROP TABLE terms;

--source ../../../../../../include/mroonga/unload_mroonga_functions.inc
--source ../../../../../../include/mroonga/have_mroonga_deinit.inc

0 comments on commit e6d4243

Please sign in to comment.