From: | Susanne Ebrecht <susanne(at)2ndQuadrant(dot)com> |
---|---|
To: | Boszormenyi Zoltan <zb(at)cybertec(dot)at> |
Cc: | pgsql-bugs(at)postgresql(dot)org |
Subject: | Re: char(0) |
Date: | 2011-10-17 13:57:20 |
Message-ID: | 4E9C3440.8090703@2ndQuadrant.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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(at)2ndquadrant(dot)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
From | Date | Subject | |
---|---|---|---|
Next Message | Andreas Pflug | 2011-10-17 14:41:24 | Re: char(0) |
Previous Message | Boszormenyi Zoltan | 2011-10-17 13:44:18 | Re: char(0) |