Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bkTav-0004MT-3E for pgadmin-hackers@arkaria.postgresql.org; Thu, 15 Sep 2016 10:08:37 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1bkTat-0001h9-78 for pgadmin-hackers@arkaria.postgresql.org; Thu, 15 Sep 2016 10:08:35 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1bkTas-0001h2-9O for pgadmin-hackers@postgresql.org; Thu, 15 Sep 2016 10:08:34 +0000 Received: from mail-qk0-x232.google.com ([2607:f8b0:400d:c09::232]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1bkTap-00074b-0G for pgadmin-hackers@postgresql.org; Thu, 15 Sep 2016 10:08:32 +0000 Received: by mail-qk0-x232.google.com with SMTP id z190so41814622qkc.3 for ; Thu, 15 Sep 2016 03:08:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=sbGO0hX8iZKuCIxLexMnwVPVqYltQjObFSAM9/VUyHs=; b=VZf7pkboG72jxhB7ENZtUw7ClScDHKdRA5LNo4+DPg88diV9dFuszbufvNsNoGgDIq Sy0uwioPMnBejAVK2UuxVC1AvkY0/YmjBt+s2vBYUvUmQfBHHg04A1xubTNt0pO5sfN/ /FUCrRdvo7gCrtgswQYFiYInRxgXP4L9Pvte1Xxwpme8hSg19X1B0YJg1hU3aiVo9Syj xlVR+A+Qc4o8Xw3FHw+MTR7uB92P3yC9fkWDupfzq9P1k++u0mQkrdBlWIevzAuPaGfm GR07lDSfpTMVkGDvx1ql3IjUeKrSI+WGuESrKGyJcGleDeZyaobvwI2rig5agk2O0hvD Ld7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=sbGO0hX8iZKuCIxLexMnwVPVqYltQjObFSAM9/VUyHs=; b=m8xAIw1B3JlNLLyafcdsEvi6ovYk3ebgpk6OfKTrNHg2W+yvyhM4Ig3X2EXoVCbR6S PLlx6SZGfk8skT3XMH/95ZW89iUnE7AKAJa/0ojCS2JhdlqbckzA4EZowV/r65d3yN+V RngABtNKDamJ1Noh3q6rzaz34/CRfzzcRg+wqaiqRRNlD8GzraIsKxMDnd6ShDLutWre Jxm/2OR5S2E8zHlG8VqlaNHgTaEezZ6UKrKxDFnDUk5eG7sefMSTJuP288JoCpcWU0vQ UtKNie7zUF9zf5cNmunWIn53WF3s7i4JWAunT0amvHeWthvswWRl+2jzyyo8jQovl/UA RF5w== X-Gm-Message-State: AE9vXwMW5a+4FzJW9Ri2lP64HxIJXJU4S6qhjmyWqpfTrmWMAQjt3pNoM7qYlos1nKlxqgIkRuBPLLZ16PKcmYPS X-Received: by 10.55.42.18 with SMTP id q18mr8934872qkh.272.1473934109856; Thu, 15 Sep 2016 03:08:29 -0700 (PDT) MIME-Version: 1.0 Received: by 10.55.129.194 with HTTP; Thu, 15 Sep 2016 03:08:09 -0700 (PDT) From: Murtuza Zabuawala Date: Thu, 15 Sep 2016 15:38:09 +0530 Message-ID: Subject: PATCH: To fix the performance of delete operation (pgAdmin4) To: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a11473d820b7ed8053c8907fc X-Pg-Spam-Score: -2.6 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --001a11473d820b7ed8053c8907fc Content-Type: multipart/alternative; boundary=001a11473d820b7ed4053c8907fa --001a11473d820b7ed4053c8907fa Content-Type: text/plain; charset=UTF-8 Hi, PFA patch to fix the issue of slow performance while deleting rows from grid. RM#1696 *Issue:* As per logic implemented for Backgrid, we were deleting individual rows, means If user selects 100 rows to delete then we were rendering sql template 100 times to generate sql for each individual rows and then execute all 100 delete statements one by one due to which we were getting poor performance. Please review. -- Regards, Murtuza Zabuawala EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company --001a11473d820b7ed4053c8907fa Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

PFA patch to fix the issue of slow = performance while deleting rows from grid.
RM#1696

=
Issue:
As per logic implemented for Backgrid, w= e were deleting individual rows, means If user selects 100 rows to delete t= hen we were rendering sql template 100 times to generate sql for each indiv= idual rows and then execute all 100 delete statements one by one due to whi= ch we were getting poor performance.

Please review= .

--
Regards,
Murtuza Zabuawala
EnterpriseDB:=C2=A0http://www.enterprisedb.com
The Ente= rprise PostgreSQL Company

--001a11473d820b7ed4053c8907fa-- --001a11473d820b7ed8053c8907fc Content-Type: application/octet-stream; name="RM_1696.patch" Content-Disposition: attachment; filename="RM_1696.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_it468tmr0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9jb21t YW5kLnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL2NvbW1hbmQu cHkKaW5kZXggNGI4ZGI2ZS4uYjViOGJkZSAxMDA2NDQKLS0tIGEvd2ViL3Bn YWRtaW4vdG9vbHMvc3FsZWRpdG9yL2NvbW1hbmQucHkKKysrIGIvd2ViL3Bn YWRtaW4vdG9vbHMvc3FsZWRpdG9yL2NvbW1hbmQucHkKQEAgLTQ2NSwxNCAr NDY1LDI3IEBAIGNsYXNzIFRhYmxlQ29tbWFuZChHcmlkQ29tbWFuZCk6CiAK ICAgICAgICAgICAgICAgICAjIEZvciBkZWxldGVkIHJvd3MKICAgICAgICAg ICAgICAgICBlbGlmIG9mX3R5cGUgPT0gJ2RlbGV0ZWQnOgorICAgICAgICAg ICAgICAgICAgICBpc19maXJzdCA9IFRydWUKKyAgICAgICAgICAgICAgICAg ICAgcm93c190b19kZWxldGUgPSBbXQorICAgICAgICAgICAgICAgICAgICBr ZXlzID0gTm9uZQorICAgICAgICAgICAgICAgICAgICBub19vZl9rZXlzID0g Tm9uZQogICAgICAgICAgICAgICAgICAgICBmb3IgZWFjaF9yb3cgaW4gY2hh bmdlZF9kYXRhW29mX3R5cGVdOgotICAgICAgICAgICAgICAgICAgICAgICAg ZGF0YSA9IGNoYW5nZWRfZGF0YVtvZl90eXBlXVtlYWNoX3Jvd10KLSAgICAg ICAgICAgICAgICAgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIu am9pbihbc2VsZi5zcWxfcGF0aCwgJ2RlbGV0ZS5zcWwnXSksCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1k YXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG9iamVjdF9uYW1lPXNlbGYub2JqZWN0X25hbWUsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnNwX25h bWU9c2VsZi5uc3BfbmFtZSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGxp c3Rfb2Zfc3FsLmFwcGVuZChzcWwpCi0gICAgICAgICAgICAgICAgICAgICAg ICBsaXN0X29mX3Jvd2lkLmFwcGVuZChkYXRhKQorICAgICAgICAgICAgICAg ICAgICAgICAgcm93c190b19kZWxldGUuYXBwZW5kKGNoYW5nZWRfZGF0YVtv Zl90eXBlXVtlYWNoX3Jvd10pCisgICAgICAgICAgICAgICAgICAgICAgICAj IEZldGNoIHRoZSBrZXlzIGZvciBTUUwgZ2VuZXJhdGlvbgorICAgICAgICAg ICAgICAgICAgICAgICAgaWYgaXNfZmlyc3Q6CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIyBXZSBuZWVkIHRvIGNvdmVydCBkaWN0X2tleXMgdG8g bm9ybWFsIGxpc3QgaW4gUHl0aG9uMworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICMgSW4gUHl0aG9uMiwgaXQncyBhbHJlYWR5IGEgbGlzdAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGtleXMgPSBsaXN0KGNoYW5nZWRf ZGF0YVtvZl90eXBlXVtlYWNoX3Jvd10ua2V5cygpKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG5vX29mX2tleXMgPSBsZW4oa2V5cykKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpc19maXJzdCA9IEZhbHNlCisKKyAg ICAgICAgICAgICAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5q b2luKFtzZWxmLnNxbF9wYXRoLCAnZGVsZXRlLnNxbCddKSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9cm93c190 b19kZWxldGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwcmltYXJ5X2tleV9sYWJsZXM9a2V5cywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vX29mX2tleXM9bm9f b2Zfa2V5cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG9iamVjdF9uYW1lPXNlbGYub2JqZWN0X25hbWUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuc3BfbmFtZT1z ZWxmLm5zcF9uYW1lKQorICAgICAgICAgICAgICAgICAgICBsaXN0X29mX3Nx bC5hcHBlbmQoc3FsKQogCiAgICAgICAgICAgICBmb3IgaSwgc3FsIGluIGVu dW1lcmF0ZShsaXN0X29mX3NxbCk6CiAgICAgICAgICAgICAgICAgaWYgc3Fs OgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3Rl bXBsYXRlcy9zcWxlZGl0b3IvanMvc3FsZWRpdG9yLmpzIGIvd2ViL3BnYWRt aW4vdG9vbHMvc3FsZWRpdG9yL3RlbXBsYXRlcy9zcWxlZGl0b3IvanMvc3Fs ZWRpdG9yLmpzCmluZGV4IGQ4MWU3OWQuLmNkZTI4YTcgMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZW1wbGF0ZXMvc3FsZWRp dG9yL2pzL3NxbGVkaXRvci5qcworKysgYi93ZWIvcGdhZG1pbi90b29scy9z cWxlZGl0b3IvdGVtcGxhdGVzL3NxbGVkaXRvci9qcy9zcWxlZGl0b3IuanMK QEAgLTIwNjksMTcgKzIwNjksMjUgQEAgZGVmaW5lKAogICAgICAgICAgICAg ICBkYXRhOiBKU09OLnN0cmluZ2lmeShzZWxmLmRhdGFfc3RvcmUpLAogICAg ICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihyZXMpIHsKICAgICAgICAg ICAgICAgICB2YXIgZ3JpZCA9IHNlbGYuc2xpY2tncmlkLAotICAgICAgICAg ICAgICAgICAgZGF0YSA9IGdyaWQuZ2V0RGF0YSgpOzsKKyAgICAgICAgICAg ICAgICAgIGRhdGEgPSBncmlkLmdldERhdGEoKTsKICAgICAgICAgICAgICAg ICBpZiAocmVzLmRhdGEuc3RhdHVzKSB7CiAgICAgICAgICAgICAgICAgICAg IC8vIFJlbW92ZSBkZWxldGVkIHJvd3MgZnJvbSBjbGllbnQgYXMgd2VsbAog ICAgICAgICAgICAgICAgICAgICBpZihpc19kZWxldGVkKSB7CiAgICAgICAg ICAgICAgICAgICAgICAgdmFyIHJvd3MgPSBncmlkLmdldFNlbGVjdGVkUm93 cygpOwotICAgICAgICAgICAgICAgICAgICAgIC8vIFJldmVyc2UgdGhlIGRl bGV0aW9uIGZyb20gYXJyYXkKLSAgICAgICAgICAgICAgICAgICAgICAvLyBz byB0aGF0IHdoZW4gd2UgcmVtb3ZlIGl0IGRvZXMgbm90IGFmZmVjdCBpbmRl eAotICAgICAgICAgICAgICAgICAgICAgIHJvd3MgPSByb3dzLnNvcnQoKS5y ZXZlcnNlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgcm93cy5mb3JFYWNo KGZ1bmN0aW9uKGlkeCkgewotICAgICAgICAgICAgICAgICAgICAgICAgZGF0 YS5zcGxpY2UoaWR4LCAxKTsKLSAgICAgICAgICAgICAgICAgICAgICB9KTsK KyAgICAgICAgICAgICAgICAgICAgICAvKiBJbiBKYXZhU2NyaXB0IHNvcnRp bmcgYnkgZGVmYXVsdCBpcyBsZXhpY2FsLAorICAgICAgICAgICAgICAgICAg ICAgICAqIFRvIG1ha2Ugc29ydGluZyBudW1lcmljYWwgd2UgbmVlZCB0byBw YXNzIGZ1bmN0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICogQWZ0ZXIg dGhhdCB3ZSB3aWxsIFJldmVyc2UgdGhlIG9yZGVyIG9mIHNvcnRlZCBhcnJh eQorICAgICAgICAgICAgICAgICAgICAgICAqIHNvIHRoYXQgd2hlbiB3ZSBy ZW1vdmUgaXQgZG9lcyBub3QgYWZmZWN0IGFycmF5IGluZGV4CisgICAgICAg ICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgaWYo ZGF0YS5sZW5ndGggPT0gcm93cy5sZW5ndGgpIHsKKyAgICAgICAgICAgICAg ICAgICAgICAgIC8vIFRoaXMgbWVhbnMgYWxsIHJvd3MgYXJlIHNlbGVjdGVk LCBjbGVhciBhbGwgZGF0YQorICAgICAgICAgICAgICAgICAgICAgICAgZGF0 YSA9IFtdOworICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAg ICAgICAgICAgICAgICAgICAgICByb3dzID0gcm93cy5zb3J0KGZ1bmN0aW9u KGEsYil7cmV0dXJuIGEgLSBifSkucmV2ZXJzZSgpOworICAgICAgICAgICAg ICAgICAgICAgICAgcm93cy5mb3JFYWNoKGZ1bmN0aW9uKGlkeCkgeworICAg ICAgICAgICAgICAgICAgICAgICAgICBkYXRhLnNwbGljZShpZHgsIDEpOwor ICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg ICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgIGdyaWQuc2V0RGF0YShk YXRhLCB0cnVlKTsKICAgICAgICAgICAgICAgICAgICAgICBncmlkLnNldFNl bGVjdGVkUm93cyhbXSk7CiAgICAgICAgICAgICAgICAgICAgIH0KZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZW1wbGF0ZXMv c3FsZWRpdG9yL3NxbC85LjFfcGx1cy9kZWxldGUuc3FsIGIvd2ViL3BnYWRt aW4vdG9vbHMvc3FsZWRpdG9yL3RlbXBsYXRlcy9zcWxlZGl0b3Ivc3FsLzku MV9wbHVzL2RlbGV0ZS5zcWwKaW5kZXggZTVkYmM5Yi4uM2E1NTJiNyAxMDA2 NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3RlbXBsYXRl cy9zcWxlZGl0b3Ivc3FsLzkuMV9wbHVzL2RlbGV0ZS5zcWwKKysrIGIvd2Vi L3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3RlbXBsYXRlcy9zcWxlZGl0b3Iv c3FsLzkuMV9wbHVzL2RlbGV0ZS5zcWwKQEAgLTEsNCArMSwyNiBAQAoteyMg RGVsZXRlIHRoZSByb3cgd2l0aCBwcmltYXJ5IGtleXMgI30KIERFTEVURSBG Uk9NIHt7IGNvbm58cXRJZGVudChuc3BfbmFtZSwgb2JqZWN0X25hbWUpIH19 IFdIRVJFCi17JSBmb3IgcGtfa2V5IGluIGRhdGEgJX0KLXslIGlmIG5vdCBs b29wLmZpcnN0ICV9IEFORCB7JSBlbmRpZiAlfXt7IGNvbm58cXRJZGVudChw a19rZXkpIH19ID0ge3sgZGF0YVtwa19rZXldfHF0TGl0ZXJhbCB9fXslIGVu ZGZvciAlfTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit7IyMjIElm IHRoZXJlIGlzIG9ubHkgb25lIHByaW1hcnkga2V5ICMjI30KK3slIGlmIG5v X29mX2tleXMgPT0gMSAlfQore3sgY29ubnxxdElkZW50KHByaW1hcnlfa2V5 X2xhYmxlc1swXSkgfX0gSU4KK3sjIyMgSWYgdGhlcmUgYXJlIG11bHRpcGxl IHByaW1hcnkga2V5cyAjIyN9Cit7JSBlbGlmIG5vX29mX2tleXMgPiAxICV9 CisoeyUgZm9yIGVhY2hfbGFiZWwgaW4gcHJpbWFyeV9rZXlfbGFibGVzICV9 Cit7JSBpZiBub3QgbG9vcC5maXJzdCAlfSwgeyUgZW5kaWYgJX17eyBjb25u fHF0SWRlbnQoZWFjaF9sYWJlbCkgfX0KK3slIGVuZGZvciAlfSkgSU4KK3sl IGVuZGlmICV9CisoCit7IyMjIFJvd3MgdG8gZGVsZXRlICMjI30KK3slIGZv ciBvYmogaW4gZGF0YSAlfQoreyUgaWYgbm90IGxvb3AuZmlyc3QgJX0sIHsl IGVuZGlmICV9Cit7JSBpZiBub19vZl9rZXlzID09IDEgJX0KK3t7IG9ialtw cmltYXJ5X2tleV9sYWJsZXNbMF1dfHF0TGl0ZXJhbCB9fQoreyUgZWxpZiBu b19vZl9rZXlzID4gMSAlfQoreyMjIyBIZXJlIHdlIG5lZWQgdG8gbWFrZSB0 dXBsZSBmb3IgZWFjaCByb3cgIyMjfQorKAoreyUgZm9yIGVhY2hfbGFiZWwg aW4gcHJpbWFyeV9rZXlfbGFibGVzICV9Cit7JSBpZiBub3QgbG9vcC5maXJz dCAlfSwgeyUgZW5kaWYgJX17eyBvYmpbZWFjaF9sYWJlbF18cXRMaXRlcmFs IH19Cit7JSBlbmRmb3IgJX0KKykKK3slIGVuZGlmICV9Cit7JSBlbmRmb3Ig JX0KKyk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo= --001a11473d820b7ed8053c8907fc Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers --001a11473d820b7ed8053c8907fc--