diff --git a/doc/src/sgml/libpq.sgml b/doc/src/sgml/libpq.sgml new file mode 100644 index be0d602..1f0975a *** a/doc/src/sgml/libpq.sgml --- b/doc/src/sgml/libpq.sgml *************** PGconn *PQconnectdbParams(const char * c *** 131,145 **** The passed arrays can be empty to use all default parameters, or can contain one or more parameter settings. They should be matched in length. ! Processing will stop with the last non-NULL element ! of the keywords array. ! If any parameter is unspecified, then the corresponding ! environment variable (see ) ! is checked. If the environment variable is not set either, ! then the indicated built-in defaults are used. --- 131,145 ---- The passed arrays can be empty to use all default parameters, or can contain one or more parameter settings. They should be matched in length. ! Processing will stop at the first NULL element ! in the keywords array. ! If any parameter is NULL or an emptry string, the corresponding ! environment variable (see ) is checked. ! If the environment variable is not set either, then the indicated ! built-in defaults are used. diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c new file mode 100644 index 10cc0e6..45df6ce *** a/src/interfaces/libpq/fe-connect.c --- b/src/interfaces/libpq/fe-connect.c *************** conninfo_array_parse(const char *const * *** 4352,4358 **** const char *pname = keywords[i]; const char *pvalue = values[i]; ! if (pvalue != NULL) { /* Search for the param record */ for (option = options; option->keyword != NULL; option++) --- 4352,4358 ---- const char *pname = keywords[i]; const char *pvalue = values[i]; ! if (pvalue != NULL && pvalue[0] != '\0') { /* Search for the param record */ for (option = options; option->keyword != NULL; option++)