Akshay,

We need to think on cancelling the autocomplete in the backend after a
certain timeout.

On Fri, Aug 5, 2022 at 7:08 PM Cherio <che...@gmail.com> wrote:

> Thanks Akshay, that's what I meant by "switched autocomplete to manual".
>
> That however doesn't really address the issue. I can still bring down the
> pgAdmin backend (for everyone using it) by clicking Ctrl+Space on a
> complex/rogue SQL.
>
> On Fri, Aug 5, 2022 at 4:35 AM Akshay Joshi <akshay.jo...@enterprisedb.com>
> wrote:
>
>> Hi Cherio
>>
>> You can disable the automatic autocomplete option from "File ->
>> Preferences -> Query Tool -> Auto completion -> Autocomplete on key press".
>> We have also fixed an issue to stop autocomplete on arrow keys #7573
>> <https://redmine.postgresql.org/issues/7573> which will be available in
>> the next release, meanwhile, you can install the snapshot build
>> <https://www.postgresql.org/ftp/pgadmin/pgadmin4/snapshots/>.
>>
>>
>>
>> On Wed, Aug 3, 2022 at 11:39 PM Cherio <che...@gmail.com> wrote:
>>
>>> I had to examine certain aspects of a query that looks like this:
>>>
>>> SELECT COUNT(*)
>>> FROM schema.table
>>> WHERE id IN (
>>> '1',
>>> '2',
>>> '3',
>>> ....
>>> '19998',
>>> '19999',
>>> '20000'
>>> )
>>>
>>> I pasted the query and autocomplete kicked in. For a minute it froze
>>> entirely. Then it sort of let me do things but everything was like in slow
>>> motion: the tree browser, the other SQL tabs - everything became slow as
>>> molasses. I logged onto the server and the "pgAdmin4.py" was
>>> keeping the CPU quite busy. It didn't recover for some time so I simply
>>> restarted the server and switched autocomplete to manual.
>>>
>>> Not knowing the design I may not be able to make a viable suggestion but
>>> maybe some sort of complexity counter (configurable or at least hard-coded
>>> at first) should be considered, which would hint to the autocomplete to
>>> stop trying, after it realizes the task may be too complex or takes too
>>> long to complete.
>>>
>>> Sure, a query like the one above should probably make use of a temporary
>>> table but it is beyond the point - there has to be a safeguard against an
>>> overloaded autocomplete. Without such a safeguard an ugly/invalid query or
>>> a user error could kill the server for all connected pgadmin clients.
>>>
>>>>
>>
>> --
>>
>> <http://www.enterprisedb.com>
>>
>> Akshay Joshi
>>
>> Principal Software Architect
>>
>> +91 9767888246
>>
>> www.enterprisedb.com
>>
>> <https://www.linkedin.com/company/edbpostgres>
>> <https://twitter.com/edbpostgres?lang=en>
>> <https://www.facebook.com/EDBpostgres>
>> <https://www.instagram.com/EDBpostgres/>
>>
>

-- 
Thanks,
Aditya Toshniwal
pgAdmin Hacker | Software Architect | *edbpostgres.com*
<http://edbpostgres.com>
"Don't Complain about Heat, Plant a TREE"

Reply via email to