Re: [pgAdmin4][Pattch] - RM #3673 - "Download as .csv" F8 does NOT work when one of joined files is a TEMPORARY file

From: Dave Page <dpage(at)pgadmin(dot)org>
To: Khushboo Vashi <khushboo(dot)vashi(at)enterprisedb(dot)com>
Cc: pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: Re: [pgAdmin4][Pattch] - RM #3673 - "Download as .csv" F8 does NOT work when one of joined files is a TEMPORARY file
Date: 2019-02-19 13:57:11
Message-ID: CA+OCxoxC_GkDM08TJok0g57VT8fyHr+_XpO0qdR6LPtaY0xkog@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

Hi

I did some testing with this and found a couple of issues:

- The toolbar isn't set correctly when the query is running. I can still
use buttons to modify the query for example (like indent selection), and
the cancel button is not enabled.

- I ran a very large query which generated millions of rows. It took a few
minutes to run before rendering the grid, but I killed it after 20 minutes
or so when generating CSV. Is that because it's getting the entire
resultset to generate the CSV before downloading it, but with normal
output, it completes when it has enough data to display one batch of rows?

Also, the result grid seems to only be rendering itself to use about 50% of
the available vertical height now. Is that something messed up on my
system, or are you seeing it as well?

Thanks.

On Tue, Feb 19, 2019 at 5:39 AM Khushboo Vashi <
khushboo(dot)vashi(at)enterprisedb(dot)com> wrote:

> Hi Dave,
>
> On Mon, Feb 18, 2019 at 4:49 PM Dave Page <dpage(at)pgadmin(dot)org> wrote:
>
>> On Mon, Feb 18, 2019 at 10:51 AM Khushboo Vashi
>> <khushboo(dot)vashi(at)enterprisedb(dot)com> wrote:
>> >
>> >
>> >
>> > On Mon, Feb 18, 2019 at 3:08 PM Dave Page <dpage(at)pgadmin(dot)org> wrote:
>> >>
>> >> On Mon, Feb 18, 2019 at 9:08 AM Khushboo Vashi
>> >> <khushboo(dot)vashi(at)enterprisedb(dot)com> wrote:
>> >> >
>> >> >
>> >> >
>> >> > On Thu, Feb 14, 2019 at 4:12 PM Dave Page <dpage(at)pgadmin(dot)org> wrote:
>> >> >>
>> >> >> Hi
>> >> >>
>> >> >> On Thu, Feb 14, 2019 at 6:56 AM Khushboo Vashi
>> >> >> <khushboo(dot)vashi(at)enterprisedb(dot)com> wrote:
>> >> >> >
>> >> >> > Hi,
>> >> >> >
>> >> >> > Please find the attached patch to fix the RM #3673 - "Download as
>> .csv" F8 does NOT work when one of joined files is a TEMPORARY file
>> >> >> >
>> >> >> > To fix this issue, used the existing query tool connection
>> instead of a new connection to download the CSV file.
>> >> >>
>> >> >> That side of it seems to work well, however, I can still attempt to
>> >> >> execute queries in the tool whilst it's running. We need to display
>> >> >> the same gray screen with the spinner whilst a CSV download is
>> >> >> executing as we do when a normal query is executing. We also need to
>> >> >> ensure the button bar behaves appropriately - e.g. the execute
>> options
>> >> >> should be disabled, the cancel button should be enabled etc.
>> >> >>
>> >> > We use an iframe to download the CSV file. So, after attaching the
>> proper URL to the iframe, the browser handles the download part.
>> >> > So, the main problem is catching the event after the download
>> completes.
>> >> >
>> >> > Any suggestion?
>> >>
>> >> We only used the iframe because we wanted to make it run
>> >> asynchronously didn't we?
>> >
>> > Yes, that's right. By using iframe the query tool page remains as it is
>> and side by side we download the file.
>> > So, now I can think of only one solution, to set a cookie just to
>> verify that the report has been sent to the browser and the connection is
>> now free now.
>>
>> Are there no examples of people doing something similar on the
>> internet? Seems like it might be a common problem.
>>
>>
> I have found 2 ways which are widely used to download the file:
>
> 1. *Iframe*
> - With this option, we can download the file without disturbing the
> current page which we have implemented, but the drawback is that the
> download part will be handled by the browser itself, so we can not catch
> the event where we can disable the query tool buttons and put the loader.
> 2. *Anchor tag with Download attribute with AJAX*
> - With this option, we can achieve what we required now. I have attached
> the patch for the same. One drawback, it is not supported on *Safari 10*
> which is our supported platform. It is supported on *Safari 10.1 and *
> above
>
> Or does it even matter once the download has begun?
>>
>> Thanks,
> Khushboo
>
>> --
>> Dave Page
>> Blog: http://pgsnake.blogspot.com
>> Twitter: @pgsnake
>>
>> EnterpriseDB UK: http://www.enterprisedb.com
>> The Enterprise PostgreSQL Company
>>
>
> <https://postgresvision.com/>
> <https://postgresvision.com/>
>

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

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

In response to

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Andrey Klychkov 2019-02-19 20:43:50 PGAdmin 4 don't refresh server info after restarting
Previous Message Dave Page 2019-02-19 13:20:06 Re: [Patch]: Minor change in dependency_inventory file to generate library file