[Groonga-commit] groonga/groonga at 2eef1ca [master] grn_ts: add files for new modules

Back to archive index

susumu.yata null+****@clear*****
Fri Nov 20 19:13:57 JST 2015


susumu.yata	2015-11-20 19:13:57 +0900 (Fri, 20 Nov 2015)

  New Revision: 2eef1cac11d4b46e69a125dd2235f5249e6897dd
  https://github.com/groonga/groonga/commit/2eef1cac11d4b46e69a125dd2235f5249e6897dd

  Message:
    grn_ts: add files for new modules

  Added files:
    lib/ts/ts_cursor.c
    lib/ts/ts_cursor.h
    lib/ts/ts_plan.c
    lib/ts/ts_plan.h
    lib/ts/ts_sorter.c
    lib/ts/ts_sorter.h
  Modified files:
    lib/ts/sources.am

  Modified: lib/ts/sources.am (+6 -0)
===================================================================
--- lib/ts/sources.am    2015-11-20 18:54:16 +0900 (37732d6)
+++ lib/ts/sources.am    2015-11-20 19:13:57 +0900 (5d89b05)
@@ -1,6 +1,8 @@
 libgrnts_la_SOURCES =				\
 	ts_buf.c				\
 	ts_buf.h				\
+	ts_cursor.c				\
+	ts_cursor.h				\
 	ts_expr.c				\
 	ts_expr.h				\
 	ts_expr_builder.c			\
@@ -12,6 +14,10 @@ libgrnts_la_SOURCES =				\
 	ts_log.h				\
 	ts_op.c					\
 	ts_op.h					\
+	ts_plan.c				\
+	ts_plan.h				\
+	ts_sorter.c				\
+	ts_sorter.h				\
 	ts_str.c				\
 	ts_str.h				\
 	ts_types.h				\

  Added: lib/ts/ts_cursor.c (+19 -0) 100644
===================================================================
--- /dev/null
+++ lib/ts/ts_cursor.c    2015-11-20 19:13:57 +0900 (676464b)
@@ -0,0 +1,19 @@
+/* -*- c-basic-offset: 2 -*- */
+/*
+  Copyright(C) 2015 Brazil
+
+  This library is free software; you can redistribute it and/or
+  modify it under the terms of the GNU Lesser General Public
+  License version 2.1 as published by the Free Software Foundation.
+
+  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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+
+#include "ts_cursor.h"

  Added: lib/ts/ts_cursor.h (+55 -0) 100644
===================================================================
--- /dev/null
+++ lib/ts/ts_cursor.h    2015-11-20 19:13:57 +0900 (56320df)
@@ -0,0 +1,55 @@
+/* -*- c-basic-offset: 2 -*- */
+/*
+  Copyright(C) 2015 Brazil
+
+  This library is free software; you can redistribute it and/or
+  modify it under the terms of the GNU Lesser General Public
+  License version 2.1 as published by the Free Software Foundation.
+
+  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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+
+#ifndef GRN_TS_CURSOR_H
+#define GRN_TS_CURSOR_H
+
+#include "../grn.h"
+
+#include "ts_types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum {
+  GRN_TS_HASH_CURSOR,
+  GRN_TS_PAT_CURSOR,
+  GRN_TS_DAT_CURSOR,
+  GRN_TS_ARRAY_CURSOR
+} grn_ts_cursor_type;
+
+typedef struct {
+  grn_ts_cursor_type type;
+} grn_ts_cursor;
+
+/* grn_ts_cursor_open() creates a cursor. */
+grn_rc grn_ts_cursor_open(grn_ctx *ctx, grn_ts_cursor **cursor);
+
+/* grn_ts_cursor_close() destroys a cursor. */
+grn_rc grn_ts_cursor_close(grn_ctx *ctx, grn_ts_cursor *cursor);
+
+/* grn_ts_cursor_read() reads records from a cursor. */
+grn_rc grn_ts_cursor_read(grn_ctx *ctx, grn_ts_cursor *cursor,
+                          grn_ts_record *out, size_t max_n_out, size_t *n_out);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* GRN_TS_CURSOR_H */

  Added: lib/ts/ts_plan.c (+21 -0) 100644
===================================================================
--- /dev/null
+++ lib/ts/ts_plan.c    2015-11-20 19:13:57 +0900 (2bd2a4b)
@@ -0,0 +1,21 @@
+/* -*- c-basic-offset: 2 -*- */
+/*
+  Copyright(C) 2015 Brazil
+
+  This library is free software; you can redistribute it and/or
+  modify it under the terms of the GNU Lesser General Public
+  License version 2.1 as published by the Free Software Foundation.
+
+  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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+
+#include "ts_plan.h"
+
+// TODO

  Added: lib/ts/ts_plan.h (+85 -0) 100644
===================================================================
--- /dev/null
+++ lib/ts/ts_plan.h    2015-11-20 19:13:57 +0900 (838f1f7)
@@ -0,0 +1,85 @@
+/* -*- c-basic-offset: 2 -*- */
+/*
+  Copyright(C) 2015 Brazil
+
+  This library is free software; you can redistribute it and/or
+  modify it under the terms of the GNU Lesser General Public
+  License version 2.1 as published by the Free Software Foundation.
+
+  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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+
+#ifndef GRN_TS_PLAN_H
+#define GRN_TS_PLAN_H
+
+#include "../grn.h"
+
+#include "ts_cursor.h"
+#include "ts_expr.h"
+#include "ts_sorter.h"
+#include "ts_types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct {
+} grn_ts_plan_node;
+
+typedef struct {
+  grn_obj *table;
+  grn_ts_plan_node *root;
+} grn_ts_plan;
+
+/* grn_ts_plan_open() creates a plan. */
+grn_rc grn_ts_plan_open(grn_ctx *ctx, grn_obj *table, grn_ts_plan_node *root,
+                        grn_ts_plan **plan);
+
+/* grn_ts_plan_close() destroys a plan. */
+grn_rc grn_ts_plan_close(grn_ctx *ctx, grn_ts_plan *plan);
+
+/* TODO: A struct for output should be provided? */
+/* grn_ts_plan_exec() executes a plan. */
+grn_rc grn_ts_plan_exec(grn_ctx *ctx, grn_ts_plan *plan,
+                        grn_ts_record **out, size_t *n_out,
+                        grn_ts_buf *out_buf);
+
+typedef struct {
+  grn_obj *table;
+} grn_ts_planner;
+
+/* grn_ts_planner_open() creates a planner. */
+grn_rc grn_ts_planner_open(grn_ctx *ctx, grn_obj *table,
+                           grn_ts_planner **planner);
+
+/* grn_ts_planner_close() destroys a planner. */
+grn_rc grn_ts_planner_close(grn_ctx *ctx, grn_ts_planner *planner);
+
+/* grn_ts_planner_push_cursor() pushes a cursor. */
+grn_rc grn_ts_planner_push_cursor(grn_ctx *ctx, grn_ts_planner *planner,
+                                  grn_ts_cursor *cursor);
+
+/* grn_ts_planner_push_filter() pushes a filter. */
+grn_rc grn_ts_planner_push_filter(grn_ctx *ctx, grn_ts_planner *planner,
+                                  grn_ts_expr *expr);
+
+/* grn_ts_planner_push_scorer() pushes a scorer. */
+grn_rc grn_ts_planner_push_scorer(grn_ctx *ctx, grn_ts_planner *planner,
+                                  grn_ts_expr *expr);
+
+/* grn_ts_planner_push_sorter() pushes a sorter. */
+grn_rc grn_ts_planner_push_sorter(grn_ctx *ctx, grn_ts_planner *planner,
+                                  grn_ts_sorter *sorter);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* GRN_TS_PLAN_H */

  Added: lib/ts/ts_sorter.c (+21 -0) 100644
===================================================================
--- /dev/null
+++ lib/ts/ts_sorter.c    2015-11-20 19:13:57 +0900 (d0117ca)
@@ -0,0 +1,21 @@
+/* -*- c-basic-offset: 2 -*- */
+/*
+  Copyright(C) 2015 Brazil
+
+  This library is free software; you can redistribute it and/or
+  modify it under the terms of the GNU Lesser General Public
+  License version 2.1 as published by the Free Software Foundation.
+
+  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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+
+#include "ts_sorter.h"
+
+// TODO

  Added: lib/ts/ts_sorter.h (+61 -0) 100644
===================================================================
--- /dev/null
+++ lib/ts/ts_sorter.h    2015-11-20 19:13:57 +0900 (001d823)
@@ -0,0 +1,61 @@
+/* -*- c-basic-offset: 2 -*- */
+/*
+  Copyright(C) 2015 Brazil
+
+  This library is free software; you can redistribute it and/or
+  modify it under the terms of the GNU Lesser General Public
+  License version 2.1 as published by the Free Software Foundation.
+
+  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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+
+#ifndef GRN_TS_SORTER_H
+#define GRN_TS_SORTER_H
+
+#include "../grn.h"
+
+#include "ts_types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct {
+} grn_ts_sorter_node;
+
+typedef struct {
+  grn_obj *table;
+  grn_ts_sorter_node *head;
+} grn_ts_sorter;
+
+/* grn_ts_sorter_open() creates a sorter. */
+grn_rc grn_ts_sorter_open(grn_ctx *ctx, grn_obj *table,
+                          grn_ts_sorter_node *head, grn_ts_sorter **sorter);
+
+/* grn_ts_sorter_close() destroys a sorter. */
+grn_rc grn_ts_sorter_close(grn_ctx *ctx, grn_ts_sorter *sorter);
+
+typedef struct {
+  grn_obj *table;
+} grn_ts_sorter_builder;
+
+/* grn_ts_sorter_builder_open() creates a sorter builder. */
+grn_rc grn_ts_sorter_builder_open(grn_ctx *ctx, grn_obj *table,
+                                  grn_ts_sorter_builder **builder);
+
+/* grn_ts_sorter_builder_close() destroys a sorter builder. */
+grn_rc grn_ts_sorter_builder_close(grn_ctx *ctx,
+                                   grn_ts_sorter_builder *builder);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* GRN_TS_SORTER_H */
-------------- next part --------------
HTML����������������������������...
Télécharger 



More information about the Groonga-commit mailing list
Back to archive index