Thread

  1. attlen weirdness?

    Julia A.Case <julie@hub.org> — 1998-03-10T10:00:56Z

    I am using the following info to migrate a table from 6.2.1 to 6.3
    
    \connect template1 
    drop database magecal;
    create database magecal;
    \connect magecal 
    \connect - julie
    CREATE TABLE dates (id int4, date char(10), news char(1024)) archive = none;
    COPY dates FROM stdin;
    1	1998Jan16	<H3>Calendar Created</H3>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !
                                                 
    \.
    CREATE  INDEX dates_indx on dates using btree ( id int4_ops, date bpchar_ops );
    
    
    now if I connect to the database and do
    
    select attlen from pg_attribute where attname='news';
    
    I get
    -1
    
    This doesn't seem quite right.
    
    Julie
    
    -- 
    [  Julia Anne Case  ] [        Ships are safe inside the harbor,       ]
    [Programmer at large] [      but is that what ships are really for.    ]  
    [   Admining Linux  ] [           To thine own self be true.           ]
    [ Windows/WindowsNT ] [ Fair is where you take your cows to be judged. ]
    
    
  2. Re: [HACKERS] attlen weirdness?

    Julia A.Case <julie@hub.org> — 1998-03-11T08:21:24Z

    Quoting The Hermit Hacker (scrappy@hub.org):
    > 
    > Bruce?  Guys?  Any word on this one?  I *thought* I remembered reading
    > soething about the 'attlen' becoming -1, but just checked the mailing list
    > archives and couldn't find anything :(
    >
    
    	It appears as if atttypmod now has the field length + 4 ???
    
            Julie
    
    -- 
    [  Julia Anne Case  ] [        Ships are safe inside the harbor,       ]
    [Programmer at large] [      but is that what ships are really for.    ]  
    [   Admining Linux  ] [           To thine own self be true.           ]
    [ Windows/WindowsNT ] [ Fair is where you take your cows to be judged. ]
    
    
  3. Re: [HACKERS] attlen weirdness?

    Julia A.Case <julie@hub.org> — 1998-03-11T10:16:05Z

    Quoting Bruce Momjian (maillist@candle.pha.pa.us):
    > I assume you are asking of attlen for char() and varchar() have the max
    > length.  The answer is now NO.  They are varlena structures like text,
    > and so have a attlen of -1.  Atttypmod for that pg_attribute row now has
    > the defined length.
    > 
    
    	Even for a char(4) field?  ok, if attlen doesn't give the
    length of a field, how do I find it?
    
    Julie
    
    -- 
    [  Julia Anne Case  ] [        Ships are safe inside the harbor,       ]
    [Programmer at large] [      but is that what ships are really for.    ]  
    [   Admining Linux  ] [           To thine own self be true.           ]
    [ Windows/WindowsNT ] [ Fair is where you take your cows to be judged. ]
    
    
  4. Re: [HACKERS] attlen weirdness?

    Julia A.Case <julie@hub.org> — 1998-03-11T10:21:29Z

    Quoting Bruce Momjian (maillist@candle.pha.pa.us):
    > 
    > pg_attribute.atttypmod.
    > 
    	this field appears to be field size + 4
            in a char(1024) field it returns 1028
            in a char(10) it returns 14
    
            is it padded?
    
            Julie
    
    -- 
    [  Julia Anne Case  ] [        Ships are safe inside the harbor,       ]
    [Programmer at large] [      but is that what ships are really for.    ]  
    [   Admining Linux  ] [           To thine own self be true.           ]
    [ Windows/WindowsNT ] [ Fair is where you take your cows to be judged. ]
    
    
  5. Re: [HACKERS] attlen weirdness?

    Marc G. Fournier <scrappy@hub.org> — 1998-03-11T13:11:48Z

    Bruce?  Guys?  Any word on this one?  I *thought* I remembered reading
    soething about the 'attlen' becoming -1, but just checked the mailing list
    archives and couldn't find anything :(
    
    Thanks...
    
    On Tue, 10 Mar 1998, Julia A.Case wrote:
    
    > I am using the following info to migrate a table from 6.2.1 to 6.3
    > 
    > \connect template1 
    > drop database magecal;
    > create database magecal;
    > \connect magecal 
    > \connect - julie
    > CREATE TABLE dates (id int4, date char(10), news char(1024)) archive = none;
    > COPY dates FROM stdin;
    > 1	1998Jan16	<H3>Calendar Created</H3>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !
    > !
    > !
    >                                              
    > \.
    > CREATE  INDEX dates_indx on dates using btree ( id int4_ops, date bpchar_ops );
    > 
    > 
    > now if I connect to the database and do
    > 
    > select attlen from pg_attribute where attname='news';
    > 
    > I get
    > -1
    > 
    > This doesn't seem quite right.
    > 
    > Julie
    > 
    > -- 
    > [  Julia Anne Case  ] [        Ships are safe inside the harbor,       ]
    > [Programmer at large] [      but is that what ships are really for.    ]  
    > [   Admining Linux  ] [           To thine own self be true.           ]
    > [ Windows/WindowsNT ] [ Fair is where you take your cows to be judged. ]
    > 
    
    
    
  6. Re: [HACKERS] attlen weirdness?

    Bruce Momjian <maillist@candle.pha.pa.us> — 1998-03-11T14:41:07Z

    > 
    > Quoting The Hermit Hacker (scrappy@hub.org):
    > > 
    > > Bruce?  Guys?  Any word on this one?  I *thought* I remembered reading
    > > soething about the 'attlen' becoming -1, but just checked the mailing list
    > > archives and couldn't find anything :(
    > >
    > 
    > 	It appears as if atttypmod now has the field length + 4 ???
    
    I am the atttypmod guy, but there is not enough context to answer this
    question.
    
    
    -- 
    Bruce Momjian                          |  830 Blythe Avenue
    maillist@candle.pha.pa.us              |  Drexel Hill, Pennsylvania 19026
      +  If your life is a hard drive,     |  (610) 353-9879(w)
      +  Christ can be your backup.        |  (610) 853-3000(h)
    
    
  7. Re: [HACKERS] attlen weirdness?

    Bruce Momjian <maillist@candle.pha.pa.us> — 1998-03-11T14:44:43Z

    > 
    > Quoting The Hermit Hacker (scrappy@hub.org):
    > > 
    > > Bruce?  Guys?  Any word on this one?  I *thought* I remembered reading
    > > soething about the 'attlen' becoming -1, but just checked the mailing list
    > > archives and couldn't find anything :(
    > >
    > 
    > 	It appears as if atttypmod now has the field length + 4 ???
    
    I assume you are asking of attlen for char() and varchar() have the max
    length.  The answer is now NO.  They are varlena structures like text,
    and so have a attlen of -1.  Atttypmod for that pg_attribute row now has
    the defined length.
    
    In the old days, pre 6.3, pg_type.typlen != pg_attribute.attlen for
    char() and varchar(), causing all sorts of type-conditional wierness in
    the backend for these types.  With the new code, pg_type.typlen =
    pg_attribute.attlen all the time.
    
    -- 
    Bruce Momjian                          |  830 Blythe Avenue
    maillist@candle.pha.pa.us              |  Drexel Hill, Pennsylvania 19026
      +  If your life is a hard drive,     |  (610) 353-9879(w)
      +  Christ can be your backup.        |  (610) 853-3000(h)
    
    
  8. Re: [HACKERS] attlen weirdness?

    Bruce Momjian <maillist@candle.pha.pa.us> — 1998-03-11T15:20:35Z

    > 
    > Quoting Bruce Momjian (maillist@candle.pha.pa.us):
    > > I assume you are asking of attlen for char() and varchar() have the max
    > > length.  The answer is now NO.  They are varlena structures like text,
    > > and so have a attlen of -1.  Atttypmod for that pg_attribute row now has
    > > the defined length.
    > > 
    > 
    > 	Even for a char(4) field?  ok, if attlen doesn't give the
    > length of a field, how do I find it?
    
    pg_attribute.atttypmod.
    
    -- 
    Bruce Momjian                          |  830 Blythe Avenue
    maillist@candle.pha.pa.us              |  Drexel Hill, Pennsylvania 19026
      +  If your life is a hard drive,     |  (610) 353-9879(w)
      +  Christ can be your backup.        |  (610) 853-3000(h)
    
    
  9. Re: [HACKERS] attlen weirdness?

    Bruce Momjian <maillist@candle.pha.pa.us> — 1998-03-11T15:53:10Z

    > 
    > Quoting Bruce Momjian (maillist@candle.pha.pa.us):
    > > 
    > > pg_attribute.atttypmod.
    > > 
    > 	this field appears to be field size + 4
    >         in a char(1024) field it returns 1028
    >         in a char(10) it returns 14
    > 
    >         is it padded?
    > 
    
    Yes.  All varlena sizes store the VARHDRSZ, variable header size of 4,
    in the length field.
    
    -- 
    Bruce Momjian                          |  830 Blythe Avenue
    maillist@candle.pha.pa.us              |  Drexel Hill, Pennsylvania 19026
      +  If your life is a hard drive,     |  (610) 353-9879(w)
      +  Christ can be your backup.        |  (610) 853-3000(h)