On Thu, 10 Apr 2025 at 20:07, Fujii Masao <masao.fu...@oss.nttdata.com> wrote: > > > > On 2025/04/09 19:24, Kirill Reshke wrote: > > On Wed, 9 Apr 2025 at 14:45, Fujii Masao <masao.fu...@oss.nttdata.com> > > wrote: > >> > >> > >> > >> On 2025/04/09 18:25, Kirill Reshke wrote: > >>> On Wed, 9 Apr 2025 at 13:23, jian he <jian.universal...@gmail.com> wrote: > >>>> > >>>> hi. > >>>> > >>>> we allow the "COPY table TO" command to copy rows from materialized > >>>> views in [1]. > >>>> The attached patch is to add a tab complete for it. > >>>> > >>>> [1] > >>>> https://git.postgresql.org/cgit/postgresql.git/commit/?id=534874fac0b34535c9a5ab9257d6574f78423578 > >>> > >>> Hi! > >>> Patch works good for me, but I noticed that psql COPY <tab> suggests > >>> partitioned relation both with and without this patch. Maybe that's > >>> not a big problem, if [0] will be pushed. > >> > >> Is the partitioned table currently tab-completed for the COPY FROM case? > > > > If I'm not mistaken, yes. I double checked. > > > >> INSTEAD OF INSERT triggers - though maybe that's overkill? > > > > That's wild to me, psql tab completions feature designed to support > > postgresql not fully, but in frequent cases. So maybe we should keep > > it stupud. > > I agree that it's reasonable to exclude such rarely used objects from > tab-completion. How about including just tables, partitioned tables, > foreign tables, and materialized views? > I've attached a patch for that. > > Regards,
Patch is ok. However... > If we aim to support tab-completion for all valid targets of both COPY TO and COPY FROM, shouldn't foreign tables also be included? Ah.. Sorry I missed this part of your message initially. No, foreign tables are not supported: ``` reshke=# CREATE FOREIGN TABLE ft (i int) server zz OPTIONS ( filename 'zz.csv', format 'csv' ); reshke=# copy ft to stdout; ERROR: cannot copy from foreign table "ft" HINT: Try the COPY (SELECT ...) TO variant. ``` So we will tab complete for cases that yet to be supported (foreign tables and partitioned tables); What's funny is that copying foreign tables using MV works fine ``` reshke=# create materialized view mv as table ft; SELECT 1 reshke=# copy mv to stdout; 228 ``` -- Best regards, Kirill Reshke