Giter VIP home page Giter VIP logo

groonga / groonga Goto Github PK

View Code? Open in Web Editor NEW
777.0 71.0 116.0 97.56 MB

An embeddable fulltext search engine. Groonga is the successor project to Senna.

Home Page: https://groonga.org/

License: GNU Lesser General Public License v2.1

Emacs Lisp 0.01% CMake 0.46% Shell 0.20% C 89.24% HTML 0.13% Ruby 2.40% PHP 0.01% Python 0.01% CSS 0.01% JavaScript 1.98% C++ 5.13% Makefile 0.16% M4 0.23% Dockerfile 0.04%
groonga c mruby nginx full-text-search

groonga's Introduction

README

Groonga is an open-source fulltext search engine and column store.

Reference manual

See doc/source/ directory or http://groonga.org/docs/.

Here are shortcut links:

Community

Bundled software

mruby

  • Path: vendor/mruby-source
  • License: The MIT license. See vendor/mruby-source/MITL for details.

Onigmo

  • Path: vendor/onigmo-source
  • License: BSD license. See vendor/onigmo-source/COPYING for details.

nginx

  • Path: vendor/nginx-${VERSION}
  • License: BSD license. See vendor/nginx-${VERSION}/LICENSE for details.

Authors

Primary authors

  • Daijiro MORI
  • Tasuku SUENAGA
  • Yutaro Shimamura
  • Kouhei Sutou
  • Kazuho Oku
  • Moriyoshi Koizumi

Patches and modules from

TODO: Update or use https://github.com/groonga/groonga/graphs/contributors instead.

  • Daisuke Maki
  • Kazuhiro Osawa
  • Hiroyuki OYAMA
  • Nguyen Anh Phu
  • Hideyuki KUROSU <hideyuki. kurosu at gmail. com>
  • Takuo Kitame
  • Yoshihiro Oyama
  • cZfSunOs.U

groonga's People

Contributors

abetomo avatar cosmo0920 avatar daijiro avatar darashi avatar dependabot[bot] avatar do-aki avatar gunyarakun avatar hashidatks avatar hiroyuki-sato avatar ikdttr avatar iwaim avatar jacob16bit avatar kenhys avatar komainu8 avatar kou avatar myokoym avatar naoa avatar nobu avatar ohkubo avatar okkez avatar orangain avatar otegami avatar piroor avatar s-yata avatar t2001 avatar tamano avatar wanabe avatar wm3 avatar yagisumi avatar yu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

groonga's Issues

grn.h causes flood of compile error

Compilation error summary is as follows:

15>ClCompile:

15>  com.c

10>  my_thr_init.c

15>  ctx.c

10>  my_basename.c

10>  my_write.c

15>  ctx_impl_mrb.c

15>  db.c
15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(140): error C2054: 'uint8_t' の後に '(' が必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(140): error C2085: 'int8_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(140): error C2146: 構文エラー : ',' が、識別子 'INT8' の前に必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(141): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(141): error C2085: 'int_least8_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(141): error C2146: 構文エラー : ',' が、識別子 'INT8' の前に必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(142): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(142): error C2085: 'uint_least8_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(142): error C2146: 構文エラー : ',' が、識別子 'UINT8' の前に必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(143): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(143): error C2085: 'int16_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(143): error C2146: 構文エラー : ',' が、識別子 'INT16' の前に必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(144): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(144): error C2085: 'uint16_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(144): error C2146: 構文エラー : ',' が、識別子 'UINT16' の前に必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(145): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(145): error C2085: 'int32_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(145): error C2146: 構文エラー : ',' が、識別子 'INT32' の前に必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(146): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(146): error C2085: 'uint32_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(146): error C2146: 構文エラー : ',' が、識別子 'UINT32' の前に必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(147): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(147): error C2085: 'int64_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(147): error C2146: 構文エラー : ',' が、識別子 'INT64' の前に必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(148): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(148): error C2085: 'uint64_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(148): error C2146: 構文エラー : ',' が、識別子 'UINT64' の前に必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(149): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(149): error C2085: 'ssize_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(149): error C2146: 構文エラー : ',' が、識別子 'SSIZE_T' の前に必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(150): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(151): error C2085: 'pid_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(151): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(151): error C2085: 'off64_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(151): error C2146: 構文エラー : ',' が、識別子 'int64_t' の前に必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(158): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(158): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(158): error C2085: 'grn_sock' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(140): error C2054: 'uint8_t' の後に '(' が必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(140): error C2085: 'int8_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(140): error C2146: 構文エラー : ',' が、識別子 'INT8' の前に必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(141): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(141): error C2085: 'int_least8_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(141): error C2146: 構文エラー : ',' が、識別子 'INT8' の前に必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(142): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(142): error C2085: 'uint_least8_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(142): error C2146: 構文エラー : ',' が、識別子 'UINT8' の前に必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(143): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(143): error C2085: 'int16_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(143): error C2146: 構文エラー : ',' が、識別子 'INT16' の前に必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(144): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(144): error C2085: 'uint16_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(144): error C2146: 構文エラー : ',' が、識別子 'UINT16' の前に必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(145): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(145): error C2085: 'int32_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(145): error C2146: 構文エラー : ',' が、識別子 'INT32' の前に必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(146): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(146): error C2085: 'uint32_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(146): error C2146: 構文エラー : ',' が、識別子 'UINT32' の前に必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(147): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(147): error C2085: 'int64_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(147): error C2146: 構文エラー : ',' が、識別子 'INT64' の前に必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(148): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(148): error C2085: 'uint64_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(148): error C2146: 構文エラー : ',' が、識別子 'UINT64' の前に必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(149): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(149): error C2085: 'ssize_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(149): error C2146: 構文エラー : ',' が、識別子 'SSIZE_T' の前に必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(150): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(151): error C2085: 'pid_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(151): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(151): error C2085: 'off64_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(151): error C2146: 構文エラー : ',' が、識別子 'int64_t' の前に必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(158): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(158): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(158): error C2085: 'grn_sock' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(140): error C2054: 'uint8_t' の後に '(' が必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(140): error C2085: 'int8_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(140): error C2146: 構文エラー : ',' が、識別子 'INT8' の前に必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(141): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(141): error C2085: 'int_least8_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(141): error C2146: 構文エラー : ',' が、識別子 'INT8' の前に必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(142): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(142): error C2085: 'uint_least8_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(142): error C2146: 構文エラー : ',' が、識別子 'UINT8' の前に必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(143): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(143): error C2085: 'int16_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(143): error C2146: 構文エラー : ',' が、識別子 'INT16' の前に必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(144): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(144): error C2085: 'uint16_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(144): error C2146: 構文エラー : ',' が、識別子 'UINT16' の前に必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(145): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(145): error C2085: 'int32_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(145): error C2146: 構文エラー : ',' が、識別子 'INT32' の前に必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(146): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(146): error C2085: 'uint32_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(146): error C2146: 構文エラー : ',' が、識別子 'UINT32' の前に必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(147): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(147): error C2085: 'int64_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(147): error C2146: 構文エラー : ',' が、識別子 'INT64' の前に必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(148): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(148): error C2085: 'uint64_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(148): error C2146: 構文エラー : ',' が、識別子 'UINT64' の前に必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(149): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(149): error C2085: 'ssize_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(149): error C2146: 構文エラー : ',' が、識別子 'SSIZE_T' の前に必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(150): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(151): error C2085: 'pid_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(151): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(151): error C2085: 'off64_t' : 仮パラメーター リスト内にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(151): error C2146: 構文エラー : ',' が、識別子 'int64_t' の前に必要です。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(158): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(158): error C2143: 構文エラー : ';' が '型' の前にありません。

15>c:\jw\workspace\dmb\powershell\work\source\storage\mroonga\vendor\groonga\lib\grn.h(158): error C2085: 'grn_sock' : 仮パラメーター リスト内にありません。
...

Complete build log is here: https://dl.dropboxusercontent.com/u/36753409/build-mariadb-with-mroonga-nightly-20141120.log

ドキュメントの構成を整理する

「5. サジェスト」は「8. リファレンス」の下に入れる。「5.2. チュートリアル」は「4. チュートリアル」の中に統合。(今はまだコンテンツがないので削除でもいいかも。)

「8. リファレンス」の中に「8.12. 操作」(Operations)みたいなの(「検索方法」とかでもいいかもしれない)を作って、「6. 位置情報検索」はその下にいれる。「8.12. 操作」の下には「全文検索」とか「前方一致検索」とか「近傍検索」とかそういうのを入れる。

Groongaのバージョンの付け方を変更する

現在 X.Y.Zで毎月リリースの度にZをインクリメントし、2/9にXをインクリメントするようにしている。
毎月のリリースで結構実験的な機能をリリースしたりしているので、0.0.1あげるのが妥当かというと微妙。

X 2/9にインクリメント
Y. 毎月のリリースであげる
Z. 毎月のリリースでは0. なんかリリースし直しがあればあげる

というルールで2015/2/9の5.0.0のリリースから適用するのはどうか。

zlib で圧縮したカラムから値を取得しようとすると segmentation fault

たびたびすみません。
次のコードで segmentation fault になります。
grn_obj_get_value のところなのですが、
続けて2回実行すると grn_obj_set_value でも segmentation fault になります。
上書きする場合にもどこかにバグがありそうです。
zlib を使わない場合は問題ないです。

私が直せれば良いのですが、ぜんぜんコードを追えていないので、
修正をお願いします。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <groonga.h>

int
main(int argc, char **argv)
{
  unsigned key_size = 8;
  grn_ctx ctx;
  grn_obj *db, *table, *column, *key_type, *value_type;
  grn_id id;
  grn_obj buf;
  grn_rc rc;
  int added;
  grn_obj value, bulk;
  const char *path = "db";
  if (grn_init()) {
    fprintf(stderr, "grn_init() failed\n");
    return -1;
  }
  if (grn_ctx_init(&ctx, 0)) {
    fprintf(stderr, "grn_ctx_init() failed\n");
    return -1;
  }
  db = grn_db_open(&ctx, path);
  if (!db) { db = grn_db_create(&ctx, path, NULL); }
  if (!db) {
    fprintf(stderr, "db initialize failed\n");
    return -1;
  }

  key_type = grn_ctx_at(&ctx, GRN_DB_SHORT_TEXT);
  GRN_TABLE_OPEN_OR_CREATE(&ctx, "t1", 2, NULL,
               GRN_OBJ_TABLE_HASH_KEY|GRN_OBJ_PERSISTENT,
               key_type, NULL, table);

  value_type = grn_ctx_at(&ctx, GRN_DB_TEXT);
  GRN_COLUMN_OPEN_OR_CREATE(&ctx, table, "c1", 2, NULL,
                GRN_OBJ_PERSISTENT|GRN_OBJ_COMPRESS_ZLIB,
                /* GRN_OBJ_PERSISTENT, */
                value_type, column);

  id = grn_table_add(&ctx, table, "hello", 5, &added);
  printf("id=%d, added=%d\n", id, added);

  GRN_TEXT_INIT(&value, 0);
  GRN_TEXT_PUT(&ctx, &value, "world", 5);
  rc = grn_obj_set_value(&ctx, column, id, &value, GRN_OBJ_SET);
  printf("grn_obj_set_value: rc=%d\n", rc);

  GRN_TEXT_INIT(&bulk, 0);
  GRN_BULK_REWIND(&bulk);
  grn_obj_get_value(&ctx, column, id, &bulk);
  printf("%s\n", GRN_BULK_HEAD(&bulk));

  grn_obj_close(&ctx, &bulk);

  if (grn_obj_close(&ctx, db)) {
    fprintf(stderr, "grn_obj_close() failed\n");
    return -1;
  }
  if (grn_ctx_fin(&ctx)) {
    fprintf(stderr, "grn_ctx_fin() failed\n");
    return -1;
  }
  if (grn_fin()) {
    fprintf(stderr, "grn_fin() failed\n");
    return -1;
  }
  return 0;
}

dat が空のとき grn_dat_scan() が失敗する

概要

空っぽの dat に対して grn_dat_scan() を呼び出すと失敗(返り値: -1)します.
このとき, *str_rest の設定もおこなわれません.

正しい動作は, *str_rest を入力文字列の末尾を指すように設定し, 0 を返すというものです.

パーティショニング対応

(実現するためにどうしたらよいかという妄想をまとめているもの。一通りまとまるまで説明を直接編集していく。)

目的

パーティショニングをサポートする目的はサイズに関する制限のうち、次の制限の上限を引き伸ばすこと。

  • テーブルの最大レコード数: 268,435,455 (約2億6千万)
  • 最大インデックスサイズ: 256GByte
  • カラムに格納した値の合計サイズの上限値: 256GiB

また、ポスティングリストの増加による速度低下の軽減という効果も得られるかもしれない。

つまり、1つのテーブルで論理的に扱えるデータ量を増やすことが目的である。

目的ではないこと

複数台のマシンでの分散機能は目的としない。(それはDroongaやSpider + Mroongaでがんばる。この成果はDroongaやMroongaにとっても嬉しいだろう。)

あくまでローカルの1つのデータベース内の範囲の話である。

制限

  • _idをサポートしない。
    • _idを取得できても、重複する可能性がある。例えば、パーティション1のテーブルのレコードID 1とパーティション2のテーブルのレコードID 1(どっちも1)が返ってくることがある。
  • _keyを必須とする。(GRN_TABLE_NO_KEYはパーティションサポート外とする。)
    • Groongaはカラムストアなため、カラムの追加・削除はテーブル作成とは別のフェーズで行うし、レコード追加時はカラムはまったく関与しない。つまり、レコードをどのパーティションに振り分けるとよいかを判断するためにカラムの情報を使うことができない。そのため、テーブルにある情報(_id_key_value)だけを使ってレコードを振り分ける必要がある。_idはユーザーが指定できないため不適切である。_key_valueはどちらもユーザーが指定できるが、特定のレコードを参照するときに使えるため_keyの方が適切である。よって、レコードをどのパーティションに振り分けるかに使うため_keyを必須とする。
  • _keyは数値とする。(とりあえずは。)
    • レコードをどのパーティションに振り分けるかの方式には範囲パーティションやハッシュ値を使ったパーティションなどいろいろ考えられるが当初は範囲パーティションのみを対象とする。よって、_keyは数値のみサポートする。(Timeとかも数値だが、当初はInt64のみで動作することを目指す。)

実現案

テーブルにパーティション情報を持てるようにする。

# ↓のシンタックスは適当
table_create Logs --partitions <1000,<10000,<=20000

パーティション情報を持っているテーブルは、次の操作のときに自動でパーティションされたテーブルへアクセスする。

  • レコード追加
  • レコード削除
  • カラム値設定
  • インデックス設定
  • 検索

TODO...(あとで書く)

OS X does not have `O_DIRECT`

ii.c:7401:34: error: use of undeclared identifier 'O_DIRECT'
          open_flags &= O_APPEND|O_DIRECT|O_SHLOCK|O_EXLOCK|O_SYNC|O_CLOEXEC;

This error can be fix following code(in grn.h)?

#define O_DIRECT

Filters return wrong results for negative values

Description

In the following example, the responses of the 3rd and 4th select commands are wrong.
The 3rd select command requests _key <= 100, but {_key:-10} does not match.
The 4th select command requests _key > 100, but {_key:-10} matches.

$ groonga -n /tmp/groonga/temp.db

> table_create --name Table --flags TABLE_PAT_KEY --key_type Int8
[[0,1413377358.25187,0.00129938125610352],true]

> load --table Table '[ {"_key":120}, {"_key":-10}, {"_key":100} ]'
[[0,1413377360.67964,0.000374555587768555],3]

> select --table Table
[[0,1413377365.40268,0.000696897506713867],
 [[[3],[["_id","UInt32"],["_key","Int8"]],[2,-10],[3,100],[1,120]]]]

> select --table Table --filter '_key == -10'
[[0,1413377372.9364,0.00111532211303711],
 [[[1],[["_id","UInt32"],["_key","Int8"]],[2,-10]]]]

> select --table Table --filter '_key <= 100'
[[0,1413377377.33897,0.0027768611907959],
 [[[1],[["_id","UInt32"],["_key","Int8"]],[3,100]]]]

> select --table Table --filter '_key > 100'
[[0,1413377379.84695,0.000873804092407227],
 [[[2],[["_id","UInt32"],["_key","Int8"]],[2,-10],[1,120]]]]

Environment

  • CPU: Core i7
  • OS: Ubuntu 14.04 (64-bit)
  • Groonga: 4.0.6-80-g125f33c

Groonga 4.0.8 on Fedora

  • Groonga 4.0.8ソース取り込み
  • specの変更を追従する
  • rawhide更新
  • f21ブランチ更新
  • f20ブランチ更新
  • f19ブランチ更新
  • testingにパッケージをアップロードする
  • stableにパッケージをアップロードする

Groonga 4.0.7のFedoraのspec TODO

Groonga 4.0.7がリリースされたあと、Fedora側で追従するときのTODO

  • token_filtersが追加されているので忘れずに対応する
    • これは基本そのままマージでいいはず

ファイルを開くときにパーミッションを設定する

今はO_RDWRだけ指定していてS_IRUSRとかを指定していないので、umaskが000のとき(groonga-httpdでdaemonで起動したとき)はrw-rw-rw-でファイルが作成されてしまう。

これは誰でも読み書きできる状態なのでよろしくない。デフォルトはrw-r-----にしてなんらかのパラメーターで変更できるようにするのがよいのではないか。

DAT table returns empty results for `select`

Description

A select command without query and filter returns an empty result as follows:

> table_create --name Table --flags TABLE_DAT_KEY --key_type Int8
[[0,1413442656.00796,0.00171709060668945],true]

> load --table Table '[ {"_key":120}, {"_key":-10}, {"_key":100} ]'
[[0,1413442658.28764,0.00036168098449707],3]

> select --table Table
[[0,1413442660.33154,0.013852596282959],[]]

The select should return all the records.
The following example shows the expected result.

> table_create --name Table --flags TABLE_PAT_KEY --key_type Int8
[[0,1413443829.2985,0.00191831588745117],true]

> load --table Table '[ {"_key":120}, {"_key":-10}, {"_key":100} ]'
[[0,1413443831.37179,9.72747802734375e-05],3]

> select --table Table
[[0,1413443833.36081,0.000624179840087891],
 [[[3],[["_id","UInt32"],["_key","Int8"]],[2,-10],[3,100],[1,120]]]]

チュートリアルをわかりやすいものにする

今のチュートリアルをよりわかりやすいものにしたい。
説明が不足している、あるいはあれこれ書きすぎて読んだひとが結局どれにすればいいの?と混乱するようなことがないようにしたい。
#205 も必要か。

いくつか具体的な改善点をあげてみる。

  • リモートアクセスのGQTPやmemcachedははぶいてHTTPのみにしてすっきりさせる
  • 測地系については世界測地系前提にする
  • 位置情報のミリ秒表記の補足を追加する あるいはいっそのこと度表記にしてしまう?
  • スキーマは図を入れて説明する
  • 位置情報なら地図を表示する

Use localtime_s() on Windows

Description

grn_timeval2str() uses localtime() on Windows, but localtime() is not thread-safe and should not be used.
This is because Windows does not provide localtime_r().

Please see the following web page for details.

The above web page says "More secure versions of these functions are available", and you can find that Windows provides localtime_s() instead of localtime_r().

Therefore, Groonga should use localtime_s() on Windows.

build error with zeromq 3.x

Making all in suggest
make[3]: Entering directory `/home/naoina/work/src/groonga/src/suggest'
  CC       groonga_suggest_learner-groonga_suggest_learner.o
groonga_suggest_learner.c: In function `zmq_send_to_httpd':
groonga_suggest_learner.c:197:5: error: too few arguments to function `zmq_send'
     if (zmq_send(zmq_send_sock, &msg, 0)) {
     ^
In file included from groonga_suggest_learner.c:17:0:
/usr/include/zmq.h:349:45: note: declared here
 ZMQ_EXPORT int zmq_send (void *s, const void *buf, size_t len, int flags);
                                             ^
groonga_suggest_learner.c: In function `send_to_httpd':
groonga_suggest_learner.c:372:41: error: `ZMQ_HWM' undeclared (first use in this function)
           zmq_setsockopt(zmq_send_sock, ZMQ_HWM, &hwm, sizeof(uint64_t));
                                         ^
groonga_suggest_learner.c:372:41: note: each undeclared identifier is reported only once for each function it appears in
groonga_suggest_learner.c: In function `recv_event_loop':
groonga_suggest_learner.c:463:9: error: too few arguments to function `zmq_recv'
         if (zmq_recv(zmq_sock, &msg, 0)) {
         ^
In file included from groonga_suggest_learner.c:17:0:
/usr/include/zmq.h:350:45: note: declared here
 ZMQ_EXPORT int zmq_recv (void *s, void *buf, size_t len, int flags);
                                             ^
make[3]: *** [groonga_suggest_learner-groonga_suggest_learner.o] Error 1
make[3]: Leaving directory `/home/naoina/work/src/groonga/src/suggest'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/naoina/work/src/groonga/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/naoina/work/src/groonga'
make: *** [all] Error 2

Please support to zeromq 3.x, or write required version info to dependencies section of document.

See also: http://www.zeromq.org/docs:3-1-upgrade

Groonga 4.0.8 on OSX 10.10.1 でインデックス作成処理時にエラー

Mac OSX 10.10.1 yosemite で Homebrew を使って Groonga 4.0.8 を導入し、チュートリアルの DDL と JSON を読み込ませていたところエラーが発生しました。
4.0.7 に戻して再度同じ操作をしたところ正常に処理されたので 4.0.8 特有の挙動だと考えられます。
挙動を追いかけるのは私の技術力だとちょっとつらいので足りない情報などあれば協力したいと思います。

$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.10.1
BuildVersion: 14B25

$ groonga -n tutorial.db < 2014-08-25.grn
[[0,1418292129.46114,0.00957107543945312],true]
[[0,1418292129.47082,0.00219988822937012],true]
[[0,1418292129.47307,0.000692129135131836],9]
[[0,1418292129.47378,0.00154304504394531],true]
[-3,1418292129.47539,0.0114610195159912,"syscall error 'mkostemp' (No such file or directory)",[["grn_ii_buffer_open","ii.c",7422]]],false

table_create --name Site --flags TABLE_HASH_KEY --key_type ShortText
[[0,1418292189.37304,0.00291800498962402],true]
column_create --table Site --name title --flags COLUMN_SCALAR --type ShortText
[[0,1418292195.58109,0.00337910652160645],true]
load --table Site
[
{"_key":"http://example.org/","title":"This is test record 1!"},
{"_key":"http://example.net/","title":"test record 2."},
{"_key":"http://example.com/","title":"test test record three."}
{"_key":"http://example.net/afr","title":"test record four."},
{"_key":"http://example.org/aba","title":"test test test record five."},
] [[0,1418292202.62096,65.632071018219],5]
table_create --name Terms --flags TABLE_PAT_KEY|KEY_NORMALIZE --key_type ShortText --default_tokenizer TokenBigram
[[0,1418292276.55702,0.00326991081237793],true]
column_create --table Terms --name blog_title --flags COLUMN_INDEX|WITH_POSITION --type Site --source title
[[-3,1418292283.30933,0.0190229415893555,"syscall error 'mkostemp' (No such file or directory)",[["grn_ii_buffer_open","ii.c",7422]]],false]

Groonga 4.0.8をリリースする

11/29に向けたリリース作業をする。

  • groonga-httpdをデフォルトにする
    • debian,ubuntu
    • centos CentOS 7でのsystemdへの移行は見送る
    • fedora 別リポジトリに移行したので11/29にリリースしてからでよい。
    • windows版はsidでないとビルドできないはず。libgcc_s_seh-1.dllだったか。
  • newsの更新と翻訳
  • in_valuesのドキュメントを書く(時間なさそう)
  • range_filterのドキュメントを書く(時間なさそう)
  • /etc/defaultの更新 too many indexの環境変数
  • リリースノートを書く
  • ドキュメントのアップロード
  • タグ打ちとソースアップロード
  • パッケージのアップロード
    • debian
    • ubuntu(launchpad)
    • centos
    • windows
  • ブログエントリを書く
  • MLへリリースアナウンス (11/29)
  • twitterで告知する(11/29)

Can't prefix search with single character in Query syntax

以前はできていたのですが、現在のバージョンでは、クエリー構文でcolumn:1文字*の前方一致検索ができなくなっています。おそらく*N1とかの構文拡張による副作用的な問題のような気がしますが、回避は可能でしょうか?

とりあえず、column:^では1文字で前方一致検索ができたので、そちらに書き換えることで対応しました。

table_create Diaries TABLE_NO_KEY
[[0,0.0,0.0],true]
column_create Diaries content COLUMN_SCALAR ShortText
[[0,0.0,0.0],true]
table_create Terms TABLE_PAT_KEY ShortText   --default_tokenizer TokenBigram   --normalizer NormalizerAuto
[[0,0.0,0.0],true]
column_create Terms diaries_content COLUMN_INDEX|WITH_POSITION Diaries content
[[0,0.0,0.0],true]
load --table Diaries
[
{"content": "It'll be fine tomorrow as well."},
{"content": "It'll rain tomorrow."},
{"content": "It's fine today. It'll be fine tomorrow as well."},
{"content": "It's fine today. But it'll rain tomorrow."},
{"content": "Ring the bell."},
{"content": "I love dumbbells."}
]
[[0,0.0,0.0],6]
select   --table Diaries   --match_columns content   --query "content:t*"   --output_columns content,_score   --sortby _id
[[0,0.0,0.0],[[[0],[["content","ShortText"],["_score","Int32"]]]]]
select   --table Diaries   --match_columns content   --query "content:^t"   --output_columns content,_score   --sortby _id
[
  [
    0,
    0.0,
    0.0
  ],
  [
    [
      [
        5
      ],
      [
        [
          "content",
          "ShortText"
        ],
        [
          "_score",
          "Int32"
        ]
      ],
      [
        "It'll be fine tomorrow as well.",
        1
      ],
      [
        "It'll rain tomorrow.",
        1
      ],
      [
        "It's fine today. It'll be fine tomorrow as well.",
        2
      ],
      [
        "It's fine today. But it'll rain tomorrow.",
        2
      ],
      [
        "Ring the bell.",
        1
      ]
    ]
  ]
]

link error about libonig.la in Homebrew environment

Another problem appeared. 😢
#253 and #254 patched Homebrew Groonga 4.0.8 Formula generates following error:

==> Patching
patching file lib/ii.c
patching file lib/grn.h
==> ./configure --prefix=/usr/local/Cellar/groonga/4.0.8 --with-zlib --disable-zeromq --with-mruby --without-libstemmer
==> make install
libtool: link: cannot find the library `../vendor/onigmo-source/libonig.la' or unhandled argument `../vendor/onigmo-source/libonig.la'
make[3]: *** [libgroonga.la] Error 1
make[2]: *** [install-recursive] Error 1
make[1]: *** [install] Error 2
make: *** [install-recursive] Error 1

Support armhf on Debian

Groongaをarmhf対応させてRaspberryPiやBeagleBoneみたいな機器で動かせるようにしたい。

test_urlenc fails if `char` is unsigned

Description

A unit test test_urlenc fails if Groonga is built with -funsigned-char as follows:

  test_urlenc:
    Japanese:                       F
===============================================================================
Failure: test_urlenc (Japanese)
<expected == (GRN_TEXT_VALUE(&buffer))[0..GRN_TEXT_LEN(&buffer)]>
expected: <"%20%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%81%A7%E3%81%99%E3%80%82%20">
  actual: <"%20%E6\97%A5%E6%9C%AC%E8%AA\9E%E3%81%A7%E3%81%99%E3%80\82%20">

diff:
? "%20%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%81%A7%E3%81%99%E3%80%82%20"
?        \97                    \9E                          \82      

./util/test-string.c:453: test_urlenc():
  cut_assert_equal_substring(
    expected,
    (((&buffer)->header.impl_flags & (0x01<<1)) ?
      ((&buffer)->u.b.head) :
      (char *)&((&buffer)->u.b.head)),
    (((&buffer)->header.impl_flags & (0x01<<1)) ?
      ((&buffer)->u.b.curr - (&buffer)->u.b.head) :
      (((&buffer)->header.flags) & 0x1f)))
===============================================================================
: (0.000682)

CentOS6でmroongaが動作しない?

CentOS6でyumからgroonga + mroongaをインストールしてみました。

groongaのCLIでの動作確認は下記URLの手順で問題無く完了しました。
http://groonga.org/docs/tutorial/tutorial01.html

次にmroongaの動作確認をしていてshow enginesで確認する限りストレージエンジンは追加されていますが、
engine=groongaを指定してテーブル作成する所でMySQLがクラッシュしています。signal 11でクラッシュしているようです。

以下がmysqlのログのコピーになります。

110928 6:44:33 - mysqld got signal 11 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
We will try our best to scrape up some info that will hopefully help diagnose
the problem, but since we have already crashed, something is definitely wrong
and this may fail.

key_buffer_size=1073741824
read_buffer_size=2097152
max_used_connections=1
max_threads=100
thread_count=1
connection_count=1
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 2073714 K
bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

Thread pointer: 0x2af05350
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 0x7f7a7821ce60 thread_stack 0x30000
/usr/sbin/mysqld(my_print_stacktrace+0x39)[0x7ce189]
/usr/sbin/mysqld(handle_segfault+0x379)[0x4fecc9]
/lib64/libpthread.so.0[0x3e73c0f4c0]
/usr/lib64/mysql/plugin/ha_groonga.so(_ZNK10ha_mroonga11index_flagsEjjb+0x22)[0x7f7a2fdebb42]
/usr/sbin/mysqld(_Z14open_table_defP3THDP11TABLE_SHAREj+0x2afc)[0x5f924c]
/usr/sbin/mysqld(_Z15get_table_shareP3THDP10TABLE_LISTPcjjPij+0x189)[0x5389c9]
/usr/sbin/mysqld(_Z10open_tableP3THDP10TABLE_LISTP11st_mem_rootP18Open_table_context+0x3c7)[0x540127]
/usr/sbin/mysqld(_Z11open_tablesP3THDPP10TABLE_LISTPjjP19Prelocking_strategy+0x303)[0x5427f3]
/usr/sbin/mysqld(_Z30open_normal_and_derived_tablesP3THDP10TABLE_LISTj+0x50)[0x543280]
/usr/sbin/mysqld[0x5c0702]
/usr/sbin/mysqld(_Z14get_all_tablesP3THDP10TABLE_LISTP4Item+0x1af)[0x5c9b8f]
/usr/sbin/mysqld(_Z24get_schema_tables_resultP4JOIN23enum_schema_table_state+0x241)[0x5ba1b1]
/usr/sbin/mysqld(_ZN4JOIN4execEv+0x419)[0x5b5219]
/usr/sbin/mysqld(_Z12mysql_selectP3THDPPP4ItemP10TABLE_LISTjR4ListIS1_ES2_jP8st_orderSB_S2_SB_yP13select_resultP18st_select_lex_unitP13st_select_lex+0x1a9)[0x5b7509]
/usr/sbin/mysqld(_Z13handle_selectP3THDP3LEXP13select_resultm+0x16d)[0x5b7dfd]
/usr/sbin/mysqld[0x575a35]
/usr/sbin/mysqld(_Z21mysql_execute_commandP3THD+0x32c8)[0x579228]
/usr/sbin/mysqld(_Z11mysql_parseP3THDPcjP12Parser_state+0x10b)[0x57c14b]
/usr/sbin/mysqld(_Z16dispatch_command19enum_server_commandP3THDPcj+0x14fd)[0x57d6ad]
/usr/sbin/mysqld(_Z10do_commandP3THD+0xc4)[0x57da24]
/usr/sbin/mysqld(_Z24do_handle_one_connectionP3THD+0xef)[0x616cef]
/usr/sbin/mysqld(handle_one_connection+0x54)[0x616de4]
/lib64/libpthread.so.0[0x3e73c077e1]
/lib64/libc.so.6(clone+0x6d)[0x3e738e18ed]

Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (0x7f73d0004bc0): is an invalid pointer
Connection ID (thread ID): 1
Status: NOT_KILLED

between() seems not to use an index when used with a bitwise AND (&)

Description

When between() is used with a bitwise AND &, it seems not to use an index.

The following shows a list of commands to create a table.

table_create --name Data --flags TABLE_NO_KEY
column_create --table Data --name Value --type Int32
column_create --table Data --name Flag --type UInt32
load --table Data '[{"Value":860,"Flag":4}]'
...  // Value: [0, 1024), Flag: 1, 2, ..., or 512, #rows: 1M.
load --table Data '[{"Value":75,"Flag":2}]'
table_create --name DataValue --flags TABLE_PAT_KEY --key_type Int32
column_create --table DataValue --name Index --flags COLUMN_INDEX --type Data --source Value

Then, the first select is too slow compared with the other two selects.

> select --table Data --filter 'between(Value, 0, "include", 100, "include") && ((Flag & 1) != 0)'
[[0,1414418631.38877,5.48378705978394],[[[10283],...

> select --table Data --filter 'between(Value, 0, "include", 100, "include")'
[[0,1414418638.27391,0.0533609390258789],[[[103719],...

> select --table Data --filter 'between(Value, 0, "include", 100, "include") && (Flag == 1)'
[[0,1414418654.59622,0.0734946727752686],[[[10283],...

Also, if the index is disabled, the result is as follows:

> select --table Data --filter 'between(Value, 0, "include", 100, "include") && ((Flag & 1) != 0)'
[[0,1414417393.46272,5.49005770683289],[[[10283],...

> select --table Data --filter 'between(Value, 0, "include", 100, "include")'
[[0,1414417404.07405,4.96082067489624],[[[103719],...

> select --table Data --filter 'between(Value, 0, "include", 100, "include") && (Flag == 1)'
[[0,1414417416.61478,4.91911029815674],[[[10283],...

Release Groonga 4.1.1

1/29に向けたリリース作業をする。

  • ディストリビューションごとの対応
    • debian Debian BTS #773029の修正を取り込む(ちょっとまだ議論の余地がある)
    • ubuntu
    • centos CentOS 7でのsystemdへの移行はどうしようか #252
    • fedora 1/29にリリースしてから着手
  • windows版はlibgcc_s_seh-1.dllに注意。
  • newsの更新と翻訳
  • in_valuesのドキュメントを書く(これは実際困っていたひとがいたので)
  • リリースノートを書く
  • ドキュメントのアップロード
  • タグ打ちとソースアップロード 今回からはobjsが含まれることはないはず
  • パッケージのアップロード
    • debian
    • ubuntu(launchpad)
    • centos
    • windows
  • ブログエントリを書く
  • MLへリリースアナウンス (1/29)
  • twitterで告知する(1/29)

MSVC 2013 says build failed with undefined reference `_strcasecmp`

I'm sorry for the delay in my response.
I've used this nightly mroonga package for windows: http://packages.groonga.org/nightly/mariadb-10.0.14-with-mroonga-4.08-for-windows.2014.11.27.zip

  libgroonga.dir\RelWithDebInfo\mrb_procedure.obj
  libgroonga.dir\RelWithDebInfo\mrb_variable_size_column.obj
  libgroonga.dir\RelWithDebInfo\mrb_void.obj
     ライブラリ C:/mrnwork/powershell/work/build-vc2013-zip-32/storage/mroonga/vendor/groonga/lib/RelWithDebInfo/groonga.lib とオブジェクト C:/mrnwork/powershell/work/build-vc2013-zip-32/storage/mroonga/vendor/groonga/lib/RelWithDebInfo/groonga.exp を作成中
util.obj : error LNK2019: 未解決の外部シンボル _strcasecmp が関数 _grn_win32_base_dir で参照されました。 [C:\mrnwork\powershell\work\build-vc2013-zip-32\storage\mroonga\vendor\groonga\lib\libgroonga.vcxproj]
C:\mrnwork\powershell\work\build-vc2013-zip-32\storage\mroonga\vendor\groonga\lib\RelWithDebInfo\groonga.dll : fatal error LNK1120: 1 件の未解決の外部参照 [C:\mrnwork\powershell\work\build-vc2013-zip-32\storage\mroonga\vendor\groonga\lib\libgroonga.vcxproj]
プロジェクト "C:\mrnwork\powershell\work\build-vc2013-zip-32\storage\mroonga\vendor\groonga\lib\libgroonga.vcxproj" (既定のターゲット) のビルドが終了しました -- 失敗。
プロジェクト "C:\mrnwork\powershell\work\build-vc2013-zip-32\storage\mroonga\vendor\groonga\src\groonga.vcxproj" (既定のターゲット) のビルドが終了しました -- 失敗。
プロジェクト "C:\mrnwork\powershell\work\build-vc2013-zip-32\ALL_BUILD.vcxproj" (1) は、ノード 1 上に "C:\mrnwork\powershell\work\build-vc2013-zip-32\storage
...

Here is complete config log: https://dl.dropboxusercontent.com/u/36753409/Groonga-4.0.8-nightly-buildlog/20141127/config.log
Here is complete build log: https://www.dropbox.com/home/Public/Groonga-4.0.8-nightly-buildlog/20141127
Here is storage/mroonga/vendor/groonga/config.h: https://dl.dropboxusercontent.com/u/36753409/Groonga-4.0.8-nightly-buildlog/20141127/config.h

match_columnsにテーブルオブジェクトを指定するとアボートする

  • 再現DDL
table_create test TABLE_PAT_KEY Int32
column_create test data COLUMN_SCALAR ShortText
column_create test id COLUMN_SCALAR Int32

table_create test-data_idx TABLE_PAT_KEY ShortText --default_tokenizer TokenBigramSplitSymbolAlphaDigit --normalizer NormalizerAuto

load --table test
[
["_key","data","id"],
[1,"thisis",1],
[2,"this is",2]
]

select test --match_columns test --query '"this is"'

今、少し忙しくて私の方では追えていません。
特に困っていないので、対応するべきかどうかもご検討ください。

Compilation failed with MSVC by undefined reference `_strncasecmp`

As I mentioned in #247, MSVC complains undefined reference when I compile Groonga.

I've used this MariaDB-with-Mroonga nightly source http://packages.groonga.org/nightly/mariadb-10.0.14-with-mroonga-4.07-for-windows.2014.11.24.zip
(This is Mroonga nightly source package, but this issue causes by Groonga.)

129>  Building Custom Rule C:/mrnwork/powershell/work/source/CMakeLists.txt
129>  CMake does not need to re-run because C:\mrnwork\powershell\work\build-vc2010-zip-32\CMakeFiles\generate.stamp is up-to-date.
128>groonga.obj : error LNK2019: 未解決の外部シンボル _strncasecmp が関数 _do_htreq_post_parse_header_request_line で参照されました。
128>C:\mrnwork\powershell\work\build-vc2010-zip-32\storage\mroonga\vendor\groonga\src\RelWithDebInfo\groonga.exe : fatal error LNK1120: 外部参照 1 が未解決です。

Here is complete build.log with VS 2010: https://dl.dropboxusercontent.com/u/36753409/Groonga-4.0.8-nightly-buildlog/VS2010/build.log
Here is complete config.log with VS 2010: https://dl.dropboxusercontent.com/u/36753409/Groonga-4.0.8-nightly-buildlog/VS2010/config.log

With VS 2013, it also failed.

Here is complete build.log with VS 2013: https://dl.dropboxusercontent.com/u/36753409/Groonga-4.0.8-nightly-buildlog/VS2013/build.log
Here is complete build.log with VS 2013: https://dl.dropboxusercontent.com/u/36753409/Groonga-4.0.8-nightly-buildlog/VS2013/config.log

test_html_mapping fails if `char` is unsigned

Description

A unit test test_html_mapping crashes if Groonga is built with -funsigned-char as follows:

  test_html_mapping:                    
!
===============================================================================
Crash: test_html_mapping
===============================================================================
: (0.125689)

Build error groonga 4.0.0

As described below, an error is displayed.

In file included from expr.c:5559:
ecmascript.c: In function 'yy_destructor':
ecmascript.c:876: warning: unused variable 'efsi'
gcc: Internal error: Killed (program cc1)

zlib を有効にしたカラムで segmentation fault

次のコードで segmentation fault が起こります。
grn_table_delete した後にもう一度 grn_table_delete_by_id したときです。
zlib を有効にしない場合は問題ないです。
私が調べたところ grn_ja_ref_zlib でエラーが起こっているようなのですが、
修正する方法はわかりませんでした。

私の環境は ubuntu 11.10 amd64 で groonga は git リポジトリの最新を使いました。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <groonga.h>

int
main(int argc, char **argv)
{
  unsigned key_size = 8;
  grn_ctx ctx;
  grn_obj *db, *table, *column, *key_type, *value_type;
  grn_id id;
  grn_obj buf;
  grn_rc rc;
  int added;
  const char *path = "db";
  if (grn_init()) {
    fprintf(stderr, "grn_init() failed\n");
    return -1;
  }
  if (grn_ctx_init(&ctx, 0)) {
    fprintf(stderr, "grn_ctx_init() failed\n");
    return -1;
  }
  db = grn_db_open(&ctx, path);
  if (!db) { db = grn_db_create(&ctx, path, NULL); }
  if (!db) {
    fprintf(stderr, "db initialize failed\n");
    return -1;
  }

  key_type = grn_ctx_at(&ctx, GRN_DB_SHORT_TEXT);
  table = grn_table_create(&ctx, "t1", 2, NULL,
               GRN_OBJ_TABLE_HASH_KEY|GRN_OBJ_PERSISTENT,
               key_type, NULL);

  value_type = grn_ctx_at(&ctx, GRN_DB_TEXT);
  column = grn_column_create(&ctx, table, "c1", 2, NULL,
                 GRN_OBJ_PERSISTENT|GRN_OBJ_COMPRESS_ZLIB,
                 /* GRN_OBJ_PERSISTENT, */
                 value_type);

  id = grn_table_add(&ctx, table, "hello", 5, &added);
  printf("id=%d, added=%d\n", id, added);

  rc = grn_table_delete(&ctx, table, "hello", 5);
  printf("rc=%d\n", rc);

  rc = grn_table_delete_by_id(&ctx, table, 1);
  printf("rc=%d\n", rc);

  if (grn_obj_close(&ctx, db)) {
    fprintf(stderr, "grn_obj_close() failed\n");
    return -1;
  }
  if (grn_ctx_fin(&ctx)) {
    fprintf(stderr, "grn_ctx_fin() failed\n");
    return -1;
  }
  if (grn_fin()) {
    fprintf(stderr, "grn_fin() failed\n");
    return -1;
  }
  return 0;
}

Timeout is needed in groonga-server-http

Please give -m option to curl.
curl hangs if groonga is already terminated.

--- groonga-server-http.init.prev   2013-05-20 11:50:09.130672804 +0900
+++ groonga-server-http.init    2013-05-20 11:51:03.673777652 +0900
@@ -106,7 +106,7 @@
 {
     command=$1
     if [ "${PROTOCOL}" = "http" ]; then
-   $CURL "http://${ADDRESS}:${PORT}/d/${command}"
+   $CURL -m 5 "http://${ADDRESS}:${PORT}/d/${command}"
     else
         $DAEMON --port ${PORT} -c ${ADDRESS} ${command}
     fi

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.