From: | "Etsuro Fujita" <fujita(dot)etsuro(at)lab(dot)ntt(dot)co(dot)jp> |
---|---|
To: | "'Amit Kapila'" <amit(dot)kapila(at)huawei(dot)com>, "'pgsql-hackers'" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Review : Add hooks for pre- and post-processor executables for COPY and \copy |
Date: | 2013-02-20 11:55:03 |
Message-ID: | 004201ce0f61$1e57adb0$5b070910$@lab.ntt.co.jp |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi Amit,
Thank you for the review.
> From: Amit Kapila [mailto:amit(dot)kapila(at)huawei(dot)com]
> >> Test case issues:
> >> ------------------
> >> 1. "Broken pipe" is not handled in case of psql "\copy" command;
> >> Issue are as follows:
> >> Following are verified on SuSE-Linux 10.2.
> >> 1) psql is exiting when "\COPY xxx TO" command is issued and
> command/script is not found
> >> When popen is called in write mode it is creating valid
> file descriptor and when it tries to write to file "Broken pipe" error is >
> coming which is not handled.
> >> psql# \copy pgbench_accounts TO PROGRAM
> '../compress.sh pgbench_accounts4.txt'
> >> 2) When "\copy" command is in progress then program/command is
> killed/"crashed due to any problem"
> >> psql is exiting.
>
> >This is a headache. I have no idea how to solve this.
>
> I think we can keep it for committer to take a call on this issue.
Agreed.
> I have found few more minor issues as below:
>
> 1. The comment above do_copy can be modified to address the new
> functionality it can handle.
> /*
> * Execute a \copy command (frontend copy). We have to open a file, then
> * submit a COPY query to the backend and either feed it data from the
> * file or route its response into the file.
> */
> bool
> do_copy(const char *args)
Done.
> 2.
> @@ -256,8 +273,14 @@ do_copy(const char *args)
> + if (options->file == NULL && options->program)
> + {
> + psql_error("program is not supported to stdout/pstdout or
> from stdin/pstdin\n");
> + return false;
> + }
>
> should call free_copy_options(options); before return false;
Good catch! Done.
> 3. \copy command doesn't need semicolon at end, however it was working
> previous to your patch, but
> now it is giving error.
> postgres=# \copy t1 from 'e:\pg_git_code\Data\t1_Data.txt';
> e:/pg_git_code/Data/t1_Data.txt';: No such file or directory
> e:/pg_git_code/Data/t1_Data.txt';: No such file or directory
Sorry, I've fixed the bug.
> 4. Please check if OpenPipeStream() it needs to call
> if (ReleaseLruFile()),
OpenPipeStream() calls ReleaseLruFile() by itself if necessary.
> 5. Following in copy.sgml can be changed to make more meaningful as the
> first line looks little adhoc.
> + <para>
> + The command that input comes from or that output goes to.
> + The command for COPY FROM, which input comes from, must write its
> output
> + to standard output. The command for COPY TO, which output goes to,
> must
> + read its input from standard input.
> + </para>
I've struggled to make the document more meaningful.
> 6. Can we have one example of this new syntax, it can make it more
> meaningful.
Done.
Sorry for the long delay.
Best regards,
Etsuro Fujita
> With Regards,
> Amit Kapila.
>
>
Attachment | Content-Type | Size |
---|---|---|
copy-popen-20130220.patch | application/octet-stream | 34.6 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Alexander Law | 2013-02-20 12:00:00 | Re: BUG #7493: Postmaster messages unreadable in a Windows console |
Previous Message | Tom Lane | 2013-02-20 11:43:42 | Re: Materialized views WIP patch |