Re: hackers-digest V1 #894
Date: Sun, 26 Jul 1998 21:43:17 +0200 (MET DST)
From: Maarten Boekhold <maartenb@dutepp0.et.tudelft.nl>
Subject: Re: [HACKERS] Minor bug: inconsistent handling of overlength namesOn Sun, 26 Jul 1998, Tom Lane wrote:
DROP INDEX fails on overlength table names:
tgl=> CREATE UNIQUE INDEX MarketOrderHistory_sequenceNo_Index
tgl-> ON MarketOrderHistory USING btree (sequenceNo);
CREATE
tgl=> DROP INDEX MarketOrderHistory_sequenceNo_Index;
ERROR: pg_ownercheck: class "marketorderhistory_sequenceno_index" not found
tgl=> DROP INDEX MarketOrderHistory_sequenceNo_I;
DROPEvidently DROP INDEX is using a second-rate way of reducing the given
name to canonical form for comparisons.Some further experimentation shows that CREATE TABLE won't let you
create a relation name >= 32 characters in the first place. So there's
some inconsistency about what's done with overlength names.It seems to me that we ought to have consistent treatment of long names,
and the treatment I like is the one that CREATE INDEX is using:
silently truncate the given name to what we can handle, and accept
it as long as the truncated form is unique. This is the time-honored
way of handling overlength names in compilers, and it works well.Same thing goes for user-names. I recently created a user named (for the
sake of example) '1234567890', using CREATE USER. No complaints here, but
trying to connect with user '1234567890' fails. You can connect with
'12345678'.
And the actual username can be 32 bytes ;(
investor=> \d pg_user
Table = pg_user
+----------------------------------+----------------------------------+-------+
| Field | Type |
Length|
+----------------------------------+----------------------------------+-------+
| usename | name
| 32 |
| usesysid | int4
| 4 |
| usecreatedb | bool
| 1 |
| usetrace | bool
| 1 |
| usesuper | bool
| 1 |
| usecatupd | bool
| 1 |
| passwd | text
| var |
| valuntil | abstime
| 4 |
+----------------------------------+----------------------------------+-------+
----------------
Hannu
Import Notes
Reference msg id not found: 199807270323.XAA08363@hub.org