On Fri, Jan 19, 2018 at 7:39 PM, Joao De Almeida Pereira <
jdealmeidapere...@pivotal.io> wrote:

> Hello Hackers,
> We are trying to find a solution for the explain plans that currently are
> not working in GP, due to the lack of support for JSON. We believe that the
> best options for this it would be to display the text in the tab instead of
> the visual version for our case.
> In order to implement this we came up with some options that we would like
> to understand what the community think about them.
>
>
>    1.
>
>    Move the SQL to generate explain plans to backend
>    For this approach we would create a new endpoint to generate an
>    explain plan and when we click the explain plan buttons instead of doing a
>    new SQL query we would call the new endpoint and wait for the explain plan
>    to be generated
>    - Pros:
>          - All SQL related code is in the backend
>          - Extract more code from SQLEditor into smaller and more
>          testable/maintainable modules
>       - Cons:
>          - Major Revamp of SQLEditor
>          - If explain plan takes to long to generate we will be waiting
>          for it in the foreground instead of polling
>
>
​+1

We can make it configurable to work with both PG (text & json) & GP (text).
With the current implementation the constraint we have is that snapsvg
<http://snapsvg.io/> library which we use to draw the explain plan do not
support any other format except JSON.
​


>
>    1.
>
>    Add parameters while executing SQL
>    If we add parameters in the SQL query request we send to the backend,
>    informing the backend that the SQL query is a Explain Plan to be
>    executed(The response can have a flag saying that this is an explain plan,
>    instead of assuming from the return values that it was an explain plan)
>    - Pros:
>          - All SQL related code is in the backend
>          - Leverage the current polling system
>       - Cons:
>          - Add more logic to an already complex SQLEditor
>       2.
>
>    Disable Explain plan buttons
>    Disable/Enable the Explain plan buttons depending on the type of
>    database, this would also include the tab in the bottom of the SQLEditor
>    - Pros:
>          - Simpler solution
>       - Cons:
>          - Not really a good implementation, because all databases
>          support explain plans
>          - There will still be SQL in both frontend and backend
>          - Looks more like a temporary fix instead of a solution
>
>
> We believe that we should not keep build feature inside the SQLEditor, but
> should try to extract as many parts of it as possible, this is where the
> current option 2 fall short in our point of view. Due to this we believe
> that option 1 looks promising and that is that path that we prefer to go
> into.
> What does the community think about this?
>
> Thanks
> Joao
>

Reply via email to