Re: Re: Server side cursor limitations for on demand loading of data in query tool [RM2137] [pgAdmin4]

From: Harshal Dhumal <harshal(dot)dhumal(at)enterprisedb(dot)com>
To: Dave Page <dpage(at)pgadmin(dot)org>
Cc: Harshal Dhumal <harshaldhumal15(at)gmail(dot)com>, Ashesh Vashi <ashesh(dot)vashi(at)enterprisedb(dot)com>, pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: Re: Re: Server side cursor limitations for on demand loading of data in query tool [RM2137] [pgAdmin4]
Date: 2017-06-15 20:30:06
Message-ID: CAFiP3vzQQ8MxzSGuYcOPR9cDRRdz06LuLuGKo3cnTWXNcgFrew@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

Hi Dave,

Please find attached updated patch.

On Thu, Jun 15, 2017 at 3:58 PM, Dave Page <dpage(at)pgadmin(dot)org> wrote:

> Hi
>
> On Wed, Jun 14, 2017 at 11:36 PM, Harshal Dhumal <
> harshal(dot)dhumal(at)enterprisedb(dot)com> 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_tool_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/pgadmin4/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/pgadmin4/lib/python2.7/site-
> packages/selenium/webdriver/remote/webdriver.py", line 756, in
> find_element
> 'value': value})['value']
> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/selenium/webdriver/remote/webdriver.py", line 238, in execute
> self.error_handler.check_response(response)
> File "/Users/dpage/.virtualenvs/pgadmin4/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.

> and
>
>
> ======================================================================
> 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_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/pgadmin4/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/pgadmin4/lib/python2.7/site-
> packages/selenium/webdriver/remote/webdriver.py", line 756, in
> find_element
> 'value': value})['value']
> File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-
> packages/selenium/webdriver/remote/webdriver.py", line 238, in execute
> self.error_handler.check_response(response)
> File "/Users/dpage/.virtualenvs/pgadmin4/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_tool_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_tool_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
>

Attachment Content-Type Size
RM2137_query_tool_on_demand_result_V7.patch text/x-patch 155.9 KB

In response to

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Dave Page 2017-06-15 20:37:57 Re: Re: Server side cursor limitations for on demand loading of data in query tool [RM2137] [pgAdmin4]
Previous Message pgAdmin 4 Jenkins 2017-06-15 19:20:53 Jenkins build is back to normal : pgadmin4-master-python34 #171