Обсуждение: psql ERROR : Character Types Tuple is too big: size xxxxx

Поиск
Список
Период
Сортировка

psql ERROR : Character Types Tuple is too big: size xxxxx

От
Compte utilisateur Sultan-advl
Дата:
Hi,

From Bruce online book :
"There are synonyms for the terms table, row, and column. Table is more
formally referred to as a relation or class, row as record or tuple, and column
as field or attribute.
" 
====
8Kb limit apply to :
'tuple' when insert ?
'tuple' in design stage (what's append with fixe types) ?
column (Case of fixe types) ???

What's wrong ?
- Design database
- Postgresql limit
Can't find informations on documentation and mail archive's obscure on 8Kb
limit.

Thanks fo help.
Emmanuel DISCORS
http://www.advl.org/kiwi/
===================
Error under psql interface :

A) The tuple in the 'insert' is < 8K but the tuple in table
description is > 8Kb

newkiwi=> insert into localisation values ('999', 'ee', 'ff', '999', 'gg',
'hh', 'ii', 'jj', '999'); ERROR:  Tuple is too big: size 12356
newkiwi=> \d localisation
Table    = localisation
+----------------------------------+----------------------------------+-------+
|              Field               |              Type                | Length|
+----------------------------------+----------------------------------+-------+
| id_loc                           | int4 not null                    |     4 |
| voie_loc                         | char()                           |  2048 |
| codebat_loc                      | char()                           |  2048 |
| idplan_loc                       | int4                             |     4 |
| xplan_loc                        | char()                           |  2048 |
| yplan_loc                        | char()                           |  2048 |
| acces_loc                        | char()                           |  2048 |
| accesen_loc                      | char()                           |  2048 |
| id_ville_loc                     | int4                             |     4 |
+----------------------------------+----------------------------------+-------+
Indices:  localisation_pkey
          localisationi1
          localisationi2
          localisationi3


B) The tuple in the 'insert' is < 8K and the tuple in table
description is < 8Kb

newkiwi=> insert into localisation values ('999', 'ee', 'ff', '999', 'gg', 'hh', 'ii', 'jj', '999');
INSERT 62016 1
newkiwi=> insert into localisation values ('999', 'ee', 'ff', '999', 'gg', 'hh', 'ii', 'jj', '999');
ERROR:  Cannot insert a duplicate key into a unique index
newkiwi=> insert into localisation values ('9998', 'ee', 'ff', '999', 'gg', 'hh', 'ii', 'jj', '999');
INSERT 62018 1
newkiwi=> \d localisation
Table    = localisation
+----------------------------------+----------------------------------+-------+
|              Field               |              Type                | Length|
+----------------------------------+----------------------------------+-------+
| id_loc                           | int4 not null                    |     4 |
| voie_loc                         | char()                           |  1024 |
| codebat_loc                      | char()                           |  1024 |
| idplan_loc                       | int4                             |     4 |
| xplan_loc                        | char()                           |  1024 |
| yplan_loc                        | char()                           |  1024 |
| acces_loc                        | char()                           |  1024 |
| accesen_loc                      | char()                           |  1024 |
| id_ville_loc                     | int4                             |     4 |
+----------------------------------+----------------------------------+-------+
Indices:  localisation_pkey
          localisationi1
          localisationi2
          localisationi3
===============================================




Re: [INTERFACES] psql ERROR : Character Types Tuple is too big: size xxxxx

От
Tom Lane
Дата:
Compte utilisateur Sultan-advl <webmaster@advl.org> writes:
> newkiwi=> insert into localisation values ('999', 'ee', 'ff', '999', 'gg',
> 'hh', 'ii', 'jj', '999');
> ERROR:  Tuple is too big: size 12356
> newkiwi=> \d localisation
> Table    = localisation
> +----------------------------------+----------------------------------+-------+
> |              Field               |              Type                | Length|
> +----------------------------------+----------------------------------+-------+
> | id_loc                           | int4 not null                    |     4 |
> | voie_loc                         | char()                           |  2048 |
> | codebat_loc                      | char()                           |  2048 |
> | idplan_loc                       | int4                             |     4 |
> | xplan_loc                        | char()                           |  2048 |
> | yplan_loc                        | char()                           |  2048 |
> | acces_loc                        | char()                           |  2048 |
> | accesen_loc                      | char()                           |  2048 |
> | id_ville_loc                     | int4                             |     4 |
> +----------------------------------+----------------------------------+-------+

Well, you've got six fixed-size 2K fields, which are going to take up
12K all by themselves, plus there's a few dozen bytes of overhead.

I'd suggest using varchar or text instead of char --- do you really
need 12K of blank-padding in every record?

            regards, tom lane

Re: [NOVICE] Re: [INTERFACES] psql ERROR : Character Types Tuple is too big: size xxxxx

От
"D. Duccini"
Дата:
and on top of that, why insert character strings into columns expecting
numeric values?

defintely use VARCHAR unless you are going to be filling those columns up

-duck

> Compte utilisateur Sultan-advl <webmaster@advl.org> writes:
> > newkiwi=> insert into localisation values ('999', 'ee', 'ff', '999', 'gg',
> > 'hh', 'ii', 'jj', '999');
> > ERROR:  Tuple is too big: size 12356
> > newkiwi=> \d localisation
> > Table    = localisation
> > +----------------------------------+----------------------------------+-------+
> > |              Field               |              Type                | Length|
> > +----------------------------------+----------------------------------+-------+
> > | id_loc                           | int4 not null                    |     4 |
> > | voie_loc                         | char()                           |  2048 |
> > | codebat_loc                      | char()                           |  2048 |
> > | idplan_loc                       | int4                             |     4 |
> > | xplan_loc                        | char()                           |  2048 |
> > | yplan_loc                        | char()                           |  2048 |
> > | acces_loc                        | char()                           |  2048 |
> > | accesen_loc                      | char()                           |  2048 |
> > | id_ville_loc                     | int4                             |     4 |
> > +----------------------------------+----------------------------------+-------+
>
> Well, you've got six fixed-size 2K fields, which are going to take up
> 12K all by themselves, plus there's a few dozen bytes of overhead.
>
> I'd suggest using varchar or text instead of char --- do you really
> need 12K of blank-padding in every record?
>
>             regards, tom lane
>
> ************
>


-----------------------------------------------------------------------------
david@backpack.com            BackPack Software, Inc.        www.backpack.com
+1 651.645.7550 voice       "Life is an Adventure.
+1 651.645.9798 fax            Don't forget your BackPack!"
-----------------------------------------------------------------------------


Re: [INTERFACES] psql ERROR : Character Types Tuple is too big: size xxxxx

От
Compte utilisateur Sultan-advl
Дата:
Hi,
Just to see if psql raise an error message ;-)
Emmanuel.

Le ven, 14 jan 2000, D. Duccini a �crit :
> and on top of that, why insert character strings into columns expecting
> numeric values?
> 
> defintely use VARCHAR unless you are going to be filling those columns up
> 
> -duck
> 
> > Compte utilisateur Sultan-advl <webmaster@advl.org> writes:
> > > newkiwi=> insert into localisation values ('999', 'ee', 'ff', '999', 'gg',
> > > 'hh', 'ii', 'jj', '999');
> > > ERROR:  Tuple is too big: size 12356
> > > newkiwi=> \d localisation
> > > Table    = localisation
> > > +----------------------------------+----------------------------------+-------+
> > > |              Field               |              Type                | Length|
> > > +----------------------------------+----------------------------------+-------+
> > > | id_loc                           | int4 not null                    |     4 |
> > > | voie_loc                         | char()                           |  2048 |
> > > | codebat_loc                      | char()                           |  2048 |
> > > | idplan_loc                       | int4                             |     4 |
> > > | xplan_loc                        | char()                           |  2048 |
> > > | yplan_loc                        | char()                           |  2048 |
> > > | acces_loc                        | char()                           |  2048 |
> > > | accesen_loc                      | char()                           |  2048 |
> > > | id_ville_loc                     | int4                             |     4 |
> > > +----------------------------------+----------------------------------+-------+
> > 
> > Well, you've got six fixed-size 2K fields, which are going to take up
> > 12K all by themselves, plus there's a few dozen bytes of overhead.
> > 
> > I'd suggest using varchar or text instead of char --- do you really
> > need 12K of blank-padding in every record?
> > 
> >             regards, tom lane
> > 
> > ************
> > 
> 
> 
> -----------------------------------------------------------------------------
> david@backpack.com            BackPack Software, Inc.        www.backpack.com
> +1 651.645.7550 voice       "Life is an Adventure.    
> +1 651.645.9798 fax            Don't forget your BackPack!"   
> -----------------------------------------------------------------------------