[Groonga-mysql-commit] mroonga/mroonga [master] storage: use unsigined type for ENUM type

Back to archive index

null+****@clear***** null+****@clear*****
2012年 4月 19日 (木) 00:04:21 JST


Kouhei Sutou	2012-04-19 00:04:21 +0900 (Thu, 19 Apr 2012)

  New Revision: 774de26c50e9d47bcfe251a711856378c6c6d3d4

  Log:
    storage: use unsigined type for ENUM type
    
    Unsigned type is suitable because available ENUM value is in 0-65535.

  Added files:
    test/sql/suite/mroonga_storage/r/column_enum_many_with_index.result
    test/sql/suite/mroonga_storage/t/column_enum_many_with_index.test
  Modified files:
    ha_mroonga.cpp

  Modified: ha_mroonga.cpp (+1 -1)
===================================================================
--- ha_mroonga.cpp    2012-04-19 00:02:19 +0900 (090fe21)
+++ ha_mroonga.cpp    2012-04-19 00:04:21 +0900 (c3ac9da)
@@ -1030,7 +1030,7 @@ static grn_builtin_type mrn_grn_type_from_field(grn_ctx *ctx, Field *field,
     type = GRN_DB_SHORT_TEXT;   // 4Kbytes
     break;
   case MYSQL_TYPE_ENUM:         // ENUM; <= 2bytes
-    type = GRN_DB_INT16;        // 2bytes
+    type = GRN_DB_UINT16;       // 2bytes
     break;
   case MYSQL_TYPE_SET:          // SET; <= 8bytes
     type = GRN_DB_INT64;        // 8bytes

  Added: test/sql/suite/mroonga_storage/r/column_enum_many_with_index.result (+287 -0) 100644
===================================================================
--- /dev/null
+++ test/sql/suite/mroonga_storage/r/column_enum_many_with_index.result    2012-04-19 00:04:21 +0900 (2c8cc28)
@@ -0,0 +1,287 @@
+DROP TABLE IF EXISTS items;
+CREATE TABLE items (
+name VARCHAR(255),
+size ENUM("size1",
+"size2",
+"size3",
+"size4",
+"size5",
+"size6",
+"size7",
+"size8",
+"size9",
+"size10",
+"size11",
+"size12",
+"size13",
+"size14",
+"size15",
+"size16",
+"size17",
+"size18",
+"size19",
+"size20",
+"size21",
+"size22",
+"size23",
+"size24",
+"size25",
+"size26",
+"size27",
+"size28",
+"size29",
+"size30",
+"size31",
+"size32",
+"size33",
+"size34",
+"size35",
+"size36",
+"size37",
+"size38",
+"size39",
+"size40",
+"size41",
+"size42",
+"size43",
+"size44",
+"size45",
+"size46",
+"size47",
+"size48",
+"size49",
+"size50",
+"size51",
+"size52",
+"size53",
+"size54",
+"size55",
+"size56",
+"size57",
+"size58",
+"size59",
+"size60",
+"size61",
+"size62",
+"size63",
+"size64",
+"size65",
+"size66",
+"size67",
+"size68",
+"size69",
+"size70",
+"size71",
+"size72",
+"size73",
+"size74",
+"size75",
+"size76",
+"size77",
+"size78",
+"size79",
+"size80",
+"size81",
+"size82",
+"size83",
+"size84",
+"size85",
+"size86",
+"size87",
+"size88",
+"size89",
+"size90",
+"size91",
+"size92",
+"size93",
+"size94",
+"size95",
+"size96",
+"size97",
+"size98",
+"size99",
+"size100",
+"size101",
+"size102",
+"size103",
+"size104",
+"size105",
+"size106",
+"size107",
+"size108",
+"size109",
+"size110",
+"size111",
+"size112",
+"size113",
+"size114",
+"size115",
+"size116",
+"size117",
+"size118",
+"size119",
+"size120",
+"size121",
+"size122",
+"size123",
+"size124",
+"size125",
+"size126",
+"size127",
+"size128",
+"size129",
+"size130",
+"size131",
+"size132",
+"size133",
+"size134",
+"size135",
+"size136",
+"size137",
+"size138",
+"size139",
+"size140",
+"size141",
+"size142",
+"size143",
+"size144",
+"size145",
+"size146",
+"size147",
+"size148",
+"size149",
+"size150",
+"size151",
+"size152",
+"size153",
+"size154",
+"size155",
+"size156",
+"size157",
+"size158",
+"size159",
+"size160",
+"size161",
+"size162",
+"size163",
+"size164",
+"size165",
+"size166",
+"size167",
+"size168",
+"size169",
+"size170",
+"size171",
+"size172",
+"size173",
+"size174",
+"size175",
+"size176",
+"size177",
+"size178",
+"size179",
+"size180",
+"size181",
+"size182",
+"size183",
+"size184",
+"size185",
+"size186",
+"size187",
+"size188",
+"size189",
+"size190",
+"size191",
+"size192",
+"size193",
+"size194",
+"size195",
+"size196",
+"size197",
+"size198",
+"size199",
+"size200",
+"size201",
+"size202",
+"size203",
+"size204",
+"size205",
+"size206",
+"size207",
+"size208",
+"size209",
+"size210",
+"size211",
+"size212",
+"size213",
+"size214",
+"size215",
+"size216",
+"size217",
+"size218",
+"size219",
+"size220",
+"size221",
+"size222",
+"size223",
+"size224",
+"size225",
+"size226",
+"size227",
+"size228",
+"size229",
+"size230",
+"size231",
+"size232",
+"size233",
+"size234",
+"size235",
+"size236",
+"size237",
+"size238",
+"size239",
+"size240",
+"size241",
+"size242",
+"size243",
+"size244",
+"size245",
+"size246",
+"size247",
+"size248",
+"size249",
+"size250",
+"size251",
+"size252",
+"size253",
+"size254",
+"size255",
+"size256"),
+INDEX (size)
+) ENGINE=mroonga DEFAULT CHARSET=utf8;
+SHOW CREATE TABLE items;
+Table	Create Table
+items	CREATE TABLE `items` (
+  `name` varchar(255) DEFAULT NULL,
+  `size` enum('size1','size2','size3','size4','size5','size6','size7','size8','size9','size10','size11','size12','size13','size14','size15','size16','size17','size18','size19','size20','size21','size22','size23','size24','size25','size26','size27','size28','size29','size30','size31','size32','size33','size34','size35','size36','size37','size38','size39','size40','size41','size42','size43','size44','size45','size46','size47','size48','size49','size50','size51','size52','size53','size54','size55','size56','size57','size58','size59','size60','size61','size62','size63','size64','size65','size66','size67','size68','size69','size70','size71','size72','size73','size74','size75','size76','size77','size78','size79','size80','size81','size82','size83','size84','size85','size86','size87','size88','size89','size90','size91','size92','size93','size94','size95','size96','size97','size98','size99','size100','size101','size102','size103','size104','size105','size106','size107','size108','si
 ze109','size110','size111','size112','size113','size114','size115','size116','size117','size118','size119','size120','size121','size122','size123','size124','size125','size126','size127','size128','size129','size130','size131','size132','size133','size134','size135','size136','size137','size138','size139','size140','size141','size142','size143','size144','size145','size146','size147','size148','size149','size150','size151','size152','size153','size154','size155','size156','size157','size158','size159','size160','size161','size162','size163','size164','size165','size166','size167','size168','size169','size170','size171','size172','size173','size174','size175','size176','size177','size178','size179','size180','size181','size182','size183','size184','size185','size186','size187','size188','size189','size190','size191','size192','size193','size194','size195','size196','size197','size198','size199','size200','size201','size202','size203','size204','size205','size206','size207','s
 ize208','size209','size210','size211','size212','size213','size214','size215','size216','size217','size218','size219','size220','size221','size222','size223','size224','size225','size226','size227','size228','size229','size230','size231','size232','size233','size234','size235','size236','size237','size238','size239','size240','size241','size242','size243','size244','size245','size246','size247','size248','size249','size250','size251','size252','size253','size254','size255','size256') DEFAULT NULL,
+  KEY `size` (`size`)
+) ENGINE=mroonga DEFAULT CHARSET=utf8
+INSERT INTO items VALUES ("t-shart for child", "size1");
+INSERT INTO items VALUES ("leadies' coat", "size1");
+INSERT INTO items VALUES ("parka", "size256");
+INSERT INTO items VALUES ("hat", "size256");
+SELECT * FROM items;
+name	size
+t-shart for child	size1
+leadies' coat	size1
+parka	size256
+hat	size256
+SELECT * FROM items WHERE size = "size1";
+name	size
+t-shart for child	size1
+leadies' coat	size1
+SELECT * FROM items WHERE size = "size256";
+name	size
+parka	size256
+hat	size256
+DROP TABLE items;

  Added: test/sql/suite/mroonga_storage/t/column_enum_many_with_index.test (+298 -0) 100644
===================================================================
--- /dev/null
+++ test/sql/suite/mroonga_storage/t/column_enum_many_with_index.test    2012-04-19 00:04:21 +0900 (e399b69)
@@ -0,0 +1,298 @@
+# Copyright(C) 2012 Kouhei Sutou <kou****@clear*****>
+#
+# 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/have_mroonga.inc
+
+--disable_warnings
+DROP TABLE IF EXISTS items;
+--enable_warnings
+
+CREATE TABLE items (
+  name VARCHAR(255),
+  size ENUM("size1",
+            "size2",
+            "size3",
+            "size4",
+            "size5",
+            "size6",
+            "size7",
+            "size8",
+            "size9",
+            "size10",
+            "size11",
+            "size12",
+            "size13",
+            "size14",
+            "size15",
+            "size16",
+            "size17",
+            "size18",
+            "size19",
+            "size20",
+            "size21",
+            "size22",
+            "size23",
+            "size24",
+            "size25",
+            "size26",
+            "size27",
+            "size28",
+            "size29",
+            "size30",
+            "size31",
+            "size32",
+            "size33",
+            "size34",
+            "size35",
+            "size36",
+            "size37",
+            "size38",
+            "size39",
+            "size40",
+            "size41",
+            "size42",
+            "size43",
+            "size44",
+            "size45",
+            "size46",
+            "size47",
+            "size48",
+            "size49",
+            "size50",
+            "size51",
+            "size52",
+            "size53",
+            "size54",
+            "size55",
+            "size56",
+            "size57",
+            "size58",
+            "size59",
+            "size60",
+            "size61",
+            "size62",
+            "size63",
+            "size64",
+            "size65",
+            "size66",
+            "size67",
+            "size68",
+            "size69",
+            "size70",
+            "size71",
+            "size72",
+            "size73",
+            "size74",
+            "size75",
+            "size76",
+            "size77",
+            "size78",
+            "size79",
+            "size80",
+            "size81",
+            "size82",
+            "size83",
+            "size84",
+            "size85",
+            "size86",
+            "size87",
+            "size88",
+            "size89",
+            "size90",
+            "size91",
+            "size92",
+            "size93",
+            "size94",
+            "size95",
+            "size96",
+            "size97",
+            "size98",
+            "size99",
+            "size100",
+            "size101",
+            "size102",
+            "size103",
+            "size104",
+            "size105",
+            "size106",
+            "size107",
+            "size108",
+            "size109",
+            "size110",
+            "size111",
+            "size112",
+            "size113",
+            "size114",
+            "size115",
+            "size116",
+            "size117",
+            "size118",
+            "size119",
+            "size120",
+            "size121",
+            "size122",
+            "size123",
+            "size124",
+            "size125",
+            "size126",
+            "size127",
+            "size128",
+            "size129",
+            "size130",
+            "size131",
+            "size132",
+            "size133",
+            "size134",
+            "size135",
+            "size136",
+            "size137",
+            "size138",
+            "size139",
+            "size140",
+            "size141",
+            "size142",
+            "size143",
+            "size144",
+            "size145",
+            "size146",
+            "size147",
+            "size148",
+            "size149",
+            "size150",
+            "size151",
+            "size152",
+            "size153",
+            "size154",
+            "size155",
+            "size156",
+            "size157",
+            "size158",
+            "size159",
+            "size160",
+            "size161",
+            "size162",
+            "size163",
+            "size164",
+            "size165",
+            "size166",
+            "size167",
+            "size168",
+            "size169",
+            "size170",
+            "size171",
+            "size172",
+            "size173",
+            "size174",
+            "size175",
+            "size176",
+            "size177",
+            "size178",
+            "size179",
+            "size180",
+            "size181",
+            "size182",
+            "size183",
+            "size184",
+            "size185",
+            "size186",
+            "size187",
+            "size188",
+            "size189",
+            "size190",
+            "size191",
+            "size192",
+            "size193",
+            "size194",
+            "size195",
+            "size196",
+            "size197",
+            "size198",
+            "size199",
+            "size200",
+            "size201",
+            "size202",
+            "size203",
+            "size204",
+            "size205",
+            "size206",
+            "size207",
+            "size208",
+            "size209",
+            "size210",
+            "size211",
+            "size212",
+            "size213",
+            "size214",
+            "size215",
+            "size216",
+            "size217",
+            "size218",
+            "size219",
+            "size220",
+            "size221",
+            "size222",
+            "size223",
+            "size224",
+            "size225",
+            "size226",
+            "size227",
+            "size228",
+            "size229",
+            "size230",
+            "size231",
+            "size232",
+            "size233",
+            "size234",
+            "size235",
+            "size236",
+            "size237",
+            "size238",
+            "size239",
+            "size240",
+            "size241",
+            "size242",
+            "size243",
+            "size244",
+            "size245",
+            "size246",
+            "size247",
+            "size248",
+            "size249",
+            "size250",
+            "size251",
+            "size252",
+            "size253",
+            "size254",
+            "size255",
+            "size256"),
+  INDEX (size)
+) ENGINE=mroonga DEFAULT CHARSET=utf8;
+SHOW CREATE TABLE items;
+
+INSERT INTO items VALUES ("t-shart for child", "size1");
+INSERT INTO items VALUES ("leadies' coat", "size1");
+INSERT INTO items VALUES ("parka", "size256");
+INSERT INTO items VALUES ("hat", "size256");
+
+SELECT * FROM items;
+
+SELECT * FROM items WHERE size = "size1";
+
+SELECT * FROM items WHERE size = "size256";
+
+DROP TABLE items;
+
+--source include/have_mroonga_deinit.inc




Groonga-mysql-commit メーリングリストの案内
Back to archive index