Re: PATCH: Search Objects by definitions and comments

From: Dave Page <dpage(at)pgadmin(dot)org>
To: "J(dot)F(dot) Oster" <jinfroster(at)mail(dot)ru>
Cc: pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: Re: PATCH: Search Objects by definitions and comments
Date: 2014-06-12 06:58:11
Message-ID: CA+OCxoxAkHKp9=pHp_rCm2VbSO1wpPvkcg5PBfx5cXu1=UyMSw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers pgadmin-support

Hi

Thanks, patch applied. Please note that the combo boxes are still not
displayed correctly on Mac. After spending some time trying to fix it,
I remembered that it's a known issue that wxWidgets seems to have that
my brain has learnt to ignore on the existing UI :-(. I've really
gotta knuckle down on pgAdmin4...

On Mon, Jun 9, 2014 at 4:32 PM, J.F. Oster <jinfroster(at)mail(dot)ru> wrote:
> Hello Dave,
>
> Saturday, June 7, 2014, 5:15:21 PM, you wrote:
>
> DP> I had a play with this, and ran into an issue. I have multiple tables
> DP> that match the pattern %waits in my test DB, so figured that would be
> DP> a good test. It successfully finds the tables, but also finds the row
> DP> datatypes associated with them, which are not shown in the treeview at
> DP> the moment because "Show system objects" is turned off. Clicking on a
> DP> type entry in the results leads to some crazyness
> DP> ...
>
> The issue with regular table types was there before but had no
> chance to reveal itself. I forgot to mention earlier that PgAdmin 1.18
> doesn't search for Types at all.
>
> wxT(" WHERE t.typtype != 'd' AND t.typname NOT LIKE E'\\_%' ")
> had to be double-escaped:
> wxT(" WHERE t.typtype != 'd' AND t.typname NOT LIKE E'\\\\_%' ");
>
> I couldn't reproduce the case you described in whole it's crazyness :)
> but hope that it would be an appropriate fix to filter out table types
> when "Show system objects" is off.
>
>
> DP> One final issue for this revision - the two combo boxes at the top do
> DP> not have enough space to live in (on OSX at least - please see the
> DP> attached screenshot). Please give them some more wiggle room :-)
>
> Done, changed vgap from 3 to 5.
>
> Please see the attached patch.
>
>
> --
>
> DP> On Sat, Jun 7, 2014 at 5:28 AM, J.F. Oster <jinfroster(at)mail(dot)ru> wrote:
>>> Hello,
>>>
>>> Can someone review this patch, please?
>>>
>>>
>>> Monday, May 5, 2014, 6:22:15 PM, J.F. Oster wrote:
>>>
>>> JFO> Hello Ashesh,
>>> JFO> Have you had time to look into the patch?
>>>
>>> AV>> On Mon, Apr 7, 2014 at 10:47 PM, J.F. Oster <jinfroster(at)mail(dot)ru> wrote:
>>> AV>> Hello Ashesh,
>>>
>>> AV>> Friday, April 4, 2014, 4:24:01 PM, Dave Page wrote:
>>>
>>> DP>>> Ashesh, can you or one of the team help J. F. figure out the status
>>> DP>>> bar and review the patch please?
>>>
>>> DP>>> Thanks.
>>>
>>> AV>> Got status bar working by adding
>>>
>>> AV>> statusBar = XRCCTRL(*this, "unkStatusBar", wxStatusBar);
>>>
>>> AV>> to the constructor. That line exists in one of the parent's
>>> AV>> constructor for most dialogs. dlgSearchObject is of different
>>> AV>> inheritance hierarchy thus missing that bit of code.
>>>
>>> AV>> Also made few minor fixes. Please see the patch.
>>>
>>>
>>>
>>> DP>>> On Fri, Apr 4, 2014 at 12:33 PM, J.F. Oster <jinfroster(at)mail(dot)ru> wrote:
>>>>>>> Hello Dave,
>>>>>>>
>>>>>>> Monday, March 10, 2014, 1:36:37 PM, you wrote:
>>>>>>>
>>>>>>> DP> On Sun, Mar 9, 2014 at 8:27 AM, J.F. Oster <jinfroster(at)mail(dot)ru> wrote:
>>>>>>>>>
>>>>>>>>> Thursday, March 6, 2014, 12:38:33 AM, Guillaume Lelarge wrote:
>>>>>>>>>
>>>>>>>>> GL> On Wed, 2014-03-05 at 07:40 -0600, Michael Shapiro wrote:
>>>>>>>>>>> I know that PgAdmin has the ability to find a
>>>>>>>>>>> pattern in various object
>>>>>>>>>>> names.
>>>>>>>>>>>
>>>>>>>>>>> Can PgAdmin search the actual text of
>>>>>>>>>>> procedures to find a pattern as well.
>>>>>>>>>>>
>>>>>>>>>>> For example, if I have a procedure named
>>>>>>>>>>> get_login, and it has a select
>>>>>>>>>>> that looks like
>>>>>>>>>>>
>>>>>>>>>>> = =select person_id from logins ....
>>>>>>>>>>>
>>>>>>>>>>> and I search for "person_id", can PgAdmin find
>>>>>>>>>>> this within the get_login
>>>>>>>>>>> procedure?
>>>>>>>>>
>>>>>>>>> GL> Nope, it doesn't work like that. But a patch might help to get it do
>>>>>>>>> GL> that.
>>>>>>>>>
>>>>>>>>> Suggested feature will be a must-have for
>>>>>>>>> pl-developers to find code
>>>>>>>>> dependencies not maintained by DBMS.
>>>>>>>>>
>>>>>>>>> Since searching pg_proc should be optional
>>>>>>>>> (right?), it's required to
>>>>>>>>> modify Search Objects dialogue. And since I have some more thoughts
>>>>>>>>> (plans for the future) on improving this tool, some concerning
>>>>>>>>> dialogue design, I'd like to express these now altogether.
>>>>>>>>>
>>>>>>>>> 1. Make "search for pattern in object's names" one of few options,
>>>>>>>>> enabled by default. Others will be "search in definitions" and "search
>>>>>>>>> in comments". I see these as a number of checkboxes.
>>>>>>>>> Searching in object's definitions may be further advanced by
>>>>>>>>> considering constraint's expressions, column's defaults, type's fields
>>>>>>>>> and so on.
>>>>>>>>>
>>>>>>>>> 2. In addition to objects Type filter implement Schema filter to cut
>>>>>>>>> off objects in schemas of no interest. This is a combobox with items:
>>>>>>>>> (All Schemas), (Current Schema)*, (User Schemas) plus list of all
>>>>>>>>> schemas in database.
>>>>>>>>>
>>>>>>>>> 3. Allow to call Search Objects dialogue when any DB-object in Object
>>>>>>>>> Browser is selected, not only DB itself. Object trees are huge
>>>>>>>>> sometimes, so having to select DB item (and loose current object) each
>>>>>>>>> time I wish to search for something makes the tool unattractive at
>>>>>>>>> all. Required to implement (Current Schema) filter.
>>>>>>>>>
>>>>>>>>> 4. If text pattern contains "%" char then don't add %%'s to it.
>>>>>>>>>
>>>>>>>>> 5. Use statusbar: "Searching...", "Nothing was found" or "Found N
>>>>>>>>> items".
>>>>>>>>>
>>>>>>>>> Devs, please see the sketch attached. Is this OK?
>>>>>>>>> I can work on this when I have time, if no one gets to this earlier.
>>>>>>>
>>>>>>> DP> Looks good to me. Thanks for looking at this.
>>>>>>>
>>>>>>> Here it is. Seems to work for me, but needs testing. I tested on 9.3
>>>>>>> only.
>>>>>>> I tried to make queries easier to extend with new object types with
>>>>>>> UNIONs. May be there is a better way to write them... well, afaic.
>>>>>>>
>>>>>>> Implemented all the points above plus use qtDbString() to process
>>>>>>> quote signs etc.
>>>>>>> But statusbar won't initialize for some reason. If I force it to
>>>>>>> initialize, it doesn't obey further window resizes. Is there a secret
>>>>>>> to make it work correctly? :)
>
> --
> Best regards,
> J.F.

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

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

In response to

Browse pgadmin-hackers by date

  From Date Subject
Next Message Guillaume Lelarge 2014-06-12 21:26:15 Re: How to use pg_setting.csv ?
Previous Message Dave Page 2014-06-12 06:56:30 pgAdmin III commit: Allow searching for database objects by comment and

Browse pgadmin-support by date

  From Date Subject
Next Message k mac 2014-06-12 13:31:19 BUG REPORT: SQL Editor selects too much text after you hit return and select "one line"
Previous Message berenger.morel 2014-06-11 13:12:43 Re: connecting postgresql to pgadmin III