Re: [pgadmin-hackers] pgAdmin 4 commit: Cleanup handling ofdefault/null values when data edi
От | Dave Page |
---|---|
Тема | Re: [pgadmin-hackers] pgAdmin 4 commit: Cleanup handling ofdefault/null values when data edi |
Дата | |
Msg-id | CA+OCxoyj0znGTXCcFYd6-qt8QkUamg4pNcwN10Zu=Ad3pguRsg@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [pgadmin-hackers] pgAdmin 4 commit: Cleanup handling ofdefault/null values when data edi (Surinder Kumar <surinder.kumar@enterprisedb.com>) |
Список | pgadmin-hackers |
Thanks, applied. On Mon, May 29, 2017 at 7:08 AM, Surinder Kumar <surinder.kumar@enterprisedb.com> wrote: > 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 > > -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company
В списке pgadmin-hackers по дате отправления: