Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bX4lZ-0005Ku-Ik for pgadmin-hackers@arkaria.postgresql.org; Tue, 09 Aug 2016 11:00:13 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1bX4lY-0000ue-Sk for pgadmin-hackers@arkaria.postgresql.org; Tue, 09 Aug 2016 11:00:12 +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 1bX4lW-0000t7-US for pgadmin-hackers@postgresql.org; Tue, 09 Aug 2016 11:00:11 +0000 Received: from mail-it0-x229.google.com ([2607:f8b0:4001:c0b::229]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1bX4lT-0001KV-5r for pgadmin-hackers@postgresql.org; Tue, 09 Aug 2016 11:00:09 +0000 Received: by mail-it0-x229.google.com with SMTP id x130so9521080ite.1 for ; Tue, 09 Aug 2016 04:00:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=XR8ATLFROc5jigxC/WpgKjpRmS+eSzpMCL1ot30HpHY=; b=crFBeyaybobm6xuQ0rSNf6+7H8k6bQ8Nxq1ZI/CgsSUTGOOlgXkdoZssAsbP2Sirh2 lvx21KqCl+u7RO/m//qiTG0kM3HKmcJQYF1M04mKjjCDpQUnpMXD8WJ6NkvVwW/6mniz /w+DESeIxzrhUuL4yxTK20S92xvWuqGOzH+cJOFqhZmnUKiKiAnl01D4NEL7Dn5yQ7kF Nt/lJ8eN2ryh4fj2SPk0FbLOz2k91VY3eM4ZEX06fp9GGLkPqSdMwi7AApUMEuU5cUhN vHmB4+93ZZYZ+IySQfiPyTTn3+NBrOy2yfvy8zRiclc4SFGlDf7T0FgSIEdTPvtZpvT7 AZaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=XR8ATLFROc5jigxC/WpgKjpRmS+eSzpMCL1ot30HpHY=; b=khE0ihMkKCkgPYjLWq0vtobczzobaeAh2UbZNUR9b6nedB3dAstxer2f9QSj+XCm18 ua9eqqJBhqP5foRBysFKrVKKBlCg+orM659J7BvWesqJuAfl0NoF8eyCv9nYXNjaM/az Sqj2mrGHdq1DObxy00K2WTlKoFjT1d8WS7qp7T+kAg4EDDxq8EXQoGxriV5SiVykdtdU wslWD18RLkRF3j1Om7x9h7vttvPTqYKQ/XspZTgqM//uqccSuUH67W9PFYrkMBuuN6km AkjJSvtC9iK23isH4HC2o3VmO2HIwysRvWa8wBjbuWVyxlYGp+xrvJV2gWeREM1+FwY4 QsFA== X-Gm-Message-State: AEkoousG2RPKrawYTh7O1BOrs4sboEQPV54oKx6UMf+JU+6zVdo9x0Bj82qtJZ3bHzbN2cwFrPpM3WSsh9wxR0hL X-Received: by 10.36.87.140 with SMTP id u134mr24522965ita.38.1470740406046; Tue, 09 Aug 2016 04:00:06 -0700 (PDT) MIME-Version: 1.0 Received: by 10.36.17.70 with HTTP; Tue, 9 Aug 2016 04:00:05 -0700 (PDT) In-Reply-To: References: From: Akshay Joshi Date: Tue, 9 Aug 2016 16:30:05 +0530 Message-ID: Subject: Re: RM #1250 Collection node counts To: Dave Page Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a1135018c75c37c0539a16f9b 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 --001a1135018c75c37c0539a16f9b Content-Type: multipart/alternative; boundary=001a1135018c75c3790539a16f99 --001a1135018c75c3790539a16f99 Content-Type: text/plain; charset=UTF-8 Hi Dave I have implemented the logic as per your suggestion. When user will expand the collection node label will get updated with collection count. Attached is the new patch file, please review it and let me know the review comments. On Mon, Aug 8, 2016 at 5:50 PM, Dave Page wrote: > > > On Mon, Aug 8, 2016 at 1:18 PM, Akshay Joshi < > akshay.joshi@enterprisedb.com> wrote: > >> >> >> On Mon, Aug 8, 2016 at 5:33 PM, Dave Page wrote: >> >>> Hi >>> >>> On Mon, Aug 8, 2016 at 11:39 AM, Akshay Joshi < >>> akshay.joshi@enterprisedb.com> wrote: >>> >>>> Hi All >>>> >>>> I have fixed the RM#1250 "Collection node counts". To fix this RM I >>>> need to do following changes >>>> >>>> - Move "check_precondition" function from module's view class to >>>> global level within that python file itself, so that module class will use >>>> it. >>>> - Modified "get_nodes" function of each module's class, run the sql >>>> query to count the number of objects and pass the count to >>>> "generate_browser_collection_node" function to display the >>>> collection count. >>>> - Reuse SQL queries which is used to fetch nodes. Make that query >>>> as inner query like "SELECT count(*) FROM( query ) AS >>>> collection_count". For that I'll have to remove semicolon's from some of >>>> the SQL queries. >>>> >>>> One case is not handled with this patch and that is on "Refresh" of >>>> collection node, count is not updated. If user refresh the parent node then >>>> it will be updated. I'll create a separate RM for that. >>>> >>> >>> Sorry Akshay, but I really don't like the way you've done this. It seems >>> like an unnecessarily large patch, and if I'm reading the patch correctly, >>> it doubles the amount of SQL queries run against the database when >>> navigating the tree, and introduces race conditions where the count >>> displayed could be different from the actual number of nodes. >>> >>> I was expecting to see this implemented by watching for tree events >>> (e.g. 'added' and 'removed') and using those events to update the label on >>> the parent node, if that node is a collection. That should just be a few >>> lines, and should be correct at all times right? >>> >> >> With current implementation children's of any collection node will be >> fetched/added when user will expand that collection node, in that case we >> will update the label once the node gets expanded. For example initially we >> will show "Databases" and when it gets expanded then we will update it to >> "Databases (5)". >> > > Right, but you also need to allow for removal and addition of children > when the node is already expanded, and refreshes. Plus my other comments > are still valid I believe - race condition, double the SQL and a very large > change late in the beta cycle which isn't ideal. > > >> >>> >>>> >>>> Attached is the patch file. Please review it and let me know the review >>>> comments. >>>> >>>> -- >>>> *Akshay Joshi* >>>> *Principal Software Engineer * >>>> >>>> >>>> >>>> *Phone: +91 20-3058-9517 <%2B91%2020-3058-9517>Mobile: +91 976-788-8246* >>>> >>>> >>>> -- >>>> Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) >>>> To make changes to your subscription: >>>> http://www.postgresql.org/mailpref/pgadmin-hackers >>>> >>>> >>> >>> >>> -- >>> Dave Page >>> Blog: http://pgsnake.blogspot.com >>> Twitter: @pgsnake >>> >>> EnterpriseDB UK: http://www.enterprisedb.com >>> The Enterprise PostgreSQL Company >>> >> >> >> >> -- >> *Akshay Joshi* >> *Principal Software Engineer * >> >> >> >> *Phone: +91 20-3058-9517 <%2B91%2020-3058-9517>Mobile: +91 976-788-8246* >> > > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > -- *Akshay Joshi* *Principal Software Engineer * *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* --001a1135018c75c3790539a16f99 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi Dave=C2=A0

I have implemented the lo= gic as per your suggestion. When user will expand the collection node label= will get updated with collection count. Attached is the new patch file, pl= ease review it and let me know the review comments. =C2=A0

On Mon, Aug 8, 2016 at= 5:50 PM, Dave Page <dpage@pgadmin.org> wrote:


On Mon, Aug 8, 2016 at 1:18 PM, A= kshay Joshi <akshay.joshi@enterprisedb.com>= wrote:


On Mon, Aug 8, 2016 a= t 5:33 PM, Dave Page <dpage@pgadmin.org><= /span> wrote:
Hi






--
Dave PageBlog: http://pgs= nake.blogspot.com
Twitter: @pgsnake

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



--
Akshay Joshi


<= b>Phone: +91 20-3058-9517
Mobile: +91 976-788= -8246
--001a1135018c75c3790539a16f99-- --001a1135018c75c37c0539a16f9b Content-Type: application/octet-stream; name="RM_1250.patch" Content-Disposition: attachment; filename="RM_1250.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_irncuw8h0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL3RlbXBsYXRlcy9zZXJ2ZXJzL3NlcnZlcnMuanMgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZW1wbGF0 ZXMvc2VydmVycy9zZXJ2ZXJzLmpzCmluZGV4IDJkODQ4NzAuLmNhMGMyNjkg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL3RlbXBsYXRlcy9zZXJ2ZXJzL3NlcnZlcnMuanMKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVt cGxhdGVzL3NlcnZlcnMvc2VydmVycy5qcwpAQCAtMjM3LDYgKzIzNyw4IEBA IGZ1bmN0aW9uKCQsIF8sIFMsIHBnQWRtaW4sIHBnQnJvd3NlciwgYWxlcnRp ZnkpIHsKICAgICAgICAgICBwZ0Jyb3dzZXIuc2VydmVySW5mbyA9IHBnQnJv d3Nlci5zZXJ2ZXJJbmZvIHx8IHt9OwogICAgICAgICAgIHBnQnJvd3Nlci5z ZXJ2ZXJJbmZvW2RhdGEuX2lkXSA9IF8uZXh0ZW5kKHt9LCBkYXRhKTsKIAor ICAgICAgICAgIC8vIENhbGwgYWRkZWQgbWV0aG9kIG9mIG5vZGUuanMKKyAg ICAgICAgICBwZ0FkbWluLkJyb3dzZXIuTm9kZS5jYWxsYmFja3MuYWRkZWQu YXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgICAgICAgICByZXR1cm4gdHJ1 ZTsKICAgICAgICAgfSwKICAgICAgICAgLyogUmVsb2FkIGNvbmZpZ3VyYXRp b24gKi8KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy90ZW1wbGF0ZXMvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJfZ3JvdXBz LmpzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3RlbXBs YXRlcy9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcl9ncm91cHMuanMKaW5kZXggNDIy MTI4MC4uMzE2YjFmNyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3RlbXBsYXRlcy9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cl9ncm91cHMuanMKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3RlbXBsYXRlcy9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcl9ncm91cHMu anMKQEAgLTEwLDYgKzEwLDcgQEAgZnVuY3Rpb24oJCwgXywgcGdBZG1pbiwg QmFja2JvbmUpIHsKICAgICAgIGxhYmVsOiAne3sgXygnU2VydmVyIEdyb3Vw JykgfX0nLAogICAgICAgd2lkdGg6ICczNTBweCcsCiAgICAgICBoZWlnaHQ6 ICcyNTBweCcsCisgICAgICBpc19jb2xsZWN0aW9uOiB0cnVlLAogICAgICAg SW5pdDogZnVuY3Rpb24oKSB7CiAgICAgICAgIC8qIEF2b2lkIG11bHRpcGxl IHJlZ2lzdHJhdGlvbiBvZiBtZW51cyAqLwogICAgICAgICBpZiAodGhpcy5p bml0aWFsaXplZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv dGVtcGxhdGVzL2Jyb3dzZXIvanMvY29sbGVjdGlvbi5qcyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvdGVtcGxhdGVzL2Jyb3dzZXIvanMvY29sbGVjdGlvbi5q cwppbmRleCBhNmMxYWFiLi4xMmM4MGI3IDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi9icm93c2VyL3RlbXBsYXRlcy9icm93c2VyL2pzL2NvbGxlY3Rpb24u anMKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZW1wbGF0ZXMvYnJvd3Nl ci9qcy9jb2xsZWN0aW9uLmpzCkBAIC01MCw2ICs1MCw3IEBAIGZ1bmN0aW9u KCQsIF8sIFMsIHBnQWRtaW4sIEJhY2tib25lLCBBbGVydGlmeSwgQmFja2Zv cm0pIHsKICAgICAgIH0KICAgICB9LAogICAgIGhhc0lkOiBmYWxzZSwKKyAg ICBpc19jb2xsZWN0aW9uOiB0cnVlLAogICAgIC8vIEEgY29sbGVjdGlvbiB3 aWxsIGFsd2F5cyBoYXZlIGEgY29sbGVjdGlvbiBvZiBzdGF0aXN0aWNzLCB3 aGVuIHRoZSBub2RlCiAgICAgLy8gaXQgcmVwcmVzZW50IHdpbGwgaGF2ZSBz b21lIHN0YXRpc3RpY3MuCiAgICAgaGFzQ29sbGVjdGl2ZVN0YXRpc3RpY3M6 IHRydWUsCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3RlbXBs YXRlcy9icm93c2VyL2pzL25vZGUuanMgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3RlbXBsYXRlcy9icm93c2VyL2pzL25vZGUuanMKaW5kZXggNDk0MjQwZC4u NGNjODQzOCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZW1w bGF0ZXMvYnJvd3Nlci9qcy9ub2RlLmpzCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvdGVtcGxhdGVzL2Jyb3dzZXIvanMvbm9kZS5qcwpAQCAtNjMzLDYg KzYzMywyNyBAQCBmdW5jdGlvbigkLCBfLCBTLCBwZ0FkbWluLCBNZW51LCBC YWNrYm9uZSwgQWxlcnRpZnksIHBnQnJvd3NlciwgQmFja2Zvcm0pIHsKICAg ICAgICAgICB0aGlzLCBbdW5kZWZpbmVkLCBpXQogICAgICAgICApOwogICAg ICAgfSwKKyAgICAgIGFkZGVkOiBmdW5jdGlvbihpdGVtLCBkYXRhLCBicm93 c2VyKSB7CisgICAgICAgIHZhciBiID0gYnJvd3NlciB8fCBwZ0Jyb3dzZXIs CisgICAgICAgICAgICB0ID0gYi50cmVlLAorICAgICAgICAgICAgcEl0ZW0g PSB0LnBhcmVudChpdGVtKSwKKyAgICAgICAgICAgIHBEYXRhID0gcEl0ZW0g JiYgdC5pdGVtRGF0YShwSXRlbSksCisgICAgICAgICAgICBwTm9kZSA9IHBE YXRhICYmIHBnQnJvd3Nlci5Ob2Rlc1twRGF0YS5fdHlwZV07CisKKyAgICAg ICAgLy8gQ2hlY2sgbm9kZSBpcyBhIGNvbGxlY3Rpb24gb3Igbm90LgorICAg ICAgICBpZiAocE5vZGUgJiYgcE5vZGUuaXNfY29sbGVjdGlvbikgeworICAg ICAgICAgIC8qIElmICdjb2xsZWN0aW9uX2NvdW50JyBpcyBub3QgcHJlc2Vu dCBpbiBkYXRhCisgICAgICAgICAgICogaXQgbWVhbnMgdHJlZSBub2RlIGV4 cGFuZGVkIGZpcnN0IHRpbWUsIHNvIHdlIHdpbGwKKyAgICAgICAgICAgKiBr ZXB0IGNvbGxlY3Rpb24gY291bnQgYW5kIGxhYmVsIGluIGRhdGEgaXRzZWxm LgorICAgICAgICAgICAqLworICAgICAgICAgIGlmICghKCdjb2xsZWN0aW9u X2NvdW50JyBpbiBwRGF0YSkpIHsKKyAgICAgICAgICAgIHBEYXRhLmNvbGxl Y3Rpb25fY291bnQgPSAwOworICAgICAgICAgICAgcERhdGEuX2xhYmVsID0g cERhdGEubGFiZWw7CisgICAgICAgICAgfQorICAgICAgICAgIHBEYXRhLmNv bGxlY3Rpb25fY291bnQrKzsKKyAgICAgICAgICB0LnNldExhYmVsKHBJdGVt LCB7bGFiZWw6IChwRGF0YS5fbGFiZWwgKyAnIDxzcGFuPignICsgcERhdGEu Y29sbGVjdGlvbl9jb3VudCArICcpPC9zcGFuPicpfSk7CisgICAgICAgIH0K KyAgICAgIH0sCiAgICAgICAvLyBDYWxsYmFjayBjYWxsZWQgLSB3aGVuIGEg bm9kZSBpcyBzZWxlY3RlZCBpbiBicm93c2VyIHRyZWUuCiAgICAgICBzZWxl Y3RlZDogZnVuY3Rpb24oaXRlbSwgZGF0YSwgYnJvd3NlcikgewogICAgICAg ICAvLyBTaG93IHRoZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2VsZWN0ZWQg bm9kZSBpbiB0aGUgYmVsb3cgcGFuZWxzLApAQCAtNjkxLDkgKzcxMiwzNCBA QCBmdW5jdGlvbigkLCBfLCBTLCBwZ0FkbWluLCBNZW51LCBCYWNrYm9uZSwg QWxlcnRpZnksIHBnQnJvd3NlciwgQmFja2Zvcm0pIHsKICAgICAgICAgcmV0 dXJuIHRydWU7CiAgICAgICB9LAogICAgICAgcmVtb3ZlZDogZnVuY3Rpb24o aXRlbSkgewotICAgICAgICB2YXIgc2VsZiA9IHRoaXM7CisgICAgICAgIHZh ciBzZWxmID0gdGhpcywKKyAgICAgICAgICAgIHQgPSBwZ0Jyb3dzZXIudHJl ZSwKKyAgICAgICAgICAgIHBJdGVtID0gdC5wYXJlbnQoaXRlbSksCisgICAg ICAgICAgICBwRGF0YSA9IHBJdGVtICYmIHQuaXRlbURhdGEocEl0ZW0pLAor ICAgICAgICAgICAgcE5vZGUgPSBwRGF0YSAmJiBwZ0Jyb3dzZXIuTm9kZXNb cERhdGEuX3R5cGVdOworCisgICAgICAgIC8vIENoZWNrIG5vZGUgaXMgYSBj b2xsZWN0aW9uIG9yIG5vdC4KKyAgICAgICAgaWYgKHBOb2RlICYmIHBOb2Rl LmlzX2NvbGxlY3Rpb24gJiYKKyAgICAgICAgICAgICdjb2xsZWN0aW9uX2Nv dW50JyBpbiBwRGF0YSkKKyAgICAgICAgeworICAgICAgICAgIHBEYXRhLmNv bGxlY3Rpb25fY291bnQtLTsKKyAgICAgICAgICB0LnNldExhYmVsKHBJdGVt LCB7bGFiZWw6IChwRGF0YS5fbGFiZWwgKyAnIDxzcGFuPignICsgcERhdGEu Y29sbGVjdGlvbl9jb3VudCArICcpPC9zcGFuPicpfSk7CisgICAgICAgIH0K KwogICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBzZWxmLmNsZWFy X2NhY2hlLmFwcGx5KHNlbGYsIGl0ZW0pOyB9LCAwKTsKICAgICAgIH0sCisg ICAgICB1bmxvYWRlZDogZnVuY3Rpb24oaXRlbSkgeworICAgICAgICB2YXIg c2VsZiA9IHRoaXMsCisgICAgICAgICAgICB0ID0gcGdCcm93c2VyLnRyZWUs CisgICAgICAgICAgICBkYXRhID0gaXRlbSAmJiB0Lml0ZW1EYXRhKGl0ZW0p OworCisgICAgICAgIC8vIEluIGNhc2Ugb2YgdW5sb2FkIHJlbW92ZSB0aGUg Y29sbGVjdGlvbiBjb3VudGVyCisgICAgICAgIGlmIChzZWxmLmlzX2NvbGxl Y3Rpb24gJiYgJ2NvbGxlY3Rpb25fY291bnQnIGluIGRhdGEpCisgICAgICAg IHsKKyAgICAgICAgICBkZWxldGUgZGF0YS5jb2xsZWN0aW9uX2NvdW50Owor ICAgICAgICAgIHQuc2V0TGFiZWwoaXRlbSwge2xhYmVsOiBkYXRhLl9sYWJl bH0pOworICAgICAgICB9CisgICAgICB9LAogICAgICAgcmVmcmVzaDogZnVu Y3Rpb24obiwgaSkgewogICAgICAgICB2YXIgc2VsZiA9IHRoaXMsCiAgICAg ICAgICAgICB0ID0gcGdCcm93c2VyLnRyZWUsCg== --001a1135018c75c37c0539a16f9b 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 --001a1135018c75c37c0539a16f9b--