Обсуждение: Why we have tuplestore and tuplesort?

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

Why we have tuplestore and tuplesort?

От
Hitoshi Harada
Дата:
Thinking about window function performance improvement as well as
concerning about GROUPING SETS discussed a couple of days before, I
wonder why we have both of tuplestore and tuplesort. They are very
similar but have different functions such as multiple read pointer
with tuplestore whereas perform_sort with tuplesort. If we integrate
them, nodeWindowAgg, for instance, won't need Sort node before it and
will be able to avoid redundant tuple copy from the tuplesort (on the
Sort node) to the tuplestore.

Looking for git/cvs log a bit, tuplesort was already there since 1999
while tuplestore was introduced around 2000 for materialized node. Why
then was tuplestore invented as a new feature instead of extending
tuplesort? Can't we unit them now?


Regards,

-- 
Hitoshi Harada


Re: Why we have tuplestore and tuplesort?

От
Tom Lane
Дата:
Hitoshi Harada <umi.tanuki@gmail.com> writes:
> Looking for git/cvs log a bit, tuplesort was already there since 1999
> while tuplestore was introduced around 2000 for materialized node. Why
> then was tuplestore invented as a new feature instead of extending
> tuplesort? Can't we unit them now?

I think they'd be unmaintainable if merged.  Each one is complicated
enough as-is, and they have different concerns and different use-cases
to optimize for.  Moreover it's not clear that merging them would buy us
much --- saving one copy step doesn't excite me, even if it actually
came out to be true which I'm unconvinced about.
        regards, tom lane


Re: Why we have tuplestore and tuplesort?

От
Hitoshi Harada
Дата:
2009/8/16 Tom Lane <tgl@sss.pgh.pa.us>:
> Hitoshi Harada <umi.tanuki@gmail.com> writes:
>> Looking for git/cvs log a bit, tuplesort was already there since 1999
>> while tuplestore was introduced around 2000 for materialized node. Why
>> then was tuplestore invented as a new feature instead of extending
>> tuplesort? Can't we unit them now?
>
> I think they'd be unmaintainable if merged.  Each one is complicated
> enough as-is, and they have different concerns and different use-cases
> to optimize for.  Moreover it's not clear that merging them would buy us
> much --- saving one copy step doesn't excite me, even if it actually
> came out to be true which I'm unconvinced about.
>
>                        regards, tom lane
>

I agree it would be unmaintainable. However it sounds like there's no
crystal clear reason the two are separated. Before tuplestore got
multiple read pointers it was quite similar to tuplestore except
performing sort so I can imagine allowing tuplesort to have multiple
read pointers.


Regards,

--
Hitoshi Harada


Re: Why we have tuplestore and tuplesort?

От
Hitoshi Harada
Дата:
2009/8/16 Hitoshi Harada <umi.tanuki@gmail.com>:
> 2009/8/16 Tom Lane <tgl@sss.pgh.pa.us>:
>> Hitoshi Harada <umi.tanuki@gmail.com> writes:
>>> Looking for git/cvs log a bit, tuplesort was already there since 1999
>>> while tuplestore was introduced around 2000 for materialized node. Why
>>> then was tuplestore invented as a new feature instead of extending
>>> tuplesort? Can't we unit them now?
>>
>> I think they'd be unmaintainable if merged.  Each one is complicated
>> enough as-is, and they have different concerns and different use-cases
>> to optimize for.  Moreover it's not clear that merging them would buy us
>> much --- saving one copy step doesn't excite me, even if it actually
>> came out to be true which I'm unconvinced about.
>>
>>                        regards, tom lane
>>
>
> I agree it would be unmaintainable. However it sounds like there's no
> crystal clear reason the two are separated. Before tuplestore got
> multiple read pointers it was quite similar to tuplestore except

oops, "similar to tuplesort"

> performing sort so I can imagine allowing tuplesort to have multiple
> read pointers.
>
>
> Regards,
>
> --
> Hitoshi Harada
>



--
Hitoshi Harada