Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dQAlf-0001aK-V2 for pgadmin-hackers@arkaria.postgresql.org; Wed, 28 Jun 2017 11:04:20 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dQAlf-0006Zo-1c for pgadmin-hackers@arkaria.postgresql.org; Wed, 28 Jun 2017 11:04:19 +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 1dQAle-0006Zd-6z for pgadmin-hackers@lists.postgresql.org; Wed, 28 Jun 2017 11:04:18 +0000 Received: from mail-yw0-x233.google.com ([2607:f8b0:4002:c05::233]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1dQAlZ-00025J-90 for pgadmin-hackers@postgresql.org; Wed, 28 Jun 2017 11:04:16 +0000 Received: by mail-yw0-x233.google.com with SMTP id j11so22769355ywa.2 for ; Wed, 28 Jun 2017 04:04:12 -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=kHm7lqkj5/QcOcfkA1GSx1aYNe6Qe2EYoE534AONo+k=; b=HGzHpZ6VzVUQAXbS2fRz3votD3gjtGzL1VLiQ26ebvHz+INKHlOnYURlNFAZ3Id+AM TVvyCjL7wURvSvY/8sM7fO9O8WLN7kfkNFTPwpMX46MpU/TgL1GdjbQpUuOxAHCMDqmx y+nzqo0SNVPgydvWSA4756O+aZG7gz9Qsh925uYrYPPXd0ZljllHjADuaGBvPOg0nixf sL/vbv9XWmLL1+dQPI4EAkYMoLDT97QovmISva4ufLm3j5x3odiqxVZ892nB7tegkBXm c9AAu5xmXGEUvyCjKjrLH5iGsMyFDqCcPI1Vq0zHNoj2b0+AHSJSfEH/6KHUwth1Bi2v N/hA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=kHm7lqkj5/QcOcfkA1GSx1aYNe6Qe2EYoE534AONo+k=; b=XHy2Tk14nUe/rs7n6Zysqwvsrutw+vfnWJg+iJ2iHlfMa+ICiWufT2GkndsdNkSwel 7k11pGY3KPJ9c+o3GaEfd8bHmegnuNL2LYdOLnz9r5y0imJz44jQyJsvBIagv2EktaAV K4YK7DqZ8UM9xNVK4jamgoktfWfgBL6cuF4j4oM+jqSbZBzfbdY2EkAvliLaqJrqbZ6I rvMQx8DGYHpJZB4NYlcusHW/CxHknbKqKBT0xtfdX3GZoPDNmCkBUDrrD2EfQUEedo2G gZLpbI8dxh7lm1h7sNwA2hCZ4xHaYnlbR16xyzemoTn2RtB4un2xEZdfg2kmYb+lztce QuSw== X-Gm-Message-State: AKS2vOyJkMOT9j09YWgVZ9Utp4h7uMd3yq0nF6DI3h4VCPj0/0Xj+ebT jxtK7LIYd9M/l2SqeNabQMnwETmfoVP1 X-Received: by 10.129.173.9 with SMTP id l9mr7797392ywh.166.1498647851703; Wed, 28 Jun 2017 04:04:11 -0700 (PDT) MIME-Version: 1.0 Received: by 10.13.193.68 with HTTP; Wed, 28 Jun 2017 04:04:10 -0700 (PDT) In-Reply-To: References: From: Harshal Dhumal Date: Wed, 28 Jun 2017 16:34:10 +0530 Message-ID: Subject: Re: [pgadmin-hackers] Re: Server side cursor limitations for on demand loading of data in query tool [RM2137] [pgAdmin4] To: Dave Page Cc: Joao Pedro De Almeida Pereira , pgadmin-hackers , Ashesh Vashi , Robert Eckhardt , Shirley Wang Content-Type: multipart/mixed; boundary="f403045f6ca4d87db3055303240c" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Unsubscribe: , List-Archive: Precedence: bulk --f403045f6ca4d87db3055303240c Content-Type: multipart/related; boundary="f403045f6ca4d87db1055303240b" --f403045f6ca4d87db1055303240b Content-Type: multipart/alternative; boundary="f403045f6ca4d87dae055303240a" --f403045f6ca4d87dae055303240a Content-Type: text/plain; charset="UTF-8" Hi, Please find attached patch to fix minor issues/improvements suggested. On Wed, Jun 28, 2017 at 2:43 AM, Dave Page wrote: > Harshal, can you look at these comments please, and patch as appropriate? > > On Tue, Jun 27, 2017 at 5:03 PM, Joao Pedro De Almeida Pereira < > jdealmeidapereira@pivotal.io> wrote: > >> Hello Hackers, >> >> When we started the app we noticed some change in the front end. >> >> The line numbers in the Editor: >> - We noticed a bug with the numbers where at 10000 rows, the numbers >> would be cut off. >> > No. Row number column automatically adjust its width depending on maximum row count to be shown. (see attached screenshot ) [image: Inline image 1] > - When the row is selected the color of the text should be white >> > Fixed > - Centering the number column would differentiate it from the rest of the >> table and prevent any confusion >> > Fixed. > >> >> Select all triangle: >> - This seems to have shifted up and to the left slightly. >> > Fixed alignment. > >> While editing data, when you paste a new row, that line should come into >> view. >> > Fixed. > >> Issue in the code: >> - In sqleditor/command.py:473 the variable `column_data` is not >> initialized >> > Fixed. > >> >> >> We were looking into the menu's to access and Edit Data editor, and we >> noticed that in the menu it is still called "View Data". We are aware that >> this change was not introduced in this patch, but we just noticed it. It >> should be consistent. >> > Fixed. (see attached screenshot) [image: Inline image 2] > >> >> >> Thanks >> Shirley & Joao >> >> >> On Tue, Jun 27, 2017 at 12:19 PM, Robert Eckhardt >> wrote: >> >>> >>> >>> On Tue, Jun 27, 2017 at 12:16 PM, Khushboo Vashi < >>> khushboo.vashi@enterprisedb.com> wrote: >>> >>>> >>>> >>>> On 27 Jun 2017 18:33, "Dave Page" wrote: >>>> >>>> Thanks - patch committed! >>>> >>>> Awsome job :-) >>>> >>>> Gr8. Finally no more rebase request for Harshal. :) >>>> >>> >>> +1 >>> >>> >>>> On Tue, Jun 27, 2017 at 3:26 AM, Harshal Dhumal < >>>> harshal.dhumal@enterprisedb.com> wrote: >>>> >>>>> Hi, >>>>> >>>>> Please find rebased patch. >>>>> >>>>> -- >>>>> *Harshal Dhumal* >>>>> *Sr. Software Engineer* >>>>> >>>>> EnterpriseDB India: http://www.enterprisedb.com >>>>> The Enterprise PostgreSQL Company >>>>> >>>>> On Mon, Jun 26, 2017 at 5:24 PM, Harshal Dhumal < >>>>> harshal.dhumal@enterprisedb.com> wrote: >>>>> >>>>>> yes i'm working on that only :) >>>>>> >>>>>> >>>>>> -- >>>>>> *Harshal Dhumal* >>>>>> *Sr. Software Engineer* >>>>>> >>>>>> EnterpriseDB India: http://www.enterprisedb.com >>>>>> The Enterprise PostgreSQL Company >>>>>> >>>>>> On Mon, Jun 26, 2017 at 5:22 PM, Dave Page wrote: >>>>>> >>>>>>> I'm sorry, it needs rebasing again. If you can do it quickly, I'll >>>>>>> make sure it's the next patch I work on in that area. >>>>>>> >>>>>>> Thanks. >>>>>>> >>>>>>> On Mon, Jun 26, 2017 at 5:16 AM, Harshal Dhumal >>>>>>> wrote: >>>>>>> > Hi Dave, >>>>>>> > >>>>>>> > Please find updated rebased patch for RM2137 >>>>>>> > >>>>>>> > On Fri, Jun 23, 2017 at 9:00 PM, Dave Page >>>>>>> wrote: >>>>>>> >> >>>>>>> >> Hi Harshal, >>>>>>> >> >>>>>>> >> When can we expect an updated version of this patch? I think it's >>>>>>> >> important to get this into the next release. >>>>>>> >> >>>>>>> >> Thanks! >>>>>>> >> >>>>>>> >> On Fri, Jun 16, 2017 at 10:55 AM, Dave Page >>>>>>> wrote: >>>>>>> >> > Hi, >>>>>>> >> > >>>>>>> >> > That's better - the failures are far less random now :-). I got >>>>>>> the >>>>>>> >> > following two though, on both PG and EPAS 9.5: >>>>>>> >> > >>>>>>> >> > ============================================================ >>>>>>> ========== >>>>>>> >> > ERROR: runTest >>>>>>> >> > (pgadmin.feature_tests.query_tool_tests.QueryToolFeatureTest) >>>>>>> >> > Query tool feature test >>>>>>> >> > ------------------------------------------------------------ >>>>>>> ---------- >>>>>>> >> > Traceback (most recent call last): >>>>>>> >> > File >>>>>>> >> > "/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/query_t >>>>>>> ool_tests.py", >>>>>>> >> > line 95, in runTest >>>>>>> >> > self._query_tool_explain_analyze_buffers() >>>>>>> >> > File >>>>>>> >> > "/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/query_t >>>>>>> ool_tests.py", >>>>>>> >> > line 443, in _query_tool_explain_analyze_buffers >>>>>>> >> > canvas.find_element_by_xpath("//*[contains(string(), >>>>>>> 'Shared Read >>>>>>> >> > Blocks')]") >>>>>>> >> > File >>>>>>> >> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >>>>>>> ges/selenium/webdriver/remote/webelement.py", >>>>>>> >> > line 260, in find_element_by_xpath >>>>>>> >> > return self.find_element(by=By.XPATH, value=xpath) >>>>>>> >> > File >>>>>>> >> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >>>>>>> ges/selenium/webdriver/remote/webelement.py", >>>>>>> >> > line 508, in find_element >>>>>>> >> > {"using": by, "value": value})['value'] >>>>>>> >> > File >>>>>>> >> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >>>>>>> ges/selenium/webdriver/remote/webelement.py", >>>>>>> >> > line 491, in _execute >>>>>>> >> > return self._parent.execute(command, params) >>>>>>> >> > File >>>>>>> >> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >>>>>>> ges/selenium/webdriver/remote/webdriver.py", >>>>>>> >> > line 238, in execute >>>>>>> >> > self.error_handler.check_response(response) >>>>>>> >> > File >>>>>>> >> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >>>>>>> ges/selenium/webdriver/remote/errorhandler.py", >>>>>>> >> > line 193, in check_response >>>>>>> >> > raise exception_class(message, screen, stacktrace) >>>>>>> >> > NoSuchElementException: Message: no such element: Unable to >>>>>>> locate >>>>>>> >> > element: {"method":"xpath","selector":"//*[contains(string(), >>>>>>> 'Shared >>>>>>> >> > Read Blocks')]"} >>>>>>> >> > (Session info: chrome=58.0.3029.110) >>>>>>> >> > (Driver info: chromedriver=2.29.461585 >>>>>>> >> > (0be2cd95f834e9ee7c46bcc7cf405b483f5ae83b),platform=Mac OS X >>>>>>> 10.12.3 >>>>>>> >> > x86_64) >>>>>>> >> > >>>>>>> >> > >>>>>>> >> > ============================================================ >>>>>>> ========== >>>>>>> >> > ERROR: runTest >>>>>>> >> > (pgadmin.feature_tests.view_data_dml_queries.CheckForViewDat >>>>>>> aTest) >>>>>>> >> > Validate Insert, Update operations in View data with given test >>>>>>> data >>>>>>> >> > ------------------------------------------------------------ >>>>>>> ---------- >>>>>>> >> > Traceback (most recent call last): >>>>>>> >> > File >>>>>>> >> > "/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/view_da >>>>>>> ta_dml_queries.py", >>>>>>> >> > line 104, in runTest >>>>>>> >> > self._add_row() >>>>>>> >> > File >>>>>>> >> > "/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/view_da >>>>>>> ta_dml_queries.py", >>>>>>> >> > line 255, in _add_row >>>>>>> >> > self._update_cell(cell_xpath, config_data[str(idx)]) >>>>>>> >> > File >>>>>>> >> > "/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/view_da >>>>>>> ta_dml_queries.py", >>>>>>> >> > line 164, in _update_cell >>>>>>> >> > cell_el = self.page.find_by_xpath(xpath) >>>>>>> >> > File >>>>>>> >> > "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgad >>>>>>> min_page.py", >>>>>>> >> > line 122, in find_by_xpath >>>>>>> >> > return self.wait_for_element(lambda driver: >>>>>>> >> > driver.find_element_by_xpath(xpath)) >>>>>>> >> > File >>>>>>> >> > "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgad >>>>>>> min_page.py", >>>>>>> >> > line 205, in wait_for_element >>>>>>> >> > return self._wait_for("element to exist", >>>>>>> element_if_it_exists) >>>>>>> >> > File >>>>>>> >> > "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgad >>>>>>> min_page.py", >>>>>>> >> > line 255, in _wait_for >>>>>>> >> > "Timed out waiting for " + waiting_for_message) >>>>>>> >> > File >>>>>>> >> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >>>>>>> ges/selenium/webdriver/support/wait.py", >>>>>>> >> > line 71, in until >>>>>>> >> > value = method(self._driver) >>>>>>> >> > File >>>>>>> >> > "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgad >>>>>>> min_page.py", >>>>>>> >> > line 200, in element_if_it_exists >>>>>>> >> > if element.is_displayed() and element.is_enabled(): >>>>>>> >> > File >>>>>>> >> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >>>>>>> ges/selenium/webdriver/remote/webelement.py", >>>>>>> >> > line 358, in is_displayed >>>>>>> >> > return self._execute(Command.IS_ELEMENT_DISPLAYED)['value'] >>>>>>> >> > File >>>>>>> >> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >>>>>>> ges/selenium/webdriver/remote/webelement.py", >>>>>>> >> > line 491, in _execute >>>>>>> >> > return self._parent.execute(command, params) >>>>>>> >> > File >>>>>>> >> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >>>>>>> ges/selenium/webdriver/remote/webdriver.py", >>>>>>> >> > line 238, in execute >>>>>>> >> > self.error_handler.check_response(response) >>>>>>> >> > File >>>>>>> >> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packa >>>>>>> ges/selenium/webdriver/remote/errorhandler.py", >>>>>>> >> > line 193, in check_response >>>>>>> >> > raise exception_class(message, screen, stacktrace) >>>>>>> >> > StaleElementReferenceException: Message: stale element >>>>>>> reference: >>>>>>> >> > element is not attached to the page document >>>>>>> >> > (Session info: chrome=58.0.3029.110) >>>>>>> >> > (Driver info: chromedriver=2.29.461585 >>>>>>> >> > (0be2cd95f834e9ee7c46bcc7cf405b483f5ae83b),platform=Mac OS X >>>>>>> 10.12.3 >>>>>>> >> > x86_64) >>>>>>> >> > >>>>>>> > >>>>>>> > >>>>>>> > I checked my feature test cases for any database server >>>>>>> version/type (PG, >>>>>>> > EPAS) specific failures and I found that test cases are working >>>>>>> fine on all >>>>>>> > of them. However I have slightly modified test case to overcome >>>>>>> above >>>>>>> > mentioned failures. >>>>>>> > >>>>>>> >> >>>>>>> >> > >>>>>>> >> > On 9.4 everything passes. On 9.6, I get one failure: >>>>>>> >> > >>>>>>> >> > ============================================================ >>>>>>> ========== >>>>>>> >> > FAIL: runTest >>>>>>> >> > (pgadmin.feature_tests.view_data_dml_queries.CheckForViewDat >>>>>>> aTest) >>>>>>> >> > Validate Insert, Update operations in View data with given test >>>>>>> data >>>>>>> >> > ------------------------------------------------------------ >>>>>>> ---------- >>>>>>> >> > Traceback (most recent call last): >>>>>>> >> > File >>>>>>> >> > "/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/view_da >>>>>>> ta_dml_queries.py", >>>>>>> >> > line 105, in runTest >>>>>>> >> > self._verify_row_data(True) >>>>>>> >> > File >>>>>>> >> > "/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/view_da >>>>>>> ta_dml_queries.py", >>>>>>> >> > line 282, in _verify_row_data >>>>>>> >> > self.assertEquals(cells[idx], config_data[str(idx)][1]) >>>>>>> >> > AssertionError: u'[default]' != u'1' >>>>>>> >> > - [default] >>>>>>> >> > + 1 >>>>>>> >> > >>>>>>> > >>>>>>> > I guess Khushboo has fixed this recently. >>>>>>> > >>>>>>> > >>>>>>> >> >>>>>>> >> > Screenshots attached. >>>>>>> >> > >>>>>>> >> > On Fri, Jun 16, 2017 at 7:54 AM, Harshal Dhumal >>>>>>> >> > wrote: >>>>>>> >> >> Hi Dave, >>>>>>> >> >> >>>>>>> >> >> Please find attached patch where I have added timeout of 2 >>>>>>> seconds >>>>>>> >> >> before >>>>>>> >> >> selecting object menu in connect to server function. >>>>>>> >> >> >>>>>>> >> >> Note: Apply this patch on top of previous patch for on demand >>>>>>> loading >>>>>>> >> >> feature. >>>>>>> >> >> >>>>>>> >> >> >>>>>>> >> >> -- >>>>>>> >> >> Harshal Dhumal >>>>>>> >> >> Sr. Software Engineer >>>>>>> >> >> >>>>>>> >> >> EnterpriseDB India: http://www.enterprisedb.com >>>>>>> >> >> The Enterprise PostgreSQL Company >>>>>>> >> >> >>>>>>> >> >> On Fri, Jun 16, 2017 at 2:25 AM, Dave Page >>>>>>> wrote: >>>>>>> >> >>> >>>>>>> >> >>> Sounds good, thanks. >>>>>>> >> >>> >>>>>>> >> >>> On Thu, Jun 15, 2017 at 9:54 PM, Harshal Dhumal >>>>>>> >> >>> wrote: >>>>>>> >> >>> > Hi >>>>>>> >> >>> > >>>>>>> >> >>> > On Fri, Jun 16, 2017 at 2:07 AM, Dave Page < >>>>>>> dpage@pgadmin.org> >>>>>>> >> >>> > wrote: >>>>>>> >> >>> >> >>>>>>> >> >>> >> Hi >>>>>>> >> >>> >> >>>>>>> >> >>> >> On Thu, Jun 15, 2017 at 9:30 PM, Harshal Dhumal >>>>>>> >> >>> >> wrote: >>>>>>> >> >>> >> > Hi Dave, >>>>>>> >> >>> >> > >>>>>>> >> >>> >> > Please find attached updated patch. >>>>>>> >> >>> >> > >>>>>>> >> >>> >> > On Thu, Jun 15, 2017 at 3:58 PM, Dave Page < >>>>>>> dpage@pgadmin.org> >>>>>>> >> >>> >> > wrote: >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> Hi >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> On Wed, Jun 14, 2017 at 11:36 PM, Harshal Dhumal >>>>>>> >> >>> >> >> wrote: >>>>>>> >> >>> >> >>> >>>>>>> >> >>> >> >>> Hi Dave, >>>>>>> >> >>> >> >>> >>>>>>> >> >>> >> >>> Please find rebased patch for RM2137. >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> Looking very good. The only issues I see are: >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> - The row headers should auto-size such that they can >>>>>>> display >>>>>>> >> >>> >> >> the >>>>>>> >> >>> >> >> row >>>>>>> >> >>> >> >> numbers if the last row was displayed. E.g. if there >>>>>>> are 12345 >>>>>>> >> >>> >> >> rows >>>>>>> >> >>> >> >> in >>>>>>> >> >>> >> >> total, then the row header should be sized to display 5 >>>>>>> digits. >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> > Fixed. >>>>>>> >> >>> >> > >>>>>>> >> >>> >> > >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> - The tests are comprehensive, which is awesome. >>>>>>> However, every >>>>>>> >> >>> >> >> time >>>>>>> >> >>> >> >> I >>>>>>> >> >>> >> >> ran >>>>>>> >> >>> >> >> them, at least one of the feature tests failed. >>>>>>> Unfortunately, >>>>>>> >> >>> >> >> it >>>>>>> >> >>> >> >> was a >>>>>>> >> >>> >> >> different one each time. In the last two runs, I got: >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> ============================== >>>>>>> ======================================== >>>>>>> >> >>> >> >> ERROR: runTest >>>>>>> >> >>> >> >> (pgadmin.feature_tests.query_t >>>>>>> ool_tests.QueryToolFeatureTest) >>>>>>> >> >>> >> >> Query tool feature test >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> ------------------------------ >>>>>>> ---------------------------------------- >>>>>>> >> >>> >> >> Traceback (most recent call last): >>>>>>> >> >>> >> >> File >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> "/Users/dpage/git/pgadmin4/web >>>>>>> /regression/feature_utils/base_feature_test.py", >>>>>>> >> >>> >> >> line 40, in setUp >>>>>>> >> >>> >> >> self.before() >>>>>>> >> >>> >> >> File >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> "/Users/dpage/git/pgadmin4/web >>>>>>> /pgadmin/feature_tests/query_tool_tests.py", >>>>>>> >> >>> >> >> line 40, in before >>>>>>> >> >>> >> >> self._connects_to_server() >>>>>>> >> >>> >> >> File >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> "/Users/dpage/git/pgadmin4/web >>>>>>> /pgadmin/feature_tests/query_tool_tests.py", >>>>>>> >> >>> >> >> line 144, in _connects_to_server >>>>>>> >> >>> >> >> self.page.driver.find_element >>>>>>> _by_link_text("Create"))\ >>>>>>> >> >>> >> >> File >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> "/Users/dpage/.virtualenvs/pga >>>>>>> dmin4/lib/python2.7/site-packages/selenium/webdriver/remote/ >>>>>>> webdriver.py", >>>>>>> >> >>> >> >> line 319, in find_element_by_link_text >>>>>>> >> >>> >> >> return self.find_element(by=By.LINK_TEXT, >>>>>>> value=link_text) >>>>>>> >> >>> >> >> File >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> "/Users/dpage/.virtualenvs/pga >>>>>>> dmin4/lib/python2.7/site-packages/selenium/webdriver/remote/ >>>>>>> webdriver.py", >>>>>>> >> >>> >> >> line 756, in find_element >>>>>>> >> >>> >> >> 'value': value})['value'] >>>>>>> >> >>> >> >> File >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> "/Users/dpage/.virtualenvs/pga >>>>>>> dmin4/lib/python2.7/site-packages/selenium/webdriver/remote/ >>>>>>> webdriver.py", >>>>>>> >> >>> >> >> line 238, in execute >>>>>>> >> >>> >> >> self.error_handler.check_response(response) >>>>>>> >> >>> >> >> File >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> "/Users/dpage/.virtualenvs/pga >>>>>>> dmin4/lib/python2.7/site-packages/selenium/webdriver/remote/ >>>>>>> errorhandler.py", >>>>>>> >> >>> >> >> line 193, in check_response >>>>>>> >> >>> >> >> raise exception_class(message, screen, stacktrace) >>>>>>> >> >>> >> >> NoSuchElementException: Message: no such element: >>>>>>> Unable to >>>>>>> >> >>> >> >> locate >>>>>>> >> >>> >> >> element: {"method":"link text","selector":"Create"} >>>>>>> >> >>> >> >> (Session info: chrome=58.0.3029.110) >>>>>>> >> >>> >> >> (Driver info: chromedriver=2.29.461585 >>>>>>> >> >>> >> >> (0be2cd95f834e9ee7c46bcc7cf405b483f5ae83b),platform=Mac >>>>>>> OS X >>>>>>> >> >>> >> >> 10.12.3 >>>>>>> >> >>> >> >> x86_64) >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> > I checked code from _connects_to_server function which >>>>>>> is common >>>>>>> >> >>> >> > in >>>>>>> >> >>> >> > all >>>>>>> >> >>> >> > features test cases. I didn't find anything wrong with >>>>>>> this. If >>>>>>> >> >>> >> > there >>>>>>> >> >>> >> > is >>>>>>> >> >>> >> > a >>>>>>> >> >>> >> > bug in this function then all feature test must fail. >>>>>>> >> >>> >> > Let me know if you are getting failure consistently in >>>>>>> >> >>> >> > _connects_to_server >>>>>>> >> >>> >> > function. >>>>>>> >> >>> >> >>>>>>> >> >>> >> I wondered if that one is a race condition. Do we need a >>>>>>> short >>>>>>> >> >>> >> delay >>>>>>> >> >>> >> before clicking the Object menu? I have seen this >>>>>>> occasionally >>>>>>> >> >>> >> before. >>>>>>> >> >>> > >>>>>>> >> >>> > >>>>>>> >> >>> > OK. In that case let's try putting 1-2 second delay and >>>>>>> observer >>>>>>> >> >>> > behaviour. >>>>>>> >> >>> > I'll send separate patch for this tomorrow as this is not >>>>>>> related to >>>>>>> >> >>> > on >>>>>>> >> >>> > demand query result feature or its test cases. >>>>>>> >> >>> > >>>>>>> >> >>> >> >>>>>>> >> >>> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> ============================== >>>>>>> ======================================== >>>>>>> >> >>> >> >> ERROR: runTest >>>>>>> >> >>> >> >> (pgadmin.feature_tests.query_t >>>>>>> ool_tests.QueryToolFeatureTest) >>>>>>> >> >>> >> >> Query tool feature test >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> ------------------------------ >>>>>>> ---------------------------------------- >>>>>>> >> >>> >> >> Traceback (most recent call last): >>>>>>> >> >>> >> >> File >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> "/Users/dpage/git/pgadmin4/web >>>>>>> /pgadmin/feature_tests/query_tool_tests.py", >>>>>>> >> >>> >> >> line 119, in runTest >>>>>>> >> >>> >> >> self._query_tool_auto_rollback_enabled() >>>>>>> >> >>> >> >> File >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> "/Users/dpage/git/pgadmin4/web >>>>>>> /pgadmin/feature_tests/query_tool_tests.py", >>>>>>> >> >>> >> >> line 697, in _query_tool_auto_rollback_enabled >>>>>>> >> >>> >> >> '//div[contains(@class, "sql-editor-message") and >>>>>>> >> >>> >> >> contains(string(), >>>>>>> >> >>> >> >> "COMMIT")]' >>>>>>> >> >>> >> >> File >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> "/Users/dpage/.virtualenvs/pga >>>>>>> dmin4/lib/python2.7/site-packages/selenium/webdriver/remote/ >>>>>>> webdriver.py", >>>>>>> >> >>> >> >> line 295, in find_element_by_xpath >>>>>>> >> >>> >> >> return self.find_element(by=By.XPATH, value=xpath) >>>>>>> >> >>> >> >> File >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> "/Users/dpage/.virtualenvs/pga >>>>>>> dmin4/lib/python2.7/site-packages/selenium/webdriver/remote/ >>>>>>> webdriver.py", >>>>>>> >> >>> >> >> line 756, in find_element >>>>>>> >> >>> >> >> 'value': value})['value'] >>>>>>> >> >>> >> >> File >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> "/Users/dpage/.virtualenvs/pga >>>>>>> dmin4/lib/python2.7/site-packages/selenium/webdriver/remote/ >>>>>>> webdriver.py", >>>>>>> >> >>> >> >> line 238, in execute >>>>>>> >> >>> >> >> self.error_handler.check_response(response) >>>>>>> >> >>> >> >> File >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> "/Users/dpage/.virtualenvs/pga >>>>>>> dmin4/lib/python2.7/site-packages/selenium/webdriver/remote/ >>>>>>> errorhandler.py", >>>>>>> >> >>> >> >> line 193, in check_response >>>>>>> >> >>> >> >> raise exception_class(message, screen, stacktrace) >>>>>>> >> >>> >> >> NoSuchElementException: Message: no such element: >>>>>>> Unable to >>>>>>> >> >>> >> >> locate >>>>>>> >> >>> >> >> element: {"method":"xpath","selector":" >>>>>>> //div[contains(@class, >>>>>>> >> >>> >> >> "sql-editor-message") and contains(string(), >>>>>>> "COMMIT")]"} >>>>>>> >> >>> >> >> (Session info: chrome=58.0.3029.110) >>>>>>> >> >>> >> >> (Driver info: chromedriver=2.29.461585 >>>>>>> >> >>> >> >> (0be2cd95f834e9ee7c46bcc7cf405b483f5ae83b),platform=Mac >>>>>>> OS X >>>>>>> >> >>> >> >> 10.12.3 >>>>>>> >> >>> >> >> x86_64) >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> > I have updated Auto rollback enabled test in this patch. >>>>>>> >> >>> >> > >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> Relevant screenshots attached. >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> - Can you tidy up the regression output a little >>>>>>> please? Instead >>>>>>> >> >>> >> >> of: >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> ------- >>>>>>> >> >>> >> >> runTest >>>>>>> >> >>> >> >> (pgadmin.feature_tests.query_t >>>>>>> ool_tests.QueryToolFeatureTest) >>>>>>> >> >>> >> >> Query tool feature test ... On demand result set on >>>>>>> scrolling... >>>>>>> >> >>> >> >> OK. >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> On demand result set on grid select all... >>>>>>> >> >>> >> >> OK. >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> On demand result set on column select all... >>>>>>> >> >>> >> >> OK. >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> Explain query... >>>>>>> >> >>> >> >> OK. >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> Explain query with verbose... >>>>>>> >> >>> >> >> OK. >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> Explain query with costs... >>>>>>> >> >>> >> >> OK. >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> Explain analyze query... >>>>>>> >> >>> >> >> OK. >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> Explain analyze query with buffers... >>>>>>> >> >>> >> >> OK. >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> Explain analyze query with timing... >>>>>>> >> >>> >> >> OK. >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> Auto commit disabled... >>>>>>> >> >>> >> >> OK. >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> Auto commit enabled... >>>>>>> >> >>> >> >> OK. >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> Auto rollback enabled... >>>>>>> >> >>> >> >> ERROR >>>>>>> >> >>> >> >> ------- >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> Something like: >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> ------- >>>>>>> >> >>> >> >> runTest >>>>>>> >> >>> >> >> (pgadmin.feature_tests.query_t >>>>>>> ool_tests.QueryToolFeatureTest) >>>>>>> >> >>> >> >> Query tool feature test ... >>>>>>> >> >>> >> >> On demand result set on scrolling... OK. >>>>>>> >> >>> >> >> On demand result set on grid select all... OK. >>>>>>> >> >>> >> >> On demand result set on column select all... OK. >>>>>>> >> >>> >> >> Explain query... OK. >>>>>>> >> >>> >> >> Explain query with verbose... OK. >>>>>>> >> >>> >> >> Explain query with costs... OK. >>>>>>> >> >>> >> >> Explain analyze query... OK. >>>>>>> >> >>> >> >> Explain analyze query with buffers... OK. >>>>>>> >> >>> >> >> Explain analyze query with timing... OK. >>>>>>> >> >>> >> >> Auto commit disabled... OK. >>>>>>> >> >>> >> >> Auto commit enabled... OK. >>>>>>> >> >>> >> >> Auto rollback enabled... ERROR >>>>>>> >> >>> >> >> -------- >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> > Fixed. >>>>>>> >> >>> >> > >>>>>>> >> >>> >> > >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> Thanks! >>>>>>> >> >>> >> >> >>>>>>> >> >>> >> >> -- >>>>>>> >> >>> >> >> 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 >>>>>>> >> >>> > >>>>>>> >> >>> > >>>>>>> >> >>> >>>>>>> >> >>> >>>>>>> >> >>> >>>>>>> >> >>> -- >>>>>>> >> >>> 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 >>>>>>> >> >>>>>>> >> >>>>>>> >> >>>>>>> >> -- >>>>>>> >> 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 >>>>>>> >>>>>> >>>>>> >>>>> >>>> >>>> >>>> -- >>>> 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 > --f403045f6ca4d87dae055303240a Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

Please find attached patch to fix m= inor issues/improvements suggested.


On Wed, Jun 28, 2017 at 2:43 AM, Dave Page <= span dir=3D"ltr"><dpage@pgadmin.org> wrote:
Harshal, can you look at these comments= please, and patch as appropriate?

= On Tue, Jun 27, 2017 at 5:03 PM, Joao Pedro De Almeida Pereira <jdealmeidapereira@pivotal.io> wrote:
Hello Hackers,

When we started the app we noticed some change in the front end.

The line numbers in the Editor:=C2=A0
- We n= oticed a bug with the numbers where at 10000 rows, the numbers would be cut= off.
No.= Row number column automatically adjust its width depending on maximum row = count to be shown. (see attached screenshot )

= 3D"Inline

=C2=A0
- When the row= is selected the color of the text should be white=C2=A0
Fixed
=C2=A0
<= div>- Centering the number column would differentiate it from the rest of t= he table and prevent any confusion

Fixed.=C2=A0


Select all triangle:
- This seems to = have shifted up and to the left slightly.=C2=A0
Fixed alignment.
=C2=A0

While editing data, when you paste a new row, tha= t line should come into view.
Fixed.
=C2=A0

Issue in the code:
=C2=A0- In sqleditor/command.py:473 the varia= ble `column_data` is not initial= ized
Fixe= d.
=C2=A0
=



We= were looking into the menu's to access and Edit Data editor, and we no= ticed that in the menu it is still called "View Data". We are awa= re that this change was not introduced in this patch, but we just noticed i= t. It should be consistent.
Fixed. (see attached screenshot)

3D"Inline
=C2=A0
<= div class=3D"gmail_extra">


=

Thanks
Shirley & Joao


On Tue, Jun 27, 2017 at 12:19 PM, Robert Eckhardt <reckhardt@p= ivotal.io> wrote:


On Tue, Jun 27, 2017 at 12:16 PM, Khushboo Vashi <khushboo.vashi@enterprisedb.com> wrote:
=
<= div>

On 27 Jun= 2017 18:33, "Dave Page" <dpage@pgadmin.org> wrote:
Thanks - patch committed!

Awsome job :-)
<= /blockquote>
Gr8. Finally no more= rebase request for Harshal. :)

+1
=C2=A0
On Tue, Jun 27, 2017 at 3:26 AM= , Harshal Dhumal <harshal.dhumal@enterprisedb.com&g= t; wrote:
Hi,

Please find rebased patch.

--= =C2=A0
Harshal Dhumal
Sr. Software Engineer

EnterpriseDB India:=C2=A0http://www.enterprisedb.com
The Enterprise PostgreSQL Company
=

On Mon, Jun 26, 2017 at 5:24 PM, Harshal Dhumal <harshal.dhumal@enterprisedb.com> wrote:
<= blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-l= eft:1px solid rgb(204,204,204);padding-left:1ex">
yes i'= ;m working on that only :)

<= span>
--=C2= =A0
Harshal Dhumal
Sr. Software Engineer<= /div>

EnterpriseDB India:=C2=A0http://www.enterprisedb.com
Th= e Enterprise PostgreSQL Company

On Mon, Jun 26, 2017 at 5:22 P= M, Dave Page <dpage@pgadmin.org> wrote:
I'm sorry, it needs rebasing again. If= you can do it quickly, I'll
make sure it's the next patch I work on in that area.

Thanks.

On Mon, Jun 26, 2017 at 5:16 AM, Harshal Dhumal
<harshal.dhumal@enterprisedb= .com> wrote:
> Hi Dave,
>
> Please find updated rebased patch for RM2137
>
> On Fri, Jun 23, 2017 at 9:00 PM, Dave Page <dpage@pgadmin.org> wrote:
>>
>> Hi Harshal,
>>
>> When can we expect an updated version of this patch? I think it= 9;s
>> important to get this into the next release.
>>
>> Thanks!
>>
>> On Fri, Jun 16, 2017 at 10:55 AM, Dave Page <dpage@pgadmin.org> wrote:
>> > Hi,
>> >
>> > That's better - the failures are far less random now :-).= I got the
>> > following two though, on both PG and EPAS 9.5:
>> >
>> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D
>> > ERROR: runTest
>> > (pgadmin.feature_tests.query_tool_tests.QueryToolFeature= Test)
>> > Query tool feature test
>> > --------------------------------------------------------= --------------
>> > Traceback (most recent call last):
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/git/pgadmin4/web/pgadmin/feature_test= s/query_tool_tests.py",
>> > line 95, in runTest
>> >=C2=A0 =C2=A0 =C2=A0self._query_tool_explain_analyze_buff= ers()
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/git/pgadmin4/web/pgadmin/feature_test= s/query_tool_tests.py",
>> > line 443, in _query_tool_explain_analyze_buffers
>> >=C2=A0 =C2=A0 =C2=A0canvas.find_element_by_xpath("//= *[contains(string(), 'Shared Read
>> > Blocks')]")
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/s= ite-packages/selenium/webdriver/remote/webelement.py",
>> > line 260, in find_element_by_xpath
>> >=C2=A0 =C2=A0 =C2=A0return self.find_element(by=3DBy.XPATH, va= lue=3Dxpath)
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/s= ite-packages/selenium/webdriver/remote/webelement.py",
>> > line 508, in find_element
>> >=C2=A0 =C2=A0 =C2=A0{"using": by, "value":= value})['value']
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/s= ite-packages/selenium/webdriver/remote/webelement.py",
>> > line 491, in _execute
>> >=C2=A0 =C2=A0 =C2=A0return self._parent.execute(command, param= s)
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/s= ite-packages/selenium/webdriver/remote/webdriver.py",
>> > line 238, in execute
>> >=C2=A0 =C2=A0 =C2=A0self.error_handler.check_response(res= ponse)
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/s= ite-packages/selenium/webdriver/remote/errorhandler.py",
>> > line 193, in check_response
>> >=C2=A0 =C2=A0 =C2=A0raise exception_class(message, screen, sta= cktrace)
>> > NoSuchElementException: Message: no such element: Unable to l= ocate
>> > element: {"method":"xpath","selector= ":"//*[contains(string(), 'Shared
>> > Read Blocks')]"}
>> >=C2=A0 =C2=A0(Session info: chrome=3D58.0.3029.110)
>> >=C2=A0 =C2=A0(Driver info: chromedriver=3D2.29.461585
>> > (0be2cd95f834e9ee7c46bcc7cf405b483f5ae83b),platform=3DMa= c OS X 10.12.3
>> > x86_64)
>> >
>> >
>> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D
>> > ERROR: runTest
>> > (pgadmin.feature_tests.view_data_dml_queries.CheckForVie= wDataTest)
>> > Validate Insert, Update operations in View data with given te= st data
>> > --------------------------------------------------------= --------------
>> > Traceback (most recent call last):
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/git/pgadmin4/web/pgadmin/feature_test= s/view_data_dml_queries.py",
>> > line 104, in runTest
>> >=C2=A0 =C2=A0 =C2=A0self._add_row()
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/git/pgadmin4/web/pgadmin/feature_test= s/view_data_dml_queries.py",
>> > line 255, in _add_row
>> >=C2=A0 =C2=A0 =C2=A0self._update_cell(cell_xpath, config_data[= str(idx)])
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/git/pgadmin4/web/pgadmin/feature_test= s/view_data_dml_queries.py",
>> > line 164, in _update_cell
>> >=C2=A0 =C2=A0 =C2=A0cell_el =3D self.page.find_by_xpath(xpath)=
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/git/pgadmin4/web/regression/feature_u= tils/pgadmin_page.py",
>> > line 122, in find_by_xpath
>> >=C2=A0 =C2=A0 =C2=A0return self.wait_for_element(lambda driver= :
>> > driver.find_element_by_xpath(xpath))
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/git/pgadmin4/web/regression/feature_u= tils/pgadmin_page.py",
>> > line 205, in wait_for_element
>> >=C2=A0 =C2=A0 =C2=A0return self._wait_for("element to exi= st", element_if_it_exists)
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/git/pgadmin4/web/regression/feature_u= tils/pgadmin_page.py",
>> > line 255, in _wait_for
>> >=C2=A0 =C2=A0 =C2=A0"Timed out waiting for " + waiti= ng_for_message)
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/s= ite-packages/selenium/webdriver/support/wait.py",
>> > line 71, in until
>> >=C2=A0 =C2=A0 =C2=A0value =3D method(self._driver)
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/git/pgadmin4/web/regression/feature_u= tils/pgadmin_page.py",
>> > line 200, in element_if_it_exists
>> >=C2=A0 =C2=A0 =C2=A0if element.is_displayed() and element.is_e= nabled():
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/s= ite-packages/selenium/webdriver/remote/webelement.py",
>> > line 358, in is_displayed
>> >=C2=A0 =C2=A0 =C2=A0return self._execute(Command.IS_ELEME= NT_DISPLAYED)['value']
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/s= ite-packages/selenium/webdriver/remote/webelement.py",
>> > line 491, in _execute
>> >=C2=A0 =C2=A0 =C2=A0return self._parent.execute(command, param= s)
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/s= ite-packages/selenium/webdriver/remote/webdriver.py",
>> > line 238, in execute
>> >=C2=A0 =C2=A0 =C2=A0self.error_handler.check_response(res= ponse)
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/s= ite-packages/selenium/webdriver/remote/errorhandler.py",
>> > line 193, in check_response
>> >=C2=A0 =C2=A0 =C2=A0raise exception_class(message, screen, sta= cktrace)
>> > StaleElementReferenceException: Message: stale element r= eference:
>> > element is not attached to the page document
>> >=C2=A0 =C2=A0(Session info: chrome=3D58.0.3029.110)
>> >=C2=A0 =C2=A0(Driver info: chromedriver=3D2.29.461585
>> > (0be2cd95f834e9ee7c46bcc7cf405b483f5ae83b),platform=3DMa= c OS X 10.12.3
>> > x86_64)
>> >
>
>
> I checked my feature test cases for any database server version/type (= PG,
> EPAS) specific failures and I found that test cases are working fine o= n all
> of them. However I have slightly modified test case to overcome above<= br> > mentioned failures.
>
>>
>> >
>> > On 9.4 everything passes. On 9.6, I get one failure:
>> >
>> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D
>> > FAIL: runTest
>> > (pgadmin.feature_tests.view_data_dml_queries.CheckForVie= wDataTest)
>> > Validate Insert, Update operations in View data with given te= st data
>> > --------------------------------------------------------= --------------
>> > Traceback (most recent call last):
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/git/pgadmin4/web/pgadmin/feature_test= s/view_data_dml_queries.py",
>> > line 105, in runTest
>> >=C2=A0 =C2=A0 =C2=A0self._verify_row_data(True)
>> >=C2=A0 =C2=A0File
>> > "/Users/dpage/git/pgadmin4/web/pgadmin/feature_test= s/view_data_dml_queries.py",
>> > line 282, in _verify_row_data
>> >=C2=A0 =C2=A0 =C2=A0self.assertEquals(cells[idx], config_data[= str(idx)][1])
>> > AssertionError: u'[default]' !=3D u'1'
>> > - [default]
>> > + 1
>> >
>
> I guess Khushboo has fixed this recently.
>
>
>>
>> > Screenshots attached.
>> >
>> > On Fri, Jun 16, 2017 at 7:54 AM, Harshal Dhumal
>> > <harshal.dhumal@enterprisedb.com> wrote:
>> >> Hi Dave,
>> >>
>> >> Please find attached patch where I have added timeout of = 2 seconds
>> >> before
>> >> selecting object menu in connect to server function.
>> >>
>> >> Note: Apply this patch on top of previous patch for on de= mand loading
>> >> feature.
>> >>
>> >>
>> >> --
>> >> Harshal Dhumal
>> >> Sr. Software Engineer
>> >>
>> >> EnterpriseDB India: http://www.enterprisedb.com
>> >> The Enterprise PostgreSQL Company
>> >>
>> >> On Fri, Jun 16, 2017 at 2:25 AM, Dave Page <dpage@pgadmin.org> wrot= e:
>> >>>
>> >>> Sounds good, thanks.
>> >>>
>> >>> On Thu, Jun 15, 2017 at 9:54 PM, Harshal Dhumal
>> >>> <harshal.dhumal@enterprisedb.com> wrote:
>> >>> > Hi
>> >>> >
>> >>> > On Fri, Jun 16, 2017 at 2:07 AM, Dave Page <<= a href=3D"mailto:dpage@pgadmin.org" target=3D"_blank">dpage@pgadmin.org= >
>> >>> > wrote:
>> >>> >>
>> >>> >> Hi
>> >>> >>
>> >>> >> On Thu, Jun 15, 2017 at 9:30 PM, Harshal Dhu= mal
>> >>> >> <harshal.dhumal@enterprisedb.com> w= rote:
>> >>> >> > Hi Dave,
>> >>> >> >
>> >>> >> > Please find attached updated patch.
>> >>> >> >
>> >>> >> > On Thu, Jun 15, 2017 at 3:58 PM, Dave P= age <dpage@pgadmi= n.org>
>> >>> >> > wrote:
>> >>> >> >>
>> >>> >> >> Hi
>> >>> >> >>
>> >>> >> >> On Wed, Jun 14, 2017 at 11:36 PM, H= arshal Dhumal
>> >>> >> >> <harshal.dhumal@enterprisedb.com<= /a>> wrote:
>> >>> >> >>>
>> >>> >> >>> Hi Dave,
>> >>> >> >>>
>> >>> >> >>> Please find rebased patch for R= M2137.
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> Looking very good. The only issues = I see are:
>> >>> >> >>
>> >>> >> >> - The row headers should auto-size = such that they can display
>> >>> >> >> the
>> >>> >> >> row
>> >>> >> >> numbers if the last row was display= ed. E.g. if there are 12345
>> >>> >> >> rows
>> >>> >> >> in
>> >>> >> >> total, then the row header should b= e sized to display 5 digits.
>> >>> >> >>
>> >>> >> > Fixed.
>> >>> >> >
>> >>> >> >
>> >>> >> >>
>> >>> >> >> - The tests are comprehensive, whic= h is awesome. However, every
>> >>> >> >> time
>> >>> >> >> I
>> >>> >> >> ran
>> >>> >> >> them, at least one of the feature t= ests failed. Unfortunately,
>> >>> >> >> it
>> >>> >> >> was a
>> >>> >> >> different one each time. In the las= t two runs, I got:
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>> >>> >> >> ERROR: runTest
>> >>> >> >> (pgadmin.feature_tests.query_t= ool_tests.QueryToolFeatureTest)
>> >>> >> >> Query tool feature test
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> ------------------------------= ----------------------------------------
>> >>> >> >> Traceback (most recent call last):<= br> >> >>> >> >>=C2=A0 =C2=A0File
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> "/Users/dpage/git/pgadmin4/web= /regression/feature_utils/base_feature_test.py",
>> >>> >> >> line 40, in setUp
>> >>> >> >>=C2=A0 =C2=A0 =C2=A0self.before() >> >>> >> >>=C2=A0 =C2=A0File
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> "/Users/dpage/git/pgadmin4/web= /pgadmin/feature_tests/query_tool_tests.py",
>> >>> >> >> line 40, in before
>> >>> >> >>=C2=A0 =C2=A0 =C2=A0self._connects_t= o_server()
>> >>> >> >>=C2=A0 =C2=A0File
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> "/Users/dpage/git/pgadmin4/web= /pgadmin/feature_tests/query_tool_tests.py",
>> >>> >> >> line 144, in _connects_to_server >> >>> >> >>=C2=A0 =C2=A0 =C2=A0self.page.driver= .find_element_by_link_text("Create"))\
>> >>> >> >>=C2=A0 =C2=A0File
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> "/Users/dpage/.virtualenvs/pga= dmin4/lib/python2.7/site-packages/selenium/webdriver/remote/= webdriver.py",
>> >>> >> >> line 319, in find_element_by_link_t= ext
>> >>> >> >>=C2=A0 =C2=A0 =C2=A0return self.find= _element(by=3DBy.LINK_TEXT, value=3Dlink_text)
>> >>> >> >>=C2=A0 =C2=A0File
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> "/Users/dpage/.virtualenvs/pga= dmin4/lib/python2.7/site-packages/selenium/webdriver/remote/= webdriver.py",
>> >>> >> >> line 756, in find_element
>> >>> >> >>=C2=A0 =C2=A0 =C2=A0'value':= value})['value']
>> >>> >> >>=C2=A0 =C2=A0File
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> "/Users/dpage/.virtualenvs/pga= dmin4/lib/python2.7/site-packages/selenium/webdriver/remote/= webdriver.py",
>> >>> >> >> line 238, in execute
>> >>> >> >>=C2=A0 =C2=A0 =C2=A0self.error_handl= er.check_response(response)
>> >>> >> >>=C2=A0 =C2=A0File
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> "/Users/dpage/.virtualenvs/pga= dmin4/lib/python2.7/site-packages/selenium/webdriver/remote/= errorhandler.py",
>> >>> >> >> line 193, in check_response
>> >>> >> >>=C2=A0 =C2=A0 =C2=A0raise exception_= class(message, screen, stacktrace)
>> >>> >> >> NoSuchElementException: Message: no= such element: Unable to
>> >>> >> >> locate
>> >>> >> >> element: {"method":"= link text","selector":"Create"}
>> >>> >> >>=C2=A0 =C2=A0(Session info: chrome= =3D58.0.3029.110)
>> >>> >> >>=C2=A0 =C2=A0(Driver info: chromedri= ver=3D2.29.461585
>> >>> >> >> (0be2cd95f834e9ee7c46bcc7cf405= b483f5ae83b),platform=3DMac OS X
>> >>> >> >> 10.12.3
>> >>> >> >> x86_64)
>> >>> >> >>
>> >>> >> > I checked code from _connects_to_server= function which is common
>> >>> >> > in
>> >>> >> > all
>> >>> >> > features test cases. I didn't find = anything wrong with this. If
>> >>> >> > there
>> >>> >> > is
>> >>> >> > a
>> >>> >> > bug in this function then all feature t= est must fail.
>> >>> >> > Let me know if you are getting failure = consistently in
>> >>> >> > _connects_to_server
>> >>> >> > function.
>> >>> >>
>> >>> >> I wondered if that one is a race condition. = Do we need a short
>> >>> >> delay
>> >>> >> before clicking the Object menu? I have seen= this occasionally
>> >>> >> before.
>> >>> >
>> >>> >
>> >>> > OK. In that case let's try putting 1-2 secon= d delay and observer
>> >>> > behaviour.
>> >>> > I'll send separate patch for this tomorrow a= s this is not related to
>> >>> > on
>> >>> > demand query result feature or its test cases. >> >>> >
>> >>> >>
>> >>> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>> >>> >> >> ERROR: runTest
>> >>> >> >> (pgadmin.feature_tests.query_t= ool_tests.QueryToolFeatureTest)
>> >>> >> >> Query tool feature test
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> ------------------------------= ----------------------------------------
>> >>> >> >> Traceback (most recent call last):<= br> >> >>> >> >>=C2=A0 =C2=A0File
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> "/Users/dpage/git/pgadmin4/web= /pgadmin/feature_tests/query_tool_tests.py",
>> >>> >> >> line 119, in runTest
>> >>> >> >>=C2=A0 =C2=A0 =C2=A0self._query_tool= _auto_rollback_enabled()
>> >>> >> >>=C2=A0 =C2=A0File
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> "/Users/dpage/git/pgadmin4/web= /pgadmin/feature_tests/query_tool_tests.py",
>> >>> >> >> line 697, in _query_tool_auto_rollb= ack_enabled
>> >>> >> >>=C2=A0 =C2=A0 =C2=A0'//div[conta= ins(@class, "sql-editor-message") and
>> >>> >> >> contains(string(),
>> >>> >> >> "COMMIT")]'
>> >>> >> >>=C2=A0 =C2=A0File
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> "/Users/dpage/.virtualenvs/pga= dmin4/lib/python2.7/site-packages/selenium/webdriver/remote/= webdriver.py",
>> >>> >> >> line 295, in find_element_by_xpath<= br> >> >>> >> >>=C2=A0 =C2=A0 =C2=A0return self.find= _element(by=3DBy.XPATH, value=3Dxpath)
>> >>> >> >>=C2=A0 =C2=A0File
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> "/Users/dpage/.virtualenvs/pga= dmin4/lib/python2.7/site-packages/selenium/webdriver/remote/= webdriver.py",
>> >>> >> >> line 756, in find_element
>> >>> >> >>=C2=A0 =C2=A0 =C2=A0'value':= value})['value']
>> >>> >> >>=C2=A0 =C2=A0File
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> "/Users/dpage/.virtualenvs/pga= dmin4/lib/python2.7/site-packages/selenium/webdriver/remote/= webdriver.py",
>> >>> >> >> line 238, in execute
>> >>> >> >>=C2=A0 =C2=A0 =C2=A0self.error_handl= er.check_response(response)
>> >>> >> >>=C2=A0 =C2=A0File
>> >>> >> >>
>> >>> >> >>
>> >>> >> >>
>> >>> >> >> "/Users/dpage/.virtualenvs/pga= dmin4/lib/python2.7/site-packages/selenium/webdriver/remote/= errorhandler.py",
>> >>> >> >> line 193, in check_response
>> >>> >> >>=C2=A0 =C2=A0 =C2=A0raise exception_= class(message, screen, stacktrace)
>> >>> >> >> NoSuchElementException: Message: no= such element: Unable to
>> >>> >> >> locate
>> >>> >> >> element: {"method":"= xpath","selector":"//div[contains(@class,
>> >>> >> >> "sql-editor-message") and= contains(string(), "COMMIT")]"}
>> >>> >> >>=C2=A0 =C2=A0(Session info: chrome= =3D58.0.3029.110)
>> >>> >> >>=C2=A0 =C2=A0(Driver info: chromedri= ver=3D2.29.461585
>> >>> >> >> (0be2cd95f834e9ee7c46bcc7cf405= b483f5ae83b),platform=3DMac OS X
>> >>> >> >> 10.12.3
>> >>> >> >> x86_64)
>> >>> >> >>
>> >>> >> > I have updated Auto rollback enabled te= st in this patch.
>> >>> >> >
>> >>> >> >>
>> >>> >> >> Relevant screenshots attached.
>> >>> >> >>
>> >>> >> >> - Can you tidy up the regression ou= tput a little please? Instead
>> >>> >> >> of:
>> >>> >> >>
>> >>> >> >> -------
>> >>> >> >> runTest
>> >>> >> >> (pgadmin.feature_tests.query_t= ool_tests.QueryToolFeatureTest)
>> >>> >> >> Query tool feature test ... On dema= nd result set on scrolling...
>> >>> >> >> OK.
>> >>> >> >>
>> >>> >> >> On demand result set on grid select= all...
>> >>> >> >> OK.
>> >>> >> >>
>> >>> >> >> On demand result set on column sele= ct all...
>> >>> >> >> OK.
>> >>> >> >>
>> >>> >> >> Explain query...
>> >>> >> >> OK.
>> >>> >> >>
>> >>> >> >> Explain query with verbose...
>> >>> >> >> OK.
>> >>> >> >>
>> >>> >> >> Explain query with costs...
>> >>> >> >> OK.
>> >>> >> >>
>> >>> >> >> Explain analyze query...
>> >>> >> >> OK.
>> >>> >> >>
>> >>> >> >> Explain analyze query with buffers.= ..
>> >>> >> >> OK.
>> >>> >> >>
>> >>> >> >> Explain analyze query with timing..= .
>> >>> >> >> OK.
>> >>> >> >>
>> >>> >> >> Auto commit disabled...
>> >>> >> >> OK.
>> >>> >> >>
>> >>> >> >> Auto commit enabled...
>> >>> >> >> OK.
>> >>> >> >>
>> >>> >> >> Auto rollback enabled...
>> >>> >> >> ERROR
>> >>> >> >> -------
>> >>> >> >>
>> >>> >> >> Something like:
>> >>> >> >>
>> >>> >> >> -------
>> >>> >> >> runTest
>> >>> >> >> (pgadmin.feature_tests.query_t= ool_tests.QueryToolFeatureTest)
>> >>> >> >> Query tool feature test ...
>> >>> >> >> On demand result set on scrolling..= . OK.
>> >>> >> >> On demand result set on grid select= all... OK.
>> >>> >> >> On demand result set on column sele= ct all... OK.
>> >>> >> >> Explain query... OK.
>> >>> >> >> Explain query with verbose... OK. >> >>> >> >> Explain query with costs... OK.
>> >>> >> >> Explain analyze query... OK.
>> >>> >> >> Explain analyze query with buffers.= .. OK.
>> >>> >> >> Explain analyze query with timing..= . OK.
>> >>> >> >> Auto commit disabled... OK.
>> >>> >> >> Auto commit enabled... OK.
>> >>> >> >> Auto rollback enabled... ERROR
>> >>> >> >> --------
>> >>> >> >>
>> >>> >> > Fixed.
>> >>> >> >
>> >>> >> >
>> >>> >> >>
>> >>> >> >> Thanks!
>> >>> >> >>
>> >>> >> >> --
>> >>> >> >> Dave Page
>> >>> >> >> Blog:
http://pgsnake.blogspot.com=
>> >>> >> >> Twitter: @pgsnake
>> >>> >> >>
>> >>> >> >> EnterpriseDB UK: http://www.enter= prisedb.com
>> >>> >> >> The Enterprise PostgreSQL Company >> >>> >> >
>> >>> >> >
>> >>> >>
>> >>> >>
>> >>> >>
>> >>> >> --
>> >>> >> Dave Page
>> >>> >> Blog: http://pgsnake.blogspot.com
>> >>> >> Twitter: @pgsnake
>> >>> >>
>> >>> >> EnterpriseDB UK: http://www.enterprisedb.c= om
>> >>> >> The Enterprise PostgreSQL Company
>> >>> >
>> >>> >
>> >>>
>> >>>
>> >>>
>> >>> --
>> >>> 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
>>
>>
>>
>> --
>> 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





--






--
=

--f403045f6ca4d87dae055303240a-- --f403045f6ca4d87db1055303240b Content-Type: image/png; name="View_Edit_menu.png" Content-Disposition: inline; filename="View_Edit_menu.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: ii_15cee5e368c1daca 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 --f403045f6ca4d87db1055303240b Content-Type: image/png; name="auto_resize_row_number_column.png" Content-Disposition: inline; filename="auto_resize_row_number_column.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: ii_15cee5c8c7b03455 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 --f403045f6ca4d87db1055303240b-- --f403045f6ca4d87db3055303240c Content-Type: text/x-patch; charset="US-ASCII"; name="RM2137_minor_issue_fixes.patch" Content-Disposition: attachment; filename="RM2137_minor_issue_fixes.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j4gw41890 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvdmlld19kYXRhX2RtbF9xdWVy aWVzLnB5IGIvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy92aWV3X2RhdGFfZG1sX3F1ZXJpZXMu cHkKaW5kZXggYTZiYzVhYS4uNjQ1NGEzZSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vZmVhdHVy ZV90ZXN0cy92aWV3X2RhdGFfZG1sX3F1ZXJpZXMucHkKKysrIGIvd2ViL3BnYWRtaW4vZmVhdHVy ZV90ZXN0cy92aWV3X2RhdGFfZG1sX3F1ZXJpZXMucHkKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3Mg Q2hlY2tGb3JWaWV3RGF0YVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAiIiIKIAogICAgIHNj ZW5hcmlvcyA9IFsKLSAgICAgICAgKCJWYWxpZGF0ZSBJbnNlcnQsIFVwZGF0ZSBvcGVyYXRpb25z IGluIFZpZXcgZGF0YSB3aXRoIGdpdmVuIHRlc3QgIgorICAgICAgICAoIlZhbGlkYXRlIEluc2Vy dCwgVXBkYXRlIG9wZXJhdGlvbnMgaW4gVmlldy9FZGl0IGRhdGEgd2l0aCBnaXZlbiB0ZXN0ICIK ICAgICAgICAgICJkYXRhIiwKICAgICAgICAgIGRpY3QoKSkKICAgICBdCkBAIC05Nyw3ICs5Nyw3 IEBAIENSRUFURSBUQUJMRSBwdWJsaWMuZGVmYXVsdHMKICAgICAgICAgc2VsZi5wYWdlLmFkZF9z ZXJ2ZXIoc2VsZi5zZXJ2ZXIpCiAgICAgICAgIHNlbGYuX3RhYmxlc19ub2RlX2V4cGFuZGFibGUo KQogICAgICAgICBzZWxmLnBhZ2Uuc2VsZWN0X3RyZWVfaXRlbSgnZGVmYXVsdHMnKQotICAgICAg ICAjIE9wZW4gT2JqZWN0IC0+IFZpZXcgZGF0YQorICAgICAgICAjIE9wZW4gT2JqZWN0IC0+IFZp ZXcvRWRpdCBkYXRhCiAgICAgICAgIHNlbGYuX3ZpZXdfZGF0YV9ncmlkKCkKIAogICAgICAgICAj IFJ1biB0ZXN0IHRvIGluc2VydCBhIG5ldyByb3cgaW4gdGFibGUgd2l0aCBkZWZhdWx0IHZhbHVl cwpAQCAtMjAzLDkgKzIwMyw5IEBAIENSRUFURSBUQUJMRSBwdWJsaWMuZGVmYXVsdHMKICAgICAg ICAgc2VsZi5wYWdlLmRyaXZlci5maW5kX2VsZW1lbnRfYnlfbGlua190ZXh0KCJPYmplY3QiKS5j bGljaygpCiAgICAgICAgIEFjdGlvbkNoYWlucyhzZWxmLnBhZ2UuZHJpdmVyKSBcCiAgICAgICAg ICAgICAubW92ZV90b19lbGVtZW50KAotICAgICAgICAgICAgICAgIHNlbGYucGFnZS5kcml2ZXIu ZmluZF9lbGVtZW50X2J5X2xpbmtfdGV4dCgiVmlldyBEYXRhIikpIFwKKyAgICAgICAgICAgICAg ICBzZWxmLnBhZ2UuZHJpdmVyLmZpbmRfZWxlbWVudF9ieV9saW5rX3RleHQoIlZpZXcvRWRpdCBE YXRhIikpIFwKICAgICAgICAgICAgIC5wZXJmb3JtKCkKLSAgICAgICAgc2VsZi5wYWdlLmZpbmRf YnlfcGFydGlhbF9saW5rX3RleHQoIlZpZXcgQWxsIFJvd3MiKS5jbGljaygpCisgICAgICAgIHNl bGYucGFnZS5maW5kX2J5X3BhcnRpYWxfbGlua190ZXh0KCJBbGwgUm93cyIpLmNsaWNrKCkKIAog ICAgICAgICAjIHdhaXQgdW50aWwgZGF0YWdyaWQgZnJhbWUgaXMgbG9hZGVkLgogICAgICAgICBz ZWxmLnBhZ2UuY2xpY2tfdGFiKCdFZGl0IERhdGEgLScpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi90b29scy9kYXRhZ3JpZC90ZW1wbGF0ZXMvZGF0YWdyaWQvanMvZGF0YWdyaWQuanMgYi93ZWIv cGdhZG1pbi90b29scy9kYXRhZ3JpZC90ZW1wbGF0ZXMvZGF0YWdyaWQvanMvZGF0YWdyaWQuanMK aW5kZXggYWEwNGMyZi4uMmQ1NzE3ZCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvZGF0 YWdyaWQvdGVtcGxhdGVzL2RhdGFncmlkL2pzL2RhdGFncmlkLmpzCisrKyBiL3dlYi9wZ2FkbWlu L3Rvb2xzL2RhdGFncmlkL3RlbXBsYXRlcy9kYXRhZ3JpZC9qcy9kYXRhZ3JpZC5qcwpAQCAtODcs MjYgKzg3LDI2IEBAIGRlZmluZShbCiAgICAgICAgICAgICBuYW1lOiAndmlld19hbGxfcm93c19j b250ZXh0XycgKyBzdXBwb3J0ZWRfbm9kZXNbaWR4XSwKICAgICAgICAgICAgIG5vZGU6IHN1cHBv cnRlZF9ub2Rlc1tpZHhdLCBtb2R1bGU6IHRoaXMsIGRhdGE6IHttbnVpZDogM30sCiAgICAgICAg ICAgICBhcHBsaWVzOiBbJ2NvbnRleHQnLCAnb2JqZWN0J10sIGNhbGxiYWNrOiAnc2hvd19kYXRh X2dyaWQnLCBlbmFibGU6IHZpZXdfbWVudV9lbmFibGVkLAotICAgICAgICAgICAgY2F0ZWdvcnk6 ICd2aWV3X2RhdGEnLCBwcmlvcml0eTogMTAxLCBsYWJlbDogZ2V0dGV4dCgnVmlldyBBbGwgUm93 cycpCisgICAgICAgICAgICBjYXRlZ29yeTogJ3ZpZXdfZGF0YScsIHByaW9yaXR5OiAxMDEsIGxh YmVsOiBnZXR0ZXh0KCdBbGwgUm93cycpCiAgICAgICAgICAgfSx7CiAgICAgICAgICAgICBuYW1l OiAndmlld19maXJzdF8xMDBfcm93c19jb250ZXh0XycgKyBzdXBwb3J0ZWRfbm9kZXNbaWR4XSwK ICAgICAgICAgICAgIG5vZGU6IHN1cHBvcnRlZF9ub2Rlc1tpZHhdLCBtb2R1bGU6IHRoaXMsIGRh dGE6IHttbnVpZDogMX0sCiAgICAgICAgICAgICBhcHBsaWVzOiBbJ2NvbnRleHQnLCAnb2JqZWN0 J10sIGNhbGxiYWNrOiAnc2hvd19kYXRhX2dyaWQnLCBlbmFibGU6IHZpZXdfbWVudV9lbmFibGVk LAotICAgICAgICAgICAgY2F0ZWdvcnk6ICd2aWV3X2RhdGEnLCBwcmlvcml0eTogMTAyLCBsYWJl bDogZ2V0dGV4dCgnVmlldyBGaXJzdCAxMDAgUm93cycpCisgICAgICAgICAgICBjYXRlZ29yeTog J3ZpZXdfZGF0YScsIHByaW9yaXR5OiAxMDIsIGxhYmVsOiBnZXR0ZXh0KCdGaXJzdCAxMDAgUm93 cycpCiAgICAgICAgICAgfSx7CiAgICAgICAgICAgICBuYW1lOiAndmlld19sYXN0XzEwMF9yb3dz X2NvbnRleHRfJyArIHN1cHBvcnRlZF9ub2Rlc1tpZHhdLAogICAgICAgICAgICAgbm9kZTogc3Vw cG9ydGVkX25vZGVzW2lkeF0sIG1vZHVsZTogdGhpcywgZGF0YToge21udWlkOiAyfSwKICAgICAg ICAgICAgIGFwcGxpZXM6IFsnY29udGV4dCcsICdvYmplY3QnXSwgY2FsbGJhY2s6ICdzaG93X2Rh dGFfZ3JpZCcsIGVuYWJsZTogdmlld19tZW51X2VuYWJsZWQsCi0gICAgICAgICAgICBjYXRlZ29y eTogJ3ZpZXdfZGF0YScsIHByaW9yaXR5OiAxMDMsIGxhYmVsOiBnZXR0ZXh0KCdWaWV3IExhc3Qg MTAwIFJvd3MnKQorICAgICAgICAgICAgY2F0ZWdvcnk6ICd2aWV3X2RhdGEnLCBwcmlvcml0eTog MTAzLCBsYWJlbDogZ2V0dGV4dCgnTGFzdCAxMDAgUm93cycpCiAgICAgICAgICAgfSx7CiAgICAg ICAgICAgICBuYW1lOiAndmlld19maWx0ZXJlZF9yb3dzX2NvbnRleHRfJyArIHN1cHBvcnRlZF9u b2Rlc1tpZHhdLAogICAgICAgICAgICAgbm9kZTogc3VwcG9ydGVkX25vZGVzW2lkeF0sIG1vZHVs ZTogdGhpcywgZGF0YToge21udWlkOiA0fSwKICAgICAgICAgICAgIGFwcGxpZXM6IFsnY29udGV4 dCcsICdvYmplY3QnXSwgY2FsbGJhY2s6ICdzaG93X2ZpbHRlcmVkX3JvdycsIGVuYWJsZTogdmll d19tZW51X2VuYWJsZWQsCi0gICAgICAgICAgICBjYXRlZ29yeTogJ3ZpZXdfZGF0YScsIHByaW9y aXR5OiAxMDQsIGxhYmVsOiBnZXR0ZXh0KCdWaWV3IEZpbHRlcmVkIFJvd3MuLi4nKQorICAgICAg ICAgICAgY2F0ZWdvcnk6ICd2aWV3X2RhdGEnLCBwcmlvcml0eTogMTA0LCBsYWJlbDogZ2V0dGV4 dCgnRmlsdGVyZWQgUm93cy4uLicpCiAgICAgICAgICB9KTsKICAgICAgICAgfQogCi0gICAgICAg IHBnQWRtaW4uQnJvd3Nlci5hZGRfbWVudV9jYXRlZ29yeSgndmlld19kYXRhJywgZ2V0dGV4dCgn VmlldyBEYXRhJyksIDEwMCwgJ2ZhIGZhLXRoJyk7CisgICAgICAgIHBnQWRtaW4uQnJvd3Nlci5h ZGRfbWVudV9jYXRlZ29yeSgndmlld19kYXRhJywgZ2V0dGV4dCgnVmlldy9FZGl0IERhdGEnKSwg MTAwLCAnZmEgZmEtdGgnKTsKICAgICAgICAgcGdBZG1pbi5Ccm93c2VyLmFkZF9tZW51cyhtZW51 cyk7CiAKICAgICAgICAgLy8gQ3JlYXRpbmcgYSBuZXcgcGdBZG1pbi5Ccm93c2VyIGZyYW1lIHRv IHNob3cgdGhlIGRhdGEuCkBAIC0yNjMsNyArMjYzLDcgQEAgZGVmaW5lKFsKICAgICAgICAgICAg ICAgICB0aGlzLnNldENvbnRlbnQoJGNvbnRlbnQuZ2V0KDApKTsKIAogICAgICAgICAgICAgICAg IC8vIEFwcGx5IENvZGVNaXJyb3IgdG8gZmlsdGVyIHRleHQgYXJlYS4KLSAgICAgICAgICAgICAg ICB0aGlzLmZpbHRlcl9vYmogPSBDb2RlTWlycm9yLmZyb21UZXh0QXJlYSgkc3FsX2ZpbHRlci5n ZXQoMCksIHsKKyAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcl9vYmogPSBjb2RlbWlycm9yLmZy b21UZXh0QXJlYSgkc3FsX2ZpbHRlci5nZXQoMCksIHsKICAgICAgICAgICAgICAgICAgIGxpbmVO dW1iZXJzOiB0cnVlLAogICAgICAgICAgICAgICAgICAgaW5kZW50VW5pdDogNCwKICAgICAgICAg ICAgICAgICAgIG1vZGU6ICJ0ZXh0L3gtcGdzcWwiLApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v dG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9jc3Mvc3FsZWRpdG9yLmNzcyBiL3dlYi9wZ2FkbWluL3Rv b2xzL3NxbGVkaXRvci9zdGF0aWMvY3NzL3NxbGVkaXRvci5jc3MKaW5kZXggOTBhZTI1NS4uNTI4 NTQxZCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9jc3Mv c3FsZWRpdG9yLmNzcworKysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2Nz cy9zcWxlZGl0b3IuY3NzCkBAIC00NjIsNyArNDYyLDExIEBAIGlucHV0LmVkaXRvci1jaGVja2Jv eDpmb2N1cyB7CiAKIC5zbGljay1jZWxsIHNwYW5bZGF0YS1jZWxsLXR5cGU9InJvdy1oZWFkZXIt c2VsZWN0b3IiXSB7CiAgIGRpc3BsYXk6IGJsb2NrOwotICB0ZXh0LWFsaWduOiByaWdodDsKKyAg dGV4dC1hbGlnbjogY2VudGVyOworfQorCisuc2xpY2stY2VsbC5zZWxlY3RlZCBzcGFuW2RhdGEt Y2VsbC10eXBlPSJyb3ctaGVhZGVyLXNlbGVjdG9yIl0geworICBjb2xvcjogd2hpdGU7CiB9CiAK ICNkYXRhZ3JpZCBkaXYuc2xpY2staGVhZGVyLnVpLXN0YXRlLWRlZmF1bHQgewpAQCAtNDg2LDkg KzQ5MCwxMiBAQCBpbnB1dC5lZGl0b3ItY2hlY2tib3g6Zm9jdXMgewogCiAuc2VsZWN0LWFsbC1p Y29uIHsKICAgbWFyZ2luLWxlZnQ6IDlweDsKLSAgbWFyZ2luLXJpZ2h0OiA5cHg7CisgIG1hcmdp bi1yaWdodDogNHB4OwogICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tOwotICBmbG9hdDogcmlnaHQ7 CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgYm90dG9tOiA0cHg7CisgIHJpZ2h0OiAwOworfQog fQogCiAuc2xpY2stY2VsbCwgLnNsaWNrLWhlYWRlcnJvdy1jb2x1bW4gewpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3RlbXBsYXRlcy9zcWxlZGl0b3IvanMvc3FsZWRp dG9yLmpzIGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3RlbXBsYXRlcy9zcWxlZGl0b3Iv anMvc3FsZWRpdG9yLmpzCmluZGV4IDhkNzZmZWQuLjQ0YzlmMjUgMTAwNjQ0Ci0tLSBhL3dlYi9w Z2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZW1wbGF0ZXMvc3FsZWRpdG9yL2pzL3NxbGVkaXRvci5q cworKysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVtcGxhdGVzL3NxbGVkaXRvci9q cy9zcWxlZGl0b3IuanMKQEAgLTMwMDMsNyArMzAwMyw4IEBAIGRlZmluZShbCiAgICAgICAgICAg ICAgIH0pOwogICAgICAgICAgICAgICBkYXRhVmlldy5lbmRVcGRhdGUoKTsKICAgICAgICAgICAg ICAgZ3JpZC51cGRhdGVSb3dDb3VudCgpOwotICAgICAgICAgICAgICBncmlkLnJlbmRlcigpOwor ICAgICAgICAgICAgICAvLyBQYXN0ZWQgcm93L3MgYWx3YXlzIGFwcGVuZCBzbyBicmluZyBsYXN0 IHJvdyBpbiB2aWV3IHBvcnQuCisgICAgICAgICAgICAgIGdyaWQuc2Nyb2xsUm93SW50b1ZpZXco ZGF0YVZpZXcuZ2V0TGVuZ3RoKCkpOwogICAgICAgICAgICAgICBncmlkLnNldFNlbGVjdGVkUm93 cyhbXSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0sCg== --f403045f6ca4d87db3055303240c--