aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2018-09-28 16:12:13 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2018-09-28 16:12:13 -0400
commit2b04dfc4724970231ac338aa71e529c823fc5ff6 (patch)
treef2bc1d2d27adc014afa5d2e14548a7f6c46df3aa /src
parent61f14cc8c85b5e6186c3b86c2c929821d7b33589 (diff)
downloadpostgresql-2b04dfc4724970231ac338aa71e529c823fc5ff6.tar.gz
postgresql-2b04dfc4724970231ac338aa71e529c823fc5ff6.zip
Improve error reporting for unsupported effective_io_concurrency setting.
Give a specific error complaining about lack of posix_fadvise() when someone tries to set effective_io_concurrency > 0 on platforms without that. This probably isn't worth extensive back-patching, but I (tgl) felt cramming it into v11 was reasonable. James Robinson Discussion: https://postgr.es/m/153771876450.14994.560017943128223619@wrigleys.postgresql.org Discussion: https://postgr.es/m/A3942987-5BC7-4F05-B54D-2A0EC2914B33@jlr-photo.com
Diffstat (limited to 'src')
-rw-r--r--src/backend/utils/misc/guc.c10
-rw-r--r--src/include/pg_config_manual.h4
2 files changed, 11 insertions, 3 deletions
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index e9f542cfedd..d14ea851847 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -2649,10 +2649,11 @@ static struct config_int ConfigureNamesInt[] =
},
&effective_io_concurrency,
#ifdef USE_PREFETCH
- 1, 0, MAX_IO_CONCURRENCY,
+ 1,
#else
- 0, 0, 0,
+ 0,
#endif
+ 0, MAX_IO_CONCURRENCY,
check_effective_io_concurrency, assign_effective_io_concurrency, NULL
},
@@ -10709,6 +10710,11 @@ check_effective_io_concurrency(int *newval, void **extra, GucSource source)
else
return false;
#else
+ if (*newval != 0)
+ {
+ GUC_check_errdetail("effective_io_concurrency must be set to 0 on platforms that lack posix_fadvise()");
+ return false;
+ }
return true;
#endif /* USE_PREFETCH */
}
diff --git a/src/include/pg_config_manual.h b/src/include/pg_config_manual.h
index b0365254f65..cc5eedfc41d 100644
--- a/src/include/pg_config_manual.h
+++ b/src/include/pg_config_manual.h
@@ -136,7 +136,9 @@
/*
* USE_PREFETCH code should be compiled only if we have a way to implement
* prefetching. (This is decoupled from USE_POSIX_FADVISE because there
- * might in future be support for alternative low-level prefetch APIs.)
+ * might in future be support for alternative low-level prefetch APIs.
+ * If you change this, you probably need to adjust the error message in
+ * check_effective_io_concurrency.)
*/
#ifdef USE_POSIX_FADVISE
#define USE_PREFETCH