No support for int8 sized binary/hex literals

From: pgsql-bugs(at)postgresql(dot)org
To: pgsql-bugs(at)postgresql(dot)org
Subject: No support for int8 sized binary/hex literals
Date: 2001-02-17 23:22:36
Message-ID: 200102172322.f1HNMai95676@hub.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Steffen Hulegaard (9sch1(at)txl(dot)com) reports a bug with a severity of 2
The lower the number the more severe it is.

Short Description
No support for int8 sized binary/hex literals

Long Description
The B'111...' and X'1F...' SQL92 literal syntax is limited to
int4 sized literals. Any attempt to use an int8 sized literal
> int4/32-bit word size fails. This makes it impossible to specify
many int8 sized bit patterns as column default values. It makes
it impossible to even insert > 32bit sized binary/hex values.
Failure to support SQL92 literals for int8 types dramatically
limits and/or complicates the use of int8 bit/nibble/byte composed
values (bit fields, nibble/byte patterns, etc.)

Sample Code
/* $Id$
+--------------------------------------------------------------------
| No Copyright. Public Domain.
+--------------------------------------------------------------------
|
| bug5.sql 32 bit limit on SQL92 numeric literals
|
| Major Annoyance: Any attempt to use SQL92 string literals
| (B'0101...' or X'1fa945...') whose values
| exceed the 32 bit limit fail. This dramatically
| limits and/or complicates usage of int8 types
| for either bit fields or byte/nibble fields.
| You cannot define default values for
| int8 fields with binary or hex literals due
| to this limitation.
|
| Environment ----------------------------------------------------
| RedHat 6.2
| select version();
| PostgreSQL 7.0.2 on i686-pc-linux-gnu, compiled by gcc egcs-2.91.66
| # rpm -qi postgresql-7.0.2-2
| Name : postgresql Relocations: /usr
| Version : 7.0.2 Vendor: The Ramifordistat
| Release : 2 Build Date: Mon 12 Jun 2000 02:21:35 PM PDT
| Install date: Fri 04 Aug 2000 11:40:39 AM PDT Build Host: utility.wgcr.org
| Group : Applications/Databases Source RPM: postgresql-7.0.2-2.src.rpm
| Size : 7431735 License: BSD
| Packager : Lamar Owen <lamar(dot)owen(at)wgcr(dot)org>
| URL : http://www.postgresql.org/
| Summary : PostgreSQL client programs and libraries.
|
| 02/17/2000 SC Hulegaard Created.
+ ------------------------------------------------------------------- */

CREATE TABLE test_num_literals (
foo INT4,
bigfoo INT8
);

/* try what works */
insert into test_num_literals (foo) values ( X'04040404');

/* get close to limit - this works too */
insert into test_num_literals (foo) values ( X'040404040');

/* demonstrate that it works for int8 type attributes too */
insert into test_num_literals (bigfoo) values ( X'040404040');

/* step beyond the 32 bit limit - this does *NOT* work - FAILS! */
insert into test_num_literals (bigfoo) values ( X'0404040404');

/* try to establish an int8 bit pattern - FAILS! */
insert into test_num_literals (bigfoo) values ( X'0404040404040404');

/* review what did work */
select * from test_num_literals;

DROP TABLE test_num_literals ;

No file was uploaded with this report

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Peter Eisentraut 2001-02-18 00:24:33 Re: No support for int8 sized binary/hex literals
Previous Message Emily Carl 2001-02-16 21:29:29 Re: Regresstion Tests do not find PGLIB directory