Обсуждение: error auto-completing "GRANT SELECT ON"

Поиск
Список
Период
Сортировка

error auto-completing "GRANT SELECT ON"

От
"Alejandro Gasca"
Дата:
Hi, if i open a sql pane, and put:<br />GRANT SELECT ON <br />and press [ctrl]+[space] this error rise:<br /><br
/><spanstyle="font-family: courier new,monospace;">ERROR: syntax error at or near "DATABASE"<br />LINE 6: UNION SELECT
"DATABASE"UNION SELECT "FUNCTION" UNION S... </span><br style="font-family: courier new,monospace;"
/>                         ^<br /><br />i'm using pgAdmin III ver. 1.8.0, in a winxp sp2 box, postgres: 8.2.5<br /><br
/>thank's<br/><br />Alejandro<br /> 

Re: error auto-completing "GRANT SELECT ON"

От
Dave Page
Дата:
Alejandro Gasca wrote:
> Hi, if i open a sql pane, and put:
> GRANT SELECT ON
> and press [ctrl]+[space] this error rise:
> 
> ERROR: syntax error at or near "DATABASE"
> LINE 6: UNION SELECT "DATABASE" UNION SELECT "FUNCTION" UNION S...

Magnus - can you take a look at this please. I'm not overly familiar
with your code and would rather not break it...

It seems that _complete_from_query() (in tabcomplete.c) is calling
PQescapeString() on the addon param which is doubling the existing
quotes around the unioned bits of the query (ie. SELECT 'DATABASE'). As
far as I can see all this does is break cases like the one Alejandro has
reported. Have I missed any other cases?

/D


Re: error auto-completing "GRANT SELECT ON"

От
Magnus Hagander
Дата:
Dave Page wrote:
> Alejandro Gasca wrote:
>> Hi, if i open a sql pane, and put:
>> GRANT SELECT ON
>> and press [ctrl]+[space] this error rise:
>>
>> ERROR: syntax error at or near "DATABASE"
>> LINE 6: UNION SELECT "DATABASE" UNION SELECT "FUNCTION" UNION S...
> 
> Magnus - can you take a look at this please. I'm not overly familiar
> with your code and would rather not break it...
> 
> It seems that _complete_from_query() (in tabcomplete.c) is calling
> PQescapeString() on the addon param which is doubling the existing
> quotes around the unioned bits of the query (ie. SELECT 'DATABASE'). As
> far as I can see all this does is break cases like the one Alejandro has
> reported. Have I missed any other cases?

Fixed. It was supposed to only PQescapeString() on normal queries, but
did it on schema queries as well.

Bug has been there since tab completion was added :-)

//Magnus