Skip to content

PlanStore

Kishore Narendran edited this page Feb 24, 2017 · 8 revisions

Author(s): Seungjin Lee, Kishore Narendran

Reviewer(s): Chen Li ** REVIEWED **

Synopsys

Implement a plan store for pre-defined plans. It manages plans using a table called plan. Plan records, and the JSON strings that describe these plans are stored in the table. The purpose is to use stored plans to make it easier for users to formulate queries using the GUI, and will be eventually used also to store query plans from the TextQL interface.

Status

As of 02/24/2017: UPDATED As of 12/16/2016: FINISHED

Modules

edu.uci.ics.textdb.planstore

Related Issues

https://github.com/TextDB/textdb/issues/256

Description

A table called plan is used in this module. The table has three attributes; name, description, and planJson, all of which are self-explanatory except planJson. The planJson attribute is the logical plan stored as a JSON string. This is how the textdb-web module receives query plans. The description for how this JSON should look can be found in this wiki page. This module deals with managing plan records and storing the Query Plans as JSON strings.

Set of public methods in this module is as follows.

  • void getInstance() : get the singleton instance of a plan store.
  • void createPlanStore() : create and initialize a plan store.
  • void destroyPlanStore() : delete both the table and the directory used in this module.
  • IDField addPlan(String planName, String description, String logicalPlanJson) : add a plan with the given name. All the arguments must be non-null.
  • ITuple getPlan(String planName) : get a plan record by the given name.
  • IDataReader getPlanIterator() : get a plan iterator to retrieve all the plan records stored.
  • void deletePlan(String planName) : delete a plan by the given name.
  • void updatePlanDescription(String planName, String description) : update the description of a plan by the given name.
  • void updatePlan(String planName, String logicalPlanJson) : update the logical plan JSON string of a plan by the given name.
  • void updatePlan(String planName, String description, String logicalPlanJson) : update both the plan object and the description of a plan by the given name

TODOs

  • Integrate this module with textdb-gui.
  • Create an API for this is the textdb-web layer.
Clone this wiki locally