Re: [pgadmin4] Explain plans

From: Murtuza Zabuawala <murtuza(dot)zabuawala(at)enterprisedb(dot)com>
To: Joao De Almeida Pereira <jdealmeidapereira(at)pivotal(dot)io>
Cc: pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: Re: [pgadmin4] Explain plans
Date: 2018-01-20 06:04:11
Message-ID: CAKKotZTJ=2PyC_MJp2YbMM3SRwidpTgwy092pj9_e1JYUncZGA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

On Fri, Jan 19, 2018 at 7:39 PM, Joao De Almeida Pereira <
jdealmeidapereira(at)pivotal(dot)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
>

In response to

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Ashesh Vashi 2018-01-20 09:40:31 Re: [pgadmin4] Explain plans
Previous Message Joao De Almeida Pereira 2018-01-19 14:09:22 [pgadmin4] Explain plans