From: | Kohei KaiGai <kaigai(at)heterodb(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Amit Langote <amitlangote09(at)gmail(dot)com>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Is MaxHeapAttributeNumber a reasonable restriction for foreign-tables? |
Date: | 2021-02-04 15:20:22 |
Message-ID: | CAOP8fzaqcHxam7qZSXS0Dca45SE1=C7raRbOdAZfVTftwqLTxA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
2021年2月4日(木) 23:45 Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>:
>
> Amit Langote <amitlangote09(at)gmail(dot)com> writes:
> > On Thu, Feb 4, 2021 at 4:24 PM Kohei KaiGai <kaigai(at)heterodb(dot)com> wrote:
> >> I think that MaxHeapAttributeNumber is a senseless restriction for foreign-
> >> tables. How about your opinions?
>
> > My first reaction to this was a suspicion that the
> > MaxHeapAttributeNumber limit would be too ingrained in PostgreSQL's
> > architecture to consider this matter lightly, but actually browsing
> > the code, that may not really be the case.
>
> You neglected to search for MaxTupleAttributeNumber...
>
> I'm quite skeptical of trying to raise this limit significantly.
>
> In the first place, you'd have to worry about the 2^15 limit on
> int16 AttrNumbers --- and keep in mind that that has to be enough
> for reasonable-size joins, not only an individual table. If you
> join a dozen or so max-width tables, you're already most of the way
> to that limit.
>
free_parsestate() also prevents to use target-list more than
MaxTupleAttributeNumber.
(But it is reasonable restriction because we cannot guarantee that
HeapTupleTableSlot
is not used during query execution.)
> In the second place, as noted by the comment you quoted, there are
> algorithms in various places that are O(N^2) (or maybe even worse?)
> in the number of columns they're dealing with.
>
Only table creation time, isn't it?
If N is not small (probably >100), we can use temporary HTAB to ensure
duplicated column-name is not supplied.
> In the third place, I've yet to see a use-case that didn't represent
> crummy table design. Pushing the table off to a remote server doesn't
> make it less crummy design.
>
I met this limitation to create a foreign-table that try to map Apache
Arrow file that
contains ~2,500 attributes of scientific observation data.
Apache Arrow internally has columnar format, and queries to this
data-set references
up to 10-15 columns on average. So, it shall make the query execution much more
efficient.
Thanks,
--
HeteroDB, Inc / The PG-Strom Project
KaiGai Kohei <kaigai(at)heterodb(dot)com>
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2021-02-04 15:21:00 | Re: Removing support for COPY FROM STDIN in protocol version 2 |
Previous Message | Amit Langote | 2021-02-04 15:06:05 | Re: Is MaxHeapAttributeNumber a reasonable restriction for foreign-tables? |