Sergey E. Koposov wrote:
>>>For the real functions which I use, instead of
>>
>>>query = ''SELECT * FROM usno'';
>>
>>>I have
>>
>>>query = my_C_function(some_args);
>>
>>Oh? I'd make a small side bet that the underlying error is in your C
>>function --- possibly it's tromping on some data structure and the
>>damage doesn't have an effect till later. If you can demonstrate the
>>problem without using any custom C functions then I'd be interested to
>>see a test case.
>
>
> I want to clarify, that I have a problem even without my C functions!!
>
> And show the full exact(but long) test case, which I performed just now
> specially.
>
> I begin from table usno with 500 millions records
>
> wsdb=# \d usno
> Table "public.usno"
> Column | Type | Modifiers
> --------+--------+-----------
> ra | real |
> dec | real |
> bmag | real |
> rmag | real |
> ipix | bigint |
> errbox | box |
> Indexes:
> "box_ind" rtree (errbox)
> "ipix_ind" btree (ipix)
> "radec_ind" btree (ra, "dec")
This is just a shot in the dark, but I don't suppose you've dropped or
modified any columns in "usno" have you?
I seem to remember some subtle problems with dropped columns and plpgsql
functions - could be one of those still left. It'd look like tablesize
was the problem because of course no-one's got time to test with 500
million test rows.
-- Richard Huxton Archonet Ltd