Kouhei Sutou
kou****@clear*****
Wed Apr 22 11:06:03 JST 2015
> Add system.object-count command (mainly for internal use) 「動詞-名詞(目的語?)」の方がいいんじゃないかなぁと思いま した。absorb-dataはそうですよね。 もう1階層増やすほうがいいんですかねぇ。system.object.countと か。 In <b38cf1afaa2c42e07c36f0238b5d18e034f62561 �� jenkins.clear-code.com> "[Groonga-commit] droonga/droonga-engine �� b38cf1a [master] Add system.object-count command (mainly for internal use)" on Tue, 21 Apr 2015 21:31:44 +0900, YUKI Hiroshi <null+groonga �� clear-code.com> wrote: > YUKI Hiroshi 2015-04-21 21:31:44 +0900 (Tue, 21 Apr 2015) > > New Revision: b38cf1afaa2c42e07c36f0238b5d18e034f62561 > https://github.com/droonga/droonga-engine/commit/b38cf1afaa2c42e07c36f0238b5d18e034f62561 > > Message: > Add system.object-count command (mainly for internal use) > > Added files: > lib/droonga/plugins/system/object_count.rb > test/command/suite/system/object-count/empty.expected > test/command/suite/system/object-count/empty.test > test/command/suite/system/object-count/record.catalog.json > test/command/suite/system/object-count/record.expected > test/command/suite/system/object-count/record.test > test/command/suite/system/object-count/schema.catalog.json > test/command/suite/system/object-count/schema.expected > test/command/suite/system/object-count/schema.test > Modified files: > lib/droonga/plugins/system.rb > > Modified: lib/droonga/plugins/system.rb (+1 -0) > =================================================================== > --- lib/droonga/plugins/system.rb 2015-04-21 21:26:26 +0900 (55434d1) > +++ lib/droonga/plugins/system.rb 2015-04-21 21:31:44 +0900 (2f4dea1) > @@ -25,4 +25,5 @@ module Droonga > end > > require "droonga/plugins/system/status" > +require "droonga/plugins/system/object_count" > require "droonga/plugins/system/absorb_data" > > Added: lib/droonga/plugins/system/object_count.rb (+53 -0) 100644 > =================================================================== > --- /dev/null > +++ lib/droonga/plugins/system/object_count.rb 2015-04-21 21:31:44 +0900 (40dc304) > @@ -0,0 +1,53 @@ > +# Copyright (C) 2015 Droonga Project > +# > +# 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 > + > +require "droonga/plugin" > +require "droonga/database_scanner" > + > +module Droonga > + module Plugins > + module System > + class ObjectCountHandler < Droonga::Handler > + include DatabaseScanner > + > + def handle(message) > + counts = {} > + output = message.request["output"] > + if output and output.is_a?(Array) > + if output.include?("tables") > + counts["tables"] = n_tables > + end > + if output.include?("columns") > + counts["columns"] = n_columns > + end > + if output.include?("records") > + counts["records"] = n_records > + end > + if output.include?("total") > + counts["total"] = total_n_objects > + end > + end > + counts > + end > + end > + > + define_single_step do |step| > + step.name = "system.object-count" > + step.handler = ObjectCountHandler > + step.collector = Collectors::Sum > + end > + end > + end > +end > > Added: test/command/suite/system/object-count/empty.expected (+11 -0) 100644 > =================================================================== > --- /dev/null > +++ test/command/suite/system/object-count/empty.expected 2015-04-21 21:31:44 +0900 (4229827) > @@ -0,0 +1,11 @@ > +{ > + "inReplyTo": "request-id", > + "statusCode": 200, > + "type": "system.object-count.result", > + "body": { > + "tables": 0, > + "columns": 0, > + "records": 0, > + "total": 0 > + } > +} > > Added: test/command/suite/system/object-count/empty.test (+12 -0) 100644 > =================================================================== > --- /dev/null > +++ test/command/suite/system/object-count/empty.test 2015-04-21 21:31:44 +0900 (1d7b179) > @@ -0,0 +1,12 @@ > +{ > + "type": "system.object-count", > + "dataset": "Default", > + "body": { > + "output": [ > + "tables", > + "columns", > + "records", > + "total" > + ] > + } > +} > > Added: test/command/suite/system/object-count/record.catalog.json (+12 -0) 100644 > =================================================================== > --- /dev/null > +++ test/command/suite/system/object-count/record.catalog.json 2015-04-21 21:31:44 +0900 (00eec13) > @@ -0,0 +1,12 @@ > +{ > + "datasets": { > + "Default": { > + "schema": { > + "Users": { > + "type": "PatriciaTrie", > + "keyType": "ShortText" > + } > + } > + } > + } > +} > > Added: test/command/suite/system/object-count/record.expected (+11 -0) 100644 > =================================================================== > --- /dev/null > +++ test/command/suite/system/object-count/record.expected 2015-04-21 21:31:44 +0900 (565abec) > @@ -0,0 +1,11 @@ > +{ > + "inReplyTo": "request-id", > + "statusCode": 200, > + "type": "system.object-count.result", > + "body": { > + "tables": 2, > + "columns": 0, > + "records": 1, > + "total": 3 > + } > +} > > Added: test/command/suite/system/object-count/record.test (+23 -0) 100644 > =================================================================== > --- /dev/null > +++ test/command/suite/system/object-count/record.test 2015-04-21 21:31:44 +0900 (6fd0a9e) > @@ -0,0 +1,23 @@ > +#@require-catalog-version 2 > +#@disable-logging > +{ > + "type": "add", > + "dataset": "Source", > + "body": { > + "table": "Users", > + "key": "Adam" > + } > +} > +#@enable-logging > +{ > + "type": "system.object-count", > + "dataset": "Default", > + "body": { > + "output": [ > + "tables", > + "columns", > + "records", > + "total" > + ] > + } > +} > > Added: test/command/suite/system/object-count/schema.catalog.json (+12 -0) 100644 > =================================================================== > --- /dev/null > +++ test/command/suite/system/object-count/schema.catalog.json 2015-04-21 21:31:44 +0900 (00eec13) > @@ -0,0 +1,12 @@ > +{ > + "datasets": { > + "Default": { > + "schema": { > + "Users": { > + "type": "PatriciaTrie", > + "keyType": "ShortText" > + } > + } > + } > + } > +} > > Added: test/command/suite/system/object-count/schema.expected (+11 -0) 100644 > =================================================================== > --- /dev/null > +++ test/command/suite/system/object-count/schema.expected 2015-04-21 21:31:44 +0900 (e5321de) > @@ -0,0 +1,11 @@ > +{ > + "inReplyTo": "request-id", > + "statusCode": 200, > + "type": "system.object-count.result", > + "body": { > + "tables": 2, > + "columns": 0, > + "records": 0, > + "total": 2 > + } > +} > > Added: test/command/suite/system/object-count/schema.test (+13 -0) 100644 > =================================================================== > --- /dev/null > +++ test/command/suite/system/object-count/schema.test 2015-04-21 21:31:44 +0900 (18d9247) > @@ -0,0 +1,13 @@ > +#@require-catalog-version 2 > +{ > + "type": "system.object-count", > + "dataset": "Default", > + "body": { > + "output": [ > + "tables", > + "columns", > + "records", > + "total" > + ] > + } > +}