Re: [HACKERS] ECPG: WHENEVER statement with DO CONTINUE action
> Given that it's Friday evening in Europe, I'm betting Michael is gone > for the day. In the interests of getting the buildfarm back to > green, > I'll see if I can fix this. Correct, thanks Tom. Michael -- Michael Meskes Michael at Fam-Meskes dot De, Michael at Meskes dot (De|Com|Net|Org) Meskes at (Debian|Postgresql) dot Org Jabber: michael at xmpp dot meskes dot org VfL Borussia! Força Barça! SF 49ers! Use Debian GNU/Linux, PostgreSQL -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] ECPG: WHENEVER statement with DO CONTINUE action
Christian Ullrichwrites: > The buildfarm says that sorting is frequently done case-sensitively: Given that it's Friday evening in Europe, I'm betting Michael is gone for the day. In the interests of getting the buildfarm back to green, I'll see if I can fix this. regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] ECPG: WHENEVER statement with DO CONTINUE action
* Michael Meskes wrote: The v3 patch looks good to me. I've changed this patch status to Ready for Committer. Thank you all, committed. The buildfarm says that sorting is frequently done case-sensitively: *** 1,2 - josh 1.00 10.00 Ram 00.00 21.00 --- 1,2 Ram 00.00 21.00 + josh 1.00 10.00 -- Christian -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] ECPG: WHENEVER statement with DO CONTINUE action
On Aug 25, 2017 10:45 PM, "Michael Meskes"wrote: > > > The v3 patch looks good to me. I've changed this patch status to Ready > > for Committer. > > Thank you all, committed. Thank you very much. Regards, Vinayak Pokale
Re: [HACKERS] ECPG: WHENEVER statement with DO CONTINUE action
> The v3 patch looks good to me. I've changed this patch status to Ready > for Committer. Thank you all, committed. Michael -- Michael Meskes Michael at Fam-Meskes dot De, Michael at Meskes dot (De|Com|Net|Org) Meskes at (Debian|Postgresql) dot Org Jabber: michael at xmpp dot meskes dot org VfL Borussia! Força Barça! Go SF 49ers! Use Debian GNU/Linux, PostgreSQL -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] ECPG: WHENEVER statement with DO CONTINUE action
On 2017/08/25 17:13, Masahiko Sawada wrote: On Fri, Aug 25, 2017 at 4:27 PM, vinayakwrote: On 2017/08/25 16:18, Masahiko Sawada wrote: On Fri, Aug 25, 2017 at 2:57 PM, vinayak wrote: Hi Sawada-san, On 2017/08/25 11:07, Masahiko Sawada wrote: On Fri, Aug 18, 2017 at 5:20 PM, vinayak wrote: On 2017/06/20 17:35, vinayak wrote: Hi Sawada-san, On 2017/06/20 17:22, Masahiko Sawada wrote: On Tue, Jun 20, 2017 at 1:51 PM, vinayak wrote: On 2017/06/12 13:09, vinayak wrote: Hi, On 2017/06/10 12:23, Vinayak Pokale wrote: Thank you for your reply On Jun 9, 2017 5:39 PM, "Michael Meskes" wrote: Could you please add a "DO CONTINUE" case to one of the test cases? Or add a new one? We would need a test case IMO. Yes I will add test case and send updated patch. I have added new test case for DO CONTINUE. Please check the attached patch. I have added this in Sept. CF https://commitfest.postgresql.org/14/1173/ -- In whenever_do_continue.pgc file, the following line seems not to be processed successfully by ecpg but should we fix that? + + exec sql whenever sqlerror continue; + Also, you wrote the test case using "WHENEVER sqlerror DO CONTINUE" action but that seems not to emit sqlerror, so "DO CONTINUE" is not executed. I think the test case for DO CONTINUE should be a C code that executes the "continue" clause. Thank you for testing the patch. I agreed with your comments. I will update the patch. Please check the attached updated patch. Thank you for updating. The regression test failed after applied latest patch by git am. *** /tmp/pg/src/interfaces/ecpg/test/expected/preproc-whenever_do_continue.c 2017-08-24 20:01:10.023201132 -0700 --- /tmp/pg/src/interfaces/ecpg/test/results/preproc-whenever_do_continue.c 2017-08-24 20:22:54.308200853 -0700 *** *** 140,147 printf("%s %7.2f %9.2f\n", emp.ename, emp.sal, emp.comm); } ! /* This 'CONTINUE' shuts off the 'DO CONTINUE' and allow the program to !proceed if any further errors do occur. */ /* exec sql whenever sqlerror continue ; */ #line 53 "whenever_do_continue.pgc" --- 140,147 printf("%s %7.2f %9.2f\n", emp.ename, emp.sal, emp.comm); } ! /* This 'CONTINUE' shuts off the 'DO CONTINUE' and allow the program to ! proceed if any further errors do occur. */ /* exec sql whenever sqlerror continue ; */ #line 53 "whenever_do_continue.pgc" == + /* This 'CONTINUE' shuts off the 'DO CONTINUE' and allow the program to + proceed if any further errors do occur. */ I think this comment should obey the coding style guide. Thank you for testing. I have updated the patch. PFA. Thank you for updating the patch. It seems not to incorporate my second review comment. Attached an updated patch including a fix of a comment style in whenever_do_continue.pgc file. Please find an attached file. Sorry, I missed it. Thank you for fixing the comment style. The v3 patch looks good to me. I've changed this patch status to Ready for Committer. Thank you for updating the status in the CF. We can wait for committers feedback. Regards, Vinayak Pokale NTT Open Source Software Center -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] ECPG: WHENEVER statement with DO CONTINUE action
On Fri, Aug 25, 2017 at 4:27 PM, vinayakwrote: > > > On 2017/08/25 16:18, Masahiko Sawada wrote: >> >> On Fri, Aug 25, 2017 at 2:57 PM, vinayak >> wrote: >>> >>> Hi Sawada-san, >>> >>> >>> On 2017/08/25 11:07, Masahiko Sawada wrote: On Fri, Aug 18, 2017 at 5:20 PM, vinayak wrote: > > On 2017/06/20 17:35, vinayak wrote: >> >> Hi Sawada-san, >> >> On 2017/06/20 17:22, Masahiko Sawada wrote: >>> >>> On Tue, Jun 20, 2017 at 1:51 PM, vinayak >>> wrote: On 2017/06/12 13:09, vinayak wrote: Hi, On 2017/06/10 12:23, Vinayak Pokale wrote: Thank you for your reply On Jun 9, 2017 5:39 PM, "Michael Meskes" wrote: > > Could you please add a "DO CONTINUE" case to one of the test cases? > Or > add a new one? We would need a test case IMO. > Yes I will add test case and send updated patch. I have added new test case for DO CONTINUE. Please check the attached patch. I have added this in Sept. CF https://commitfest.postgresql.org/14/1173/ >>> -- >>> In whenever_do_continue.pgc file, the following line seems not to be >>> processed successfully by ecpg but should we fix that? >>> >>> + >>> + exec sql whenever sqlerror continue; >>> + >>> >>> Also, you wrote the test case using "WHENEVER sqlerror DO CONTINUE" >>> action but that seems not to emit sqlerror, so "DO CONTINUE" is not >>> executed. I think the test case for DO CONTINUE should be a C code >>> that executes the "continue" clause. >> >> Thank you for testing the patch. >> I agreed with your comments. I will update the patch. > > Please check the attached updated patch. > Thank you for updating. The regression test failed after applied latest patch by git am. *** /tmp/pg/src/interfaces/ecpg/test/expected/preproc-whenever_do_continue.c 2017-08-24 20:01:10.023201132 -0700 --- /tmp/pg/src/interfaces/ecpg/test/results/preproc-whenever_do_continue.c 2017-08-24 20:22:54.308200853 -0700 *** *** 140,147 printf("%s %7.2f %9.2f\n", emp.ename, emp.sal, emp.comm); } ! /* This 'CONTINUE' shuts off the 'DO CONTINUE' and allow the program to !proceed if any further errors do occur. */ /* exec sql whenever sqlerror continue ; */ #line 53 "whenever_do_continue.pgc" --- 140,147 printf("%s %7.2f %9.2f\n", emp.ename, emp.sal, emp.comm); } ! /* This 'CONTINUE' shuts off the 'DO CONTINUE' and allow the program to ! proceed if any further errors do occur. */ /* exec sql whenever sqlerror continue ; */ #line 53 "whenever_do_continue.pgc" == + /* This 'CONTINUE' shuts off the 'DO CONTINUE' and allow the program to + proceed if any further errors do occur. */ I think this comment should obey the coding style guide. >>> >>> Thank you for testing. >>> >>> I have updated the patch. >>> PFA. >>> >> Thank you for updating the patch. It seems not to incorporate my >> second review comment. Attached an updated patch including a fix of a >> comment style in whenever_do_continue.pgc file. Please find an >> attached file. > > Sorry, I missed it. > Thank you for fixing the comment style. > The v3 patch looks good to me. I've changed this patch status to Ready for Committer. Regards, -- Masahiko Sawada NIPPON TELEGRAPH AND TELEPHONE CORPORATION NTT Open Source Software Center -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] ECPG: WHENEVER statement with DO CONTINUE action
On 2017/08/25 16:18, Masahiko Sawada wrote: On Fri, Aug 25, 2017 at 2:57 PM, vinayakwrote: Hi Sawada-san, On 2017/08/25 11:07, Masahiko Sawada wrote: On Fri, Aug 18, 2017 at 5:20 PM, vinayak wrote: On 2017/06/20 17:35, vinayak wrote: Hi Sawada-san, On 2017/06/20 17:22, Masahiko Sawada wrote: On Tue, Jun 20, 2017 at 1:51 PM, vinayak wrote: On 2017/06/12 13:09, vinayak wrote: Hi, On 2017/06/10 12:23, Vinayak Pokale wrote: Thank you for your reply On Jun 9, 2017 5:39 PM, "Michael Meskes" wrote: Could you please add a "DO CONTINUE" case to one of the test cases? Or add a new one? We would need a test case IMO. Yes I will add test case and send updated patch. I have added new test case for DO CONTINUE. Please check the attached patch. I have added this in Sept. CF https://commitfest.postgresql.org/14/1173/ -- In whenever_do_continue.pgc file, the following line seems not to be processed successfully by ecpg but should we fix that? + + exec sql whenever sqlerror continue; + Also, you wrote the test case using "WHENEVER sqlerror DO CONTINUE" action but that seems not to emit sqlerror, so "DO CONTINUE" is not executed. I think the test case for DO CONTINUE should be a C code that executes the "continue" clause. Thank you for testing the patch. I agreed with your comments. I will update the patch. Please check the attached updated patch. Thank you for updating. The regression test failed after applied latest patch by git am. *** /tmp/pg/src/interfaces/ecpg/test/expected/preproc-whenever_do_continue.c 2017-08-24 20:01:10.023201132 -0700 --- /tmp/pg/src/interfaces/ecpg/test/results/preproc-whenever_do_continue.c 2017-08-24 20:22:54.308200853 -0700 *** *** 140,147 printf("%s %7.2f %9.2f\n", emp.ename, emp.sal, emp.comm); } ! /* This 'CONTINUE' shuts off the 'DO CONTINUE' and allow the program to !proceed if any further errors do occur. */ /* exec sql whenever sqlerror continue ; */ #line 53 "whenever_do_continue.pgc" --- 140,147 printf("%s %7.2f %9.2f\n", emp.ename, emp.sal, emp.comm); } ! /* This 'CONTINUE' shuts off the 'DO CONTINUE' and allow the program to ! proceed if any further errors do occur. */ /* exec sql whenever sqlerror continue ; */ #line 53 "whenever_do_continue.pgc" == + /* This 'CONTINUE' shuts off the 'DO CONTINUE' and allow the program to + proceed if any further errors do occur. */ I think this comment should obey the coding style guide. Thank you for testing. I have updated the patch. PFA. Thank you for updating the patch. It seems not to incorporate my second review comment. Attached an updated patch including a fix of a comment style in whenever_do_continue.pgc file. Please find an attached file. Sorry, I missed it. Thank you for fixing the comment style. Regards, Vinayak Pokale NTT Open Source Software Center -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] ECPG: WHENEVER statement with DO CONTINUE action
On Fri, Aug 25, 2017 at 2:57 PM, vinayakwrote: > Hi Sawada-san, > > > On 2017/08/25 11:07, Masahiko Sawada wrote: >> >> On Fri, Aug 18, 2017 at 5:20 PM, vinayak >> wrote: >>> >>> On 2017/06/20 17:35, vinayak wrote: Hi Sawada-san, On 2017/06/20 17:22, Masahiko Sawada wrote: > > On Tue, Jun 20, 2017 at 1:51 PM, vinayak > wrote: >> >> >> On 2017/06/12 13:09, vinayak wrote: >> >> Hi, >> >> On 2017/06/10 12:23, Vinayak Pokale wrote: >> >> Thank you for your reply >> >> On Jun 9, 2017 5:39 PM, "Michael Meskes" >> wrote: >>> >>> Could you please add a "DO CONTINUE" case to one of the test cases? >>> Or >>> add a new one? We would need a test case IMO. >>> >> Yes I will add test case and send updated patch. >> >> I have added new test case for DO CONTINUE. >> Please check the attached patch. >> >> I have added this in Sept. CF >> https://commitfest.postgresql.org/14/1173/ >> > -- > In whenever_do_continue.pgc file, the following line seems not to be > processed successfully by ecpg but should we fix that? > > + > + exec sql whenever sqlerror continue; > + > > Also, you wrote the test case using "WHENEVER sqlerror DO CONTINUE" > action but that seems not to emit sqlerror, so "DO CONTINUE" is not > executed. I think the test case for DO CONTINUE should be a C code > that executes the "continue" clause. Thank you for testing the patch. I agreed with your comments. I will update the patch. >>> >>> Please check the attached updated patch. >>> >> Thank you for updating. >> >> The regression test failed after applied latest patch by git am. >> >> *** >> /tmp/pg/src/interfaces/ecpg/test/expected/preproc-whenever_do_continue.c >> 2017-08-24 20:01:10.023201132 -0700 >> --- >> /tmp/pg/src/interfaces/ecpg/test/results/preproc-whenever_do_continue.c >> 2017-08-24 20:22:54.308200853 -0700 >> *** >> *** 140,147 >> printf("%s %7.2f %9.2f\n", emp.ename, emp.sal, emp.comm); >> } >> >> ! /* This 'CONTINUE' shuts off the 'DO CONTINUE' and allow the >> program to >> !proceed if any further errors do occur. */ >> /* exec sql whenever sqlerror continue ; */ >>#line 53 "whenever_do_continue.pgc" >> >> --- 140,147 >> printf("%s %7.2f %9.2f\n", emp.ename, emp.sal, emp.comm); >> } >> >> ! /* This 'CONTINUE' shuts off the 'DO CONTINUE' and allow the >> program to >> ! proceed if any further errors do occur. */ >> /* exec sql whenever sqlerror continue ; */ >>#line 53 "whenever_do_continue.pgc" >> >> == >> >> + /* This 'CONTINUE' shuts off the 'DO CONTINUE' and allow the >> program to >> + proceed if any further errors do occur. */ >> >> I think this comment should obey the coding style guide. > > Thank you for testing. > > I have updated the patch. > PFA. > Thank you for updating the patch. It seems not to incorporate my second review comment. Attached an updated patch including a fix of a comment style in whenever_do_continue.pgc file. Please find an attached file. Regards, -- Masahiko Sawada NIPPON TELEGRAPH AND TELEPHONE CORPORATION NTT Open Source Software Center 0001-WHENEVER-statement-DO-CONTINUE-support_v3.patch Description: Binary data -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] ECPG: WHENEVER statement with DO CONTINUE action
Hi Sawada-san, On 2017/08/25 11:07, Masahiko Sawada wrote: On Fri, Aug 18, 2017 at 5:20 PM, vinayakwrote: On 2017/06/20 17:35, vinayak wrote: Hi Sawada-san, On 2017/06/20 17:22, Masahiko Sawada wrote: On Tue, Jun 20, 2017 at 1:51 PM, vinayak wrote: On 2017/06/12 13:09, vinayak wrote: Hi, On 2017/06/10 12:23, Vinayak Pokale wrote: Thank you for your reply On Jun 9, 2017 5:39 PM, "Michael Meskes" wrote: Could you please add a "DO CONTINUE" case to one of the test cases? Or add a new one? We would need a test case IMO. Yes I will add test case and send updated patch. I have added new test case for DO CONTINUE. Please check the attached patch. I have added this in Sept. CF https://commitfest.postgresql.org/14/1173/ -- In whenever_do_continue.pgc file, the following line seems not to be processed successfully by ecpg but should we fix that? + + exec sql whenever sqlerror continue; + Also, you wrote the test case using "WHENEVER sqlerror DO CONTINUE" action but that seems not to emit sqlerror, so "DO CONTINUE" is not executed. I think the test case for DO CONTINUE should be a C code that executes the "continue" clause. Thank you for testing the patch. I agreed with your comments. I will update the patch. Please check the attached updated patch. Thank you for updating. The regression test failed after applied latest patch by git am. *** /tmp/pg/src/interfaces/ecpg/test/expected/preproc-whenever_do_continue.c 2017-08-24 20:01:10.023201132 -0700 --- /tmp/pg/src/interfaces/ecpg/test/results/preproc-whenever_do_continue.c 2017-08-24 20:22:54.308200853 -0700 *** *** 140,147 printf("%s %7.2f %9.2f\n", emp.ename, emp.sal, emp.comm); } ! /* This 'CONTINUE' shuts off the 'DO CONTINUE' and allow the program to !proceed if any further errors do occur. */ /* exec sql whenever sqlerror continue ; */ #line 53 "whenever_do_continue.pgc" --- 140,147 printf("%s %7.2f %9.2f\n", emp.ename, emp.sal, emp.comm); } ! /* This 'CONTINUE' shuts off the 'DO CONTINUE' and allow the program to ! proceed if any further errors do occur. */ /* exec sql whenever sqlerror continue ; */ #line 53 "whenever_do_continue.pgc" == + /* This 'CONTINUE' shuts off the 'DO CONTINUE' and allow the program to + proceed if any further errors do occur. */ I think this comment should obey the coding style guide. Thank you for testing. I have updated the patch. PFA. Regards, Vinayak Pokale NTT Open Source Software Center >From cd71bf7229a8566cadfde3d0e89b1b445baf1fee Mon Sep 17 00:00:00 2001 From: Vinayak Pokale Date: Thu, 22 Jun 2017 11:08:38 +0900 Subject: [PATCH] WHENEVER statement DO CONTINUE support --- doc/src/sgml/ecpg.sgml | 12 ++ src/interfaces/ecpg/preproc/ecpg.trailer |6 + src/interfaces/ecpg/preproc/output.c |3 + src/interfaces/ecpg/test/ecpg_schedule |1 + .../test/expected/preproc-whenever_do_continue.c | 159 .../expected/preproc-whenever_do_continue.stderr | 112 ++ .../expected/preproc-whenever_do_continue.stdout |2 + src/interfaces/ecpg/test/preproc/Makefile |1 + .../ecpg/test/preproc/whenever_do_continue.pgc | 61 9 files changed, 357 insertions(+), 0 deletions(-) create mode 100644 src/interfaces/ecpg/test/expected/preproc-whenever_do_continue.c create mode 100644 src/interfaces/ecpg/test/expected/preproc-whenever_do_continue.stderr create mode 100644 src/interfaces/ecpg/test/expected/preproc-whenever_do_continue.stdout create mode 100644 src/interfaces/ecpg/test/preproc/whenever_do_continue.pgc diff --git a/doc/src/sgml/ecpg.sgml b/doc/src/sgml/ecpg.sgml index f13a0e9..3cb4001 100644 --- a/doc/src/sgml/ecpg.sgml +++ b/doc/src/sgml/ecpg.sgml @@ -4763,6 +4763,17 @@ EXEC SQL WHENEVER condition action + DO CONTINUE + + +Execute the C statement continue. This should +only be used in loops statements. if executed, will cause the flow +of control to return to the top of the loop. + + + + + CALL name (args) DO name (args) @@ -7799,6 +7810,7 @@ WHENEVER { NOT FOUND | SQLERROR | SQLWARNING } ac EXEC SQL WHENEVER NOT FOUND CONTINUE; EXEC SQL WHENEVER NOT FOUND DO BREAK; +EXEC SQL WHENEVER NOT FOUND DO CONTINUE; EXEC SQL WHENEVER SQLWARNING SQLPRINT; EXEC SQL WHENEVER SQLWARNING DO warn(); EXEC SQL WHENEVER SQLERROR sqlprint; diff --git a/src/interfaces/ecpg/preproc/ecpg.trailer b/src/interfaces/ecpg/preproc/ecpg.trailer index 1c10879..b42bca4 100644 --- a/src/interfaces/ecpg/preproc/ecpg.trailer +++
Re: [HACKERS] ECPG: WHENEVER statement with DO CONTINUE action
On Fri, Aug 18, 2017 at 5:20 PM, vinayakwrote: > > On 2017/06/20 17:35, vinayak wrote: >> >> Hi Sawada-san, >> >> On 2017/06/20 17:22, Masahiko Sawada wrote: >>> >>> On Tue, Jun 20, 2017 at 1:51 PM, vinayak >>> wrote: On 2017/06/12 13:09, vinayak wrote: Hi, On 2017/06/10 12:23, Vinayak Pokale wrote: Thank you for your reply On Jun 9, 2017 5:39 PM, "Michael Meskes" wrote: > > Could you please add a "DO CONTINUE" case to one of the test cases? Or > add a new one? We would need a test case IMO. > Yes I will add test case and send updated patch. I have added new test case for DO CONTINUE. Please check the attached patch. I have added this in Sept. CF https://commitfest.postgresql.org/14/1173/ >>> -- >>> In whenever_do_continue.pgc file, the following line seems not to be >>> processed successfully by ecpg but should we fix that? >>> >>> + >>> + exec sql whenever sqlerror continue; >>> + >>> >>> Also, you wrote the test case using "WHENEVER sqlerror DO CONTINUE" >>> action but that seems not to emit sqlerror, so "DO CONTINUE" is not >>> executed. I think the test case for DO CONTINUE should be a C code >>> that executes the "continue" clause. >> >> Thank you for testing the patch. >> I agreed with your comments. I will update the patch. > > Please check the attached updated patch. > Thank you for updating. The regression test failed after applied latest patch by git am. *** /tmp/pg/src/interfaces/ecpg/test/expected/preproc-whenever_do_continue.c 2017-08-24 20:01:10.023201132 -0700 --- /tmp/pg/src/interfaces/ecpg/test/results/preproc-whenever_do_continue.c 2017-08-24 20:22:54.308200853 -0700 *** *** 140,147 printf("%s %7.2f %9.2f\n", emp.ename, emp.sal, emp.comm); } ! /* This 'CONTINUE' shuts off the 'DO CONTINUE' and allow the program to !proceed if any further errors do occur. */ /* exec sql whenever sqlerror continue ; */ #line 53 "whenever_do_continue.pgc" --- 140,147 printf("%s %7.2f %9.2f\n", emp.ename, emp.sal, emp.comm); } ! /* This 'CONTINUE' shuts off the 'DO CONTINUE' and allow the program to ! proceed if any further errors do occur. */ /* exec sql whenever sqlerror continue ; */ #line 53 "whenever_do_continue.pgc" == + /* This 'CONTINUE' shuts off the 'DO CONTINUE' and allow the program to + proceed if any further errors do occur. */ I think this comment should obey the coding style guide. Regards, -- Masahiko Sawada NIPPON TELEGRAPH AND TELEPHONE CORPORATION NTT Open Source Software Center -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] ECPG: WHENEVER statement with DO CONTINUE action
On 2017/06/20 17:35, vinayak wrote: Hi Sawada-san, On 2017/06/20 17:22, Masahiko Sawada wrote: On Tue, Jun 20, 2017 at 1:51 PM, vinayakwrote: On 2017/06/12 13:09, vinayak wrote: Hi, On 2017/06/10 12:23, Vinayak Pokale wrote: Thank you for your reply On Jun 9, 2017 5:39 PM, "Michael Meskes" wrote: Could you please add a "DO CONTINUE" case to one of the test cases? Or add a new one? We would need a test case IMO. Yes I will add test case and send updated patch. I have added new test case for DO CONTINUE. Please check the attached patch. I have added this in Sept. CF https://commitfest.postgresql.org/14/1173/ -- In whenever_do_continue.pgc file, the following line seems not to be processed successfully by ecpg but should we fix that? + + exec sql whenever sqlerror continue; + Also, you wrote the test case using "WHENEVER sqlerror DO CONTINUE" action but that seems not to emit sqlerror, so "DO CONTINUE" is not executed. I think the test case for DO CONTINUE should be a C code that executes the "continue" clause. Thank you for testing the patch. I agreed with your comments. I will update the patch. Please check the attached updated patch. Regards, Vinayak Pokale NTT Open Source Software Center >From cd71bf7229a8566cadfde3d0e89b1b445baf1fee Mon Sep 17 00:00:00 2001 From: Vinayak Pokale Date: Thu, 22 Jun 2017 11:08:38 +0900 Subject: [PATCH] WHENEVER statement DO CONTINUE support --- doc/src/sgml/ecpg.sgml | 12 ++ src/interfaces/ecpg/preproc/ecpg.trailer |6 + src/interfaces/ecpg/preproc/output.c |3 + src/interfaces/ecpg/test/ecpg_schedule |1 + .../test/expected/preproc-whenever_do_continue.c | 159 .../expected/preproc-whenever_do_continue.stderr | 112 ++ .../expected/preproc-whenever_do_continue.stdout |2 + src/interfaces/ecpg/test/preproc/Makefile |1 + .../ecpg/test/preproc/whenever_do_continue.pgc | 61 9 files changed, 357 insertions(+), 0 deletions(-) create mode 100644 src/interfaces/ecpg/test/expected/preproc-whenever_do_continue.c create mode 100644 src/interfaces/ecpg/test/expected/preproc-whenever_do_continue.stderr create mode 100644 src/interfaces/ecpg/test/expected/preproc-whenever_do_continue.stdout create mode 100644 src/interfaces/ecpg/test/preproc/whenever_do_continue.pgc diff --git a/doc/src/sgml/ecpg.sgml b/doc/src/sgml/ecpg.sgml index f13a0e9..3cb4001 100644 --- a/doc/src/sgml/ecpg.sgml +++ b/doc/src/sgml/ecpg.sgml @@ -4763,6 +4763,17 @@ EXEC SQL WHENEVER condition action + DO CONTINUE + + +Execute the C statement continue. This should +only be used in loops statements. if executed, will cause the flow +of control to return to the top of the loop. + + + + + CALL name (args) DO name (args) @@ -7799,6 +7810,7 @@ WHENEVER { NOT FOUND | SQLERROR | SQLWARNING } ac EXEC SQL WHENEVER NOT FOUND CONTINUE; EXEC SQL WHENEVER NOT FOUND DO BREAK; +EXEC SQL WHENEVER NOT FOUND DO CONTINUE; EXEC SQL WHENEVER SQLWARNING SQLPRINT; EXEC SQL WHENEVER SQLWARNING DO warn(); EXEC SQL WHENEVER SQLERROR sqlprint; diff --git a/src/interfaces/ecpg/preproc/ecpg.trailer b/src/interfaces/ecpg/preproc/ecpg.trailer index 1c10879..b42bca4 100644 --- a/src/interfaces/ecpg/preproc/ecpg.trailer +++ b/src/interfaces/ecpg/preproc/ecpg.trailer @@ -1454,6 +1454,12 @@ action : CONTINUE_P $$.command = NULL; $$.str = mm_strdup("break"); } + | DO CONTINUE_P + { + $$.code = W_CONTINUE; + $$.command = NULL; + $$.str = mm_strdup("continue"); + } | SQL_CALL name '(' c_args ')' { $$.code = W_DO; diff --git a/src/interfaces/ecpg/preproc/output.c b/src/interfaces/ecpg/preproc/output.c index 59d5d30..14d7066 100644 --- a/src/interfaces/ecpg/preproc/output.c +++ b/src/interfaces/ecpg/preproc/output.c @@ -51,6 +51,9 @@ print_action(struct when * w) case W_BREAK: fprintf(base_yyout, "break;"); break; + case W_CONTINUE: + fprintf(base_yyout, "continue;"); + break; default: fprintf(base_yyout, "{/* %d not implemented yet */}", w->code); break; diff --git a/src/interfaces/ecpg/test/ecpg_schedule b/src/interfaces/ecpg/test/ecpg_schedule index c3ec125..cff4eeb 100644 --- a/src/interfaces/ecpg/test/ecpg_schedule +++ b/src/interfaces/ecpg/test/ecpg_schedule @@ -28,6 +28,7 @@ test: preproc/type test: preproc/variable test: preproc/outofscope test: preproc/whenever +test: preproc/whenever_do_continue test: sql/array test: sql/binary test: sql/code100 diff --git a/src/interfaces/ecpg/test/expected/preproc-whenever_do_continue.c b/src/interfaces/ecpg/test/expected/preproc-whenever_do_continue.c new file mode 100644 index 000..22d98ca --- /dev/null +++
Re: [HACKERS] ECPG: WHENEVER statement with DO CONTINUE action
Hi Sawada-san, On 2017/06/20 17:22, Masahiko Sawada wrote: On Tue, Jun 20, 2017 at 1:51 PM, vinayakwrote: On 2017/06/12 13:09, vinayak wrote: Hi, On 2017/06/10 12:23, Vinayak Pokale wrote: Thank you for your reply On Jun 9, 2017 5:39 PM, "Michael Meskes" wrote: Could you please add a "DO CONTINUE" case to one of the test cases? Or add a new one? We would need a test case IMO. Yes I will add test case and send updated patch. I have added new test case for DO CONTINUE. Please check the attached patch. I have added this in Sept. CF https://commitfest.postgresql.org/14/1173/ I got the following warning by git show --check. I think you should remove unnecessary whitespace. Also the code indent of whenever_do_continue.pgc seems to need to be adjusted. $ git show --check commit a854aa0130589b7bd43b2c6c1c86651be91b1f59 Author: Vinayak Pokale Date: Mon Jun 12 13:03:21 2017 +0900 WHENEVER statement DO CONTINUE support src/interfaces/ecpg/test/preproc/whenever_do_continue.pgc:16: trailing whitespace. + src/interfaces/ecpg/test/preproc/whenever_do_continue.pgc:21: trailing whitespace. + src/interfaces/ecpg/test/preproc/whenever_do_continue.pgc:24: trailing whitespace. + src/interfaces/ecpg/test/preproc/whenever_do_continue.pgc:27: trailing whitespace. + src/interfaces/ecpg/test/preproc/whenever_do_continue.pgc:35: trailing whitespace. + src/interfaces/ecpg/test/preproc/whenever_do_continue.pgc:37: trailing whitespace. + src/interfaces/ecpg/test/preproc/whenever_do_continue.pgc:39: trailing whitespace. + src/interfaces/ecpg/test/preproc/whenever_do_continue.pgc:41: trailing whitespace. + src/interfaces/ecpg/test/preproc/whenever_do_continue.pgc:47: trailing whitespace. + src/interfaces/ecpg/test/preproc/whenever_do_continue.pgc:49: trailing whitespace. + src/interfaces/ecpg/test/preproc/whenever_do_continue.pgc:52: trailing whitespace. + src/interfaces/ecpg/test/preproc/whenever_do_continue.pgc:54: trailing whitespace. + src/interfaces/ecpg/test/preproc/whenever_do_continue.pgc:1: new blank line at EOF. -- In whenever_do_continue.pgc file, the following line seems not to be processed successfully by ecpg but should we fix that? + + exec sql whenever sqlerror continue; + Also, you wrote the test case using "WHENEVER sqlerror DO CONTINUE" action but that seems not to emit sqlerror, so "DO CONTINUE" is not executed. I think the test case for DO CONTINUE should be a C code that executes the "continue" clause. Thank you for testing the patch. I agreed with your comments. I will update the patch. Regards, Vinayak Pokale NTT Open Source Software Center -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] ECPG: WHENEVER statement with DO CONTINUE action
On Tue, Jun 20, 2017 at 1:51 PM, vinayakwrote: > > > On 2017/06/12 13:09, vinayak wrote: > > Hi, > > On 2017/06/10 12:23, Vinayak Pokale wrote: > > Thank you for your reply > > On Jun 9, 2017 5:39 PM, "Michael Meskes" wrote: >> >> Could you please add a "DO CONTINUE" case to one of the test cases? Or >> add a new one? We would need a test case IMO. >> > Yes I will add test case and send updated patch. > > I have added new test case for DO CONTINUE. > Please check the attached patch. > > I have added this in Sept. CF > https://commitfest.postgresql.org/14/1173/ > I got the following warning by git show --check. I think you should remove unnecessary whitespace. Also the code indent of whenever_do_continue.pgc seems to need to be adjusted. $ git show --check commit a854aa0130589b7bd43b2c6c1c86651be91b1f59 Author: Vinayak Pokale Date: Mon Jun 12 13:03:21 2017 +0900 WHENEVER statement DO CONTINUE support src/interfaces/ecpg/test/preproc/whenever_do_continue.pgc:16: trailing whitespace. + src/interfaces/ecpg/test/preproc/whenever_do_continue.pgc:21: trailing whitespace. + src/interfaces/ecpg/test/preproc/whenever_do_continue.pgc:24: trailing whitespace. + src/interfaces/ecpg/test/preproc/whenever_do_continue.pgc:27: trailing whitespace. + src/interfaces/ecpg/test/preproc/whenever_do_continue.pgc:35: trailing whitespace. + src/interfaces/ecpg/test/preproc/whenever_do_continue.pgc:37: trailing whitespace. + src/interfaces/ecpg/test/preproc/whenever_do_continue.pgc:39: trailing whitespace. + src/interfaces/ecpg/test/preproc/whenever_do_continue.pgc:41: trailing whitespace. + src/interfaces/ecpg/test/preproc/whenever_do_continue.pgc:47: trailing whitespace. + src/interfaces/ecpg/test/preproc/whenever_do_continue.pgc:49: trailing whitespace. + src/interfaces/ecpg/test/preproc/whenever_do_continue.pgc:52: trailing whitespace. + src/interfaces/ecpg/test/preproc/whenever_do_continue.pgc:54: trailing whitespace. + src/interfaces/ecpg/test/preproc/whenever_do_continue.pgc:1: new blank line at EOF. -- In whenever_do_continue.pgc file, the following line seems not to be processed successfully by ecpg but should we fix that? + + exec sql whenever sqlerror continue; + Also, you wrote the test case using "WHENEVER sqlerror DO CONTINUE" action but that seems not to emit sqlerror, so "DO CONTINUE" is not executed. I think the test case for DO CONTINUE should be a C code that executes the "continue" clause. Regards, -- Masahiko Sawada NIPPON TELEGRAPH AND TELEPHONE CORPORATION NTT Open Source Software Center -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] ECPG: WHENEVER statement with DO CONTINUE action
On 2017/06/12 13:09, vinayak wrote: Hi, On 2017/06/10 12:23, Vinayak Pokale wrote: Thank you for your reply On Jun 9, 2017 5:39 PM, "Michael Meskes"> wrote: > > Could you please add a "DO CONTINUE" case to one of the test cases? Or > add a new one? We would need a test case IMO. > Yes I will add test case and send updated patch. I have added new test case for DO CONTINUE. Please check the attached patch. I have added this in Sept. CF https://commitfest.postgresql.org/14/1173/ Regards, Vinayak Pokale NTT Open Source Software Center
Re: [HACKERS] ECPG: WHENEVER statement with DO CONTINUE action
Hi, On 2017/06/10 12:23, Vinayak Pokale wrote: Thank you for your reply On Jun 9, 2017 5:39 PM, "Michael Meskes"> wrote: > > Could you please add a "DO CONTINUE" case to one of the test cases? Or > add a new one? We would need a test case IMO. > Yes I will add test case and send updated patch. I have added new test case for DO CONTINUE. Please check the attached patch. Regards, Vinayak Pokale NTT Open Source Software Center WHENEVER-statement-DO-CONTINUE-support.patch Description: binary/octet-stream -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Re: [HACKERS] ECPG: WHENEVER statement with DO CONTINUE action
Thank you for your reply On Jun 9, 2017 5:39 PM, "Michael Meskes"wrote: > > Hi, > > > To develop the ECPG application more efficiently and improve > > portability, > > I would like to suggest one minor improvement "WHENEVER condition DO > > CONTINUE" support in ECPG. > > Oracle Pro*C supports WHENEVER statement with DO CONTINUE action.[1] > > > > EXEC SQL WHENEVER SQLERROR CONTINUE; > > is not same as > > EXEC SQL WHENEVER SQLERROR DO CONTINUE; > > > > The CONTINUE action instructs the client application to proceed to > > the next statement whereas DO CONTINUE action instructs the client > > application to emit a C continue statement and the flow of control > > return to the beginning of the enclosing loop. > > This did actual escape me. Thanks for bringing it to our attention and > fixing this missing functionality. > > > I have tried to implement it. Please check the attached patch. > > Please give me feedback. > > ... > > Could you please add a "DO CONTINUE" case to one of the test cases? Or > add a new one? We would need a test case IMO. > Yes I will add test case and send updated patch. Regards, Vinayak Pokale
Re: [HACKERS] ECPG: WHENEVER statement with DO CONTINUE action
Hi, > To develop the ECPG application more efficiently and improve > portability, > I would like to suggest one minor improvement "WHENEVER condition DO > CONTINUE" support in ECPG. > Oracle Pro*C supports WHENEVER statement with DO CONTINUE action.[1] > > EXEC SQL WHENEVER SQLERROR CONTINUE; > is not same as > EXEC SQL WHENEVER SQLERROR DO CONTINUE; > > The CONTINUE action instructs the client application to proceed to > the next statement whereas DO CONTINUE action instructs the client > application to emit a C continue statement and the flow of control > return to the beginning of the enclosing loop. This did actual escape me. Thanks for bringing it to our attention and fixing this missing functionality. > I have tried to implement it. Please check the attached patch. > Please give me feedback. > ... Could you please add a "DO CONTINUE" case to one of the test cases? Or add a new one? We would need a test case IMO. Thanks Michael -- Michael Meskes Michael at Fam-Meskes dot De, Michael at Meskes dot (De|Com|Net|Org) Meskes at (Debian|Postgresql) dot Org Jabber: michael at xmpp dot meskes dot org VfL Borussia! Força Barça! SF 49ers! Use Debian GNU/Linux, PostgreSQL -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
[HACKERS] ECPG: WHENEVER statement with DO CONTINUE action
Hello, To develop the ECPG application more efficiently and improve portability, I would like to suggest one minor improvement "WHENEVER condition *DO CONTINUE*" support in ECPG. Oracle Pro*C supports WHENEVER statement with DO CONTINUE action.[1] EXEC SQL WHENEVER SQLERROR CONTINUE; is not same as EXEC SQL WHENEVER SQLERROR DO CONTINUE; The CONTINUE action instructs the client application to proceed to the next statement whereas DO CONTINUE action instructs the client application to emit a C continue statement and the flow of control return to the beginning of the enclosing loop. I have tried to implement it. Please check the attached patch. Please give me feedback. [1]https://docs.oracle.com/cd/B28359_01/appdev.111/b28427/pc_09err.htm#i12340 Regards, Vinayak Pokale NTT Open Source Software Center whenever-do-continue.patch Description: binary/octet-stream -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers