Re: [BUGS] BUG #2895: Private Use Unicode character crashes server when using ILIKE

2007-01-16 Thread Michael Fuhr
On Tue, Jan 16, 2007 at 06:16:22AM +, James Russell wrote:
> Description: Private Use Unicode character crashes server when using ILIKE

The archives show that ILIKE is known to be broken with multibyte
characters in 8.1 and earlier, although I don't recall seeing reports
of a crash resulting.  I got a crash in 8.1.6 built from the latest
source in CVS; here's a partial stack trace:

(gdb) bt
#0  MBMatchTextIC (t=0x2a98613d1c "�\200\202\206", tlen=4, p=0x0, plen=4) at 
like_match.c:195
#1  0x005ae558 in texticlike (fcinfo=Variable "fcinfo" is not available.
) at like.c:355

I wonder if this is a problem only with code points outside of Plane 0,
viz., those with UTF-8 sequences longer than three bytes.  I don't get
a crash with U+FFFD (E'\357\277\275') but I do with U+1
(E'\360\220\200\200') and other four-byte sequences.

> - I have not yet tried to reproduce the bug on the latest Postgres 8.2.x

It appears to work in 8.2.1; at least it didn't crash.  The 8.2
Release Notes contain the following item:

* Allow ILIKE to work for multi-byte encodings (Tom)

  Internally, ILIKE now calls lower() and then uses LIKE.  Locale-specific
  regular expression patterns still do not work in these encodings. 

-- 
Michael Fuhr

---(end of broadcast)---
TIP 6: explain analyze is your friend


Re: [BUGS] BUG #2898: dynamic load support

2007-01-16 Thread Bruce Momjian
Pankaj wrote:
> 
> The following bug has been logged online:
> 
> Bug reference:  2898
> Logged by:  Pankaj
> Email address:  [EMAIL PROTECTED]
> PostgreSQL version: 8.2.0
> Operating system:   LynxOS
> Description:dynamic load support
> Details: 
> 
> I have installed Postgresql 8.2.0 on LynxOS. Although, LynxOS is an
> unsupported OS platform, as per postgres docs, it should work on modern Unix
> compatible OS. Lynx is a Unix-like RTOS.

No, it shouldn't, unless you know something we don't.  If LynxOS were
100% compatible with one of our supported platforms, it would run fine,
but since it isn't, you are going to have to dig into why it is
different and send us some patches to get LynxOS supported.

---


> 
> When I run:
> 
> /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
> 
> It says:
> fixing permissionsok
> creating subdirectories...ok
> selecting default max_connections...100
> selecting default shared_buffers/max_fsm_pages32MB/204800
> creating configuration filesok
> creating template1 database.ok
> initializing pg_authid.ok
> initializing dependenciesok
> creating system views...ok
> loading system objects's dependencies...ok
> creating conversionsFATAL: dynamic load not supported
> STATEMENT: CREATE OR REPLACE FUNCTION...
> 
> could not write to child process: Broken pipe
> initdb: removing contents of data directory: /usr/local/pgsql/data
> 
> Please let us know the cause of the above error.
> 
> Thanks & regards,
> Pankaj.
> 
> ---(end of broadcast)---
> TIP 4: Have you searched our list archives?
> 
>http://archives.postgresql.org

-- 
  Bruce Momjian   [EMAIL PROTECTED]
  EnterpriseDBhttp://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +

---(end of broadcast)---
TIP 6: explain analyze is your friend


Re: [BUGS] BUG #2848: information_schema.key_column_usage does not work

2007-01-16 Thread Tom Lane
Laurence Rowe <[EMAIL PROTECTED]> writes:
>> I have the following query:
>> 
>> SELECT key_column_usage.*,constraint_type 
>> FROM information_schema.key_column_usage 
>> LEFT JOIN information_schema.table_constraints USING
>> (table_schema,table_name,constraint_name) 
>> WHERE table_schema='whatever' and table_name='whatever' 
>> ORDER BY constraint_type, constraint_name, ordinal_position
>> 
>> This works when I am logged on as 'postgres', but if I try it after logging
>> on with a different username it fails with "ERROR: relation with OID 18635
>> does not exist".

Hmph ... I recall being unable to reproduce this before, but I'm not
sure why I failed, because it's definitely broken.  The key_column_usage
view has

  FROM pg_namespace nr, pg_class r, pg_namespace nc,
   pg_constraint c
  WHERE nr.oid = r.relnamespace
AND r.oid = c.conrelid
AND nc.oid = c.connamespace
AND c.contype IN ('p', 'u', 'f')
AND r.relkind = 'r'
AND (NOT pg_is_other_temp_schema(nr.oid))
AND (pg_has_role(r.relowner, 'USAGE')
 OR has_table_privilege(c.oid, 'SELECT')
 OR has_table_privilege(c.oid, 'INSERT')
 OR has_table_privilege(c.oid, 'UPDATE')
 OR has_table_privilege(c.oid, 'REFERENCES')) ) AS ss

Obviously those last four lines should be r.oid not c.oid.  The bug is
masked as long as the preceding pg_has_role() test succeeds, so in
particular a superuser would never see it :-(

We won't be able to force initdb to fix this in the back branches,
but fortunately the information schema views are not hardwired in.
Just drop the view and recreate it with the corrected definition...

regards, tom lane

---(end of broadcast)---
TIP 7: You can help support the PostgreSQL project by donating at

http://www.postgresql.org/about/donate


Re: [BUGS] BUG #2901: missing alter table online help in psql

2007-01-16 Thread Tom Lane
"Jens-Wolfhard Schicke" <[EMAIL PROTECTED]> writes:
> \h alter table
> is missing the syntax for the command
> alter table the_table alter column the_column type varchar(175);

Maybe you're using an old psql?  My 8.2 psql shows

regression=> \h alter table
Command: ALTER TABLE
Description: change the definition of a table
Syntax:
ALTER TABLE [ ONLY ] name [ * ]
action [, ... ]
...
where action is one of:
...
ALTER [ COLUMN ] column TYPE type [ USING expression ]
...


regards, tom lane

---(end of broadcast)---
TIP 3: Have you checked our extensive FAQ?

   http://www.postgresql.org/docs/faq


[BUGS] BUG #2901: missing alter table online help in psql

2007-01-16 Thread Jens-Wolfhard Schicke

The following bug has been logged online:

Bug reference:  2901
Logged by:  Jens-Wolfhard Schicke
Email address:  [EMAIL PROTECTED]
PostgreSQL version: PostgreSQL 8.2
Operating system:   Linux
Description:missing alter table online help in psql
Details: 

\h alter table

is missing the syntax for the command
alter table the_table alter column the_column type varchar(175);

---(end of broadcast)---
TIP 6: explain analyze is your friend


[BUGS] BUG #2896: Dynamic loading

2007-01-16 Thread Pankaj Srinivasan

The following bug has been logged online:

Bug reference:  2896
Logged by:  Pankaj Srinivasan
Email address:  [EMAIL PROTECTED]
PostgreSQL version: 8.2.0
Operating system:   LynxOS
Description:Dynamic loading
Details: 

I have been able to install PostgresSQL 8.2.0 on LynxOS. But when I run the
inidb command as:

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

It says:
fixing permissionsok
creating subdirectories...ok
selecting default max_connections...100
selecting default shared_buffers/max_fsm_pages32MB/204800
creating configuration filesok
creating template1 database.ok
initializing pg_authid.ok
initializing dependenciesok
creating system views...ok
loading system objects's dependencies...ok
creating conversionsFATAL: dynamic load not supported
STATEMENT: CREATE OR REPLACE FUNCTION...

could not write to child process: Broken pipe
initdb: removing contents of data directory: /usr/local/pgsql/data

Please let us know the cause of the error.

---(end of broadcast)---
TIP 2: Don't 'kill -9' the postmaster


[BUGS] BUG #2899: psql-odbc logging does not work for ordinary users

2007-01-16 Thread Peter Hardman

The following bug has been logged online:

Bug reference:  2899
Logged by:  Peter Hardman
Email address:  [EMAIL PROTECTED]
PostgreSQL version: 8.1
Operating system:   Windows XP Pro
Description:psql-odbc logging does not work for ordinary users
Details: 

Checking MyLog on page 2 of Advanced Options for the PostgreSQL ANSI ODBC
driver has no effect unless the user has write access to C:\.

This prcludes logging for all ordinary users, and makes the logging facility
mostly useless.

I found a reference to this problem in psqlodbc-Bugs-1000522, where the
developer seemed to assume that logging was not required by ordinary users.

The logfile location should be configurable, or at least in the users TEMP
directory as defined in the user's environment.

---(end of broadcast)---
TIP 4: Have you searched our list archives?

   http://archives.postgresql.org


[BUGS] BUG #2895: Private Use Unicode character crashes server when using ILIKE

2007-01-16 Thread James Russell

The following bug has been logged online:

Bug reference:  2895
Logged by:  James Russell
Email address:  [EMAIL PROTECTED]
PostgreSQL version: 8.1.4
Operating system:   Linux (Fedora Core 5)
Description:Private Use Unicode character crashes server when using
ILIKE
Details: 

A UTF-8 text field contains (among others) the following Unicode character:
 0xf4808286 in UTF-8 (== 0x00100086 in UTF-32)

This corresponds to a character in the Unicode "Private Use" area, where the
codepoints are undefined and designated for proprietary uses
(0x10-0x10FFFD).

If a text field contains a such a character, and if the search term contains
certain Unicode characters, then queries using ILIKE will crash the server.

We discovered this bug when a user searched for rows containing the "TM"
character (UTF-8 0xE284A2 / UTF-32 0x2122), which translated to the
following query:

SELECT * FROM foo WHERE bar ILIKE('%™%');

If the rows searched contain the row with the Private Use character, then
the server crashes during the query and psql returns the following:

"psql:recreatebug.sql:8: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
psql:recreatebug.sql:8: connection to server was lost"

This bug is 100% reproducible on multiple servers with different
configurations. Our server configuration does not have any changes from
default.

The following PHP script will generate a psql script that can reproduce the
problem. Run this script to generate the SQL script, then run the SQL script
in psql. The server will crash when the SELECT statement is run.



Re: [BUGS] BUG #2848: information_schema.key_column_usage does not work

2007-01-16 Thread Laurence Rowe

I see the same problem with 8.2 on linux. Laurence

Tony Marston wrote:

The following bug has been logged online:

Bug reference:  2848
Logged by:  Tony Marston
Email address:  [EMAIL PROTECTED]
PostgreSQL version: 8.2
Operating system:   Windows XP
Description:information_schema.key_column_usage does not work
Details: 


I have the following query:

SELECT key_column_usage.*,constraint_type 
FROM information_schema.key_column_usage 
LEFT JOIN information_schema.table_constraints USING
(table_schema,table_name,constraint_name) 
WHERE table_schema='whatever' and table_name='whatever' 
ORDER BY constraint_type, constraint_name, ordinal_position


This works when I am logged on as 'postgres', but if I try it after logging
on with a different username it fails with "ERROR: relation with OID 18635
does not exist".

---(end of broadcast)---
TIP 5: don't forget to increase your free space map settings




---(end of broadcast)---
TIP 5: don't forget to increase your free space map settings


Re: [BUGS] BUG #2898: dynamic load support

2007-01-16 Thread Tom Lane
"Pankaj" <[EMAIL PROTECTED]> writes:
> creating conversionsFATAL: dynamic load not supported
> STATEMENT: CREATE OR REPLACE FUNCTION...

> Please let us know the cause of the above error.

The encoding conversion code is all in dynamically-loaded libraries.
(There are some other things that we expect to be able to load
dynamically too, such as the various PL languages, but this happens
to be what you'll hit first during initdb.)

I think you probably need to add some code to src/backend/port/dynloader/
to support LynxOS.  Please send a patch if you get it working.

regards, tom lane

---(end of broadcast)---
TIP 6: explain analyze is your friend