ecpg: Restore detection of unsupported COPY FROM STDIN.
authorFujii Masao <[email protected]>
Tue, 14 Jan 2025 16:24:24 +0000 (01:24 +0900)
committerFujii Masao <[email protected]>
Tue, 14 Jan 2025 16:25:52 +0000 (01:25 +0900)
The ecpg command includes code to warn about unsupported COPY FROM STDIN
statements in input files. However, since commit 3d009e45bd,
this functionality has been broken due to a bug introduced in that commit,
causing ecpg to fail to detect the statement.

This commit resolves the issue, restoring ecpg's ability to detect
COPY FROM STDIN and issue a warning as intended.

Back-patch to all supported versions.

Author: Ryo Kanbayashi
Reviewed-by: Hayato Kuroda, Tom Lane
Discussion: https://postgr.es/m/CANOn0Ez_t5uDCUEV8c1YORMisJiU5wu681eEVZzgKwOeiKhkqQ@mail.gmail.com

src/interfaces/ecpg/preproc/ecpg.addons

index 300381eaad56f05bcab1684d057e3442b0ab4eda..feb61d11a973397371a8f613ac1f8666e6ccfb4e 100644 (file)
@@ -234,7 +234,7 @@ ECPG: where_or_current_clauseWHERECURRENT_POFcursor_name block
        $$ = cat_str(2,mm_strdup("where current of"), cursor_marker);
    }
 ECPG: CopyStmtCOPYopt_binaryqualified_nameopt_column_listcopy_fromopt_programcopy_file_namecopy_delimiteropt_withcopy_optionswhere_clause addon
-           if (strcmp($6, "from") == 0 &&
+           if (strcmp($5, "from") == 0 &&
               (strcmp($7, "stdin") == 0 || strcmp($7, "stdout") == 0))
                mmerror(PARSE_ERROR, ET_WARNING, "COPY FROM STDIN is not implemented");
 ECPG: var_valueNumericOnly addon