From: | Sutou Kouhei <kou(at)clear-code(dot)com> |
---|---|
To: | david(dot)g(dot)johnston(at)gmail(dot)com |
Cc: | sawada(dot)mshk(at)gmail(dot)com, tgl(at)sss(dot)pgh(dot)pa(dot)us, zhjwpku(at)gmail(dot)com, michael(at)paquier(dot)xyz, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Make COPY format extendable: Extract COPY TO format implementations |
Date: | 2025-03-30 02:31:26 |
Message-ID: | 20250330.113126.433742864258096312.kou@clear-code.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
In <CAKFQuwYF7VnYcS9dkfvdzt-dgftMB1DV0bjRcNC8-4iYGS+gjw(at)mail(dot)gmail(dot)com>
"Re: Make COPY format extendable: Extract COPY TO format implementations" on Sat, 29 Mar 2025 09:48:22 -0700,
"David G. Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> wrote:
> I don't think this module should be responsible for testing the validity of
> "qualified names in a string literal" behavior. Having some of the tests
> use a schema qualification, and I'd suggest explicit
> double-quoting/case-folding, wouldn't hurt just to demonstrate it's
> possible, and how extensions should be referenced, but definitely don't
> need tests to prove the broken cases are indeed broken. This relies on an
> existing API that has its own tests. It is definitely pointlessly
> redundant to have 6 tests that only differ from 6 other tests in their use
> of a schema qualification.
You suggest the followings, right?
1. Add tests for "Schema.Name" with mixed cases
2. Remove the following 6 tests in
src/test/modules/test_copy_format/sql/invalid.sql
----
COPY public.test FROM stdin WITH (FORMAT 'test_schema.test_copy_format_wrong_input_type');
COPY public.test TO stdout WITH (FORMAT 'test_schema.test_copy_format_wrong_input_type');
COPY public.test FROM stdin WITH (FORMAT 'test_schema.test_copy_format_wrong_return_type');
COPY public.test TO stdout WITH (FORMAT 'test_schema.test_copy_format_wrong_return_type');
COPY public.test FROM stdin WITH (FORMAT 'test_schema.test_copy_format_wrong_return_value');
COPY public.test TO stdout WITH (FORMAT 'test_schema.test_copy_format_wrong_return_value');
----
because we have the following 6 tests:
----
SET search_path = public,test_schema;
COPY public.test FROM stdin WITH (FORMAT 'test_copy_format_wrong_input_type');
COPY public.test TO stdout WITH (FORMAT 'test_copy_format_wrong_input_type');
COPY public.test FROM stdin WITH (FORMAT 'test_copy_format_wrong_return_type');
COPY public.test TO stdout WITH (FORMAT 'test_copy_format_wrong_return_type');
COPY public.test FROM stdin WITH (FORMAT 'test_copy_format_wrong_return_value');
COPY public.test TO stdout WITH (FORMAT 'test_copy_format_wrong_return_value');
RESET search_path;
----
3. Remove the following tests because the behavior must be
tested in other places:
----
COPY public.test FROM stdin WITH (FORMAT 'nonexistent');
COPY public.test TO stdout WITH (FORMAT 'nonexistent');
COPY public.test FROM stdin WITH (FORMAT 'invalid.qualified.name');
COPY public.test TO stdout WITH (FORMAT 'invalid.qualified.name');
----
Does it miss something?
1.: There is no difference between single-quoting and
double-quoting here. Because the information what quote
was used for the given FORMAT value isn't remained
here. Should we update gram.y?
2.: I don't have a strong opinion for it. If nobody objects
it, I'll remove them.
3.: I don't have a strong opinion for it. If nobody objects
it, I'll remove them.
Thanks,
--
kou
From | Date | Subject | |
---|---|---|---|
Next Message | Noah Misch | 2025-03-30 02:45:13 | Re: AIO v2.5 |
Previous Message | vignesh C | 2025-03-30 01:18:46 | Re: Speed up ICU case conversion by using ucasemap_utf8To*() |