Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.

Bug 227688

Summary: Attribute type error when updating varchar column
Product: Red Hat Enterprise Linux 5 Reporter: Tom Lane <tgl>
Component: postgresqlAssignee: Tom Lane <tgl>
Status: CLOSED ERRATA QA Contact: David Lawrence <dkl>
Severity: medium Docs Contact:
Priority: medium    
Version: 5.0CC: hhorak, security-response-team
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: RHSA-2007-0068 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-03-14 15:02:43 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On: 227522    
Bug Blocks: 225496    

Description Tom Lane 2007-02-07 16:11:39 UTC
+++ This bug was initially created as a clone of Bug #227522 +++

Description of problem:

In a table with a varchar column and a check constraint, updating that column
gives "ERROR:  attribute 1 has wrong type".

Version-Release number of selected component (if applicable):

postgresql-8.1.7-1.fc6

How reproducible:

always

Steps to Reproduce:

> createdb testdb
CREATE DATABASE

> psql testdb
Welcome to psql 8.1.7, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

testdb=> create table t (pa_status varchar(100));
CREATE TABLE

testdb=> alter table t add constraint rhpt_projects_pa_status_ck check
(pa_status = 'submitted' or pa_status = 'approved' or pa_status = 'closed');
ALTER TABLE

testdb=> insert into t values ('approved');
INSERT 0 1

testdb=> update t set pa_status = 'approved';
ERROR:  attribute 1 has wrong type
DETAIL:  Table has type character varying, but query expects character varying.

  
Actual results:

Error, update fails

Expected results:

Update should work

Additional info:

This worked with the previous FC6 version of PostgreSQL.

-- Additional comment from tgl@redhat.com on 2007-02-06 13:18 EST --
Yeah, it's broken :-( ... there'll be an 8.1.8 real soon now ...

Comment 1 Tom Lane 2007-02-07 16:18:19 UTC
This problem also affects our initial attempt to fix bug #225496 in RHEL5 --- it's actually caused by the 
security fix, which was being too strict about type matching.  Security team, please flag this bug as 
approved for rhel-5.1.0 ...

Comment 5 Red Hat Bugzilla 2007-03-14 15:02:43 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on the solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHSA-2007-0068.html