15.06.2022 22:56, Adriano dos Santos Fernandes wrote:
In Linux, when we do: echo "select 1 from rdb\$database; select 2 from rdb\$database;" | isql t.fdb It shows: CONSTANT ============ 1 CONSTANT ============ 2 In Windows, echo select 1 from rdb$database; select 2 from rdb$database; | isql t.fdb It shows: SQL> CONSTANT ============ 1 SQL> CONSTANT ============ 2 The difference is due to stdin_redirected() considering file_type == FILE_TYPE_PIPE as a not redirection. I think this is wrong.
See: https://github.com/FirebirdSQL/firebird/commit/c8c7c3a44dad9572a55d6fed68f1c399a19366db Initially (FB2) the code was: if (GetFileType(in) == FILE_TYPE_DISK) Interactive = false; then (circa 2.5) it was changed to: if (GetFileType(in) == FILE_TYPE_CHAR) Interactive = true; and later fixed to: if (file_type == FILE_TYPE_CHAR || file_type == FILE_TYPE_PIPE) Interactive = true;
Are there any reason for that?
We have an old customer who uses (and distributes among clients, IIRC) their own GUI frontend for ISQL that tunnels console I/O using pipes and it should work as "interactive" mode.
Dmitry Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel