Crashing v1.6.2 with a syntax error - Mailing list pgadmin-support

From Erwin Brandstetter
Subject Crashing v1.6.2 with a syntax error
Date
Msg-id 45DB9B0D.809@falter.at
Whole thread Raw
Responses Re: Crashing v1.6.2 with a syntax error  (Dave Page <dpage@postgresql.org>)
Re: Crashing v1.6.2 with a syntax error  ("Ezequias Rodrigues da Rocha" <ezequias.rocha@gmail.com>)
List pgadmin-support
Hi developers! Hi Dave!


Testing pgAdmin III v1.6.2 rev: 5837, client Win XP, host Debian Sarge, 
PG 8.1.4. / Debian Etch, PG 8.2.1.

I have found a 'reliable' way to crash pgAdmin. Look at the following query:    select * from loc where loc like 'a%'
loc= 'b';
 
Note the syntax error: "and" is missing in the WHERE clause. If I run 
this from the SQL query dialogue window I get an error message with only 
the error code - but that has been reported before.
   FEHLER: Fehler »Syntaxfehler« bei »loc«   SQL state: 42601   Character: 1

However, if I open the edit grid with a filter and enter the faulty 
WHERE clause, pgAdmin crashes.
I have run tests with a variety of tables and operators in PG 8.1.4 and 
PG 8.2.1. Any of the following WHERE clauses triggers a crash.   fld1 like 'a%' fld2 = 'b'   fld1 = 'a%' fld2 = 'b'
fld1= 'a%' fld1 = '%a%'   ...
 

The "essential" part ist the "%" at the end of the first string.


An observation I have made along the way:
Look at the error message I get from pgAdmin for the following WHERE clause:   loc = '%a' loc = ''
Note that the % is in front this time (does not trigger a crash).
   An error has occurred:   FEHLER: Fehler >>Syntaxfehler<< bei >>b<<   Line 1: EXPLAIN SELECT * FROM loc WHERE loc =
'0x1.1f9d8ap-997'loc = ''                           ^
 
The string containing the character "%" is scrambled in a weird way. The 
caret in the next line points to a seemingly random position.
If I run it from psql, I get a similar error message. Only the string is 
not scrambled, and the caret is in a reasonable position.
   event=# select * from loc where loc = '%a' loc = '';   FEHLER:  Fehler »Syntaxfehler« bei »loc« at character 36
ZEILE1: select * from loc where loc = '%a' loc = '';                                               ^
 
I have tried to switch the "user language" in the pgAdmin options from 
English to German. To no effect.

It might have to do with locales. From my postgresql.conf:   lc_messages = 'de_AT.utf8@euro'

I have tried changing it to:   lc_messages = 'C'

After that the error message was scrambled differently:   loc = '%a' loc = ''
   An error has occurred:   ERROR: syntax error at or near "loc"   LINE 1: EXPLAIN SELECT * FROM loc WHERE loc =
'0x1.518a0fp-1002'loc 
 
= ''                               ^

But it crashes just as well.   loc = 'a%' loc = ''


Regards
Erwin


pgadmin-support by date:

Previous
From: Dave Page
Date:
Subject: Re: pgadmin crashing on OS X in table view
Next
From: Guillaume Lelarge
Date:
Subject: pgAdmin's unmaintained translations