summaryrefslogtreecommitdiff
path: root/src/include/access/reloptions.h
diff options
context:
space:
mode:
authorMichael Paquier2019-11-05 00:17:05 +0000
committerMichael Paquier2019-11-05 00:17:05 +0000
commit3534fa2233285c1fab1e668871aabf05e5541213 (patch)
tree4b6b708590540bee0b2d66b7a485f35df8680809 /src/include/access/reloptions.h
parent5102f39440f758ea53c2e1cdea7d8411df1805d2 (diff)
Refactor code building relation options
Historically, the code to build relation options has been shaped the same way in multiple code paths by using a set of datums in input with the options parsed with a static table which is then filled with the option values. This introduces a new common routine in reloptions.c to do most of the legwork for the in-core code paths. Author: Amit Langote Reviewed-by: Michael Paquier Discussion: https://postgr.es/m/CA+HiwqGsoSn_uTPPYT19WrtR7oYpYtv4CdS0xuedTKiHHWuk_g@mail.gmail.com
Diffstat (limited to 'src/include/access/reloptions.h')
-rw-r--r--src/include/access/reloptions.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/include/access/reloptions.h b/src/include/access/reloptions.h
index 6bde2093d61..db42aa35e08 100644
--- a/src/include/access/reloptions.h
+++ b/src/include/access/reloptions.h
@@ -296,6 +296,11 @@ extern void fillRelOptions(void *rdopts, Size basesize,
relopt_value *options, int numoptions,
bool validate,
const relopt_parse_elt *elems, int nelems);
+extern void *build_reloptions(Datum reloptions, bool validate,
+ relopt_kind kind,
+ Size relopt_struct_size,
+ const relopt_parse_elt *relopt_elems,
+ int num_relopt_elems);
extern bytea *default_reloptions(Datum reloptions, bool validate,
relopt_kind kind);