Thread: ERROR: index row size

ERROR: index row size

From
"Rodrigo Sakai"
Date:
<div class="Section1"><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size:10.0pt;
font-family:Arial">  Hello,</span></font><p class="MsoNormal"><font face="Arial" size="2"><span
style="font-size:10.0pt;
font-family:Arial"> </span></font><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size:10.0pt;
font-family:Arial">  I’m having a big trouble with the index size! I have looked for a solution in the internet, but
thesolutions that I found don’t fit for me! </span></font><p class="MsoNormal"><font face="Arial" size="2"><span
style="font-size:10.0pt;
font-family:Arial">  I developed a new data type using C and add this new type on PostgreSQL. Basically, the data type
is:(DateADT, DateADT) with some temporal rules that I’m researching! The data type is ok; the in, out, receive and send
functionsare ok; some operations are ok. But the index operators and functions are not working properly! Actually I can
usethem, but in some cases an error occurs about index row size.</span></font><p class="MsoNormal"><font face="Arial"
size="2"><spanstyle="font-size:10.0pt; 
font-family:Arial">  I’m sure that the functions in, out, receive and send are well implemented. I think the problem is
thatthe data type is really big and needs a “big index”.</span></font><p class="MsoNormal"><font face="Arial"
size="2"><spanstyle="font-size:10.0pt; 
font-family:Arial"> </span></font><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size:10.0pt;
font-family:Arial">  The implementation code of the data type is::</span></font><p class="MsoNormal"><font face="Arial"
size="2"><spanstyle="font-size:10.0pt; 
font-family:Arial"> </span></font><p class="MsoNormal" style="margin-left:.5in"><font face="Arial" size="2"><span
style="font-size:10.0pt;font-family:Arial">typedefstruct t_periodo</span></font><p class="MsoNormal"
style="margin-left:.5in"><fontface="Arial" size="2"><span style="font-size:10.0pt;font-family:Arial">{</span></font><p
class="MsoNormal"style="margin-left:.5in"><font face="Arial" size="2"><span
style="font-size:10.0pt;font-family:Arial">           DateADT                       tvi;</span></font><p
class="MsoNormal"style="margin-left:.5in"><font face="Arial" size="2"><span
style="font-size:10.0pt;font-family:Arial">           DateADT                       tvf;</span></font><p
class="MsoNormal"style="margin-left:.5in"><font face="Arial" size="2"><span
style="font-size:10.0pt;font-family:Arial">}          Periodo;</span></font><p class="MsoNormal"><font face="Arial"
size="2"><spanstyle="font-size:10.0pt; 
font-family:Arial"> </span></font><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size:10.0pt;
font-family:Arial"> </span></font><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size:10.0pt;
font-family:Arial">  Any ideas to solve my problem? Perhaps increasing the BLOCKSIZE could be one solution. Not very
smartone, but can solve temporally my problem?!?!</span></font><p class="MsoNormal"><font face="Arial" size="2"><span
style="font-size:10.0pt;
font-family:Arial"> </span></font><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size:10.0pt;
font-family:Arial">  Thanks in advance!</span></font></div>

Re: ERROR: index row size

From
Tom Lane
Date:
"Rodrigo Sakai" <rodrigo.sakai@poli.usp.br> writes:
>   I developed a new data type using C and add this new type on PostgreSQL.
> Basically, the data type is: (DateADT, DateADT) with some temporal rules
> that I'm researching! The data type is ok; the in, out, receive and send
> functions are ok; some operations are ok. But the index operators and
> functions are not working properly! Actually I can use them, but in some
> cases an error occurs about index row size.

You have a bug in your datatype code.  There's no way an 8-byte datatype
should produce that error.
        regards, tom lane


Re: ERROR: index row size

From
Mark Kirkwood
Date:
Rodrigo Sakai wrote:
>   Hello,
> 
>  
> 
>   I’m having a big trouble with the index size! I have looked for a 
> solution in the internet, but the solutions that I found don’t fit for me!
> 

I would guess you have an allocation calculation error/memory leak 
somewhere in your implementation - maybe post a link to the actual C 
code (in case someone wants to have a look at it for you)!

(Valgrind might help you here, otherwise you can set a few breakpoints 
in gdb and check what is going on).

Cheers

Mark