Обсуждение: Tuple length limit
Can someone tell me what the maximum tuple length is? Is it sort of BLCKSZ or BLCKSZ/2? I don't remember if we require the ability to have at least two tuples in a block. -- Bruce Momjian | http://www.op.net/~candle maillist@candle.pha.pa.us | (610) 853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania19026
> Can someone tell me what the maximum tuple length is? Is it sort of > BLCKSZ or BLCKSZ/2? I don't remember if we require the ability to have > at least two tuples in a block. IIRC, the max tuple size was always intended to be BLCKSZ, it's just the max size of the text fields that were 4096. I don't remember any discussions ever on this list about trying to control the # of tuples stored per block. Hope this helps... Darren
[Charset iso-8859-1 unsupported, filtering to ASCII...] > > Can someone tell me what the maximum tuple length is? Is it sort of > > BLCKSZ or BLCKSZ/2? I don't remember if we require the ability to have > > at least two tuples in a block. > > IIRC, the max tuple size was always intended to be BLCKSZ, it's just the max > size of the text fields that were 4096. I don't remember any discussions > ever on this list about trying to control the # of tuples stored per block. > That is what I found too, but vacuum seems to use BLCKSZ/2, varchar uses BLCKSZ/2, and tuple size is BLCKSZ. Doesn't make any sense. -- Bruce Momjian | http://www.op.net/~candle maillist@candle.pha.pa.us | (610) 853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania19026
> Can someone tell me what the maximum tuple length is? Is it sort of
> BLCKSZ or BLCKSZ/2? I don't remember if we require the ability to have
> at least two tuples in a block.
Here is what I found with the new code. Seems it works.
---------------------------------------------------------------------------test=> create table test (x
char(8104));CREATEtest=>insert into test values ('x');INSERT 21417 1test=> insert into test values ('x');INSERT 21418
1test=>insert into test values ('x');INSERT 21419 1test=> insert into test values ('x');INSERT 21420 1test=>
vacuum;VACUUMtest=>delete from test;DELETE 4test=> vacuum;VACUUM
-- Bruce Momjian | http://www.op.net/~candle maillist@candle.pha.pa.us | (610)
853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill,
Pennsylvania19026
Bruce Momjian <maillist@candle.pha.pa.us> writes:
>> Can someone tell me what the maximum tuple length is?
I had always thought that the limit was supposed to be BLCKSZ less
overhead.
> Here is what I found with the new code. Seems it works.
> test=> vacuum;
> VACUUM
Wasn't the complaint that started this thread something about "peculiar
behavior" of VACUUM with big tuples? Might be wise to check VACUUM more
closely.
regards, tom lane
> Bruce Momjian <maillist@candle.pha.pa.us> writes: > >> Can someone tell me what the maximum tuple length is? > > I had always thought that the limit was supposed to be BLCKSZ less > overhead. > > > Here is what I found with the new code. Seems it works. > > test=> vacuum; > > VACUUM > > Wasn't the complaint that started this thread something about "peculiar > behavior" of VACUUM with big tuples? Might be wise to check VACUUM more > closely. We were inconsistent. Varchar and vacuum where BLCKSZ/2, while others where BLCKSZ, of course minus overhead. The new code is consistent, and does proper padding. I even got rid of a fudge factor in rewrite storage by using the actual rewrite lengths. Will be in 6.5.1. -- Bruce Momjian | http://www.op.net/~candle maillist@candle.pha.pa.us | (610) 853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania19026
As a matter of fact, VACUUM works just fine in my case. It is VACUUM ANALYSE which doesn't. Regards, Mikhail Tom Lane wrote: > > Bruce Momjian <maillist@candle.pha.pa.us> writes: > >> Can someone tell me what the maximum tuple length is? > > I had always thought that the limit was supposed to be BLCKSZ less > overhead. > > > Here is what I found with the new code. Seems it works. > > test=> vacuum; > > VACUUM > > Wasn't the complaint that started this thread something about "peculiar > behavior" of VACUUM with big tuples? Might be wise to check VACUUM more > closely. > > regards, tom lane
[Charset koi8-r unsupported, filtering to ASCII...] > As a matter of fact, VACUUM works just fine in my case. > It is VACUUM ANALYSE which doesn't. Good point. Works for me now. -- Bruce Momjian | http://www.op.net/~candle maillist@candle.pha.pa.us | (610) 853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania19026