BUG #2852: User-defined type name begins with the underscore character (_) can be created

Started by Pavlo Golubover 19 years ago3 messagesbugs
Jump to latest
#1Pavlo Golub
pavlo.golub@cybertec.at

The following bug has been logged online:

Bug reference: 2852
Logged by: Pavel Golub
Email address: pavel@microolap.com
PostgreSQL version: 8.x
Operating system: Windows XP
Description: User-defined type name begins with the underscore
character (_) can be created
Details:

Hello, pgsql-bugs.

Documentation says:
"User-defined type names cannot begin with the
underscore character (_) and can only be 62
characters long (or in general NAMEDATALEN - 2,
rather than the NAMEDATALEN - 1 characters
allowed for other names). Type names beginning
with underscore are reserved for
internally-created array type names. "

However, such SQL may be executed:

CREATE TYPE _my AS (id int4, id2 int4);

And then server treats it as an array type. Thus next SQL will be executed
too:

CREATE TABLE my_table(
my_arr my[]
);

Checked on PostgreSQL versions (Windows XP):
8.0.6
8.1.0
8.2.0

#2Bruce Momjian
bruce@momjian.us
In reply to: Pavlo Golub (#1)
Re: BUG #2852: User-defined type name begins with the

I have applied the following documentaiton patch that states a leading
underscore "shouldn't" be used, rather than prohibited.

---------------------------------------------------------------------------

Pavel Golub wrote:

The following bug has been logged online:

Bug reference: 2852
Logged by: Pavel Golub
Email address: pavel@microolap.com
PostgreSQL version: 8.x
Operating system: Windows XP
Description: User-defined type name begins with the underscore
character (_) can be created
Details:

Hello, pgsql-bugs.

Documentation says:
"User-defined type names cannot begin with the
underscore character (_) and can only be 62
characters long (or in general NAMEDATALEN - 2,
rather than the NAMEDATALEN - 1 characters
allowed for other names). Type names beginning
with underscore are reserved for
internally-created array type names. "

However, such SQL may be executed:

CREATE TYPE _my AS (id int4, id2 int4);

And then server treats it as an array type. Thus next SQL will be executed
too:

CREATE TABLE my_table(
my_arr my[]
);

Checked on PostgreSQL versions (Windows XP):
8.0.6
8.1.0
8.2.0

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

http://archives.postgresql.org

--
Bruce Momjian bruce@momjian.us
EnterpriseDB http://www.enterprisedb.com

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

Attachments:

/rtmp/difftext/x-diffDownload+4-4
#3Pavlo Golub
pavlo.golub@cybertec.at
In reply to: Bruce Momjian (#2)
Re: BUG #2852: User-defined type name begins with the

Hello, Bruce.

Thanks for an answer. Are there any thoughts to insert check into
PostgreSQL code or we (developers) must take into account that UDT
with leading underscore may exist?

You wrote:

BM> I have applied the following documentaiton patch that states a leading
BM> underscore "shouldn't" be used, rather than prohibited.

BM> ---------------------------------------------------------------------------

BM> Pavel Golub wrote:

The following bug has been logged online:

Bug reference: 2852
Logged by: Pavel Golub
Email address: pavel@microolap.com
PostgreSQL version: 8.x
Operating system: Windows XP
Description: User-defined type name begins with the underscore
character (_) can be created
Details:

Hello, pgsql-bugs.

Documentation says:
"User-defined type names cannot begin with the
underscore character (_) and can only be 62
characters long (or in general NAMEDATALEN - 2,
rather than the NAMEDATALEN - 1 characters
allowed for other names). Type names beginning
with underscore are reserved for
internally-created array type names. "

However, such SQL may be executed:

CREATE TYPE _my AS (id int4, id2 int4);

And then server treats it as an array type. Thus next SQL will be executed
too:

CREATE TABLE my_table(
my_arr my[]
);

Checked on PostgreSQL versions (Windows XP):
8.0.6
8.1.0
8.2.0

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

http://archives.postgresql.org

--
With best wishes,
Pavel mailto:pavel@microolap.com