Re: char(0) - Mailing list pgsql-bugs
From | Susanne Ebrecht |
---|---|
Subject | Re: char(0) |
Date | |
Msg-id | 4E9C3440.8090703@2ndQuadrant.com Whole thread Raw |
In response to | Re: char(0) (Boszormenyi Zoltan <zb@cybertec.at>) |
List | pgsql-bugs |
Hello, On 17.10.2011 15:44, Boszormenyi Zoltan wrote: > 2011-10-17 14:28 keltezéssel, Susanne Ebrecht írta: >> On 17.10.2011 10:30, Simon Riggs wrote: >>> On Mon, Oct 17, 2011 at 8:31 AM, Susanne Ebrecht >>> <susanne@2ndquadrant.com> wrote: >>> >>>> PostgreSQL isn't supporting CHAR(0). >>> What does the SQL Standard say? >>> >> >> Document: 02-Foundation >> >> Section: 4.2.1 Introduction to character strings >> >> Begin quoting >> A character string is a sequence of characters. All the characters in >> a character string are taken from a single >> character set. A character string has a length, which is the number >> of characters in the sequence. The length is >> 0 (zero) or a positive integer. >> End quoting > > I am looking at 6WD2_02_Foundation_2007-12.pdf. > Search for "<character length>" that is used in section "6.1 <data > type>": > > <character length> := <unsigned integer> [ <char length units> ] > > Section 6.1 doesn't talk about limiting the definition to > 0 values > > But in page 157, section "5.3 <literal>": > > ============================================================ > 17) The declared type of a <character string literal> is fixed-length > character string. The length of a <character > string literal> is the number of <character representation>s that it > contains. Each <quote symbol> contained > in <character string literal> represents a single <quote> in both the > value and the length of the <character > string literal>. The two <quote>s contained in a <quote symbol> shall > not be separated by any <separator>. > > NOTE 92 <character string literal>s are allowed to be zero-length > strings (i.e., to contain no characters) even though it is > not permitted to declare a <data type> that is CHARACTER with > <character length> 0 (zero). > ============================================================ > > So, a table column is not allowed to be char(0) or varchar(0). It's > explicit in NOTE 92. > I looked this up again. I found more passages in which is written that it should start with 0. But in the section you mentioned here - 1 is given. That is a bug in SQL Standard. SQL Standard is inconsistent here. The next SQL Standard meeting is next week. Of course I will bring up this problem. We will see what will be the outcome of it. Susanne -- Susanne Ebrecht - 2ndQuadrant PostgreSQL Development, 24x7 Support, Training and Services www.2ndQuadrant.com
pgsql-bugs by date: