file_fdw: Improve error message
authorPeter Eisentraut <peter_e@gmx.net>
Thu, 17 May 2012 17:20:33 +0000 (20:20 +0300)
committerPeter Eisentraut <peter_e@gmx.net>
Thu, 17 May 2012 17:20:33 +0000 (20:20 +0300)
The hint looked a bit confusing when there were no valid options to
hint about.

contrib/file_fdw/file_fdw.c
contrib/file_fdw/output/file_fdw.source

index 9ada736a48c179bf6672609f620f0086d95d57bd..66fd0e62cc8da2b9f9b31ae4568ddf1fb3b0d3b6 100644 (file)
@@ -230,8 +230,10 @@ file_fdw_validator(PG_FUNCTION_ARGS)
            ereport(ERROR,
                    (errcode(ERRCODE_FDW_INVALID_OPTION_NAME),
                     errmsg("invalid option \"%s\"", def->defname),
-                    errhint("Valid options in this context are: %s",
-                            buf.data)));
+                    buf.len > 0
+                    ? errhint("Valid options in this context are: %s",
+                              buf.data)
+                    : errhint("There are no valid options in this context.")));
        }
 
        /*
index 84f07501a04ceb283ab091665a030ae6362a5440..6f906e1fc8c8c6f8adb3ea7a089c18cd3647c1bd 100644 (file)
@@ -114,13 +114,13 @@ SELECT * FROM text_csv;
 -- force_not_null is not allowed to be specified at any foreign object level:
 ALTER FOREIGN DATA WRAPPER file_fdw OPTIONS (ADD force_not_null '*'); -- ERROR
 ERROR:  invalid option "force_not_null"
-HINT:  Valid options in this context are: 
+HINT:  There are no valid options in this context.
 ALTER SERVER file_server OPTIONS (ADD force_not_null '*'); -- ERROR
 ERROR:  invalid option "force_not_null"
-HINT:  Valid options in this context are: 
+HINT:  There are no valid options in this context.
 CREATE USER MAPPING FOR public SERVER file_server OPTIONS (force_not_null '*'); -- ERROR
 ERROR:  invalid option "force_not_null"
-HINT:  Valid options in this context are: 
+HINT:  There are no valid options in this context.
 CREATE FOREIGN TABLE tbl () SERVER file_server OPTIONS (force_not_null '*'); -- ERROR
 ERROR:  invalid option "force_not_null"
 HINT:  Valid options in this context are: filename, format, header, delimiter, quote, escape, null, encoding