Re: [pgAdmin4][Patch]: RM1592 - Download as CSV should be supported for DDL - Mailing list pgadmin-hackers

From Dave Page
Subject Re: [pgAdmin4][Patch]: RM1592 - Download as CSV should be supported for DDL
Date
Msg-id CA+OCxowNMsYJprs_4P31v7G8+WSiJdbqq622vyg+4seRidiU_w@mail.gmail.com
Whole thread Raw
In response to Re: [pgAdmin4][Patch]: RM1592 - Download as CSV should be supported for DDL  (Surinder Kumar <surinder.kumar@enterprisedb.com>)
List pgadmin-hackers
Thanks, applied.

On Tue, Sep 20, 2016 at 11:39 AM, Surinder Kumar
<surinder.kumar@enterprisedb.com> wrote:
> Please find updated patch with suggested changes and inline comments.
>
> Also, Incase if user tries to download csv on queries other than select, we
> are catching that exception and write into 'csv' with name 'error.csv'.
>
> On Tue, Sep 20, 2016 at 2:33 PM, Dave Page <dpage@pgadmin.org> wrote:
>>
>> On Tue, Sep 20, 2016 at 6:43 AM, Surinder Kumar
>> <surinder.kumar@enterprisedb.com> wrote:
>> >
>> > On Mon, Sep 19, 2016 at 8:59 PM, Surinder Kumar
>> > <surinder.kumar@enterprisedb.com> wrote:
>> >>
>> >> On Mon, Sep 19, 2016 at 8:48 PM, Dave Page <dpage@pgadmin.org> wrote:
>> >>>
>> >>> Hi
>> >>>
>> >>> On Mon, Sep 19, 2016 at 3:03 PM, Surinder Kumar
>> >>> <surinder.kumar@enterprisedb.com> wrote:
>> >>> > Hi
>> >>> >
>> >>> > Please find attached patch with fix.
>> >>> >>
>> >>> >> Download as CSV
>> >>> >>  button should be enabled only for SELECT queries.
>> >>>
>> >>> I'm not sure there's a way to do this without parsing the query.
>> >>> Simply matching on ^select certainly won't work reliably - for
>> >>> example, there could be multiple statements in the script, or it could
>> >>> be PERFORM ...  or UPDATE ... RETURNING ...
>> >>
>> >> I wasn't aware of such cases.
>> >>>
>> >>>
>> >>> I think we need to leave the button enabled, but give the user a
>> >>> message if no data is returned, e.g.
>> >>
>> >> ok. sure.
>> >
>> > I discussed the issue with Harshal and this is how download csv works:
>> > We just hit the url to download csv, and let the browser handle the
>> > response
>> > from the server side. we don't have access to response data to check if
>> > no
>> > data is returned.
>>
>> Hmm, yeah that's true.
>>
>> > The other approach is to hit the same query twice. First time an ajax
>> > query
>> > to check if data is returned or not. if returned, fire another query to
>> > download csv otherwise set message in message panel.
>> > But the limitation with this approach is that we are just increasing
>> > load
>> > over server by hitting same query twice, incase returned data rows in
>> > billions.
>> > Thoughts ?
>>
>> Yeah, we can't do that.
>>
>> The only thing I can think of right now is to simply write the error
>> message to the CSV file, e.g.
>>
>> "The query executed did not return any data."
>>
>> (with the quotes, so it's valid CSV). That way at least the user will
>> always get a file downloaded, and will see the error when they open
>> it.
>
> Thats' done.
>>
>>
>> --
>> Dave Page
>> Blog: http://pgsnake.blogspot.com
>> Twitter: @pgsnake
>>
>> EnterpriseDB UK: http://www.enterprisedb.com
>> The Enterprise PostgreSQL Company
>
>



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


pgadmin-hackers by date:

Previous
From: Dave Page
Date:
Subject: pgAdmin 4 commit: Save error details when executing to CSV, if no data
Next
From: Magnus Hagander
Date:
Subject: Re: pgAdmin 4 commit: Add classid filter to queries on pg_depend. Fixes #17