Re: [pgadmin-hackers] pgAdmin 4 commit: Cleanup handling ofdefault/null values when data edi

Поиск
Список
Период
Сортировка
От Surinder Kumar
Тема Re: [pgadmin-hackers] pgAdmin 4 commit: Cleanup handling ofdefault/null values when data edi
Дата
Msg-id CAM5-9D8+ExBUTaZeVkdH4hW54j1RKwF8x49oJtQC1fMK8nDOHw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: [pgadmin-hackers] pgAdmin 4 commit: Cleanup handling ofdefault/null values when data edi  (Dave Page <dpage@pgadmin.org>)
Ответы Re: [pgadmin-hackers] pgAdmin 4 commit: Cleanup handling ofdefault/null values when data edi  (Dave Page <dpage@pgadmin.org>)
Список pgadmin-hackers
Hi Dave,

The grid was being re-rendered after add new row and copy/paste to add a blank row in the end of grid, but in case of copy/paste batch operation it should run once, so that code is moved out of addNewRow(...) and put into a function grid.addBlankRow() and called separately for copy/paste after batch operation is completed.

Now copy/paste with 10k records took 2 seconds.

Please find attached patch.


On Mon, May 29, 2017 at 5:19 AM, Dave Page <dpage@pgadmin.org> wrote:
On Sun, May 28, 2017 at 1:25 PM, Harshal Dhumal
<harshal.dhumal@enterprisedb.com> wrote:
> Hi,
>
> This commit has some performance issues with row paste functionality.
> For 2K copied rows with 3 columns (2 integer and one null column) it took
> near about 10 seconds to complete paste operation. And entire application
> becomes unresponsive for those 10 seconds.
>
> This is mainly because for each single pasted row entire grid is re-rendered
> ( is what I see in code).
> Ideally grid should be re-rendered only once after all rows are provided to
> grid.
>
> below code snippet from _paste_rows function
>
> _.each(copied_rows, function(row) {
>     var new_row = arr_to_object(row);
>     new_row.is_row_copied = true;
>     row = new_row;
>     self.temp_new_rows.push(count);
>     grid.onAddNewRow.notify(
>       {item: new_row, column: self.columns[0] , grid:grid}
>     )
>     grid.setSelectedRows([]);
>     count++;
> });
>
> The statement
>
> grid.onAddNewRow.notify(
>       {item: new_row, column: self.columns[0] , grid:grid}
>     )
>
> causes grid to re-render (as we listener on onAddNewRow event where we
> re-render the grid)

Copying that number of rows is an extreme case of course, but still...
Is there an alternative way to batch notify?

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

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

Вложения

В списке pgadmin-hackers по дате отправления:

Предыдущее
От: Dave Page
Дата:
Сообщение: Re: [pgadmin-hackers] [pgAdmin4] [PATCH] History Tab rewrite in React
Следующее
От: Murtuza Zabuawala
Дата:
Сообщение: Re: [pgadmin-hackers] feature test timeouts