Hi, Kuroda-san: Kuroda, Hayato/黒田 隼人 <kuroda.hay...@fujitsu.com> wrote:
> * parse_options() was not refactored because > it does not affect to parsing the host. > I will try it if should be. It seems host only can be the name of server, please refer [1]. And if I use command: ./bin/psql "postgresql://server1:26000/postgres?host=[::1]" The error report is: psql: error: could not translate host name "[::1]" to address: Name or service not known So, I think parse_options() is not need to be refactored. > How do you think? In patch: > ecpg_log("end of string reached when looking for matching \"]\" in IPv6 host > address: \"%s\"\n", buf); I think we can use the message as same as the message in fe-connect.c: > libpq_gettext("end of string reached when looking for matching \"]\" in IPv6 > host address in URI: \"%s\"\n"), BTW, in fe-connect.c: if (*p && *p != ':' && *p != '/' && *p != '?' && *p != ',') { appendPQExpBuffer(errorMessage, libpq_gettext("unexpected character \"%c\" at position %d in URI (expected \":\" or \"/\"): \"%s\"\n"), *p, (int) (p - buf + 1), uri); goto cleanup; } Maybe we can add the expected character, like (expected ':', '/', '?' or ',') I think this patch is good to me, I will review this patch later [1] https://www.postgresql.org/docs/13/libpq-connect.html#LIBPQ-PARAMKEYWORDS