From d5130d2387bc72fd35f061cb33b781d4dafa709c Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Sun, 7 Dec 2003 10:18:50 +0000 Subject: [PATCH] Fix typmod interpretation for bit types. (It was erroneously assumed that for bit(x), the typmod stores x+4, like for the character types.) --- doc/src/sgml/release.sgml | 47 +++++++++++++++++++++- src/backend/catalog/information_schema.sql | 18 ++++++--- 2 files changed, 58 insertions(+), 7 deletions(-) diff --git a/doc/src/sgml/release.sgml b/doc/src/sgml/release.sgml index fa5cf3c8d01..6f638ea8667 100644 --- a/doc/src/sgml/release.sgml +++ b/doc/src/sgml/release.sgml @@ -1,10 +1,55 @@ Release Notes + + Release 7.4.1 + + + Release date + not yet + + + + This release contains a number of fixes for release 7.4. + + + + Migration to version 7.4.1 + + + A dump/restore is not required for those + running release 7.4. + + + + If you want to install the fixes in the information schema + concerning the bit types, you need to reload the information + schema. This is either accomplished by initializing a new cluster + by running initdb, or by running the following + sequence of SQL commands in each database (ideally including + template1) as a superuser in + psql, after installing the new release: + +DROP SCHEMA information_schema CASCADE; +\i /usr/local/pgsql/share/information_schema.sql + + Substitute your installation path in the second command. + + + + + Changes + + + TBD + + + + Release 7.4 diff --git a/src/backend/catalog/information_schema.sql b/src/backend/catalog/information_schema.sql index 96e5e554d98..de86192f0ed 100644 --- a/src/backend/catalog/information_schema.sql +++ b/src/backend/catalog/information_schema.sql @@ -4,7 +4,7 @@ * * Copyright 2003, PostgreSQL Global Development Group * - * $Id: information_schema.sql,v 1.15.2.1 2003/11/08 20:43:57 tgl Exp $ + * $Id: information_schema.sql,v 1.15.2.2 2003/12/07 10:18:50 petere Exp $ */ /* @@ -260,12 +260,16 @@ CREATE VIEW columns AS CAST( CASE WHEN t.typtype = 'd' THEN - CASE WHEN t.typbasetype IN (25, 1042, 1043, 1560, 1562) AND t.typtypmod <> -1 - THEN t.typtypmod - 4 + CASE WHEN t.typbasetype IN (1042, 1043) AND t.typtypmod <> -1 + THEN t.typtypmod - 4 /* char, varchar */ + WHEN t.typbasetype IN (1560, 1562) AND t.typtypmod <> -1 + THEN t.typtypmod /* bit, varbit */ ELSE null END ELSE - CASE WHEN a.atttypid IN (25, 1042, 1043, 1560, 1562) AND a.atttypmod <> -1 + CASE WHEN a.atttypid IN (1042, 1043) AND a.atttypmod <> -1 THEN a.atttypmod - 4 + WHEN a.atttypid IN (1560, 1562) AND a.atttypmod <> -1 + THEN a.atttypmod ELSE null END END AS cardinal_number) @@ -559,8 +563,10 @@ CREATE VIEW domains AS AS data_type, CAST( - CASE WHEN t.typbasetype IN (25, 1042, 1043, 1560, 1562) AND t.typtypmod <> -1 - THEN t.typtypmod - 4 + CASE WHEN t.typbasetype IN (1042, 1043) AND t.typtypmod <> -1 + THEN t.typtypmod - 4 /* char, varchar */ + WHEN t.typbasetype IN (1560, 1562) AND t.typtypmod <> -1 + THEN t.typtypmod /* bit, varbit */ ELSE null END AS cardinal_number) AS character_maximum_length,