]> granicus.if.org Git - postgresql/commitdiff
Remove the check for COPY TO STDIN and COPY FROM STDOUT from ecpg.
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Tue, 26 Feb 2013 17:30:15 +0000 (19:30 +0200)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Tue, 26 Feb 2013 17:33:15 +0000 (19:33 +0200)
The backend grammar treats STDIN and STDOUT completely interchangeable, so
that the above accepted. Arguably that was a mistake the backend grammar,
but it's not ecpg's business to second guess that.

src/interfaces/ecpg/preproc/ecpg.addons

index aae3cc9d92d18fde7a6fc32dcc05f5781b89eb32..d8147cf43cbe4c3c608d8fbc67702a74a57a83c5 100644 (file)
@@ -193,15 +193,9 @@ ECPG: where_or_current_clauseWHERECURRENT_POFcursor_name block
                $$ = cat_str(2,mm_strdup("where current of"), cursor_marker);
        }
 ECPG: CopyStmtCOPYopt_binaryqualified_nameopt_column_listopt_oidscopy_fromcopy_file_namecopy_delimiteropt_withcopy_options addon
-                       if (strcmp($6, "to") == 0 && strcmp($7, "stdin") == 0)
-                               mmerror(PARSE_ERROR, ET_ERROR, "COPY TO STDIN is not possible");
-                       else if (strcmp($6, "from") == 0 && strcmp($7, "stdout") == 0)
-                               mmerror(PARSE_ERROR, ET_ERROR, "COPY FROM STDOUT is not possible");
-                       else if (strcmp($6, "from") == 0 && strcmp($7, "stdin") == 0)
+                       if (strcmp($6, "from") == 0 &&
+                          (strcmp($7, "stdin") == 0 || strcmp($7, "stdout") == 0))
                                mmerror(PARSE_ERROR, ET_WARNING, "COPY FROM STDIN is not implemented");
-ECPG: CopyStmtCOPYselect_with_parensTOcopy_file_nameopt_withcopy_options addon
-                       if (strcmp($4, "stdin") == 0)
-                               mmerror(PARSE_ERROR, ET_ERROR, "COPY TO STDIN is not possible");
 ECPG: var_valueNumericOnly addon
                if ($1[0] == '$')
                {