diff --git a/dist/api_config.py b/dist/api_config.py
index 2df479c88..030e24c61 100755
--- a/dist/api_config.py
+++ b/dist/api_config.py
@@ -3,6 +3,7 @@
 from __future__ import print_function
 import os, re, sys, textwrap
 from dist import compare_srcfile, format_srcfile
+from contextlib import contextmanager
 
 test_config = False
 
@@ -29,6 +30,71 @@ tfile = open(tmp_file, 'w')
 whitespace_re = re.compile(r'\s+')
 cbegin_re = re.compile(r'(\s*\*\s*)@config(?:empty|start)\{(.*?),.*\}')
 
+class KeyNumber:
+    def __init__(self):
+        self.offset = 0
+        self.mname = None
+        self.stack = []
+        self.stack_names = []
+        self.ignore = True
+        # methods_for_names[name] -> list of methods that use the name
+        self.methods_for_names = dict()
+        # numbering[key] -> number given for key = method.name
+        self.numbering = None
+
+    def offset_for_name(self, name):
+        if self.mname == None:
+            return 0
+        k = self.mname + '.' + name
+        return self.numbering[k]
+
+    def assign_offset(self, mname, name, offset):
+        #print('Assign offset, method: {}, name: {}, offset: {}'.format(mname, name, offset))
+        if self.numbering == None:
+            self.numbering = dict()
+        k = mname + '.' + name
+        if k in self.numbering:
+            raise Exception('name {} assigned twice in {}'.format(name, mname))
+        self.numbering[k] = offset
+
+    def set_method(self, mname):
+        self.mname = None
+        #print('Set method: {}'.format(mname))
+        #TODO: if api_data_def.methods[mname].compilable:
+        #    self.mname = mname
+        self.mname = mname
+        self.offset = 0
+
+    def subconfig(self, subname):
+        # TODO: get rid of self.stack
+        self.stack_names.append(self.mname)
+        self.stack.append(self.offset)
+        self.mname = self.mname + '/' + subname
+        self.offset = 0
+
+    def end_subconfig(self):
+        self.offset = self.stack.pop()
+        self.mname = self.stack_names.pop()
+
+    def add_key(self, name):
+        if self.mname:
+            # TODO: TEMP BIZ
+            self.assign_offset(self.mname, name, self.offset)
+            self.offset += 1
+            # TODO: end TEMP BIZ
+
+            if not name in self.methods_for_names:
+                self.methods_for_names[name] = []
+            methods = self.methods_for_names[name]
+            if self.mname in methods:
+                raise Exception('name {} seen twice in method {}'.format(name, mname))
+            methods.append(methods)
+
+    def assign_numbers(self):
+        # TODO: we would make sure duplicate names get the same numbering here.
+        assert(len(self.stack) == 0)
+        assert(len(self.stack_names) == 0)
+
 def gettype(c):
     '''Derive the type of a config item'''
     checks = c.flags
@@ -94,10 +160,20 @@ def parseconfig(c, method_name, name_indent=''):
         output += '@config{ ),,}\n'
     return output
 
-def getconfcheck(c):
+def getcompstr(c, keynumber):
+    comptype = -1
+    t = gettype(c)
+    if t == 'format':
+        t = 'string'
+    # E.g. "WT_CONFIG_COMPILED_TYPE_INT"
+    comptype = 'WT_CONFIG_COMPILED_TYPE_' + t.upper()
+    offset = keynumber.offset_for_name(c.name)
+    return ', {}, {}'.format(comptype, offset)
+
+def getconfcheck(c, keynumber):
     check = '{ "' + c.name + '", "' + gettype(c) + '",'
     cstr = checkstr(c)
-    sstr = getsubconfigstr(c)
+    sstr = getsubconfigstr(c, keynumber) + getcompstr(c, keynumber)
     if cstr != 'NULL':
         cstr = '"\n\t    "'.join(w.wrap(cstr))
         # Manually re-wrap when there is a check string to avoid ugliness
@@ -223,20 +299,22 @@ def get_default(c):
         return ''
 
 created_subconfigs=set()
-def add_subconfig(c, cname):
+def add_subconfig(c, cname, keynumber):
     if cname in created_subconfigs:
         return
     created_subconfigs.add(cname)
+    keynumber.subconfig(c.name)
     tfile.write('''
 %(name)s[] = {
 \t%(check)s
-\t{ NULL, NULL, NULL, NULL, NULL, 0 }
+\t{ NULL, NULL, NULL, NULL, NULL, 0, 0, 0 }
 };
 ''' % {
     'name' : '\n    '.join(ws.wrap(\
         'static const WT_CONFIG_CHECK confchk_' + cname + '_subconfigs')),
-    'check' : '\n\t'.join(getconfcheck(subc) for subc in sorted(c.subconfig)),
+    'check' : '\n\t'.join(getconfcheck(subc, keynumber) for subc in sorted(c.subconfig)),
 })
+    keynumber.end_subconfig()
 
 def getcname(c):
     '''Return the C name of a sub configuration'''
@@ -244,29 +322,50 @@ def getcname(c):
              if hasattr(c, 'method_name') else ''
     return prefix + c.name
 
-def getsubconfigstr(c):
+def getsubconfigstr(c, keynumber):
     '''Return a string indicating if an item has sub configuration'''
     ctype = gettype(c)
     if ctype == 'category':
         cname = getcname(c)
-        add_subconfig(c, cname)
+        add_subconfig(c, cname, keynumber)
         return 'confchk_' + cname + '_subconfigs, ' + str(len(c.subconfig))
     else:
         return 'NULL, 0'
 
+# Before we start any output, walk through all configuration keys, including
+# subcategories, and register the names. Each name will get a unique number.
+keynumber = KeyNumber()
+def add_keys(keynumber, configs):
+    for c in configs:
+        keynumber.add_key(c.name)
+        ty = c.flags.get('type', None)
+        if ty == 'category':
+            keynumber.subconfig(c.name)
+            add_keys(keynumber, c.subconfig)
+            keynumber.end_subconfig()
+
+for name in sorted(api_data_def.methods.keys()):
+    keynumber.set_method(name)
+    config = api_data_def.methods[name].config
+    if config:
+        add_keys(keynumber, config)
+
+keynumber.assign_numbers()
+
 # Write structures of arrays of allowable configuration options, including a
 # NULL as a terminator for iteration.
 for name in sorted(api_data_def.methods.keys()):
+    keynumber.set_method(name)
     config = api_data_def.methods[name].config
     if config:
         tfile.write('''
 static const WT_CONFIG_CHECK confchk_%(name)s[] = {
 \t%(check)s
-\t{ NULL, NULL, NULL, NULL, NULL, 0 }
+\t{ NULL, NULL, NULL, NULL, NULL, 0, 0, 0 }
 };
 ''' % {
     'name' : name.replace('.', '_'),
-    'check' : '\n\t'.join(getconfcheck(c) for c in config),
+    'check' : '\n\t'.join(getconfcheck(c, keynumber) for c in config),
 })
 
 # Write the initialized list of configuration entry structures.
@@ -276,7 +375,9 @@ tfile.write('static const WT_CONFIG_ENTRY config_entries[] = {')
 slot=-1
 config_defines = ''
 for name in sorted(api_data_def.methods.keys()):
-    config = api_data_def.methods[name].config
+    method = api_data_def.methods[name]
+    config = method.config
+    compilable = method.compilable
     slot += 1
 
     # Build a list of #defines that reference specific slots in the list (the
@@ -304,10 +405,16 @@ for name in sorted(api_data_def.methods.keys()):
     else:
         tfile.write('NULL, 0')
 
+    tfile.write(', ' + str(slot + 1))
+    if compilable:
+        tfile.write(', true')
+    else:
+        tfile.write(', false')
+
     tfile.write('\n\t},')
 
 # Write a NULL as a terminator for iteration.
-tfile.write('\n\t{ NULL, NULL, NULL, 0 }')
+tfile.write('\n\t{ NULL, NULL, NULL, 0, 0, false}')
 tfile.write('\n};\n')
 
 # Write the routine that connects the WT_CONNECTION_IMPL structure to the list
@@ -403,3 +510,43 @@ if not test_config:
     tfile.close()
     format_srcfile(tmp_file)
     compare_srcfile(tmp_file, config_file)
+
+@contextmanager
+def replaceable_file_fragment(filename, tmp_file, match):
+    tfile = open(tmp_file, 'w')
+    skip = 0
+    try:
+        for line in open(filename, 'r'):
+            if skip:
+                if match + ': END' in line:
+                    tfile.write('/*\n' + line)
+                    skip = 0
+            else:
+                tfile.write(line)
+            if match + ': BEGIN' in line:
+                skip = 1
+                tfile.write(' */\n')
+                yield tfile
+    finally:
+        tfile.close()
+    compare_srcfile(tmp_file, filename)
+
+if not test_config:
+    with replaceable_file_fragment('../src/include/compiled.h',
+      tmp_file, 'API methods') as tfile:
+        cnt = 0
+        for name in sorted(api_data_def.methods.keys()):
+            cnt += 1
+            name = name.translate(str.maketrans('.', '_'))
+            tfile.write('#define WT_API_{} {}\n'.format(name, cnt))
+
+    with replaceable_file_fragment('../src/include/compiled.h',
+      tmp_file, 'API configuration keys') as tfile:
+        for name in sorted(api_data_def.methods.keys()):
+            if api_data_def.methods[name].compilable:
+                mname = name[3:].translate(str.maketrans('.', '_')).upper()
+                keynumber.set_method(name)
+                for c in api_data_def.methods[name].config:
+                    cname = c.name.upper()
+                    off = keynumber.offset_for_name(c.name)
+                    tfile.write('#define WT_API_{}_{} {}\n'.format(mname, cname, off))
diff --git a/dist/api_data.py b/dist/api_data.py
index cf522b0f1..87796e115 100644
--- a/dist/api_data.py
+++ b/dist/api_data.py
@@ -1,11 +1,12 @@
 # This file is a python script that describes the WiredTiger API.
 
 class Method:
-    def __init__(self, config):
+    def __init__(self, config, compilable=False):
         # Deal with duplicates: with complex configurations (like
         # WT_SESSION::create), it's simpler to deal with duplicates once than
         # manually as configurations are defined
         self.config = []
+        self.compilable = compilable
         lastname = None
         for c in sorted(config):
             if '.' in c.name:
@@ -1162,6 +1163,8 @@ wiredtiger_open_common =\
         flush files to stable storage when closing or writing
         checkpoints''',
         type='boolean'),
+    Config('compile_configuration_count', '100', r'''
+        limit to number of strings that compile_configuration can create'''),
     Config('direct_io', '', r'''
         Use \c O_DIRECT on POSIX systems, and \c FILE_FLAG_NO_BUFFERING on
         Windows to access files.  Options are given as a list, such as
@@ -1642,7 +1645,7 @@ methods = {
         if non-empty, backup the list of objects; valid only for a
         backup data source''',
         type='list'),
-]),
+], compilable=True),
 
 'WT_SESSION.query_timestamp' : Method([
     Config('get', 'read', r'''
@@ -1866,7 +1869,7 @@ methods = {
         read using the specified timestamp.  The supplied value must not be
         older than the current oldest timestamp.  This can only be set once
         for a transaction. See @ref timestamp_txn_api'''),
-]),
+], compilable=True),
 
 'WT_SESSION.rollback_transaction' : Method([
     Config('operation_timeout_ms', '0', r'''
@@ -1942,7 +1945,8 @@ methods = {
     connection_reconfigure_log_configuration +\
     connection_reconfigure_statistics_log_configuration +\
     connection_reconfigure_tiered_storage_configuration +\
-    connection_runtime_config
+    connection_runtime_config,
+    compilable=True
 ),
 'WT_CONNECTION.set_file_system' : Method([]),
 
diff --git a/dist/filelist b/dist/filelist
index 730ddca08..c28954096 100644
--- a/dist/filelist
+++ b/dist/filelist
@@ -70,6 +70,7 @@ src/conn/conn_api.c
 src/conn/conn_cache.c
 src/conn/conn_cache_pool.c
 src/conn/conn_capacity.c
+src/conn/conn_compiled.c
 src/conn/conn_ckpt.c
 src/conn/conn_dhandle.c
 src/conn/conn_handle.c
diff --git a/dist/s_string.ok b/dist/s_string.ok
index 0aff1a063..d48910d23 100644
--- a/dist/s_string.ok
+++ b/dist/s_string.ok
@@ -353,6 +353,7 @@ PostgreSQL
 Postrun
 PowerPC
 Pre
+Precompiled
 Preload
 Prepend
 Prev
@@ -1267,6 +1268,7 @@ pre
 pread
 prealloc
 precomp
+precompiled
 preload
 preloaded
 prepend
diff --git a/dist/test_data.py b/dist/test_data.py
index 3fb2b0351..7cc72ad33 100644
--- a/dist/test_data.py
+++ b/dist/test_data.py
@@ -1,11 +1,12 @@
 # This file is a python script that describes the cpp test framework test configuration options.
 
 class Method:
-    def __init__(self, config):
+    def __init__(self, config, compilable=False):
         # Deal with duplicates: with complex configurations (like
         # WT_SESSION::create), it's simpler to deal with duplicates once than
         # manually as configurations are defined
         self.config = []
+        self.compilable = compilable
         lastname = None
         for c in sorted(config):
             if '.' in c.name:
diff --git a/src/config/config.c b/src/config/config.c
index cd7c60cb3..82eaee06e 100644
--- a/src/config/config.c
+++ b/src/config/config.c
@@ -117,12 +117,13 @@ typedef enum {
  *		['_'] = &&l_bare,
  *		['A' ... 'Z'] = &&l_bare, ['a' ... 'z'] = &&l_bare,
  *		['/'] = &&l_bare,
+ *		['%'] = &&l_bare,
  *	};
  */
 static const int8_t gostruct[256] = {A_BAD, A_BAD, A_BAD, A_BAD, A_BAD, A_BAD, A_BAD, A_BAD, A_BAD,
   A_LOOP, A_LOOP, A_BAD, A_BAD, A_LOOP, A_BAD, A_BAD, A_BAD, A_BAD, A_BAD, A_BAD, A_BAD, A_BAD,
   A_BAD, A_BAD, A_BAD, A_BAD, A_BAD, A_BAD, A_BAD, A_BAD, A_BAD, A_BAD, A_LOOP, A_BAD, A_QUP, A_BAD,
-  A_BAD, A_BAD, A_BAD, A_BAD, A_UP, A_DOWN, A_BAD, A_BAD, A_NEXT, A_NUMBARE, A_BARE, A_BARE,
+  A_BAD, A_BARE, A_BAD, A_BAD, A_UP, A_DOWN, A_BAD, A_BAD, A_NEXT, A_NUMBARE, A_BARE, A_BARE,
   A_NUMBARE, A_NUMBARE, A_NUMBARE, A_NUMBARE, A_NUMBARE, A_NUMBARE, A_NUMBARE, A_NUMBARE, A_NUMBARE,
   A_NUMBARE, A_VALUE, A_BAD, A_BAD, A_VALUE, A_BAD, A_BAD, A_BAD, A_BARE, A_BARE, A_BARE, A_BARE,
   A_BARE, A_BARE, A_BARE, A_BARE, A_BARE, A_BARE, A_BARE, A_BARE, A_BARE, A_BARE, A_BARE, A_BARE,
@@ -586,6 +587,48 @@ __wt_config_get(
     return (WT_NOTFOUND);
 }
 
+/*
+ * __wt_config_get_api --
+ *     Given a NULL-terminated list of configuration strings, that may be precompiled, find the
+ *     final value for a given key.
+ */
+int
+__wt_config_get_api(WT_SESSION_IMPL *session, const char **cfg_arg, int api, WT_CONFIG_ITEM *key,
+  WT_CONFIG_ITEM *value)
+{
+    WT_CONFIG cparser;
+    WT_CONNECTION_IMPL *conn;
+    WT_DECL_RET;
+    const char **cfg;
+
+    if (cfg_arg[0] == NULL)
+        return (WT_NOTFOUND);
+
+    conn = S2C(session);
+    /*
+     * Search the strings in reverse order, that way the first hit wins and we don't search the base
+     * set until there's no other choice.
+     */
+    for (cfg = cfg_arg; *cfg != NULL; ++cfg)
+        ;
+    do {
+        --cfg;
+
+        if (__wt_is_compiled_config(conn, *cfg)) {
+            if (__wt_compiled_has(conn, *cfg, api))
+                return (__wt_compiled_get(session, api, *cfg, value));
+            continue;
+        }
+
+        __wt_config_init(session, &cparser, *cfg);
+        if ((ret = __config_getraw(&cparser, key, value, true)) == 0)
+            return (0);
+        WT_RET_NOTFOUND_OK(ret);
+    } while (cfg != cfg_arg);
+
+    return (WT_NOTFOUND);
+}
+
 /*
  * __wt_config_gets --
  *     Given a NULL-terminated list of configuration strings, find the final value for a given
@@ -599,6 +642,20 @@ __wt_config_gets(WT_SESSION_IMPL *session, const char **cfg, const char *key, WT
     return (__wt_config_get(session, cfg, &key_item, value));
 }
 
+/*
+ * __wt_config_gets_api --
+ *     Given a NULL-terminated list of configuration strings, find the final value for a given
+ *     string key.
+ */
+int
+__wt_config_gets_api(
+  WT_SESSION_IMPL *session, const char **cfg, int api, const char *key, WT_CONFIG_ITEM *value)
+{
+    WT_CONFIG_ITEM key_item = {key, strlen(key), 0, WT_CONFIG_ITEM_STRING};
+
+    return (__wt_config_get_api(session, cfg, api, &key_item, value));
+}
+
 /*
  * __wt_config_gets_none --
  *     Given a NULL-terminated list of configuration strings, find the final value for a given
@@ -701,6 +758,53 @@ __wt_config_gets_def(
     /* NOTREACHED */
 }
 
+/*
+ * __wt_config_gets_def_api --
+ *     Same as __wt_config_gets_def, but allows for compiled input strings.
+ */
+int
+__wt_config_gets_def_api(WT_SESSION_IMPL *session, const char **cfg, int api, const char *key,
+  int def, WT_CONFIG_ITEM *value)
+{
+    WT_CONFIG_ITEM_STATIC_INIT(false_value);
+    WT_CONNECTION_IMPL *conn;
+    int cfg_len;
+    const char **end;
+
+    *value = false_value;
+    value->val = def;
+
+    if (cfg == NULL)
+        return (0);
+
+    /*
+     * Checking the "length" of the pointer array is a little odd, but it's deliberate. The reason
+     * is because we pass variable length arrays of pointers as the configuration argument, some of
+     * which have only one element and the NULL termination. Static analyzers (like Coverity)
+     * complain if we read from an offset past the end of the array, even if we check there's no
+     * NULL slots before the offset.
+     */
+    for (end = cfg; *end != NULL; ++end)
+        ;
+    cfg_len = (int)(end - cfg);
+    switch (cfg_len) {
+    case 0: /* cfg[0] == NULL */
+    case 1: /* cfg[1] == NULL */
+        return (0);
+    case 2: /* cfg[2] == NULL */
+        conn = S2C(session);
+        if (__wt_is_compiled_config(conn, cfg[1])) {
+            if (__wt_compiled_has(conn, cfg[1], api))
+                WT_RET(__wt_compiled_get(session, api, cfg[1], value));
+        } else
+            WT_RET_NOTFOUND_OK(__wt_config_getones(session, cfg[1], key, value));
+        return (0);
+    default:
+        return (__wt_config_gets_api(session, cfg, api, key, value));
+    }
+    /* NOTREACHED */
+}
+
 /*
  * __wt_config_subgetraw --
  *     Get the value for a given key from a config string in a WT_CONFIG_ITEM. This is useful for
diff --git a/src/config/config_check.c b/src/config/config_check.c
index d07eabcec..466a79fc8 100644
--- a/src/config/config_check.c
+++ b/src/config/config_check.c
@@ -22,7 +22,7 @@ __wt_config_check(
     /*
      * Callers don't check, it's a fast call without a configuration or check array.
      */
-    return (config == NULL || entry->checks == NULL ?
+    return (config == NULL || entry->checks == NULL || __wt_is_compiled_config(S2C(session), config) ?
         0 :
         config_check(session, entry->checks, entry->checks_entries, config, config_len));
 }
diff --git a/src/config/config_def.c b/src/config/config_def.c
index 8894ff6cd..bb88c8d28 100644
--- a/src/config/config_def.c
+++ b/src/config/config_def.c
@@ -3,160 +3,209 @@
 #include "wt_internal.h"
 
 static const WT_CONFIG_CHECK confchk_WT_CONNECTION_close[] = {
-  {"leak_memory", "boolean", NULL, NULL, NULL, 0},
-  {"use_timestamp", "boolean", NULL, NULL, NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"leak_memory", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 0},
+  {"use_timestamp", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 1},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_CONNECTION_debug_info[] = {
-  {"cache", "boolean", NULL, NULL, NULL, 0}, {"cursors", "boolean", NULL, NULL, NULL, 0},
-  {"handles", "boolean", NULL, NULL, NULL, 0}, {"log", "boolean", NULL, NULL, NULL, 0},
-  {"sessions", "boolean", NULL, NULL, NULL, 0}, {"txn", "boolean", NULL, NULL, NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"cache", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 0},
+  {"cursors", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 1},
+  {"handles", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 2},
+  {"log", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 3},
+  {"sessions", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 4},
+  {"txn", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 5},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_CONNECTION_load_extension[] = {
-  {"config", "string", NULL, NULL, NULL, 0}, {"early_load", "boolean", NULL, NULL, NULL, 0},
-  {"entry", "string", NULL, NULL, NULL, 0}, {"terminate", "string", NULL, NULL, NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"config", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 0},
+  {"early_load", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 1},
+  {"entry", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 2},
+  {"terminate", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 3},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_CONNECTION_open_session_debug_subconfigs[] = {
-  {"release_evict_page", "boolean", NULL, NULL, NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"release_evict_page", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 0},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_CONNECTION_open_session[] = {
-  {"cache_cursors", "boolean", NULL, NULL, NULL, 0},
-  {"cache_max_wait_ms", "int", NULL, "min=0", NULL, 0},
-  {"debug", "category", NULL, NULL, confchk_WT_CONNECTION_open_session_debug_subconfigs, 1},
-  {"ignore_cache_size", "boolean", NULL, NULL, NULL, 0},
+  {"cache_cursors", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 0},
+  {"cache_max_wait_ms", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 1},
+  {"debug", "category", NULL, NULL, confchk_WT_CONNECTION_open_session_debug_subconfigs, 1,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 2},
+  {"ignore_cache_size", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 3},
   {"isolation", "string", NULL,
     "choices=[\"read-uncommitted\",\"read-committed\","
     "\"snapshot\"]",
-    NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 4},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_CONNECTION_query_timestamp[] = {
   {"get", "string", NULL,
     "choices=[\"all_durable\",\"last_checkpoint\",\"oldest\","
     "\"oldest_reader\",\"oldest_timestamp\",\"pinned\",\"recovery\","
     "\"stable\",\"stable_timestamp\"]",
-    NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 0},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_wiredtiger_open_block_cache_subconfigs[] = {
-  {"blkcache_eviction_aggression", "int", NULL, "min=1,max=7200", NULL, 0},
-  {"cache_on_checkpoint", "boolean", NULL, NULL, NULL, 0},
-  {"cache_on_writes", "boolean", NULL, NULL, NULL, 0}, {"enabled", "boolean", NULL, NULL, NULL, 0},
-  {"full_target", "int", NULL, "min=30,max=100", NULL, 0},
-  {"hashsize", "int", NULL, "min=512,max=256K", NULL, 0},
-  {"max_percent_overhead", "int", NULL, "min=1,max=500", NULL, 0},
-  {"nvram_path", "string", NULL, NULL, NULL, 0},
-  {"percent_file_in_dram", "int", NULL, "min=0,max=100", NULL, 0},
-  {"size", "int", NULL, "min=0,max=10TB", NULL, 0},
-  {"system_ram", "int", NULL, "min=0,max=1024GB", NULL, 0}, {"type", "string", NULL, NULL, NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"blkcache_eviction_aggression", "int", NULL, "min=1,max=7200", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_INT, 3},
+  {"cache_on_checkpoint", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 0},
+  {"cache_on_writes", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 1},
+  {"enabled", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 2},
+  {"full_target", "int", NULL, "min=30,max=100", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 4},
+  {"hashsize", "int", NULL, "min=512,max=256K", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 6},
+  {"max_percent_overhead", "int", NULL, "min=1,max=500", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 7},
+  {"nvram_path", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 8},
+  {"percent_file_in_dram", "int", NULL, "min=0,max=100", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 9},
+  {"size", "int", NULL, "min=0,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 5},
+  {"system_ram", "int", NULL, "min=0,max=1024GB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 10},
+  {"type", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 11},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_wiredtiger_open_checkpoint_subconfigs[] = {
-  {"log_size", "int", NULL, "min=0,max=2GB", NULL, 0},
-  {"wait", "int", NULL, "min=0,max=100000", NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"log_size", "int", NULL, "min=0,max=2GB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 0},
+  {"wait", "int", NULL, "min=0,max=100000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 1},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_CONNECTION_reconfigure_compatibility_subconfigs[] = {
-  {"release", "string", NULL, NULL, NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"release", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 0},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_wiredtiger_open_debug_mode_subconfigs[] = {
-  {"checkpoint_retention", "int", NULL, "min=0,max=1024", NULL, 0},
-  {"corruption_abort", "boolean", NULL, NULL, NULL, 0},
-  {"cursor_copy", "boolean", NULL, NULL, NULL, 0}, {"eviction", "boolean", NULL, NULL, NULL, 0},
-  {"log_retention", "int", NULL, "min=0,max=1024", NULL, 0},
-  {"realloc_exact", "boolean", NULL, NULL, NULL, 0},
-  {"rollback_error", "int", NULL, "min=0,max=10M", NULL, 0},
-  {"slow_checkpoint", "boolean", NULL, NULL, NULL, 0},
-  {"table_logging", "boolean", NULL, NULL, NULL, 0},
-  {"update_restore_evict", "boolean", NULL, NULL, NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"checkpoint_retention", "int", NULL, "min=0,max=1024", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 1},
+  {"corruption_abort", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 0},
+  {"cursor_copy", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 2},
+  {"eviction", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 3},
+  {"log_retention", "int", NULL, "min=0,max=1024", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 4},
+  {"realloc_exact", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 5},
+  {"rollback_error", "int", NULL, "min=0,max=10M", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 6},
+  {"slow_checkpoint", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 7},
+  {"table_logging", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 8},
+  {"update_restore_evict", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 9},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_wiredtiger_open_eviction_subconfigs[] = {
-  {"threads_max", "int", NULL, "min=1,max=20", NULL, 0},
-  {"threads_min", "int", NULL, "min=1,max=20", NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"threads_max", "int", NULL, "min=1,max=20", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 0},
+  {"threads_min", "int", NULL, "min=1,max=20", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 1},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_wiredtiger_open_file_manager_subconfigs[] = {
-  {"close_handle_minimum", "int", NULL, "min=0", NULL, 0},
-  {"close_idle_time", "int", NULL, "min=0,max=100000", NULL, 0},
-  {"close_scan_interval", "int", NULL, "min=1,max=100000", NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"close_handle_minimum", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 0},
+  {"close_idle_time", "int", NULL, "min=0,max=100000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 1},
+  {"close_scan_interval", "int", NULL, "min=1,max=100000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 2},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_wiredtiger_open_history_store_subconfigs[] = {
-  {"file_max", "int", NULL, "min=0", NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"file_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 0},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_wiredtiger_open_io_capacity_subconfigs[] = {
-  {"total", "int", NULL, "min=0,max=1TB", NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"total", "int", NULL, "min=0,max=1TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 0},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_CONNECTION_reconfigure_log_subconfigs[] = {
-  {"archive", "boolean", NULL, NULL, NULL, 0},
-  {"os_cache_dirty_pct", "int", NULL, "min=0,max=100", NULL, 0},
-  {"prealloc", "boolean", NULL, NULL, NULL, 0}, {"remove", "boolean", NULL, NULL, NULL, 0},
-  {"zero_fill", "boolean", NULL, NULL, NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"archive", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 0},
+  {"os_cache_dirty_pct", "int", NULL, "min=0,max=100", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 1},
+  {"prealloc", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 2},
+  {"remove", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 3},
+  {"zero_fill", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 4},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_wiredtiger_open_lsm_manager_subconfigs[] = {
-  {"merge", "boolean", NULL, NULL, NULL, 0},
-  {"worker_thread_max", "int", NULL, "min=3,max=20", NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"merge", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 1},
+  {"worker_thread_max", "int", NULL, "min=3,max=20", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 0},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_wiredtiger_open_operation_tracking_subconfigs[] = {
-  {"enabled", "boolean", NULL, NULL, NULL, 0}, {"path", "string", NULL, NULL, NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"enabled", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 0},
+  {"path", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 1},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_wiredtiger_open_shared_cache_subconfigs[] = {
-  {"chunk", "int", NULL, "min=1MB,max=10TB", NULL, 0}, {"name", "string", NULL, NULL, NULL, 0},
-  {"quota", "int", NULL, NULL, NULL, 0}, {"reserve", "int", NULL, NULL, NULL, 0},
-  {"size", "int", NULL, "min=1MB,max=10TB", NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"chunk", "int", NULL, "min=1MB,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 0},
+  {"name", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 1},
+  {"quota", "int", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 2},
+  {"reserve", "int", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 3},
+  {"size", "int", NULL, "min=1MB,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 4},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_CONNECTION_reconfigure_statistics_log_subconfigs[] = {
-  {"json", "boolean", NULL, NULL, NULL, 0}, {"on_close", "boolean", NULL, NULL, NULL, 0},
-  {"sources", "list", NULL, NULL, NULL, 0}, {"timestamp", "string", NULL, NULL, NULL, 0},
-  {"wait", "int", NULL, "min=0,max=100000", NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"json", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 0},
+  {"on_close", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 1},
+  {"sources", "list", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 2},
+  {"timestamp", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 3},
+  {"wait", "int", NULL, "min=0,max=100000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 4},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_tiered_manager_subconfigs[] = {
-  {"threads_max", "int", NULL, "min=1,max=20", NULL, 0},
-  {"threads_min", "int", NULL, "min=1,max=20", NULL, 0},
-  {"wait", "int", NULL, "min=0,max=100000", NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"threads_max", "int", NULL, "min=1,max=20", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 0},
+  {"threads_min", "int", NULL, "min=1,max=20", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 1},
+  {"wait", "int", NULL, "min=0,max=100000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 2},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_CONNECTION_reconfigure_tiered_storage_subconfigs[] = {
-  {"local_retention", "int", NULL, "min=0,max=10000", NULL, 0},
-  {"object_target_size", "int", NULL, "min=100K,max=10TB", NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"local_retention", "int", NULL, "min=0,max=10000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 0},
+  {"object_target_size", "int", NULL, "min=100K,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 1},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_CONNECTION_reconfigure[] = {
-  {"block_cache", "category", NULL, NULL, confchk_wiredtiger_open_block_cache_subconfigs, 12},
-  {"cache_max_wait_ms", "int", NULL, "min=0", NULL, 0},
-  {"cache_overhead", "int", NULL, "min=0,max=30", NULL, 0},
-  {"cache_size", "int", NULL, "min=1MB,max=10TB", NULL, 0},
-  {"checkpoint", "category", NULL, NULL, confchk_wiredtiger_open_checkpoint_subconfigs, 2},
+  {"block_cache", "category", NULL, NULL, confchk_wiredtiger_open_block_cache_subconfigs, 12,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 0},
+  {"cache_max_wait_ms", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 1},
+  {"cache_overhead", "int", NULL, "min=0,max=30", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 2},
+  {"cache_size", "int", NULL, "min=1MB,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 3},
+  {"checkpoint", "category", NULL, NULL, confchk_wiredtiger_open_checkpoint_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 4},
   {"compatibility", "category", NULL, NULL,
-    confchk_WT_CONNECTION_reconfigure_compatibility_subconfigs, 1},
-  {"debug_mode", "category", NULL, NULL, confchk_wiredtiger_open_debug_mode_subconfigs, 10},
-  {"error_prefix", "string", NULL, NULL, NULL, 0},
-  {"eviction", "category", NULL, NULL, confchk_wiredtiger_open_eviction_subconfigs, 2},
-  {"eviction_checkpoint_target", "int", NULL, "min=0,max=10TB", NULL, 0},
-  {"eviction_dirty_target", "int", NULL, "min=1,max=10TB", NULL, 0},
-  {"eviction_dirty_trigger", "int", NULL, "min=1,max=10TB", NULL, 0},
-  {"eviction_target", "int", NULL, "min=10,max=10TB", NULL, 0},
-  {"eviction_trigger", "int", NULL, "min=10,max=10TB", NULL, 0},
-  {"eviction_updates_target", "int", NULL, "min=0,max=10TB", NULL, 0},
-  {"eviction_updates_trigger", "int", NULL, "min=0,max=10TB", NULL, 0},
-  {"file_manager", "category", NULL, NULL, confchk_wiredtiger_open_file_manager_subconfigs, 3},
-  {"history_store", "category", NULL, NULL, confchk_wiredtiger_open_history_store_subconfigs, 1},
-  {"io_capacity", "category", NULL, NULL, confchk_wiredtiger_open_io_capacity_subconfigs, 1},
-  {"json_output", "list", NULL, "choices=[\"error\",\"message\"]", NULL, 0},
-  {"log", "category", NULL, NULL, confchk_WT_CONNECTION_reconfigure_log_subconfigs, 5},
-  {"lsm_manager", "category", NULL, NULL, confchk_wiredtiger_open_lsm_manager_subconfigs, 2},
-  {"operation_timeout_ms", "int", NULL, "min=0", NULL, 0},
+    confchk_WT_CONNECTION_reconfigure_compatibility_subconfigs, 1, WT_CONFIG_COMPILED_TYPE_CATEGORY,
+    5},
+  {"debug_mode", "category", NULL, NULL, confchk_wiredtiger_open_debug_mode_subconfigs, 10,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 6},
+  {"error_prefix", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 7},
+  {"eviction", "category", NULL, NULL, confchk_wiredtiger_open_eviction_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 8},
+  {"eviction_checkpoint_target", "int", NULL, "min=0,max=10TB", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_INT, 9},
+  {"eviction_dirty_target", "int", NULL, "min=1,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT,
+    10},
+  {"eviction_dirty_trigger", "int", NULL, "min=1,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT,
+    11},
+  {"eviction_target", "int", NULL, "min=10,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 12},
+  {"eviction_trigger", "int", NULL, "min=10,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 13},
+  {"eviction_updates_target", "int", NULL, "min=0,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT,
+    14},
+  {"eviction_updates_trigger", "int", NULL, "min=0,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT,
+    15},
+  {"file_manager", "category", NULL, NULL, confchk_wiredtiger_open_file_manager_subconfigs, 3,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 16},
+  {"history_store", "category", NULL, NULL, confchk_wiredtiger_open_history_store_subconfigs, 1,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 17},
+  {"io_capacity", "category", NULL, NULL, confchk_wiredtiger_open_io_capacity_subconfigs, 1,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 18},
+  {"json_output", "list", NULL, "choices=[\"error\",\"message\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_LIST, 19},
+  {"log", "category", NULL, NULL, confchk_WT_CONNECTION_reconfigure_log_subconfigs, 5,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 20},
+  {"lsm_manager", "category", NULL, NULL, confchk_wiredtiger_open_lsm_manager_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 21},
+  {"operation_timeout_ms", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 22},
   {"operation_tracking", "category", NULL, NULL,
-    confchk_wiredtiger_open_operation_tracking_subconfigs, 2},
-  {"shared_cache", "category", NULL, NULL, confchk_wiredtiger_open_shared_cache_subconfigs, 5},
+    confchk_wiredtiger_open_operation_tracking_subconfigs, 2, WT_CONFIG_COMPILED_TYPE_CATEGORY, 23},
+  {"shared_cache", "category", NULL, NULL, confchk_wiredtiger_open_shared_cache_subconfigs, 5,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 24},
   {"statistics", "list", NULL,
     "choices=[\"all\",\"cache_walk\",\"fast\",\"none\","
     "\"clear\",\"tree_walk\"]",
-    NULL, 0},
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 25},
   {"statistics_log", "category", NULL, NULL,
-    confchk_WT_CONNECTION_reconfigure_statistics_log_subconfigs, 5},
-  {"tiered_manager", "category", NULL, NULL, confchk_tiered_manager_subconfigs, 3},
+    confchk_WT_CONNECTION_reconfigure_statistics_log_subconfigs, 5,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 26},
+  {"tiered_manager", "category", NULL, NULL, confchk_tiered_manager_subconfigs, 3,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 27},
   {"tiered_storage", "category", NULL, NULL,
-    confchk_WT_CONNECTION_reconfigure_tiered_storage_subconfigs, 2},
+    confchk_WT_CONNECTION_reconfigure_tiered_storage_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 28},
   {"timing_stress_for_test", "list", NULL,
     "choices=[\"aggressive_sweep\",\"backup_rename\","
     "\"checkpoint_reserved_txnid_delay\",\"checkpoint_slow\","
@@ -165,7 +214,7 @@ static const WT_CONFIG_CHECK confchk_WT_CONNECTION_reconfigure[] = {
     "\"history_store_sweep_race\",\"prepare_checkpoint_delay\","
     "\"split_1\",\"split_2\",\"split_3\",\"split_4\",\"split_5\","
     "\"split_6\",\"split_7\",\"tiered_flush_finish\"]",
-    NULL, 0},
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 29},
   {"verbose", "list", NULL,
     "choices=[\"api\",\"backup\",\"block\",\"block_cache\","
     "\"checkpoint\",\"checkpoint_cleanup\",\"checkpoint_progress\","
@@ -178,720 +227,938 @@ static const WT_CONFIG_CHECK confchk_WT_CONNECTION_reconfigure[] = {
     "\"shared_cache\",\"split\",\"temporary\",\"thread_group\","
     "\"tiered\",\"timestamp\",\"transaction\",\"verify\",\"version\","
     "\"write\"]",
-    NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 30},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_CONNECTION_set_timestamp[] = {
-  {"durable_timestamp", "string", NULL, NULL, NULL, 0}, {"force", "boolean", NULL, NULL, NULL, 0},
-  {"oldest_timestamp", "string", NULL, NULL, NULL, 0},
-  {"stable_timestamp", "string", NULL, NULL, NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"durable_timestamp", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 0},
+  {"force", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 1},
+  {"oldest_timestamp", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 2},
+  {"stable_timestamp", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 3},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_CURSOR_reconfigure[] = {
-  {"append", "boolean", NULL, NULL, NULL, 0}, {"overwrite", "boolean", NULL, NULL, NULL, 0},
-  {"prefix_search", "boolean", NULL, NULL, NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"append", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 0},
+  {"overwrite", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 1},
+  {"prefix_search", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 2},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_SESSION_create_assert_subconfigs[] = {
-  {"commit_timestamp", "string", NULL, "choices=[\"always\",\"never\",\"none\"]", NULL, 0},
-  {"durable_timestamp", "string", NULL, "choices=[\"always\",\"never\",\"none\"]", NULL, 0},
-  {"read_timestamp", "string", NULL, "choices=[\"always\",\"never\",\"none\"]", NULL, 0},
-  {"write_timestamp", "string", NULL, "choices=[\"off\",\"on\"]", NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"commit_timestamp", "string", NULL, "choices=[\"always\",\"never\",\"none\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_STRING, 0},
+  {"durable_timestamp", "string", NULL, "choices=[\"always\",\"never\",\"none\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_STRING, 1},
+  {"read_timestamp", "string", NULL, "choices=[\"always\",\"never\",\"none\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_STRING, 2},
+  {"write_timestamp", "string", NULL, "choices=[\"off\",\"on\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_STRING, 3},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_SESSION_create_log_subconfigs[] = {
-  {"enabled", "boolean", NULL, NULL, NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"enabled", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 0},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_SESSION_alter[] = {
-  {"access_pattern_hint", "string", NULL, "choices=[\"none\",\"random\",\"sequential\"]", NULL, 0},
-  {"app_metadata", "string", NULL, NULL, NULL, 0},
-  {"assert", "category", NULL, NULL, confchk_WT_SESSION_create_assert_subconfigs, 4},
-  {"cache_resident", "boolean", NULL, NULL, NULL, 0}, {"checkpoint", "string", NULL, NULL, NULL, 0},
-  {"exclusive_refreshed", "boolean", NULL, NULL, NULL, 0},
-  {"log", "category", NULL, NULL, confchk_WT_SESSION_create_log_subconfigs, 1},
-  {"os_cache_dirty_max", "int", NULL, "min=0", NULL, 0},
-  {"os_cache_max", "int", NULL, "min=0", NULL, 0}, {"readonly", "boolean", NULL, NULL, NULL, 0},
-  {"tiered_object", "boolean", NULL, NULL, NULL, 0},
-  {"verbose", "list", NULL, "choices=[\"write_timestamp\"]", NULL, 0},
+  {"access_pattern_hint", "string", NULL, "choices=[\"none\",\"random\",\"sequential\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_STRING, 0},
+  {"app_metadata", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 1},
+  {"assert", "category", NULL, NULL, confchk_WT_SESSION_create_assert_subconfigs, 4,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 2},
+  {"cache_resident", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 3},
+  {"checkpoint", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 4},
+  {"exclusive_refreshed", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 5},
+  {"log", "category", NULL, NULL, confchk_WT_SESSION_create_log_subconfigs, 1,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 6},
+  {"os_cache_dirty_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 7},
+  {"os_cache_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 8},
+  {"readonly", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 9},
+  {"tiered_object", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 10},
+  {"verbose", "list", NULL, "choices=[\"write_timestamp\"]", NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST,
+    11},
   {"write_timestamp_usage", "string", NULL,
     "choices=[\"always\",\"mixed_mode\",\"never\",\"none\","
     "\"ordered\"]",
-    NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 12},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_SESSION_begin_transaction_roundup_timestamps_subconfigs[] =
-  {{"prepared", "boolean", NULL, NULL, NULL, 0}, {"read", "boolean", NULL, NULL, NULL, 0},
-    {NULL, NULL, NULL, NULL, NULL, 0}};
+  {{"prepared", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 0},
+    {"read", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 1},
+    {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_SESSION_begin_transaction[] = {
-  {"ignore_prepare", "string", NULL, "choices=[\"false\",\"force\",\"true\"]", NULL, 0},
+  {"ignore_prepare", "string", NULL, "choices=[\"false\",\"force\",\"true\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_STRING, 0},
   {"isolation", "string", NULL,
     "choices=[\"read-uncommitted\",\"read-committed\","
     "\"snapshot\"]",
-    NULL, 0},
-  {"name", "string", NULL, NULL, NULL, 0}, {"operation_timeout_ms", "int", NULL, "min=1", NULL, 0},
-  {"priority", "int", NULL, "min=-100,max=100", NULL, 0},
-  {"read_before_oldest", "boolean", NULL, NULL, NULL, 0},
-  {"read_timestamp", "string", NULL, NULL, NULL, 0},
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 1},
+  {"name", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 2},
+  {"operation_timeout_ms", "int", NULL, "min=1", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 3},
+  {"priority", "int", NULL, "min=-100,max=100", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 4},
+  {"read_before_oldest", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 5},
+  {"read_timestamp", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 6},
   {"roundup_timestamps", "category", NULL, NULL,
-    confchk_WT_SESSION_begin_transaction_roundup_timestamps_subconfigs, 2},
-  {"sync", "boolean", NULL, NULL, NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+    confchk_WT_SESSION_begin_transaction_roundup_timestamps_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 7},
+  {"sync", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 8},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_SESSION_checkpoint[] = {
-  {"drop", "list", NULL, NULL, NULL, 0}, {"force", "boolean", NULL, NULL, NULL, 0},
-  {"name", "string", NULL, NULL, NULL, 0}, {"target", "list", NULL, NULL, NULL, 0},
-  {"use_timestamp", "boolean", NULL, NULL, NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"drop", "list", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 0},
+  {"force", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 1},
+  {"name", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 2},
+  {"target", "list", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 3},
+  {"use_timestamp", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 4},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_SESSION_commit_transaction[] = {
-  {"commit_timestamp", "string", NULL, NULL, NULL, 0},
-  {"durable_timestamp", "string", NULL, NULL, NULL, 0},
-  {"operation_timeout_ms", "int", NULL, "min=1", NULL, 0},
-  {"sync", "string", NULL, "choices=[\"off\",\"on\"]", NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"commit_timestamp", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 0},
+  {"durable_timestamp", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 1},
+  {"operation_timeout_ms", "int", NULL, "min=1", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 2},
+  {"sync", "string", NULL, "choices=[\"off\",\"on\"]", NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 3},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_SESSION_compact[] = {
-  {"timeout", "int", NULL, NULL, NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"timeout", "int", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 0},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_SESSION_create_encryption_subconfigs[] = {
-  {"keyid", "string", NULL, NULL, NULL, 0}, {"name", "string", NULL, NULL, NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"keyid", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 1},
+  {"name", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 0},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_SESSION_create_import_subconfigs[] = {
   {"compare_timestamp", "string", NULL,
     "choices=[\"oldest\",\"oldest_timestamp\",\"stable\","
     "\"stable_timestamp\"]",
-    NULL, 0},
-  {"enabled", "boolean", NULL, NULL, NULL, 0}, {"file_metadata", "string", NULL, NULL, NULL, 0},
-  {"repair", "boolean", NULL, NULL, NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 0},
+  {"enabled", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 1},
+  {"file_metadata", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 3},
+  {"repair", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 2},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_SESSION_create_merge_custom_subconfigs[] = {
-  {"prefix", "string", NULL, NULL, NULL, 0},
-  {"start_generation", "int", NULL, "min=0,max=10", NULL, 0},
-  {"suffix", "string", NULL, NULL, NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"prefix", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 0},
+  {"start_generation", "int", NULL, "min=0,max=10", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 1},
+  {"suffix", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 2},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_SESSION_create_lsm_subconfigs[] = {
-  {"auto_throttle", "boolean", NULL, NULL, NULL, 0}, {"bloom", "boolean", NULL, NULL, NULL, 0},
-  {"bloom_bit_count", "int", NULL, "min=2,max=1000", NULL, 0},
-  {"bloom_config", "string", NULL, NULL, NULL, 0},
-  {"bloom_hash_count", "int", NULL, "min=2,max=100", NULL, 0},
-  {"bloom_oldest", "boolean", NULL, NULL, NULL, 0},
-  {"chunk_count_limit", "int", NULL, NULL, NULL, 0},
-  {"chunk_max", "int", NULL, "min=100MB,max=10TB", NULL, 0},
-  {"chunk_size", "int", NULL, "min=512K,max=500MB", NULL, 0},
-  {"merge_custom", "category", NULL, NULL, confchk_WT_SESSION_create_merge_custom_subconfigs, 3},
-  {"merge_max", "int", NULL, "min=2,max=100", NULL, 0},
-  {"merge_min", "int", NULL, "max=100", NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"auto_throttle", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 0},
+  {"bloom", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 1},
+  {"bloom_bit_count", "int", NULL, "min=2,max=1000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 2},
+  {"bloom_config", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 3},
+  {"bloom_hash_count", "int", NULL, "min=2,max=100", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 4},
+  {"bloom_oldest", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 5},
+  {"chunk_count_limit", "int", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 6},
+  {"chunk_max", "int", NULL, "min=100MB,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 7},
+  {"chunk_size", "int", NULL, "min=512K,max=500MB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 8},
+  {"merge_custom", "category", NULL, NULL, confchk_WT_SESSION_create_merge_custom_subconfigs, 3,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 9},
+  {"merge_max", "int", NULL, "min=2,max=100", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 10},
+  {"merge_min", "int", NULL, "max=100", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 11},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_SESSION_create_tiered_storage_subconfigs[] = {
-  {"auth_token", "string", NULL, NULL, NULL, 0}, {"bucket", "string", NULL, NULL, NULL, 0},
-  {"bucket_prefix", "string", NULL, NULL, NULL, 0},
-  {"cache_directory", "string", NULL, NULL, NULL, 0},
-  {"local_retention", "int", NULL, "min=0,max=10000", NULL, 0},
-  {"name", "string", NULL, NULL, NULL, 0},
-  {"object_target_size", "int", NULL, "min=100K,max=10TB", NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"auth_token", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 1},
+  {"bucket", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 2},
+  {"bucket_prefix", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 3},
+  {"cache_directory", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 4},
+  {"local_retention", "int", NULL, "min=0,max=10000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 5},
+  {"name", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 0},
+  {"object_target_size", "int", NULL, "min=100K,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 6},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_SESSION_create[] = {
-  {"access_pattern_hint", "string", NULL, "choices=[\"none\",\"random\",\"sequential\"]", NULL, 0},
-  {"allocation_size", "int", NULL, "min=512B,max=128MB", NULL, 0},
-  {"app_metadata", "string", NULL, NULL, NULL, 0},
-  {"assert", "category", NULL, NULL, confchk_WT_SESSION_create_assert_subconfigs, 4},
-  {"block_allocation", "string", NULL, "choices=[\"best\",\"first\"]", NULL, 0},
-  {"block_compressor", "string", NULL, NULL, NULL, 0},
-  {"cache_resident", "boolean", NULL, NULL, NULL, 0},
+  {"access_pattern_hint", "string", NULL, "choices=[\"none\",\"random\",\"sequential\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_STRING, 0},
+  {"allocation_size", "int", NULL, "min=512B,max=128MB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 1},
+  {"app_metadata", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 2},
+  {"assert", "category", NULL, NULL, confchk_WT_SESSION_create_assert_subconfigs, 4,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 3},
+  {"block_allocation", "string", NULL, "choices=[\"best\",\"first\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_STRING, 4},
+  {"block_compressor", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 5},
+  {"cache_resident", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 6},
   {"checksum", "string", NULL,
     "choices=[\"on\",\"off\",\"uncompressed\","
     "\"unencrypted\"]",
-    NULL, 0},
-  {"colgroups", "list", NULL, NULL, NULL, 0}, {"collator", "string", NULL, NULL, NULL, 0},
-  {"columns", "list", NULL, NULL, NULL, 0}, {"dictionary", "int", NULL, "min=0", NULL, 0},
-  {"encryption", "category", NULL, NULL, confchk_WT_SESSION_create_encryption_subconfigs, 2},
-  {"exclusive", "boolean", NULL, NULL, NULL, 0}, {"extractor", "string", NULL, NULL, NULL, 0},
-  {"format", "string", NULL, "choices=[\"btree\"]", NULL, 0},
-  {"huffman_key", "string", NULL, NULL, NULL, 0}, {"huffman_value", "string", NULL, NULL, NULL, 0},
-  {"ignore_in_memory_cache_size", "boolean", NULL, NULL, NULL, 0},
-  {"immutable", "boolean", NULL, NULL, NULL, 0},
-  {"import", "category", NULL, NULL, confchk_WT_SESSION_create_import_subconfigs, 4},
-  {"internal_item_max", "int", NULL, "min=0", NULL, 0},
-  {"internal_key_max", "int", NULL, "min=0", NULL, 0},
-  {"internal_key_truncate", "boolean", NULL, NULL, NULL, 0},
-  {"internal_page_max", "int", NULL, "min=512B,max=512MB", NULL, 0},
-  {"key_format", "format", __wt_struct_confchk, NULL, NULL, 0},
-  {"key_gap", "int", NULL, "min=0", NULL, 0}, {"leaf_item_max", "int", NULL, "min=0", NULL, 0},
-  {"leaf_key_max", "int", NULL, "min=0", NULL, 0},
-  {"leaf_page_max", "int", NULL, "min=512B,max=512MB", NULL, 0},
-  {"leaf_value_max", "int", NULL, "min=0", NULL, 0},
-  {"log", "category", NULL, NULL, confchk_WT_SESSION_create_log_subconfigs, 1},
-  {"lsm", "category", NULL, NULL, confchk_WT_SESSION_create_lsm_subconfigs, 12},
-  {"memory_page_image_max", "int", NULL, "min=0", NULL, 0},
-  {"memory_page_max", "int", NULL, "min=512B,max=10TB", NULL, 0},
-  {"os_cache_dirty_max", "int", NULL, "min=0", NULL, 0},
-  {"os_cache_max", "int", NULL, "min=0", NULL, 0},
-  {"prefix_compression", "boolean", NULL, NULL, NULL, 0},
-  {"prefix_compression_min", "int", NULL, "min=0", NULL, 0},
-  {"readonly", "boolean", NULL, NULL, NULL, 0}, {"source", "string", NULL, NULL, NULL, 0},
-  {"split_deepen_min_child", "int", NULL, NULL, NULL, 0},
-  {"split_deepen_per_child", "int", NULL, NULL, NULL, 0},
-  {"split_pct", "int", NULL, "min=50,max=100", NULL, 0},
-  {"tiered_object", "boolean", NULL, NULL, NULL, 0},
-  {"tiered_storage", "category", NULL, NULL, confchk_WT_SESSION_create_tiered_storage_subconfigs,
-    7},
-  {"type", "string", NULL, NULL, NULL, 0},
-  {"value_format", "format", __wt_struct_confchk, NULL, NULL, 0},
-  {"verbose", "list", NULL, "choices=[\"write_timestamp\"]", NULL, 0},
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 7},
+  {"colgroups", "list", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 8},
+  {"collator", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 9},
+  {"columns", "list", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 10},
+  {"dictionary", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 11},
+  {"encryption", "category", NULL, NULL, confchk_WT_SESSION_create_encryption_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 12},
+  {"exclusive", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 13},
+  {"extractor", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 14},
+  {"format", "string", NULL, "choices=[\"btree\"]", NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 15},
+  {"huffman_key", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 16},
+  {"huffman_value", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 17},
+  {"ignore_in_memory_cache_size", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN,
+    18},
+  {"immutable", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 19},
+  {"import", "category", NULL, NULL, confchk_WT_SESSION_create_import_subconfigs, 4,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 20},
+  {"internal_item_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 21},
+  {"internal_key_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 22},
+  {"internal_key_truncate", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 23},
+  {"internal_page_max", "int", NULL, "min=512B,max=512MB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT,
+    24},
+  {"key_format", "format", __wt_struct_confchk, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 25},
+  {"key_gap", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 26},
+  {"leaf_item_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 27},
+  {"leaf_key_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 28},
+  {"leaf_page_max", "int", NULL, "min=512B,max=512MB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 29},
+  {"leaf_value_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 30},
+  {"log", "category", NULL, NULL, confchk_WT_SESSION_create_log_subconfigs, 1,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 31},
+  {"lsm", "category", NULL, NULL, confchk_WT_SESSION_create_lsm_subconfigs, 12,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 32},
+  {"memory_page_image_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 33},
+  {"memory_page_max", "int", NULL, "min=512B,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 34},
+  {"os_cache_dirty_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 35},
+  {"os_cache_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 36},
+  {"prefix_compression", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 37},
+  {"prefix_compression_min", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 38},
+  {"readonly", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 39},
+  {"source", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 40},
+  {"split_deepen_min_child", "int", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 41},
+  {"split_deepen_per_child", "int", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 42},
+  {"split_pct", "int", NULL, "min=50,max=100", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 43},
+  {"tiered_object", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 44},
+  {"tiered_storage", "category", NULL, NULL, confchk_WT_SESSION_create_tiered_storage_subconfigs, 7,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 45},
+  {"type", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 46},
+  {"value_format", "format", __wt_struct_confchk, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING,
+    47},
+  {"verbose", "list", NULL, "choices=[\"write_timestamp\"]", NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST,
+    48},
   {"write_timestamp_usage", "string", NULL,
     "choices=[\"always\",\"mixed_mode\",\"never\",\"none\","
     "\"ordered\"]",
-    NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 49},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_SESSION_drop[] = {
-  {"checkpoint_wait", "boolean", NULL, NULL, NULL, 0}, {"force", "boolean", NULL, NULL, NULL, 0},
-  {"lock_wait", "boolean", NULL, NULL, NULL, 0}, {"remove_files", "boolean", NULL, NULL, NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"checkpoint_wait", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 0},
+  {"force", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 1},
+  {"lock_wait", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 2},
+  {"remove_files", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 3},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_SESSION_flush_tier[] = {
-  {"flush_timestamp", "string", NULL, NULL, NULL, 0}, {"force", "boolean", NULL, NULL, NULL, 0},
-  {"lock_wait", "boolean", NULL, NULL, NULL, 0},
-  {"sync", "string", NULL, "choices=[\"off\",\"on\"]", NULL, 0},
-  {"timeout", "int", NULL, NULL, NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"flush_timestamp", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 0},
+  {"force", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 1},
+  {"lock_wait", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 2},
+  {"sync", "string", NULL, "choices=[\"off\",\"on\"]", NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 3},
+  {"timeout", "int", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 4},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_SESSION_join[] = {
-  {"bloom_bit_count", "int", NULL, "min=2,max=1000", NULL, 0},
-  {"bloom_false_positives", "boolean", NULL, NULL, NULL, 0},
-  {"bloom_hash_count", "int", NULL, "min=2,max=100", NULL, 0},
-  {"compare", "string", NULL, "choices=[\"eq\",\"ge\",\"gt\",\"le\",\"lt\"]", NULL, 0},
-  {"count", "int", NULL, NULL, NULL, 0},
-  {"operation", "string", NULL, "choices=[\"and\",\"or\"]", NULL, 0},
-  {"strategy", "string", NULL, "choices=[\"bloom\",\"default\"]", NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"bloom_bit_count", "int", NULL, "min=2,max=1000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 0},
+  {"bloom_false_positives", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 1},
+  {"bloom_hash_count", "int", NULL, "min=2,max=100", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 2},
+  {"compare", "string", NULL, "choices=[\"eq\",\"ge\",\"gt\",\"le\",\"lt\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_STRING, 3},
+  {"count", "int", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 4},
+  {"operation", "string", NULL, "choices=[\"and\",\"or\"]", NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING,
+    5},
+  {"strategy", "string", NULL, "choices=[\"bloom\",\"default\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_STRING, 6},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_SESSION_log_flush[] = {
-  {"sync", "string", NULL, "choices=[\"off\",\"on\"]", NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"sync", "string", NULL, "choices=[\"off\",\"on\"]", NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 0},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_SESSION_open_cursor_debug_subconfigs[] = {
-  {"dump_version", "boolean", NULL, NULL, NULL, 0},
-  {"release_evict", "boolean", NULL, NULL, NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"dump_version", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 0},
+  {"release_evict", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 1},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_SESSION_open_cursor_incremental_subconfigs[] = {
-  {"consolidate", "boolean", NULL, NULL, NULL, 0}, {"enabled", "boolean", NULL, NULL, NULL, 0},
-  {"file", "string", NULL, NULL, NULL, 0}, {"force_stop", "boolean", NULL, NULL, NULL, 0},
-  {"granularity", "int", NULL, "min=4KB,max=2GB", NULL, 0},
-  {"src_id", "string", NULL, NULL, NULL, 0}, {"this_id", "string", NULL, NULL, NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"consolidate", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 0},
+  {"enabled", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 1},
+  {"file", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 2},
+  {"force_stop", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 3},
+  {"granularity", "int", NULL, "min=4KB,max=2GB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 4},
+  {"src_id", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 5},
+  {"this_id", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 6},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_SESSION_open_cursor[] = {
-  {"append", "boolean", NULL, NULL, NULL, 0}, {"bulk", "string", NULL, NULL, NULL, 0},
-  {"checkpoint", "string", NULL, NULL, NULL, 0},
-  {"checkpoint_wait", "boolean", NULL, NULL, NULL, 0},
-  {"debug", "category", NULL, NULL, confchk_WT_SESSION_open_cursor_debug_subconfigs, 2},
+  {"append", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 0},
+  {"bulk", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 1},
+  {"checkpoint", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 2},
+  {"checkpoint_wait", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 3},
+  {"debug", "category", NULL, NULL, confchk_WT_SESSION_open_cursor_debug_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 4},
   {"dump", "string", NULL,
     "choices=[\"hex\",\"json\",\"pretty\",\"pretty_hex\","
     "\"print\"]",
-    NULL, 0},
-  {"incremental", "category", NULL, NULL, confchk_WT_SESSION_open_cursor_incremental_subconfigs, 7},
-  {"next_random", "boolean", NULL, NULL, NULL, 0},
-  {"next_random_sample_size", "string", NULL, NULL, NULL, 0},
-  {"overwrite", "boolean", NULL, NULL, NULL, 0}, {"prefix_search", "boolean", NULL, NULL, NULL, 0},
-  {"raw", "boolean", NULL, NULL, NULL, 0}, {"read_once", "boolean", NULL, NULL, NULL, 0},
-  {"readonly", "boolean", NULL, NULL, NULL, 0}, {"skip_sort_check", "boolean", NULL, NULL, NULL, 0},
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 5},
+  {"incremental", "category", NULL, NULL, confchk_WT_SESSION_open_cursor_incremental_subconfigs, 7,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 6},
+  {"next_random", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 7},
+  {"next_random_sample_size", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 8},
+  {"overwrite", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 9},
+  {"prefix_search", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 10},
+  {"raw", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 11},
+  {"read_once", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 12},
+  {"readonly", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 13},
+  {"skip_sort_check", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 14},
   {"statistics", "list", NULL,
     "choices=[\"all\",\"cache_walk\",\"fast\",\"clear\","
     "\"size\",\"tree_walk\"]",
-    NULL, 0},
-  {"target", "list", NULL, NULL, NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 15},
+  {"target", "list", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 16},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_SESSION_prepare_transaction[] = {
-  {"prepare_timestamp", "string", NULL, NULL, NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"prepare_timestamp", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 0},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_SESSION_query_timestamp[] = {
   {"get", "string", NULL,
     "choices=[\"commit\",\"first_commit\",\"prepare\","
     "\"read\"]",
-    NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 0},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_SESSION_reconfigure[] = {
-  {"cache_cursors", "boolean", NULL, NULL, NULL, 0},
-  {"cache_max_wait_ms", "int", NULL, "min=0", NULL, 0},
-  {"debug", "category", NULL, NULL, confchk_WT_CONNECTION_open_session_debug_subconfigs, 1},
-  {"ignore_cache_size", "boolean", NULL, NULL, NULL, 0},
+  {"cache_cursors", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 0},
+  {"cache_max_wait_ms", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 1},
+  {"debug", "category", NULL, NULL, confchk_WT_CONNECTION_open_session_debug_subconfigs, 1,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 2},
+  {"ignore_cache_size", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 3},
   {"isolation", "string", NULL,
     "choices=[\"read-uncommitted\",\"read-committed\","
     "\"snapshot\"]",
-    NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 4},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_SESSION_rollback_transaction[] = {
-  {"operation_timeout_ms", "int", NULL, "min=1", NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"operation_timeout_ms", "int", NULL, "min=1", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 0},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_SESSION_salvage[] = {
-  {"force", "boolean", NULL, NULL, NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"force", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 0},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_SESSION_timestamp_transaction[] = {
-  {"commit_timestamp", "string", NULL, NULL, NULL, 0},
-  {"durable_timestamp", "string", NULL, NULL, NULL, 0},
-  {"prepare_timestamp", "string", NULL, NULL, NULL, 0},
-  {"read_timestamp", "string", NULL, NULL, NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"commit_timestamp", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 0},
+  {"durable_timestamp", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 1},
+  {"prepare_timestamp", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 2},
+  {"read_timestamp", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 3},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_WT_SESSION_verify[] = {
-  {"dump_address", "boolean", NULL, NULL, NULL, 0}, {"dump_blocks", "boolean", NULL, NULL, NULL, 0},
-  {"dump_layout", "boolean", NULL, NULL, NULL, 0}, {"dump_offsets", "list", NULL, NULL, NULL, 0},
-  {"dump_pages", "boolean", NULL, NULL, NULL, 0},
-  {"stable_timestamp", "boolean", NULL, NULL, NULL, 0}, {"strict", "boolean", NULL, NULL, NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"dump_address", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 0},
+  {"dump_blocks", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 1},
+  {"dump_layout", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 2},
+  {"dump_offsets", "list", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 3},
+  {"dump_pages", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 4},
+  {"stable_timestamp", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 5},
+  {"strict", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 6},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_colgroup_meta[] = {
-  {"app_metadata", "string", NULL, NULL, NULL, 0},
-  {"assert", "category", NULL, NULL, confchk_WT_SESSION_create_assert_subconfigs, 4},
-  {"collator", "string", NULL, NULL, NULL, 0}, {"columns", "list", NULL, NULL, NULL, 0},
-  {"source", "string", NULL, NULL, NULL, 0}, {"type", "string", NULL, NULL, NULL, 0},
-  {"verbose", "list", NULL, "choices=[\"write_timestamp\"]", NULL, 0},
+  {"app_metadata", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 0},
+  {"assert", "category", NULL, NULL, confchk_WT_SESSION_create_assert_subconfigs, 4,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 1},
+  {"collator", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 2},
+  {"columns", "list", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 3},
+  {"source", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 4},
+  {"type", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 5},
+  {"verbose", "list", NULL, "choices=[\"write_timestamp\"]", NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST,
+    6},
   {"write_timestamp_usage", "string", NULL,
     "choices=[\"always\",\"mixed_mode\",\"never\",\"none\","
     "\"ordered\"]",
-    NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 7},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_file_config[] = {
-  {"access_pattern_hint", "string", NULL, "choices=[\"none\",\"random\",\"sequential\"]", NULL, 0},
-  {"allocation_size", "int", NULL, "min=512B,max=128MB", NULL, 0},
-  {"app_metadata", "string", NULL, NULL, NULL, 0},
-  {"assert", "category", NULL, NULL, confchk_WT_SESSION_create_assert_subconfigs, 4},
-  {"block_allocation", "string", NULL, "choices=[\"best\",\"first\"]", NULL, 0},
-  {"block_compressor", "string", NULL, NULL, NULL, 0},
-  {"cache_resident", "boolean", NULL, NULL, NULL, 0},
+  {"access_pattern_hint", "string", NULL, "choices=[\"none\",\"random\",\"sequential\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_STRING, 0},
+  {"allocation_size", "int", NULL, "min=512B,max=128MB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 1},
+  {"app_metadata", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 2},
+  {"assert", "category", NULL, NULL, confchk_WT_SESSION_create_assert_subconfigs, 4,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 3},
+  {"block_allocation", "string", NULL, "choices=[\"best\",\"first\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_STRING, 4},
+  {"block_compressor", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 5},
+  {"cache_resident", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 6},
   {"checksum", "string", NULL,
     "choices=[\"on\",\"off\",\"uncompressed\","
     "\"unencrypted\"]",
-    NULL, 0},
-  {"collator", "string", NULL, NULL, NULL, 0}, {"columns", "list", NULL, NULL, NULL, 0},
-  {"dictionary", "int", NULL, "min=0", NULL, 0},
-  {"encryption", "category", NULL, NULL, confchk_WT_SESSION_create_encryption_subconfigs, 2},
-  {"format", "string", NULL, "choices=[\"btree\"]", NULL, 0},
-  {"huffman_key", "string", NULL, NULL, NULL, 0}, {"huffman_value", "string", NULL, NULL, NULL, 0},
-  {"ignore_in_memory_cache_size", "boolean", NULL, NULL, NULL, 0},
-  {"internal_item_max", "int", NULL, "min=0", NULL, 0},
-  {"internal_key_max", "int", NULL, "min=0", NULL, 0},
-  {"internal_key_truncate", "boolean", NULL, NULL, NULL, 0},
-  {"internal_page_max", "int", NULL, "min=512B,max=512MB", NULL, 0},
-  {"key_format", "format", __wt_struct_confchk, NULL, NULL, 0},
-  {"key_gap", "int", NULL, "min=0", NULL, 0}, {"leaf_item_max", "int", NULL, "min=0", NULL, 0},
-  {"leaf_key_max", "int", NULL, "min=0", NULL, 0},
-  {"leaf_page_max", "int", NULL, "min=512B,max=512MB", NULL, 0},
-  {"leaf_value_max", "int", NULL, "min=0", NULL, 0},
-  {"log", "category", NULL, NULL, confchk_WT_SESSION_create_log_subconfigs, 1},
-  {"memory_page_image_max", "int", NULL, "min=0", NULL, 0},
-  {"memory_page_max", "int", NULL, "min=512B,max=10TB", NULL, 0},
-  {"os_cache_dirty_max", "int", NULL, "min=0", NULL, 0},
-  {"os_cache_max", "int", NULL, "min=0", NULL, 0},
-  {"prefix_compression", "boolean", NULL, NULL, NULL, 0},
-  {"prefix_compression_min", "int", NULL, "min=0", NULL, 0},
-  {"readonly", "boolean", NULL, NULL, NULL, 0},
-  {"split_deepen_min_child", "int", NULL, NULL, NULL, 0},
-  {"split_deepen_per_child", "int", NULL, NULL, NULL, 0},
-  {"split_pct", "int", NULL, "min=50,max=100", NULL, 0},
-  {"tiered_object", "boolean", NULL, NULL, NULL, 0},
-  {"tiered_storage", "category", NULL, NULL, confchk_WT_SESSION_create_tiered_storage_subconfigs,
-    7},
-  {"value_format", "format", __wt_struct_confchk, NULL, NULL, 0},
-  {"verbose", "list", NULL, "choices=[\"write_timestamp\"]", NULL, 0},
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 7},
+  {"collator", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 8},
+  {"columns", "list", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 9},
+  {"dictionary", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 10},
+  {"encryption", "category", NULL, NULL, confchk_WT_SESSION_create_encryption_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 11},
+  {"format", "string", NULL, "choices=[\"btree\"]", NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 12},
+  {"huffman_key", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 13},
+  {"huffman_value", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 14},
+  {"ignore_in_memory_cache_size", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN,
+    15},
+  {"internal_item_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 16},
+  {"internal_key_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 17},
+  {"internal_key_truncate", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 18},
+  {"internal_page_max", "int", NULL, "min=512B,max=512MB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT,
+    19},
+  {"key_format", "format", __wt_struct_confchk, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 20},
+  {"key_gap", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 21},
+  {"leaf_item_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 22},
+  {"leaf_key_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 23},
+  {"leaf_page_max", "int", NULL, "min=512B,max=512MB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 24},
+  {"leaf_value_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 25},
+  {"log", "category", NULL, NULL, confchk_WT_SESSION_create_log_subconfigs, 1,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 26},
+  {"memory_page_image_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 27},
+  {"memory_page_max", "int", NULL, "min=512B,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 28},
+  {"os_cache_dirty_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 29},
+  {"os_cache_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 30},
+  {"prefix_compression", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 31},
+  {"prefix_compression_min", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 32},
+  {"readonly", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 33},
+  {"split_deepen_min_child", "int", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 34},
+  {"split_deepen_per_child", "int", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 35},
+  {"split_pct", "int", NULL, "min=50,max=100", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 36},
+  {"tiered_object", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 37},
+  {"tiered_storage", "category", NULL, NULL, confchk_WT_SESSION_create_tiered_storage_subconfigs, 7,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 38},
+  {"value_format", "format", __wt_struct_confchk, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING,
+    39},
+  {"verbose", "list", NULL, "choices=[\"write_timestamp\"]", NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST,
+    40},
   {"write_timestamp_usage", "string", NULL,
     "choices=[\"always\",\"mixed_mode\",\"never\",\"none\","
     "\"ordered\"]",
-    NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 41},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_file_meta[] = {
-  {"access_pattern_hint", "string", NULL, "choices=[\"none\",\"random\",\"sequential\"]", NULL, 0},
-  {"allocation_size", "int", NULL, "min=512B,max=128MB", NULL, 0},
-  {"app_metadata", "string", NULL, NULL, NULL, 0},
-  {"assert", "category", NULL, NULL, confchk_WT_SESSION_create_assert_subconfigs, 4},
-  {"block_allocation", "string", NULL, "choices=[\"best\",\"first\"]", NULL, 0},
-  {"block_compressor", "string", NULL, NULL, NULL, 0},
-  {"cache_resident", "boolean", NULL, NULL, NULL, 0}, {"checkpoint", "string", NULL, NULL, NULL, 0},
-  {"checkpoint_backup_info", "string", NULL, NULL, NULL, 0},
-  {"checkpoint_lsn", "string", NULL, NULL, NULL, 0},
+  {"access_pattern_hint", "string", NULL, "choices=[\"none\",\"random\",\"sequential\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_STRING, 0},
+  {"allocation_size", "int", NULL, "min=512B,max=128MB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 1},
+  {"app_metadata", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 2},
+  {"assert", "category", NULL, NULL, confchk_WT_SESSION_create_assert_subconfigs, 4,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 3},
+  {"block_allocation", "string", NULL, "choices=[\"best\",\"first\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_STRING, 4},
+  {"block_compressor", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 5},
+  {"cache_resident", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 6},
+  {"checkpoint", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 7},
+  {"checkpoint_backup_info", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 8},
+  {"checkpoint_lsn", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 9},
   {"checksum", "string", NULL,
     "choices=[\"on\",\"off\",\"uncompressed\","
     "\"unencrypted\"]",
-    NULL, 0},
-  {"collator", "string", NULL, NULL, NULL, 0}, {"columns", "list", NULL, NULL, NULL, 0},
-  {"dictionary", "int", NULL, "min=0", NULL, 0},
-  {"encryption", "category", NULL, NULL, confchk_WT_SESSION_create_encryption_subconfigs, 2},
-  {"format", "string", NULL, "choices=[\"btree\"]", NULL, 0},
-  {"huffman_key", "string", NULL, NULL, NULL, 0}, {"huffman_value", "string", NULL, NULL, NULL, 0},
-  {"id", "string", NULL, NULL, NULL, 0},
-  {"ignore_in_memory_cache_size", "boolean", NULL, NULL, NULL, 0},
-  {"internal_item_max", "int", NULL, "min=0", NULL, 0},
-  {"internal_key_max", "int", NULL, "min=0", NULL, 0},
-  {"internal_key_truncate", "boolean", NULL, NULL, NULL, 0},
-  {"internal_page_max", "int", NULL, "min=512B,max=512MB", NULL, 0},
-  {"key_format", "format", __wt_struct_confchk, NULL, NULL, 0},
-  {"key_gap", "int", NULL, "min=0", NULL, 0}, {"leaf_item_max", "int", NULL, "min=0", NULL, 0},
-  {"leaf_key_max", "int", NULL, "min=0", NULL, 0},
-  {"leaf_page_max", "int", NULL, "min=512B,max=512MB", NULL, 0},
-  {"leaf_value_max", "int", NULL, "min=0", NULL, 0},
-  {"log", "category", NULL, NULL, confchk_WT_SESSION_create_log_subconfigs, 1},
-  {"memory_page_image_max", "int", NULL, "min=0", NULL, 0},
-  {"memory_page_max", "int", NULL, "min=512B,max=10TB", NULL, 0},
-  {"os_cache_dirty_max", "int", NULL, "min=0", NULL, 0},
-  {"os_cache_max", "int", NULL, "min=0", NULL, 0},
-  {"prefix_compression", "boolean", NULL, NULL, NULL, 0},
-  {"prefix_compression_min", "int", NULL, "min=0", NULL, 0},
-  {"readonly", "boolean", NULL, NULL, NULL, 0},
-  {"split_deepen_min_child", "int", NULL, NULL, NULL, 0},
-  {"split_deepen_per_child", "int", NULL, NULL, NULL, 0},
-  {"split_pct", "int", NULL, "min=50,max=100", NULL, 0},
-  {"tiered_object", "boolean", NULL, NULL, NULL, 0},
-  {"tiered_storage", "category", NULL, NULL, confchk_WT_SESSION_create_tiered_storage_subconfigs,
-    7},
-  {"value_format", "format", __wt_struct_confchk, NULL, NULL, 0},
-  {"verbose", "list", NULL, "choices=[\"write_timestamp\"]", NULL, 0},
-  {"version", "string", NULL, NULL, NULL, 0},
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 10},
+  {"collator", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 11},
+  {"columns", "list", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 12},
+  {"dictionary", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 13},
+  {"encryption", "category", NULL, NULL, confchk_WT_SESSION_create_encryption_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 14},
+  {"format", "string", NULL, "choices=[\"btree\"]", NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 15},
+  {"huffman_key", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 16},
+  {"huffman_value", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 17},
+  {"id", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 18},
+  {"ignore_in_memory_cache_size", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN,
+    19},
+  {"internal_item_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 20},
+  {"internal_key_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 21},
+  {"internal_key_truncate", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 22},
+  {"internal_page_max", "int", NULL, "min=512B,max=512MB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT,
+    23},
+  {"key_format", "format", __wt_struct_confchk, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 24},
+  {"key_gap", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 25},
+  {"leaf_item_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 26},
+  {"leaf_key_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 27},
+  {"leaf_page_max", "int", NULL, "min=512B,max=512MB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 28},
+  {"leaf_value_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 29},
+  {"log", "category", NULL, NULL, confchk_WT_SESSION_create_log_subconfigs, 1,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 30},
+  {"memory_page_image_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 31},
+  {"memory_page_max", "int", NULL, "min=512B,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 32},
+  {"os_cache_dirty_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 33},
+  {"os_cache_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 34},
+  {"prefix_compression", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 35},
+  {"prefix_compression_min", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 36},
+  {"readonly", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 37},
+  {"split_deepen_min_child", "int", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 38},
+  {"split_deepen_per_child", "int", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 39},
+  {"split_pct", "int", NULL, "min=50,max=100", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 40},
+  {"tiered_object", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 41},
+  {"tiered_storage", "category", NULL, NULL, confchk_WT_SESSION_create_tiered_storage_subconfigs, 7,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 42},
+  {"value_format", "format", __wt_struct_confchk, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING,
+    43},
+  {"verbose", "list", NULL, "choices=[\"write_timestamp\"]", NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST,
+    44},
+  {"version", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 45},
   {"write_timestamp_usage", "string", NULL,
     "choices=[\"always\",\"mixed_mode\",\"never\",\"none\","
     "\"ordered\"]",
-    NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 46},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_index_meta[] = {
-  {"app_metadata", "string", NULL, NULL, NULL, 0},
-  {"assert", "category", NULL, NULL, confchk_WT_SESSION_create_assert_subconfigs, 4},
-  {"collator", "string", NULL, NULL, NULL, 0}, {"columns", "list", NULL, NULL, NULL, 0},
-  {"extractor", "string", NULL, NULL, NULL, 0}, {"immutable", "boolean", NULL, NULL, NULL, 0},
-  {"index_key_columns", "int", NULL, NULL, NULL, 0},
-  {"key_format", "format", __wt_struct_confchk, NULL, NULL, 0},
-  {"source", "string", NULL, NULL, NULL, 0}, {"type", "string", NULL, NULL, NULL, 0},
-  {"value_format", "format", __wt_struct_confchk, NULL, NULL, 0},
-  {"verbose", "list", NULL, "choices=[\"write_timestamp\"]", NULL, 0},
+  {"app_metadata", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 0},
+  {"assert", "category", NULL, NULL, confchk_WT_SESSION_create_assert_subconfigs, 4,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 1},
+  {"collator", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 2},
+  {"columns", "list", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 3},
+  {"extractor", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 4},
+  {"immutable", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 5},
+  {"index_key_columns", "int", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 6},
+  {"key_format", "format", __wt_struct_confchk, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 7},
+  {"source", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 8},
+  {"type", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 9},
+  {"value_format", "format", __wt_struct_confchk, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING,
+    10},
+  {"verbose", "list", NULL, "choices=[\"write_timestamp\"]", NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST,
+    11},
   {"write_timestamp_usage", "string", NULL,
     "choices=[\"always\",\"mixed_mode\",\"never\",\"none\","
     "\"ordered\"]",
-    NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 12},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_lsm_meta[] = {
-  {"access_pattern_hint", "string", NULL, "choices=[\"none\",\"random\",\"sequential\"]", NULL, 0},
-  {"allocation_size", "int", NULL, "min=512B,max=128MB", NULL, 0},
-  {"app_metadata", "string", NULL, NULL, NULL, 0},
-  {"assert", "category", NULL, NULL, confchk_WT_SESSION_create_assert_subconfigs, 4},
-  {"block_allocation", "string", NULL, "choices=[\"best\",\"first\"]", NULL, 0},
-  {"block_compressor", "string", NULL, NULL, NULL, 0},
-  {"cache_resident", "boolean", NULL, NULL, NULL, 0},
+  {"access_pattern_hint", "string", NULL, "choices=[\"none\",\"random\",\"sequential\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_STRING, 0},
+  {"allocation_size", "int", NULL, "min=512B,max=128MB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 1},
+  {"app_metadata", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 2},
+  {"assert", "category", NULL, NULL, confchk_WT_SESSION_create_assert_subconfigs, 4,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 3},
+  {"block_allocation", "string", NULL, "choices=[\"best\",\"first\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_STRING, 4},
+  {"block_compressor", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 5},
+  {"cache_resident", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 6},
   {"checksum", "string", NULL,
     "choices=[\"on\",\"off\",\"uncompressed\","
     "\"unencrypted\"]",
-    NULL, 0},
-  {"chunks", "string", NULL, NULL, NULL, 0}, {"collator", "string", NULL, NULL, NULL, 0},
-  {"columns", "list", NULL, NULL, NULL, 0}, {"dictionary", "int", NULL, "min=0", NULL, 0},
-  {"encryption", "category", NULL, NULL, confchk_WT_SESSION_create_encryption_subconfigs, 2},
-  {"format", "string", NULL, "choices=[\"btree\"]", NULL, 0},
-  {"huffman_key", "string", NULL, NULL, NULL, 0}, {"huffman_value", "string", NULL, NULL, NULL, 0},
-  {"ignore_in_memory_cache_size", "boolean", NULL, NULL, NULL, 0},
-  {"internal_item_max", "int", NULL, "min=0", NULL, 0},
-  {"internal_key_max", "int", NULL, "min=0", NULL, 0},
-  {"internal_key_truncate", "boolean", NULL, NULL, NULL, 0},
-  {"internal_page_max", "int", NULL, "min=512B,max=512MB", NULL, 0},
-  {"key_format", "format", __wt_struct_confchk, NULL, NULL, 0},
-  {"key_gap", "int", NULL, "min=0", NULL, 0}, {"last", "string", NULL, NULL, NULL, 0},
-  {"leaf_item_max", "int", NULL, "min=0", NULL, 0}, {"leaf_key_max", "int", NULL, "min=0", NULL, 0},
-  {"leaf_page_max", "int", NULL, "min=512B,max=512MB", NULL, 0},
-  {"leaf_value_max", "int", NULL, "min=0", NULL, 0},
-  {"log", "category", NULL, NULL, confchk_WT_SESSION_create_log_subconfigs, 1},
-  {"lsm", "category", NULL, NULL, confchk_WT_SESSION_create_lsm_subconfigs, 12},
-  {"memory_page_image_max", "int", NULL, "min=0", NULL, 0},
-  {"memory_page_max", "int", NULL, "min=512B,max=10TB", NULL, 0},
-  {"old_chunks", "string", NULL, NULL, NULL, 0},
-  {"os_cache_dirty_max", "int", NULL, "min=0", NULL, 0},
-  {"os_cache_max", "int", NULL, "min=0", NULL, 0},
-  {"prefix_compression", "boolean", NULL, NULL, NULL, 0},
-  {"prefix_compression_min", "int", NULL, "min=0", NULL, 0},
-  {"readonly", "boolean", NULL, NULL, NULL, 0},
-  {"split_deepen_min_child", "int", NULL, NULL, NULL, 0},
-  {"split_deepen_per_child", "int", NULL, NULL, NULL, 0},
-  {"split_pct", "int", NULL, "min=50,max=100", NULL, 0},
-  {"tiered_object", "boolean", NULL, NULL, NULL, 0},
-  {"tiered_storage", "category", NULL, NULL, confchk_WT_SESSION_create_tiered_storage_subconfigs,
-    7},
-  {"value_format", "format", __wt_struct_confchk, NULL, NULL, 0},
-  {"verbose", "list", NULL, "choices=[\"write_timestamp\"]", NULL, 0},
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 7},
+  {"chunks", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 8},
+  {"collator", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 9},
+  {"columns", "list", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 10},
+  {"dictionary", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 11},
+  {"encryption", "category", NULL, NULL, confchk_WT_SESSION_create_encryption_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 12},
+  {"format", "string", NULL, "choices=[\"btree\"]", NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 13},
+  {"huffman_key", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 14},
+  {"huffman_value", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 15},
+  {"ignore_in_memory_cache_size", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN,
+    16},
+  {"internal_item_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 17},
+  {"internal_key_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 18},
+  {"internal_key_truncate", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 19},
+  {"internal_page_max", "int", NULL, "min=512B,max=512MB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT,
+    20},
+  {"key_format", "format", __wt_struct_confchk, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 21},
+  {"key_gap", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 22},
+  {"last", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 23},
+  {"leaf_item_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 24},
+  {"leaf_key_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 25},
+  {"leaf_page_max", "int", NULL, "min=512B,max=512MB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 26},
+  {"leaf_value_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 27},
+  {"log", "category", NULL, NULL, confchk_WT_SESSION_create_log_subconfigs, 1,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 28},
+  {"lsm", "category", NULL, NULL, confchk_WT_SESSION_create_lsm_subconfigs, 12,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 29},
+  {"memory_page_image_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 30},
+  {"memory_page_max", "int", NULL, "min=512B,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 31},
+  {"old_chunks", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 32},
+  {"os_cache_dirty_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 33},
+  {"os_cache_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 34},
+  {"prefix_compression", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 35},
+  {"prefix_compression_min", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 36},
+  {"readonly", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 37},
+  {"split_deepen_min_child", "int", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 38},
+  {"split_deepen_per_child", "int", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 39},
+  {"split_pct", "int", NULL, "min=50,max=100", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 40},
+  {"tiered_object", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 41},
+  {"tiered_storage", "category", NULL, NULL, confchk_WT_SESSION_create_tiered_storage_subconfigs, 7,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 42},
+  {"value_format", "format", __wt_struct_confchk, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING,
+    43},
+  {"verbose", "list", NULL, "choices=[\"write_timestamp\"]", NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST,
+    44},
   {"write_timestamp_usage", "string", NULL,
     "choices=[\"always\",\"mixed_mode\",\"never\",\"none\","
     "\"ordered\"]",
-    NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 45},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_object_meta[] = {
-  {"access_pattern_hint", "string", NULL, "choices=[\"none\",\"random\",\"sequential\"]", NULL, 0},
-  {"allocation_size", "int", NULL, "min=512B,max=128MB", NULL, 0},
-  {"app_metadata", "string", NULL, NULL, NULL, 0},
-  {"assert", "category", NULL, NULL, confchk_WT_SESSION_create_assert_subconfigs, 4},
-  {"block_allocation", "string", NULL, "choices=[\"best\",\"first\"]", NULL, 0},
-  {"block_compressor", "string", NULL, NULL, NULL, 0},
-  {"cache_resident", "boolean", NULL, NULL, NULL, 0}, {"checkpoint", "string", NULL, NULL, NULL, 0},
-  {"checkpoint_backup_info", "string", NULL, NULL, NULL, 0},
-  {"checkpoint_lsn", "string", NULL, NULL, NULL, 0},
+  {"access_pattern_hint", "string", NULL, "choices=[\"none\",\"random\",\"sequential\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_STRING, 0},
+  {"allocation_size", "int", NULL, "min=512B,max=128MB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 1},
+  {"app_metadata", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 2},
+  {"assert", "category", NULL, NULL, confchk_WT_SESSION_create_assert_subconfigs, 4,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 3},
+  {"block_allocation", "string", NULL, "choices=[\"best\",\"first\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_STRING, 4},
+  {"block_compressor", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 5},
+  {"cache_resident", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 6},
+  {"checkpoint", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 7},
+  {"checkpoint_backup_info", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 8},
+  {"checkpoint_lsn", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 9},
   {"checksum", "string", NULL,
     "choices=[\"on\",\"off\",\"uncompressed\","
     "\"unencrypted\"]",
-    NULL, 0},
-  {"collator", "string", NULL, NULL, NULL, 0}, {"columns", "list", NULL, NULL, NULL, 0},
-  {"dictionary", "int", NULL, "min=0", NULL, 0},
-  {"encryption", "category", NULL, NULL, confchk_WT_SESSION_create_encryption_subconfigs, 2},
-  {"flush_time", "string", NULL, NULL, NULL, 0}, {"flush_timestamp", "string", NULL, NULL, NULL, 0},
-  {"format", "string", NULL, "choices=[\"btree\"]", NULL, 0},
-  {"huffman_key", "string", NULL, NULL, NULL, 0}, {"huffman_value", "string", NULL, NULL, NULL, 0},
-  {"id", "string", NULL, NULL, NULL, 0},
-  {"ignore_in_memory_cache_size", "boolean", NULL, NULL, NULL, 0},
-  {"internal_item_max", "int", NULL, "min=0", NULL, 0},
-  {"internal_key_max", "int", NULL, "min=0", NULL, 0},
-  {"internal_key_truncate", "boolean", NULL, NULL, NULL, 0},
-  {"internal_page_max", "int", NULL, "min=512B,max=512MB", NULL, 0},
-  {"key_format", "format", __wt_struct_confchk, NULL, NULL, 0},
-  {"key_gap", "int", NULL, "min=0", NULL, 0}, {"leaf_item_max", "int", NULL, "min=0", NULL, 0},
-  {"leaf_key_max", "int", NULL, "min=0", NULL, 0},
-  {"leaf_page_max", "int", NULL, "min=512B,max=512MB", NULL, 0},
-  {"leaf_value_max", "int", NULL, "min=0", NULL, 0},
-  {"log", "category", NULL, NULL, confchk_WT_SESSION_create_log_subconfigs, 1},
-  {"memory_page_image_max", "int", NULL, "min=0", NULL, 0},
-  {"memory_page_max", "int", NULL, "min=512B,max=10TB", NULL, 0},
-  {"os_cache_dirty_max", "int", NULL, "min=0", NULL, 0},
-  {"os_cache_max", "int", NULL, "min=0", NULL, 0},
-  {"prefix_compression", "boolean", NULL, NULL, NULL, 0},
-  {"prefix_compression_min", "int", NULL, "min=0", NULL, 0},
-  {"readonly", "boolean", NULL, NULL, NULL, 0},
-  {"split_deepen_min_child", "int", NULL, NULL, NULL, 0},
-  {"split_deepen_per_child", "int", NULL, NULL, NULL, 0},
-  {"split_pct", "int", NULL, "min=50,max=100", NULL, 0},
-  {"tiered_object", "boolean", NULL, NULL, NULL, 0},
-  {"tiered_storage", "category", NULL, NULL, confchk_WT_SESSION_create_tiered_storage_subconfigs,
-    7},
-  {"value_format", "format", __wt_struct_confchk, NULL, NULL, 0},
-  {"verbose", "list", NULL, "choices=[\"write_timestamp\"]", NULL, 0},
-  {"version", "string", NULL, NULL, NULL, 0},
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 10},
+  {"collator", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 11},
+  {"columns", "list", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 12},
+  {"dictionary", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 13},
+  {"encryption", "category", NULL, NULL, confchk_WT_SESSION_create_encryption_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 14},
+  {"flush_time", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 15},
+  {"flush_timestamp", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 16},
+  {"format", "string", NULL, "choices=[\"btree\"]", NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 17},
+  {"huffman_key", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 18},
+  {"huffman_value", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 19},
+  {"id", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 20},
+  {"ignore_in_memory_cache_size", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN,
+    21},
+  {"internal_item_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 22},
+  {"internal_key_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 23},
+  {"internal_key_truncate", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 24},
+  {"internal_page_max", "int", NULL, "min=512B,max=512MB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT,
+    25},
+  {"key_format", "format", __wt_struct_confchk, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 26},
+  {"key_gap", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 27},
+  {"leaf_item_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 28},
+  {"leaf_key_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 29},
+  {"leaf_page_max", "int", NULL, "min=512B,max=512MB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 30},
+  {"leaf_value_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 31},
+  {"log", "category", NULL, NULL, confchk_WT_SESSION_create_log_subconfigs, 1,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 32},
+  {"memory_page_image_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 33},
+  {"memory_page_max", "int", NULL, "min=512B,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 34},
+  {"os_cache_dirty_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 35},
+  {"os_cache_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 36},
+  {"prefix_compression", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 37},
+  {"prefix_compression_min", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 38},
+  {"readonly", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 39},
+  {"split_deepen_min_child", "int", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 40},
+  {"split_deepen_per_child", "int", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 41},
+  {"split_pct", "int", NULL, "min=50,max=100", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 42},
+  {"tiered_object", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 43},
+  {"tiered_storage", "category", NULL, NULL, confchk_WT_SESSION_create_tiered_storage_subconfigs, 7,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 44},
+  {"value_format", "format", __wt_struct_confchk, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING,
+    45},
+  {"verbose", "list", NULL, "choices=[\"write_timestamp\"]", NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST,
+    46},
+  {"version", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 47},
   {"write_timestamp_usage", "string", NULL,
     "choices=[\"always\",\"mixed_mode\",\"never\",\"none\","
     "\"ordered\"]",
-    NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 48},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_table_meta[] = {
-  {"app_metadata", "string", NULL, NULL, NULL, 0},
-  {"assert", "category", NULL, NULL, confchk_WT_SESSION_create_assert_subconfigs, 4},
-  {"colgroups", "list", NULL, NULL, NULL, 0}, {"collator", "string", NULL, NULL, NULL, 0},
-  {"columns", "list", NULL, NULL, NULL, 0},
-  {"key_format", "format", __wt_struct_confchk, NULL, NULL, 0},
-  {"value_format", "format", __wt_struct_confchk, NULL, NULL, 0},
-  {"verbose", "list", NULL, "choices=[\"write_timestamp\"]", NULL, 0},
+  {"app_metadata", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 0},
+  {"assert", "category", NULL, NULL, confchk_WT_SESSION_create_assert_subconfigs, 4,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 1},
+  {"colgroups", "list", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 2},
+  {"collator", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 3},
+  {"columns", "list", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 4},
+  {"key_format", "format", __wt_struct_confchk, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 5},
+  {"value_format", "format", __wt_struct_confchk, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 6},
+  {"verbose", "list", NULL, "choices=[\"write_timestamp\"]", NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST,
+    7},
   {"write_timestamp_usage", "string", NULL,
     "choices=[\"always\",\"mixed_mode\",\"never\",\"none\","
     "\"ordered\"]",
-    NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 8},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_tier_meta[] = {
-  {"access_pattern_hint", "string", NULL, "choices=[\"none\",\"random\",\"sequential\"]", NULL, 0},
-  {"allocation_size", "int", NULL, "min=512B,max=128MB", NULL, 0},
-  {"app_metadata", "string", NULL, NULL, NULL, 0},
-  {"assert", "category", NULL, NULL, confchk_WT_SESSION_create_assert_subconfigs, 4},
-  {"block_allocation", "string", NULL, "choices=[\"best\",\"first\"]", NULL, 0},
-  {"block_compressor", "string", NULL, NULL, NULL, 0}, {"bucket", "string", NULL, NULL, NULL, 0},
-  {"bucket_prefix", "string", NULL, NULL, NULL, 0},
-  {"cache_directory", "string", NULL, NULL, NULL, 0},
-  {"cache_resident", "boolean", NULL, NULL, NULL, 0}, {"checkpoint", "string", NULL, NULL, NULL, 0},
-  {"checkpoint_backup_info", "string", NULL, NULL, NULL, 0},
-  {"checkpoint_lsn", "string", NULL, NULL, NULL, 0},
+  {"access_pattern_hint", "string", NULL, "choices=[\"none\",\"random\",\"sequential\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_STRING, 0},
+  {"allocation_size", "int", NULL, "min=512B,max=128MB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 1},
+  {"app_metadata", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 2},
+  {"assert", "category", NULL, NULL, confchk_WT_SESSION_create_assert_subconfigs, 4,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 3},
+  {"block_allocation", "string", NULL, "choices=[\"best\",\"first\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_STRING, 4},
+  {"block_compressor", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 5},
+  {"bucket", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 6},
+  {"bucket_prefix", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 7},
+  {"cache_directory", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 8},
+  {"cache_resident", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 9},
+  {"checkpoint", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 10},
+  {"checkpoint_backup_info", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 11},
+  {"checkpoint_lsn", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 12},
   {"checksum", "string", NULL,
     "choices=[\"on\",\"off\",\"uncompressed\","
     "\"unencrypted\"]",
-    NULL, 0},
-  {"collator", "string", NULL, NULL, NULL, 0}, {"columns", "list", NULL, NULL, NULL, 0},
-  {"dictionary", "int", NULL, "min=0", NULL, 0},
-  {"encryption", "category", NULL, NULL, confchk_WT_SESSION_create_encryption_subconfigs, 2},
-  {"format", "string", NULL, "choices=[\"btree\"]", NULL, 0},
-  {"huffman_key", "string", NULL, NULL, NULL, 0}, {"huffman_value", "string", NULL, NULL, NULL, 0},
-  {"id", "string", NULL, NULL, NULL, 0},
-  {"ignore_in_memory_cache_size", "boolean", NULL, NULL, NULL, 0},
-  {"internal_item_max", "int", NULL, "min=0", NULL, 0},
-  {"internal_key_max", "int", NULL, "min=0", NULL, 0},
-  {"internal_key_truncate", "boolean", NULL, NULL, NULL, 0},
-  {"internal_page_max", "int", NULL, "min=512B,max=512MB", NULL, 0},
-  {"key_format", "format", __wt_struct_confchk, NULL, NULL, 0},
-  {"key_gap", "int", NULL, "min=0", NULL, 0}, {"leaf_item_max", "int", NULL, "min=0", NULL, 0},
-  {"leaf_key_max", "int", NULL, "min=0", NULL, 0},
-  {"leaf_page_max", "int", NULL, "min=512B,max=512MB", NULL, 0},
-  {"leaf_value_max", "int", NULL, "min=0", NULL, 0},
-  {"log", "category", NULL, NULL, confchk_WT_SESSION_create_log_subconfigs, 1},
-  {"memory_page_image_max", "int", NULL, "min=0", NULL, 0},
-  {"memory_page_max", "int", NULL, "min=512B,max=10TB", NULL, 0},
-  {"os_cache_dirty_max", "int", NULL, "min=0", NULL, 0},
-  {"os_cache_max", "int", NULL, "min=0", NULL, 0},
-  {"prefix_compression", "boolean", NULL, NULL, NULL, 0},
-  {"prefix_compression_min", "int", NULL, "min=0", NULL, 0},
-  {"readonly", "boolean", NULL, NULL, NULL, 0},
-  {"split_deepen_min_child", "int", NULL, NULL, NULL, 0},
-  {"split_deepen_per_child", "int", NULL, NULL, NULL, 0},
-  {"split_pct", "int", NULL, "min=50,max=100", NULL, 0},
-  {"tiered_object", "boolean", NULL, NULL, NULL, 0},
-  {"tiered_storage", "category", NULL, NULL, confchk_WT_SESSION_create_tiered_storage_subconfigs,
-    7},
-  {"value_format", "format", __wt_struct_confchk, NULL, NULL, 0},
-  {"verbose", "list", NULL, "choices=[\"write_timestamp\"]", NULL, 0},
-  {"version", "string", NULL, NULL, NULL, 0},
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 13},
+  {"collator", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 14},
+  {"columns", "list", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 15},
+  {"dictionary", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 16},
+  {"encryption", "category", NULL, NULL, confchk_WT_SESSION_create_encryption_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 17},
+  {"format", "string", NULL, "choices=[\"btree\"]", NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 18},
+  {"huffman_key", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 19},
+  {"huffman_value", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 20},
+  {"id", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 21},
+  {"ignore_in_memory_cache_size", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN,
+    22},
+  {"internal_item_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 23},
+  {"internal_key_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 24},
+  {"internal_key_truncate", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 25},
+  {"internal_page_max", "int", NULL, "min=512B,max=512MB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT,
+    26},
+  {"key_format", "format", __wt_struct_confchk, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 27},
+  {"key_gap", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 28},
+  {"leaf_item_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 29},
+  {"leaf_key_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 30},
+  {"leaf_page_max", "int", NULL, "min=512B,max=512MB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 31},
+  {"leaf_value_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 32},
+  {"log", "category", NULL, NULL, confchk_WT_SESSION_create_log_subconfigs, 1,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 33},
+  {"memory_page_image_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 34},
+  {"memory_page_max", "int", NULL, "min=512B,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 35},
+  {"os_cache_dirty_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 36},
+  {"os_cache_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 37},
+  {"prefix_compression", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 38},
+  {"prefix_compression_min", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 39},
+  {"readonly", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 40},
+  {"split_deepen_min_child", "int", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 41},
+  {"split_deepen_per_child", "int", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 42},
+  {"split_pct", "int", NULL, "min=50,max=100", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 43},
+  {"tiered_object", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 44},
+  {"tiered_storage", "category", NULL, NULL, confchk_WT_SESSION_create_tiered_storage_subconfigs, 7,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 45},
+  {"value_format", "format", __wt_struct_confchk, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING,
+    46},
+  {"verbose", "list", NULL, "choices=[\"write_timestamp\"]", NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST,
+    47},
+  {"version", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 48},
   {"write_timestamp_usage", "string", NULL,
     "choices=[\"always\",\"mixed_mode\",\"never\",\"none\","
     "\"ordered\"]",
-    NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 49},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_tiered_meta[] = {
-  {"access_pattern_hint", "string", NULL, "choices=[\"none\",\"random\",\"sequential\"]", NULL, 0},
-  {"allocation_size", "int", NULL, "min=512B,max=128MB", NULL, 0},
-  {"app_metadata", "string", NULL, NULL, NULL, 0},
-  {"assert", "category", NULL, NULL, confchk_WT_SESSION_create_assert_subconfigs, 4},
-  {"block_allocation", "string", NULL, "choices=[\"best\",\"first\"]", NULL, 0},
-  {"block_compressor", "string", NULL, NULL, NULL, 0},
-  {"cache_resident", "boolean", NULL, NULL, NULL, 0}, {"checkpoint", "string", NULL, NULL, NULL, 0},
-  {"checkpoint_backup_info", "string", NULL, NULL, NULL, 0},
-  {"checkpoint_lsn", "string", NULL, NULL, NULL, 0},
+  {"access_pattern_hint", "string", NULL, "choices=[\"none\",\"random\",\"sequential\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_STRING, 0},
+  {"allocation_size", "int", NULL, "min=512B,max=128MB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 1},
+  {"app_metadata", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 2},
+  {"assert", "category", NULL, NULL, confchk_WT_SESSION_create_assert_subconfigs, 4,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 3},
+  {"block_allocation", "string", NULL, "choices=[\"best\",\"first\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_STRING, 4},
+  {"block_compressor", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 5},
+  {"cache_resident", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 6},
+  {"checkpoint", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 7},
+  {"checkpoint_backup_info", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 8},
+  {"checkpoint_lsn", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 9},
   {"checksum", "string", NULL,
     "choices=[\"on\",\"off\",\"uncompressed\","
     "\"unencrypted\"]",
-    NULL, 0},
-  {"collator", "string", NULL, NULL, NULL, 0}, {"columns", "list", NULL, NULL, NULL, 0},
-  {"dictionary", "int", NULL, "min=0", NULL, 0},
-  {"encryption", "category", NULL, NULL, confchk_WT_SESSION_create_encryption_subconfigs, 2},
-  {"flush_time", "string", NULL, NULL, NULL, 0}, {"flush_timestamp", "string", NULL, NULL, NULL, 0},
-  {"format", "string", NULL, "choices=[\"btree\"]", NULL, 0},
-  {"huffman_key", "string", NULL, NULL, NULL, 0}, {"huffman_value", "string", NULL, NULL, NULL, 0},
-  {"id", "string", NULL, NULL, NULL, 0},
-  {"ignore_in_memory_cache_size", "boolean", NULL, NULL, NULL, 0},
-  {"internal_item_max", "int", NULL, "min=0", NULL, 0},
-  {"internal_key_max", "int", NULL, "min=0", NULL, 0},
-  {"internal_key_truncate", "boolean", NULL, NULL, NULL, 0},
-  {"internal_page_max", "int", NULL, "min=512B,max=512MB", NULL, 0},
-  {"key_format", "format", __wt_struct_confchk, NULL, NULL, 0},
-  {"key_gap", "int", NULL, "min=0", NULL, 0}, {"last", "string", NULL, NULL, NULL, 0},
-  {"leaf_item_max", "int", NULL, "min=0", NULL, 0}, {"leaf_key_max", "int", NULL, "min=0", NULL, 0},
-  {"leaf_page_max", "int", NULL, "min=512B,max=512MB", NULL, 0},
-  {"leaf_value_max", "int", NULL, "min=0", NULL, 0},
-  {"log", "category", NULL, NULL, confchk_WT_SESSION_create_log_subconfigs, 1},
-  {"memory_page_image_max", "int", NULL, "min=0", NULL, 0},
-  {"memory_page_max", "int", NULL, "min=512B,max=10TB", NULL, 0},
-  {"oldest", "string", NULL, NULL, NULL, 0}, {"os_cache_dirty_max", "int", NULL, "min=0", NULL, 0},
-  {"os_cache_max", "int", NULL, "min=0", NULL, 0},
-  {"prefix_compression", "boolean", NULL, NULL, NULL, 0},
-  {"prefix_compression_min", "int", NULL, "min=0", NULL, 0},
-  {"readonly", "boolean", NULL, NULL, NULL, 0},
-  {"split_deepen_min_child", "int", NULL, NULL, NULL, 0},
-  {"split_deepen_per_child", "int", NULL, NULL, NULL, 0},
-  {"split_pct", "int", NULL, "min=50,max=100", NULL, 0},
-  {"tiered_object", "boolean", NULL, NULL, NULL, 0},
-  {"tiered_storage", "category", NULL, NULL, confchk_WT_SESSION_create_tiered_storage_subconfigs,
-    7},
-  {"tiers", "list", NULL, NULL, NULL, 0},
-  {"value_format", "format", __wt_struct_confchk, NULL, NULL, 0},
-  {"verbose", "list", NULL, "choices=[\"write_timestamp\"]", NULL, 0},
-  {"version", "string", NULL, NULL, NULL, 0},
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 10},
+  {"collator", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 11},
+  {"columns", "list", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 12},
+  {"dictionary", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 13},
+  {"encryption", "category", NULL, NULL, confchk_WT_SESSION_create_encryption_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 14},
+  {"flush_time", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 15},
+  {"flush_timestamp", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 16},
+  {"format", "string", NULL, "choices=[\"btree\"]", NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 17},
+  {"huffman_key", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 18},
+  {"huffman_value", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 19},
+  {"id", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 20},
+  {"ignore_in_memory_cache_size", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN,
+    21},
+  {"internal_item_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 22},
+  {"internal_key_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 23},
+  {"internal_key_truncate", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 24},
+  {"internal_page_max", "int", NULL, "min=512B,max=512MB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT,
+    25},
+  {"key_format", "format", __wt_struct_confchk, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 26},
+  {"key_gap", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 27},
+  {"last", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 28},
+  {"leaf_item_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 29},
+  {"leaf_key_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 30},
+  {"leaf_page_max", "int", NULL, "min=512B,max=512MB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 31},
+  {"leaf_value_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 32},
+  {"log", "category", NULL, NULL, confchk_WT_SESSION_create_log_subconfigs, 1,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 33},
+  {"memory_page_image_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 34},
+  {"memory_page_max", "int", NULL, "min=512B,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 35},
+  {"oldest", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 36},
+  {"os_cache_dirty_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 37},
+  {"os_cache_max", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 38},
+  {"prefix_compression", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 39},
+  {"prefix_compression_min", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 40},
+  {"readonly", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 41},
+  {"split_deepen_min_child", "int", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 42},
+  {"split_deepen_per_child", "int", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 43},
+  {"split_pct", "int", NULL, "min=50,max=100", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 44},
+  {"tiered_object", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 45},
+  {"tiered_storage", "category", NULL, NULL, confchk_WT_SESSION_create_tiered_storage_subconfigs, 7,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 46},
+  {"tiers", "list", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 47},
+  {"value_format", "format", __wt_struct_confchk, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING,
+    48},
+  {"verbose", "list", NULL, "choices=[\"write_timestamp\"]", NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST,
+    49},
+  {"version", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 50},
   {"write_timestamp_usage", "string", NULL,
     "choices=[\"always\",\"mixed_mode\",\"never\",\"none\","
     "\"ordered\"]",
-    NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 51},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_wiredtiger_open_compatibility_subconfigs[] = {
-  {"release", "string", NULL, NULL, NULL, 0}, {"require_max", "string", NULL, NULL, NULL, 0},
-  {"require_min", "string", NULL, NULL, NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"release", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 0},
+  {"require_max", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 1},
+  {"require_min", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 2},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_wiredtiger_open_encryption_subconfigs[] = {
-  {"keyid", "string", NULL, NULL, NULL, 0}, {"name", "string", NULL, NULL, NULL, 0},
-  {"secretkey", "string", NULL, NULL, NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"keyid", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 1},
+  {"name", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 0},
+  {"secretkey", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 2},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_wiredtiger_open_hash_subconfigs[] = {
-  {"buckets", "int", NULL, "min=64,max=65536", NULL, 0},
-  {"dhandle_buckets", "int", NULL, "min=64,max=65536", NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"buckets", "int", NULL, "min=64,max=65536", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 0},
+  {"dhandle_buckets", "int", NULL, "min=64,max=65536", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 1},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_wiredtiger_open_log_subconfigs[] = {
-  {"archive", "boolean", NULL, NULL, NULL, 0}, {"compressor", "string", NULL, NULL, NULL, 0},
-  {"enabled", "boolean", NULL, NULL, NULL, 0},
-  {"file_max", "int", NULL, "min=100KB,max=2GB", NULL, 0},
-  {"os_cache_dirty_pct", "int", NULL, "min=0,max=100", NULL, 0},
-  {"path", "string", NULL, NULL, NULL, 0}, {"prealloc", "boolean", NULL, NULL, NULL, 0},
-  {"recover", "string", NULL, "choices=[\"error\",\"on\"]", NULL, 0},
-  {"remove", "boolean", NULL, NULL, NULL, 0}, {"zero_fill", "boolean", NULL, NULL, NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"archive", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 0},
+  {"compressor", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 6},
+  {"enabled", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 5},
+  {"file_max", "int", NULL, "min=100KB,max=2GB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 7},
+  {"os_cache_dirty_pct", "int", NULL, "min=0,max=100", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 1},
+  {"path", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 8},
+  {"prealloc", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 2},
+  {"recover", "string", NULL, "choices=[\"error\",\"on\"]", NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING,
+    9},
+  {"remove", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 3},
+  {"zero_fill", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 4},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_wiredtiger_open_statistics_log_subconfigs[] = {
-  {"json", "boolean", NULL, NULL, NULL, 0}, {"on_close", "boolean", NULL, NULL, NULL, 0},
-  {"path", "string", NULL, NULL, NULL, 0}, {"sources", "list", NULL, NULL, NULL, 0},
-  {"timestamp", "string", NULL, NULL, NULL, 0}, {"wait", "int", NULL, "min=0,max=100000", NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"json", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 0},
+  {"on_close", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 1},
+  {"path", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 5},
+  {"sources", "list", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 2},
+  {"timestamp", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 3},
+  {"wait", "int", NULL, "min=0,max=100000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 4},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_tiered_storage_subconfigs[] = {
-  {"auth_token", "string", NULL, NULL, NULL, 0}, {"bucket", "string", NULL, NULL, NULL, 0},
-  {"bucket_prefix", "string", NULL, NULL, NULL, 0},
-  {"cache_directory", "string", NULL, NULL, NULL, 0},
-  {"local_retention", "int", NULL, "min=0,max=10000", NULL, 0},
-  {"name", "string", NULL, NULL, NULL, 0},
-  {"object_target_size", "int", NULL, "min=100K,max=10TB", NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"auth_token", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 2},
+  {"bucket", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 3},
+  {"bucket_prefix", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 4},
+  {"cache_directory", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 5},
+  {"local_retention", "int", NULL, "min=0,max=10000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 0},
+  {"name", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 6},
+  {"object_target_size", "int", NULL, "min=100K,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 1},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_wiredtiger_open_transaction_sync_subconfigs[] = {
-  {"enabled", "boolean", NULL, NULL, NULL, 0},
-  {"method", "string", NULL, "choices=[\"dsync\",\"fsync\",\"none\"]", NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"enabled", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 0},
+  {"method", "string", NULL, "choices=[\"dsync\",\"fsync\",\"none\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_STRING, 1},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_wiredtiger_open[] = {
-  {"block_cache", "category", NULL, NULL, confchk_wiredtiger_open_block_cache_subconfigs, 12},
-  {"buffer_alignment", "int", NULL, "min=-1,max=1MB", NULL, 0},
-  {"builtin_extension_config", "string", NULL, NULL, NULL, 0},
-  {"cache_cursors", "boolean", NULL, NULL, NULL, 0},
-  {"cache_max_wait_ms", "int", NULL, "min=0", NULL, 0},
-  {"cache_overhead", "int", NULL, "min=0,max=30", NULL, 0},
-  {"cache_size", "int", NULL, "min=1MB,max=10TB", NULL, 0},
-  {"checkpoint", "category", NULL, NULL, confchk_wiredtiger_open_checkpoint_subconfigs, 2},
-  {"checkpoint_sync", "boolean", NULL, NULL, NULL, 0},
-  {"compatibility", "category", NULL, NULL, confchk_wiredtiger_open_compatibility_subconfigs, 3},
-  {"config_base", "boolean", NULL, NULL, NULL, 0}, {"create", "boolean", NULL, NULL, NULL, 0},
-  {"debug_mode", "category", NULL, NULL, confchk_wiredtiger_open_debug_mode_subconfigs, 10},
-  {"direct_io", "list", NULL, "choices=[\"checkpoint\",\"data\",\"log\"]", NULL, 0},
-  {"encryption", "category", NULL, NULL, confchk_wiredtiger_open_encryption_subconfigs, 3},
-  {"error_prefix", "string", NULL, NULL, NULL, 0},
-  {"eviction", "category", NULL, NULL, confchk_wiredtiger_open_eviction_subconfigs, 2},
-  {"eviction_checkpoint_target", "int", NULL, "min=0,max=10TB", NULL, 0},
-  {"eviction_dirty_target", "int", NULL, "min=1,max=10TB", NULL, 0},
-  {"eviction_dirty_trigger", "int", NULL, "min=1,max=10TB", NULL, 0},
-  {"eviction_target", "int", NULL, "min=10,max=10TB", NULL, 0},
-  {"eviction_trigger", "int", NULL, "min=10,max=10TB", NULL, 0},
-  {"eviction_updates_target", "int", NULL, "min=0,max=10TB", NULL, 0},
-  {"eviction_updates_trigger", "int", NULL, "min=0,max=10TB", NULL, 0},
-  {"exclusive", "boolean", NULL, NULL, NULL, 0}, {"extensions", "list", NULL, NULL, NULL, 0},
-  {"file_close_sync", "boolean", NULL, NULL, NULL, 0},
-  {"file_extend", "list", NULL, "choices=[\"data\",\"log\"]", NULL, 0},
-  {"file_manager", "category", NULL, NULL, confchk_wiredtiger_open_file_manager_subconfigs, 3},
-  {"hash", "category", NULL, NULL, confchk_wiredtiger_open_hash_subconfigs, 2},
-  {"hazard_max", "int", NULL, "min=15", NULL, 0},
-  {"history_store", "category", NULL, NULL, confchk_wiredtiger_open_history_store_subconfigs, 1},
-  {"in_memory", "boolean", NULL, NULL, NULL, 0},
-  {"io_capacity", "category", NULL, NULL, confchk_wiredtiger_open_io_capacity_subconfigs, 1},
-  {"json_output", "list", NULL, "choices=[\"error\",\"message\"]", NULL, 0},
-  {"log", "category", NULL, NULL, confchk_wiredtiger_open_log_subconfigs, 10},
-  {"lsm_manager", "category", NULL, NULL, confchk_wiredtiger_open_lsm_manager_subconfigs, 2},
-  {"mmap", "boolean", NULL, NULL, NULL, 0}, {"mmap_all", "boolean", NULL, NULL, NULL, 0},
-  {"multiprocess", "boolean", NULL, NULL, NULL, 0},
-  {"operation_timeout_ms", "int", NULL, "min=0", NULL, 0},
+  {"block_cache", "category", NULL, NULL, confchk_wiredtiger_open_block_cache_subconfigs, 12,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 0},
+  {"buffer_alignment", "int", NULL, "min=-1,max=1MB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 1},
+  {"builtin_extension_config", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 2},
+  {"cache_cursors", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 3},
+  {"cache_max_wait_ms", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 4},
+  {"cache_overhead", "int", NULL, "min=0,max=30", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 5},
+  {"cache_size", "int", NULL, "min=1MB,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 6},
+  {"checkpoint", "category", NULL, NULL, confchk_wiredtiger_open_checkpoint_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 7},
+  {"checkpoint_sync", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 8},
+  {"compatibility", "category", NULL, NULL, confchk_wiredtiger_open_compatibility_subconfigs, 3,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 9},
+  {"compile_configuration_count", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING,
+    10},
+  {"config_base", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 11},
+  {"create", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 12},
+  {"debug_mode", "category", NULL, NULL, confchk_wiredtiger_open_debug_mode_subconfigs, 10,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 13},
+  {"direct_io", "list", NULL, "choices=[\"checkpoint\",\"data\",\"log\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_LIST, 14},
+  {"encryption", "category", NULL, NULL, confchk_wiredtiger_open_encryption_subconfigs, 3,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 15},
+  {"error_prefix", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 16},
+  {"eviction", "category", NULL, NULL, confchk_wiredtiger_open_eviction_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 17},
+  {"eviction_checkpoint_target", "int", NULL, "min=0,max=10TB", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_INT, 18},
+  {"eviction_dirty_target", "int", NULL, "min=1,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT,
+    19},
+  {"eviction_dirty_trigger", "int", NULL, "min=1,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT,
+    20},
+  {"eviction_target", "int", NULL, "min=10,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 21},
+  {"eviction_trigger", "int", NULL, "min=10,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 22},
+  {"eviction_updates_target", "int", NULL, "min=0,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT,
+    23},
+  {"eviction_updates_trigger", "int", NULL, "min=0,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT,
+    24},
+  {"exclusive", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 25},
+  {"extensions", "list", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 26},
+  {"file_close_sync", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 27},
+  {"file_extend", "list", NULL, "choices=[\"data\",\"log\"]", NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST,
+    28},
+  {"file_manager", "category", NULL, NULL, confchk_wiredtiger_open_file_manager_subconfigs, 3,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 29},
+  {"hash", "category", NULL, NULL, confchk_wiredtiger_open_hash_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 30},
+  {"hazard_max", "int", NULL, "min=15", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 31},
+  {"history_store", "category", NULL, NULL, confchk_wiredtiger_open_history_store_subconfigs, 1,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 32},
+  {"in_memory", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 33},
+  {"io_capacity", "category", NULL, NULL, confchk_wiredtiger_open_io_capacity_subconfigs, 1,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 34},
+  {"json_output", "list", NULL, "choices=[\"error\",\"message\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_LIST, 35},
+  {"log", "category", NULL, NULL, confchk_wiredtiger_open_log_subconfigs, 10,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 36},
+  {"lsm_manager", "category", NULL, NULL, confchk_wiredtiger_open_lsm_manager_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 37},
+  {"mmap", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 38},
+  {"mmap_all", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 39},
+  {"multiprocess", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 40},
+  {"operation_timeout_ms", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 41},
   {"operation_tracking", "category", NULL, NULL,
-    confchk_wiredtiger_open_operation_tracking_subconfigs, 2},
-  {"readonly", "boolean", NULL, NULL, NULL, 0}, {"salvage", "boolean", NULL, NULL, NULL, 0},
-  {"session_max", "int", NULL, "min=1", NULL, 0},
-  {"session_scratch_max", "int", NULL, NULL, NULL, 0},
-  {"session_table_cache", "boolean", NULL, NULL, NULL, 0},
-  {"shared_cache", "category", NULL, NULL, confchk_wiredtiger_open_shared_cache_subconfigs, 5},
+    confchk_wiredtiger_open_operation_tracking_subconfigs, 2, WT_CONFIG_COMPILED_TYPE_CATEGORY, 42},
+  {"readonly", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 43},
+  {"salvage", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 44},
+  {"session_max", "int", NULL, "min=1", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 45},
+  {"session_scratch_max", "int", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 46},
+  {"session_table_cache", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 47},
+  {"shared_cache", "category", NULL, NULL, confchk_wiredtiger_open_shared_cache_subconfigs, 5,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 48},
   {"statistics", "list", NULL,
     "choices=[\"all\",\"cache_walk\",\"fast\",\"none\","
     "\"clear\",\"tree_walk\"]",
-    NULL, 0},
-  {"statistics_log", "category", NULL, NULL, confchk_wiredtiger_open_statistics_log_subconfigs, 6},
-  {"tiered_manager", "category", NULL, NULL, confchk_tiered_manager_subconfigs, 3},
-  {"tiered_storage", "category", NULL, NULL, confchk_tiered_storage_subconfigs, 7},
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 49},
+  {"statistics_log", "category", NULL, NULL, confchk_wiredtiger_open_statistics_log_subconfigs, 6,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 50},
+  {"tiered_manager", "category", NULL, NULL, confchk_tiered_manager_subconfigs, 3,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 51},
+  {"tiered_storage", "category", NULL, NULL, confchk_tiered_storage_subconfigs, 7,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 52},
   {"timing_stress_for_test", "list", NULL,
     "choices=[\"aggressive_sweep\",\"backup_rename\","
     "\"checkpoint_reserved_txnid_delay\",\"checkpoint_slow\","
@@ -900,11 +1167,11 @@ static const WT_CONFIG_CHECK confchk_wiredtiger_open[] = {
     "\"history_store_sweep_race\",\"prepare_checkpoint_delay\","
     "\"split_1\",\"split_2\",\"split_3\",\"split_4\",\"split_5\","
     "\"split_6\",\"split_7\",\"tiered_flush_finish\"]",
-    NULL, 0},
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 53},
   {"transaction_sync", "category", NULL, NULL, confchk_wiredtiger_open_transaction_sync_subconfigs,
-    2},
-  {"use_environment", "boolean", NULL, NULL, NULL, 0},
-  {"use_environment_priv", "boolean", NULL, NULL, NULL, 0},
+    2, WT_CONFIG_COMPILED_TYPE_CATEGORY, 54},
+  {"use_environment", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 55},
+  {"use_environment_priv", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 56},
   {"verbose", "list", NULL,
     "choices=[\"api\",\"backup\",\"block\",\"block_cache\","
     "\"checkpoint\",\"checkpoint_cleanup\",\"checkpoint_progress\","
@@ -917,64 +1184,95 @@ static const WT_CONFIG_CHECK confchk_wiredtiger_open[] = {
     "\"shared_cache\",\"split\",\"temporary\",\"thread_group\","
     "\"tiered\",\"timestamp\",\"transaction\",\"verify\",\"version\","
     "\"write\"]",
-    NULL, 0},
-  {"verify_metadata", "boolean", NULL, NULL, NULL, 0},
-  {"write_through", "list", NULL, "choices=[\"data\",\"log\"]", NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 57},
+  {"verify_metadata", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 58},
+  {"write_through", "list", NULL, "choices=[\"data\",\"log\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_LIST, 59},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_wiredtiger_open_all[] = {
-  {"block_cache", "category", NULL, NULL, confchk_wiredtiger_open_block_cache_subconfigs, 12},
-  {"buffer_alignment", "int", NULL, "min=-1,max=1MB", NULL, 0},
-  {"builtin_extension_config", "string", NULL, NULL, NULL, 0},
-  {"cache_cursors", "boolean", NULL, NULL, NULL, 0},
-  {"cache_max_wait_ms", "int", NULL, "min=0", NULL, 0},
-  {"cache_overhead", "int", NULL, "min=0,max=30", NULL, 0},
-  {"cache_size", "int", NULL, "min=1MB,max=10TB", NULL, 0},
-  {"checkpoint", "category", NULL, NULL, confchk_wiredtiger_open_checkpoint_subconfigs, 2},
-  {"checkpoint_sync", "boolean", NULL, NULL, NULL, 0},
-  {"compatibility", "category", NULL, NULL, confchk_wiredtiger_open_compatibility_subconfigs, 3},
-  {"config_base", "boolean", NULL, NULL, NULL, 0}, {"create", "boolean", NULL, NULL, NULL, 0},
-  {"debug_mode", "category", NULL, NULL, confchk_wiredtiger_open_debug_mode_subconfigs, 10},
-  {"direct_io", "list", NULL, "choices=[\"checkpoint\",\"data\",\"log\"]", NULL, 0},
-  {"encryption", "category", NULL, NULL, confchk_wiredtiger_open_encryption_subconfigs, 3},
-  {"error_prefix", "string", NULL, NULL, NULL, 0},
-  {"eviction", "category", NULL, NULL, confchk_wiredtiger_open_eviction_subconfigs, 2},
-  {"eviction_checkpoint_target", "int", NULL, "min=0,max=10TB", NULL, 0},
-  {"eviction_dirty_target", "int", NULL, "min=1,max=10TB", NULL, 0},
-  {"eviction_dirty_trigger", "int", NULL, "min=1,max=10TB", NULL, 0},
-  {"eviction_target", "int", NULL, "min=10,max=10TB", NULL, 0},
-  {"eviction_trigger", "int", NULL, "min=10,max=10TB", NULL, 0},
-  {"eviction_updates_target", "int", NULL, "min=0,max=10TB", NULL, 0},
-  {"eviction_updates_trigger", "int", NULL, "min=0,max=10TB", NULL, 0},
-  {"exclusive", "boolean", NULL, NULL, NULL, 0}, {"extensions", "list", NULL, NULL, NULL, 0},
-  {"file_close_sync", "boolean", NULL, NULL, NULL, 0},
-  {"file_extend", "list", NULL, "choices=[\"data\",\"log\"]", NULL, 0},
-  {"file_manager", "category", NULL, NULL, confchk_wiredtiger_open_file_manager_subconfigs, 3},
-  {"hash", "category", NULL, NULL, confchk_wiredtiger_open_hash_subconfigs, 2},
-  {"hazard_max", "int", NULL, "min=15", NULL, 0},
-  {"history_store", "category", NULL, NULL, confchk_wiredtiger_open_history_store_subconfigs, 1},
-  {"in_memory", "boolean", NULL, NULL, NULL, 0},
-  {"io_capacity", "category", NULL, NULL, confchk_wiredtiger_open_io_capacity_subconfigs, 1},
-  {"json_output", "list", NULL, "choices=[\"error\",\"message\"]", NULL, 0},
-  {"log", "category", NULL, NULL, confchk_wiredtiger_open_log_subconfigs, 10},
-  {"lsm_manager", "category", NULL, NULL, confchk_wiredtiger_open_lsm_manager_subconfigs, 2},
-  {"mmap", "boolean", NULL, NULL, NULL, 0}, {"mmap_all", "boolean", NULL, NULL, NULL, 0},
-  {"multiprocess", "boolean", NULL, NULL, NULL, 0},
-  {"operation_timeout_ms", "int", NULL, "min=0", NULL, 0},
+  {"block_cache", "category", NULL, NULL, confchk_wiredtiger_open_block_cache_subconfigs, 12,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 0},
+  {"buffer_alignment", "int", NULL, "min=-1,max=1MB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 1},
+  {"builtin_extension_config", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 2},
+  {"cache_cursors", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 3},
+  {"cache_max_wait_ms", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 4},
+  {"cache_overhead", "int", NULL, "min=0,max=30", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 5},
+  {"cache_size", "int", NULL, "min=1MB,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 6},
+  {"checkpoint", "category", NULL, NULL, confchk_wiredtiger_open_checkpoint_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 7},
+  {"checkpoint_sync", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 8},
+  {"compatibility", "category", NULL, NULL, confchk_wiredtiger_open_compatibility_subconfigs, 3,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 9},
+  {"compile_configuration_count", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING,
+    10},
+  {"config_base", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 11},
+  {"create", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 12},
+  {"debug_mode", "category", NULL, NULL, confchk_wiredtiger_open_debug_mode_subconfigs, 10,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 13},
+  {"direct_io", "list", NULL, "choices=[\"checkpoint\",\"data\",\"log\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_LIST, 14},
+  {"encryption", "category", NULL, NULL, confchk_wiredtiger_open_encryption_subconfigs, 3,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 15},
+  {"error_prefix", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 16},
+  {"eviction", "category", NULL, NULL, confchk_wiredtiger_open_eviction_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 17},
+  {"eviction_checkpoint_target", "int", NULL, "min=0,max=10TB", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_INT, 18},
+  {"eviction_dirty_target", "int", NULL, "min=1,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT,
+    19},
+  {"eviction_dirty_trigger", "int", NULL, "min=1,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT,
+    20},
+  {"eviction_target", "int", NULL, "min=10,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 21},
+  {"eviction_trigger", "int", NULL, "min=10,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 22},
+  {"eviction_updates_target", "int", NULL, "min=0,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT,
+    23},
+  {"eviction_updates_trigger", "int", NULL, "min=0,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT,
+    24},
+  {"exclusive", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 25},
+  {"extensions", "list", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 26},
+  {"file_close_sync", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 27},
+  {"file_extend", "list", NULL, "choices=[\"data\",\"log\"]", NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST,
+    28},
+  {"file_manager", "category", NULL, NULL, confchk_wiredtiger_open_file_manager_subconfigs, 3,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 29},
+  {"hash", "category", NULL, NULL, confchk_wiredtiger_open_hash_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 30},
+  {"hazard_max", "int", NULL, "min=15", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 31},
+  {"history_store", "category", NULL, NULL, confchk_wiredtiger_open_history_store_subconfigs, 1,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 32},
+  {"in_memory", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 33},
+  {"io_capacity", "category", NULL, NULL, confchk_wiredtiger_open_io_capacity_subconfigs, 1,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 34},
+  {"json_output", "list", NULL, "choices=[\"error\",\"message\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_LIST, 35},
+  {"log", "category", NULL, NULL, confchk_wiredtiger_open_log_subconfigs, 10,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 36},
+  {"lsm_manager", "category", NULL, NULL, confchk_wiredtiger_open_lsm_manager_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 37},
+  {"mmap", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 38},
+  {"mmap_all", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 39},
+  {"multiprocess", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 40},
+  {"operation_timeout_ms", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 41},
   {"operation_tracking", "category", NULL, NULL,
-    confchk_wiredtiger_open_operation_tracking_subconfigs, 2},
-  {"readonly", "boolean", NULL, NULL, NULL, 0}, {"salvage", "boolean", NULL, NULL, NULL, 0},
-  {"session_max", "int", NULL, "min=1", NULL, 0},
-  {"session_scratch_max", "int", NULL, NULL, NULL, 0},
-  {"session_table_cache", "boolean", NULL, NULL, NULL, 0},
-  {"shared_cache", "category", NULL, NULL, confchk_wiredtiger_open_shared_cache_subconfigs, 5},
+    confchk_wiredtiger_open_operation_tracking_subconfigs, 2, WT_CONFIG_COMPILED_TYPE_CATEGORY, 42},
+  {"readonly", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 43},
+  {"salvage", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 44},
+  {"session_max", "int", NULL, "min=1", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 45},
+  {"session_scratch_max", "int", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 46},
+  {"session_table_cache", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 47},
+  {"shared_cache", "category", NULL, NULL, confchk_wiredtiger_open_shared_cache_subconfigs, 5,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 48},
   {"statistics", "list", NULL,
     "choices=[\"all\",\"cache_walk\",\"fast\",\"none\","
     "\"clear\",\"tree_walk\"]",
-    NULL, 0},
-  {"statistics_log", "category", NULL, NULL, confchk_wiredtiger_open_statistics_log_subconfigs, 6},
-  {"tiered_manager", "category", NULL, NULL, confchk_tiered_manager_subconfigs, 3},
-  {"tiered_storage", "category", NULL, NULL, confchk_tiered_storage_subconfigs, 7},
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 49},
+  {"statistics_log", "category", NULL, NULL, confchk_wiredtiger_open_statistics_log_subconfigs, 6,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 50},
+  {"tiered_manager", "category", NULL, NULL, confchk_tiered_manager_subconfigs, 3,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 51},
+  {"tiered_storage", "category", NULL, NULL, confchk_tiered_storage_subconfigs, 7,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 52},
   {"timing_stress_for_test", "list", NULL,
     "choices=[\"aggressive_sweep\",\"backup_rename\","
     "\"checkpoint_reserved_txnid_delay\",\"checkpoint_slow\","
@@ -983,11 +1281,11 @@ static const WT_CONFIG_CHECK confchk_wiredtiger_open_all[] = {
     "\"history_store_sweep_race\",\"prepare_checkpoint_delay\","
     "\"split_1\",\"split_2\",\"split_3\",\"split_4\",\"split_5\","
     "\"split_6\",\"split_7\",\"tiered_flush_finish\"]",
-    NULL, 0},
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 53},
   {"transaction_sync", "category", NULL, NULL, confchk_wiredtiger_open_transaction_sync_subconfigs,
-    2},
-  {"use_environment", "boolean", NULL, NULL, NULL, 0},
-  {"use_environment_priv", "boolean", NULL, NULL, NULL, 0},
+    2, WT_CONFIG_COMPILED_TYPE_CATEGORY, 54},
+  {"use_environment", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 55},
+  {"use_environment_priv", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 56},
   {"verbose", "list", NULL,
     "choices=[\"api\",\"backup\",\"block\",\"block_cache\","
     "\"checkpoint\",\"checkpoint_cleanup\",\"checkpoint_progress\","
@@ -1000,61 +1298,92 @@ static const WT_CONFIG_CHECK confchk_wiredtiger_open_all[] = {
     "\"shared_cache\",\"split\",\"temporary\",\"thread_group\","
     "\"tiered\",\"timestamp\",\"transaction\",\"verify\",\"version\","
     "\"write\"]",
-    NULL, 0},
-  {"verify_metadata", "boolean", NULL, NULL, NULL, 0}, {"version", "string", NULL, NULL, NULL, 0},
-  {"write_through", "list", NULL, "choices=[\"data\",\"log\"]", NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 57},
+  {"verify_metadata", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 58},
+  {"version", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 59},
+  {"write_through", "list", NULL, "choices=[\"data\",\"log\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_LIST, 60},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_wiredtiger_open_basecfg[] = {
-  {"block_cache", "category", NULL, NULL, confchk_wiredtiger_open_block_cache_subconfigs, 12},
-  {"buffer_alignment", "int", NULL, "min=-1,max=1MB", NULL, 0},
-  {"builtin_extension_config", "string", NULL, NULL, NULL, 0},
-  {"cache_cursors", "boolean", NULL, NULL, NULL, 0},
-  {"cache_max_wait_ms", "int", NULL, "min=0", NULL, 0},
-  {"cache_overhead", "int", NULL, "min=0,max=30", NULL, 0},
-  {"cache_size", "int", NULL, "min=1MB,max=10TB", NULL, 0},
-  {"checkpoint", "category", NULL, NULL, confchk_wiredtiger_open_checkpoint_subconfigs, 2},
-  {"checkpoint_sync", "boolean", NULL, NULL, NULL, 0},
-  {"compatibility", "category", NULL, NULL, confchk_wiredtiger_open_compatibility_subconfigs, 3},
-  {"debug_mode", "category", NULL, NULL, confchk_wiredtiger_open_debug_mode_subconfigs, 10},
-  {"direct_io", "list", NULL, "choices=[\"checkpoint\",\"data\",\"log\"]", NULL, 0},
-  {"encryption", "category", NULL, NULL, confchk_wiredtiger_open_encryption_subconfigs, 3},
-  {"error_prefix", "string", NULL, NULL, NULL, 0},
-  {"eviction", "category", NULL, NULL, confchk_wiredtiger_open_eviction_subconfigs, 2},
-  {"eviction_checkpoint_target", "int", NULL, "min=0,max=10TB", NULL, 0},
-  {"eviction_dirty_target", "int", NULL, "min=1,max=10TB", NULL, 0},
-  {"eviction_dirty_trigger", "int", NULL, "min=1,max=10TB", NULL, 0},
-  {"eviction_target", "int", NULL, "min=10,max=10TB", NULL, 0},
-  {"eviction_trigger", "int", NULL, "min=10,max=10TB", NULL, 0},
-  {"eviction_updates_target", "int", NULL, "min=0,max=10TB", NULL, 0},
-  {"eviction_updates_trigger", "int", NULL, "min=0,max=10TB", NULL, 0},
-  {"extensions", "list", NULL, NULL, NULL, 0}, {"file_close_sync", "boolean", NULL, NULL, NULL, 0},
-  {"file_extend", "list", NULL, "choices=[\"data\",\"log\"]", NULL, 0},
-  {"file_manager", "category", NULL, NULL, confchk_wiredtiger_open_file_manager_subconfigs, 3},
-  {"hash", "category", NULL, NULL, confchk_wiredtiger_open_hash_subconfigs, 2},
-  {"hazard_max", "int", NULL, "min=15", NULL, 0},
-  {"history_store", "category", NULL, NULL, confchk_wiredtiger_open_history_store_subconfigs, 1},
-  {"io_capacity", "category", NULL, NULL, confchk_wiredtiger_open_io_capacity_subconfigs, 1},
-  {"json_output", "list", NULL, "choices=[\"error\",\"message\"]", NULL, 0},
-  {"log", "category", NULL, NULL, confchk_wiredtiger_open_log_subconfigs, 10},
-  {"lsm_manager", "category", NULL, NULL, confchk_wiredtiger_open_lsm_manager_subconfigs, 2},
-  {"mmap", "boolean", NULL, NULL, NULL, 0}, {"mmap_all", "boolean", NULL, NULL, NULL, 0},
-  {"multiprocess", "boolean", NULL, NULL, NULL, 0},
-  {"operation_timeout_ms", "int", NULL, "min=0", NULL, 0},
+  {"block_cache", "category", NULL, NULL, confchk_wiredtiger_open_block_cache_subconfigs, 12,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 0},
+  {"buffer_alignment", "int", NULL, "min=-1,max=1MB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 1},
+  {"builtin_extension_config", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 2},
+  {"cache_cursors", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 3},
+  {"cache_max_wait_ms", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 4},
+  {"cache_overhead", "int", NULL, "min=0,max=30", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 5},
+  {"cache_size", "int", NULL, "min=1MB,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 6},
+  {"checkpoint", "category", NULL, NULL, confchk_wiredtiger_open_checkpoint_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 7},
+  {"checkpoint_sync", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 8},
+  {"compatibility", "category", NULL, NULL, confchk_wiredtiger_open_compatibility_subconfigs, 3,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 9},
+  {"compile_configuration_count", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING,
+    10},
+  {"debug_mode", "category", NULL, NULL, confchk_wiredtiger_open_debug_mode_subconfigs, 10,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 11},
+  {"direct_io", "list", NULL, "choices=[\"checkpoint\",\"data\",\"log\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_LIST, 12},
+  {"encryption", "category", NULL, NULL, confchk_wiredtiger_open_encryption_subconfigs, 3,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 13},
+  {"error_prefix", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 14},
+  {"eviction", "category", NULL, NULL, confchk_wiredtiger_open_eviction_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 15},
+  {"eviction_checkpoint_target", "int", NULL, "min=0,max=10TB", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_INT, 16},
+  {"eviction_dirty_target", "int", NULL, "min=1,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT,
+    17},
+  {"eviction_dirty_trigger", "int", NULL, "min=1,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT,
+    18},
+  {"eviction_target", "int", NULL, "min=10,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 19},
+  {"eviction_trigger", "int", NULL, "min=10,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 20},
+  {"eviction_updates_target", "int", NULL, "min=0,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT,
+    21},
+  {"eviction_updates_trigger", "int", NULL, "min=0,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT,
+    22},
+  {"extensions", "list", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 23},
+  {"file_close_sync", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 24},
+  {"file_extend", "list", NULL, "choices=[\"data\",\"log\"]", NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST,
+    25},
+  {"file_manager", "category", NULL, NULL, confchk_wiredtiger_open_file_manager_subconfigs, 3,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 26},
+  {"hash", "category", NULL, NULL, confchk_wiredtiger_open_hash_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 27},
+  {"hazard_max", "int", NULL, "min=15", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 28},
+  {"history_store", "category", NULL, NULL, confchk_wiredtiger_open_history_store_subconfigs, 1,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 29},
+  {"io_capacity", "category", NULL, NULL, confchk_wiredtiger_open_io_capacity_subconfigs, 1,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 30},
+  {"json_output", "list", NULL, "choices=[\"error\",\"message\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_LIST, 31},
+  {"log", "category", NULL, NULL, confchk_wiredtiger_open_log_subconfigs, 10,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 32},
+  {"lsm_manager", "category", NULL, NULL, confchk_wiredtiger_open_lsm_manager_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 33},
+  {"mmap", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 34},
+  {"mmap_all", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 35},
+  {"multiprocess", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 36},
+  {"operation_timeout_ms", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 37},
   {"operation_tracking", "category", NULL, NULL,
-    confchk_wiredtiger_open_operation_tracking_subconfigs, 2},
-  {"readonly", "boolean", NULL, NULL, NULL, 0}, {"salvage", "boolean", NULL, NULL, NULL, 0},
-  {"session_max", "int", NULL, "min=1", NULL, 0},
-  {"session_scratch_max", "int", NULL, NULL, NULL, 0},
-  {"session_table_cache", "boolean", NULL, NULL, NULL, 0},
-  {"shared_cache", "category", NULL, NULL, confchk_wiredtiger_open_shared_cache_subconfigs, 5},
+    confchk_wiredtiger_open_operation_tracking_subconfigs, 2, WT_CONFIG_COMPILED_TYPE_CATEGORY, 38},
+  {"readonly", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 39},
+  {"salvage", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 40},
+  {"session_max", "int", NULL, "min=1", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 41},
+  {"session_scratch_max", "int", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 42},
+  {"session_table_cache", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 43},
+  {"shared_cache", "category", NULL, NULL, confchk_wiredtiger_open_shared_cache_subconfigs, 5,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 44},
   {"statistics", "list", NULL,
     "choices=[\"all\",\"cache_walk\",\"fast\",\"none\","
     "\"clear\",\"tree_walk\"]",
-    NULL, 0},
-  {"statistics_log", "category", NULL, NULL, confchk_wiredtiger_open_statistics_log_subconfigs, 6},
-  {"tiered_manager", "category", NULL, NULL, confchk_tiered_manager_subconfigs, 3},
-  {"tiered_storage", "category", NULL, NULL, confchk_tiered_storage_subconfigs, 7},
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 45},
+  {"statistics_log", "category", NULL, NULL, confchk_wiredtiger_open_statistics_log_subconfigs, 6,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 46},
+  {"tiered_manager", "category", NULL, NULL, confchk_tiered_manager_subconfigs, 3,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 47},
+  {"tiered_storage", "category", NULL, NULL, confchk_tiered_storage_subconfigs, 7,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 48},
   {"timing_stress_for_test", "list", NULL,
     "choices=[\"aggressive_sweep\",\"backup_rename\","
     "\"checkpoint_reserved_txnid_delay\",\"checkpoint_slow\","
@@ -1063,9 +1392,9 @@ static const WT_CONFIG_CHECK confchk_wiredtiger_open_basecfg[] = {
     "\"history_store_sweep_race\",\"prepare_checkpoint_delay\","
     "\"split_1\",\"split_2\",\"split_3\",\"split_4\",\"split_5\","
     "\"split_6\",\"split_7\",\"tiered_flush_finish\"]",
-    NULL, 0},
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 49},
   {"transaction_sync", "category", NULL, NULL, confchk_wiredtiger_open_transaction_sync_subconfigs,
-    2},
+    2, WT_CONFIG_COMPILED_TYPE_CATEGORY, 50},
   {"verbose", "list", NULL,
     "choices=[\"api\",\"backup\",\"block\",\"block_cache\","
     "\"checkpoint\",\"checkpoint_cleanup\",\"checkpoint_progress\","
@@ -1078,61 +1407,92 @@ static const WT_CONFIG_CHECK confchk_wiredtiger_open_basecfg[] = {
     "\"shared_cache\",\"split\",\"temporary\",\"thread_group\","
     "\"tiered\",\"timestamp\",\"transaction\",\"verify\",\"version\","
     "\"write\"]",
-    NULL, 0},
-  {"verify_metadata", "boolean", NULL, NULL, NULL, 0}, {"version", "string", NULL, NULL, NULL, 0},
-  {"write_through", "list", NULL, "choices=[\"data\",\"log\"]", NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 51},
+  {"verify_metadata", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 52},
+  {"version", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 53},
+  {"write_through", "list", NULL, "choices=[\"data\",\"log\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_LIST, 54},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_wiredtiger_open_usercfg[] = {
-  {"block_cache", "category", NULL, NULL, confchk_wiredtiger_open_block_cache_subconfigs, 12},
-  {"buffer_alignment", "int", NULL, "min=-1,max=1MB", NULL, 0},
-  {"builtin_extension_config", "string", NULL, NULL, NULL, 0},
-  {"cache_cursors", "boolean", NULL, NULL, NULL, 0},
-  {"cache_max_wait_ms", "int", NULL, "min=0", NULL, 0},
-  {"cache_overhead", "int", NULL, "min=0,max=30", NULL, 0},
-  {"cache_size", "int", NULL, "min=1MB,max=10TB", NULL, 0},
-  {"checkpoint", "category", NULL, NULL, confchk_wiredtiger_open_checkpoint_subconfigs, 2},
-  {"checkpoint_sync", "boolean", NULL, NULL, NULL, 0},
-  {"compatibility", "category", NULL, NULL, confchk_wiredtiger_open_compatibility_subconfigs, 3},
-  {"debug_mode", "category", NULL, NULL, confchk_wiredtiger_open_debug_mode_subconfigs, 10},
-  {"direct_io", "list", NULL, "choices=[\"checkpoint\",\"data\",\"log\"]", NULL, 0},
-  {"encryption", "category", NULL, NULL, confchk_wiredtiger_open_encryption_subconfigs, 3},
-  {"error_prefix", "string", NULL, NULL, NULL, 0},
-  {"eviction", "category", NULL, NULL, confchk_wiredtiger_open_eviction_subconfigs, 2},
-  {"eviction_checkpoint_target", "int", NULL, "min=0,max=10TB", NULL, 0},
-  {"eviction_dirty_target", "int", NULL, "min=1,max=10TB", NULL, 0},
-  {"eviction_dirty_trigger", "int", NULL, "min=1,max=10TB", NULL, 0},
-  {"eviction_target", "int", NULL, "min=10,max=10TB", NULL, 0},
-  {"eviction_trigger", "int", NULL, "min=10,max=10TB", NULL, 0},
-  {"eviction_updates_target", "int", NULL, "min=0,max=10TB", NULL, 0},
-  {"eviction_updates_trigger", "int", NULL, "min=0,max=10TB", NULL, 0},
-  {"extensions", "list", NULL, NULL, NULL, 0}, {"file_close_sync", "boolean", NULL, NULL, NULL, 0},
-  {"file_extend", "list", NULL, "choices=[\"data\",\"log\"]", NULL, 0},
-  {"file_manager", "category", NULL, NULL, confchk_wiredtiger_open_file_manager_subconfigs, 3},
-  {"hash", "category", NULL, NULL, confchk_wiredtiger_open_hash_subconfigs, 2},
-  {"hazard_max", "int", NULL, "min=15", NULL, 0},
-  {"history_store", "category", NULL, NULL, confchk_wiredtiger_open_history_store_subconfigs, 1},
-  {"io_capacity", "category", NULL, NULL, confchk_wiredtiger_open_io_capacity_subconfigs, 1},
-  {"json_output", "list", NULL, "choices=[\"error\",\"message\"]", NULL, 0},
-  {"log", "category", NULL, NULL, confchk_wiredtiger_open_log_subconfigs, 10},
-  {"lsm_manager", "category", NULL, NULL, confchk_wiredtiger_open_lsm_manager_subconfigs, 2},
-  {"mmap", "boolean", NULL, NULL, NULL, 0}, {"mmap_all", "boolean", NULL, NULL, NULL, 0},
-  {"multiprocess", "boolean", NULL, NULL, NULL, 0},
-  {"operation_timeout_ms", "int", NULL, "min=0", NULL, 0},
+  {"block_cache", "category", NULL, NULL, confchk_wiredtiger_open_block_cache_subconfigs, 12,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 0},
+  {"buffer_alignment", "int", NULL, "min=-1,max=1MB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 1},
+  {"builtin_extension_config", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 2},
+  {"cache_cursors", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 3},
+  {"cache_max_wait_ms", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 4},
+  {"cache_overhead", "int", NULL, "min=0,max=30", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 5},
+  {"cache_size", "int", NULL, "min=1MB,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 6},
+  {"checkpoint", "category", NULL, NULL, confchk_wiredtiger_open_checkpoint_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 7},
+  {"checkpoint_sync", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 8},
+  {"compatibility", "category", NULL, NULL, confchk_wiredtiger_open_compatibility_subconfigs, 3,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 9},
+  {"compile_configuration_count", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING,
+    10},
+  {"debug_mode", "category", NULL, NULL, confchk_wiredtiger_open_debug_mode_subconfigs, 10,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 11},
+  {"direct_io", "list", NULL, "choices=[\"checkpoint\",\"data\",\"log\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_LIST, 12},
+  {"encryption", "category", NULL, NULL, confchk_wiredtiger_open_encryption_subconfigs, 3,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 13},
+  {"error_prefix", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 14},
+  {"eviction", "category", NULL, NULL, confchk_wiredtiger_open_eviction_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 15},
+  {"eviction_checkpoint_target", "int", NULL, "min=0,max=10TB", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_INT, 16},
+  {"eviction_dirty_target", "int", NULL, "min=1,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT,
+    17},
+  {"eviction_dirty_trigger", "int", NULL, "min=1,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT,
+    18},
+  {"eviction_target", "int", NULL, "min=10,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 19},
+  {"eviction_trigger", "int", NULL, "min=10,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 20},
+  {"eviction_updates_target", "int", NULL, "min=0,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT,
+    21},
+  {"eviction_updates_trigger", "int", NULL, "min=0,max=10TB", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT,
+    22},
+  {"extensions", "list", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 23},
+  {"file_close_sync", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 24},
+  {"file_extend", "list", NULL, "choices=[\"data\",\"log\"]", NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST,
+    25},
+  {"file_manager", "category", NULL, NULL, confchk_wiredtiger_open_file_manager_subconfigs, 3,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 26},
+  {"hash", "category", NULL, NULL, confchk_wiredtiger_open_hash_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 27},
+  {"hazard_max", "int", NULL, "min=15", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 28},
+  {"history_store", "category", NULL, NULL, confchk_wiredtiger_open_history_store_subconfigs, 1,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 29},
+  {"io_capacity", "category", NULL, NULL, confchk_wiredtiger_open_io_capacity_subconfigs, 1,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 30},
+  {"json_output", "list", NULL, "choices=[\"error\",\"message\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_LIST, 31},
+  {"log", "category", NULL, NULL, confchk_wiredtiger_open_log_subconfigs, 10,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 32},
+  {"lsm_manager", "category", NULL, NULL, confchk_wiredtiger_open_lsm_manager_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 33},
+  {"mmap", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 34},
+  {"mmap_all", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 35},
+  {"multiprocess", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 36},
+  {"operation_timeout_ms", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 37},
   {"operation_tracking", "category", NULL, NULL,
-    confchk_wiredtiger_open_operation_tracking_subconfigs, 2},
-  {"readonly", "boolean", NULL, NULL, NULL, 0}, {"salvage", "boolean", NULL, NULL, NULL, 0},
-  {"session_max", "int", NULL, "min=1", NULL, 0},
-  {"session_scratch_max", "int", NULL, NULL, NULL, 0},
-  {"session_table_cache", "boolean", NULL, NULL, NULL, 0},
-  {"shared_cache", "category", NULL, NULL, confchk_wiredtiger_open_shared_cache_subconfigs, 5},
+    confchk_wiredtiger_open_operation_tracking_subconfigs, 2, WT_CONFIG_COMPILED_TYPE_CATEGORY, 38},
+  {"readonly", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 39},
+  {"salvage", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 40},
+  {"session_max", "int", NULL, "min=1", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 41},
+  {"session_scratch_max", "int", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 42},
+  {"session_table_cache", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 43},
+  {"shared_cache", "category", NULL, NULL, confchk_wiredtiger_open_shared_cache_subconfigs, 5,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 44},
   {"statistics", "list", NULL,
     "choices=[\"all\",\"cache_walk\",\"fast\",\"none\","
     "\"clear\",\"tree_walk\"]",
-    NULL, 0},
-  {"statistics_log", "category", NULL, NULL, confchk_wiredtiger_open_statistics_log_subconfigs, 6},
-  {"tiered_manager", "category", NULL, NULL, confchk_tiered_manager_subconfigs, 3},
-  {"tiered_storage", "category", NULL, NULL, confchk_tiered_storage_subconfigs, 7},
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 45},
+  {"statistics_log", "category", NULL, NULL, confchk_wiredtiger_open_statistics_log_subconfigs, 6,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 46},
+  {"tiered_manager", "category", NULL, NULL, confchk_tiered_manager_subconfigs, 3,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 47},
+  {"tiered_storage", "category", NULL, NULL, confchk_tiered_storage_subconfigs, 7,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 48},
   {"timing_stress_for_test", "list", NULL,
     "choices=[\"aggressive_sweep\",\"backup_rename\","
     "\"checkpoint_reserved_txnid_delay\",\"checkpoint_slow\","
@@ -1141,9 +1501,9 @@ static const WT_CONFIG_CHECK confchk_wiredtiger_open_usercfg[] = {
     "\"history_store_sweep_race\",\"prepare_checkpoint_delay\","
     "\"split_1\",\"split_2\",\"split_3\",\"split_4\",\"split_5\","
     "\"split_6\",\"split_7\",\"tiered_flush_finish\"]",
-    NULL, 0},
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 49},
   {"transaction_sync", "category", NULL, NULL, confchk_wiredtiger_open_transaction_sync_subconfigs,
-    2},
+    2, WT_CONFIG_COMPILED_TYPE_CATEGORY, 50},
   {"verbose", "list", NULL,
     "choices=[\"api\",\"backup\",\"block\",\"block_cache\","
     "\"checkpoint\",\"checkpoint_cleanup\",\"checkpoint_progress\","
@@ -1156,30 +1516,36 @@ static const WT_CONFIG_CHECK confchk_wiredtiger_open_usercfg[] = {
     "\"shared_cache\",\"split\",\"temporary\",\"thread_group\","
     "\"tiered\",\"timestamp\",\"transaction\",\"verify\",\"version\","
     "\"write\"]",
-    NULL, 0},
-  {"verify_metadata", "boolean", NULL, NULL, NULL, 0},
-  {"write_through", "list", NULL, "choices=[\"data\",\"log\"]", NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
-
-static const WT_CONFIG_ENTRY config_entries[] = {{"WT_CONNECTION.add_collator", "", NULL, 0},
-  {"WT_CONNECTION.add_compressor", "", NULL, 0}, {"WT_CONNECTION.add_data_source", "", NULL, 0},
-  {"WT_CONNECTION.add_encryptor", "", NULL, 0}, {"WT_CONNECTION.add_extractor", "", NULL, 0},
-  {"WT_CONNECTION.add_storage_source", "", NULL, 0},
-  {"WT_CONNECTION.close", "leak_memory=false,use_timestamp=true", confchk_WT_CONNECTION_close, 2},
+    NULL, 0, WT_CONFIG_COMPILED_TYPE_LIST, 51},
+  {"verify_metadata", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 52},
+  {"write_through", "list", NULL, "choices=[\"data\",\"log\"]", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_LIST, 53},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
+
+static const WT_CONFIG_ENTRY config_entries[] = {
+  {"WT_CONNECTION.add_collator", "", NULL, 0, 1, false},
+  {"WT_CONNECTION.add_compressor", "", NULL, 0, 2, false},
+  {"WT_CONNECTION.add_data_source", "", NULL, 0, 3, false},
+  {"WT_CONNECTION.add_encryptor", "", NULL, 0, 4, false},
+  {"WT_CONNECTION.add_extractor", "", NULL, 0, 5, false},
+  {"WT_CONNECTION.add_storage_source", "", NULL, 0, 6, false},
+  {"WT_CONNECTION.close", "leak_memory=false,use_timestamp=true", confchk_WT_CONNECTION_close, 2, 7,
+    false},
   {"WT_CONNECTION.debug_info",
     "cache=false,cursors=false,handles=false,log=false,sessions=false"
     ",txn=false",
-    confchk_WT_CONNECTION_debug_info, 6},
+    confchk_WT_CONNECTION_debug_info, 6, 8, false},
   {"WT_CONNECTION.load_extension",
     "config=,early_load=false,entry=wiredtiger_extension_init,"
     "terminate=wiredtiger_extension_terminate",
-    confchk_WT_CONNECTION_load_extension, 4},
+    confchk_WT_CONNECTION_load_extension, 4, 9, false},
   {"WT_CONNECTION.open_session",
     "cache_cursors=true,cache_max_wait_ms=0,"
     "debug=(release_evict_page=false),ignore_cache_size=false,"
     "isolation=snapshot",
-    confchk_WT_CONNECTION_open_session, 5},
-  {"WT_CONNECTION.query_timestamp", "get=all_durable", confchk_WT_CONNECTION_query_timestamp, 1},
+    confchk_WT_CONNECTION_open_session, 5, 10, false},
+  {"WT_CONNECTION.query_timestamp", "get=all_durable", confchk_WT_CONNECTION_query_timestamp, 1, 11,
+    false},
   {"WT_CONNECTION.reconfigure",
     "block_cache=(blkcache_eviction_aggression=1800,"
     "cache_on_checkpoint=true,cache_on_writes=true,enabled=false,"
@@ -1207,15 +1573,16 @@ static const WT_CONFIG_ENTRY config_entries[] = {{"WT_CONNECTION.add_collator",
     "tiered_manager=(threads_max=8,threads_min=1,wait=0),"
     "tiered_storage=(local_retention=300,object_target_size=10M),"
     "timing_stress_for_test=,verbose=[]",
-    confchk_WT_CONNECTION_reconfigure, 31},
-  {"WT_CONNECTION.rollback_to_stable", "", NULL, 0}, {"WT_CONNECTION.set_file_system", "", NULL, 0},
+    confchk_WT_CONNECTION_reconfigure, 31, 12, true},
+  {"WT_CONNECTION.rollback_to_stable", "", NULL, 0, 13, false},
+  {"WT_CONNECTION.set_file_system", "", NULL, 0, 14, false},
   {"WT_CONNECTION.set_timestamp",
     "durable_timestamp=,force=false,oldest_timestamp=,"
     "stable_timestamp=",
-    confchk_WT_CONNECTION_set_timestamp, 4},
-  {"WT_CURSOR.close", "", NULL, 0},
+    confchk_WT_CONNECTION_set_timestamp, 4, 15, false},
+  {"WT_CURSOR.close", "", NULL, 0, 16, false},
   {"WT_CURSOR.reconfigure", "append=false,overwrite=true,prefix_search=false",
-    confchk_WT_CURSOR_reconfigure, 3},
+    confchk_WT_CURSOR_reconfigure, 3, 17, false},
   {"WT_SESSION.alter",
     "access_pattern_hint=none,app_metadata=,"
     "assert=(commit_timestamp=none,durable_timestamp=none,"
@@ -1223,20 +1590,20 @@ static const WT_CONFIG_ENTRY config_entries[] = {{"WT_CONNECTION.add_collator",
     "checkpoint=,exclusive_refreshed=true,log=(enabled=true),"
     "os_cache_dirty_max=0,os_cache_max=0,readonly=false,"
     "tiered_object=false,verbose=[],write_timestamp_usage=none",
-    confchk_WT_SESSION_alter, 13},
+    confchk_WT_SESSION_alter, 13, 18, false},
   {"WT_SESSION.begin_transaction",
     "ignore_prepare=false,isolation=,name=,operation_timeout_ms=0,"
     "priority=0,read_before_oldest=false,read_timestamp=,"
     "roundup_timestamps=(prepared=false,read=false),sync=",
-    confchk_WT_SESSION_begin_transaction, 9},
+    confchk_WT_SESSION_begin_transaction, 9, 19, false},
   {"WT_SESSION.checkpoint", "drop=,force=false,name=,target=,use_timestamp=true",
-    confchk_WT_SESSION_checkpoint, 5},
-  {"WT_SESSION.close", "", NULL, 0},
+    confchk_WT_SESSION_checkpoint, 5, 20, false},
+  {"WT_SESSION.close", "", NULL, 0, 21, false},
   {"WT_SESSION.commit_transaction",
     "commit_timestamp=,durable_timestamp=,operation_timeout_ms=0,"
     "sync=",
-    confchk_WT_SESSION_commit_transaction, 4},
-  {"WT_SESSION.compact", "timeout=1200", confchk_WT_SESSION_compact, 1},
+    confchk_WT_SESSION_commit_transaction, 4, 22, false},
+  {"WT_SESSION.compact", "timeout=1200", confchk_WT_SESSION_compact, 1, 23, false},
   {"WT_SESSION.create",
     "access_pattern_hint=none,allocation_size=4KB,app_metadata=,"
     "assert=(commit_timestamp=none,durable_timestamp=none,"
@@ -1262,20 +1629,20 @@ static const WT_CONFIG_ENTRY config_entries[] = {{"WT_CONNECTION.add_collator",
     "bucket=,bucket_prefix=,cache_directory=,local_retention=300,"
     "name=,object_target_size=10M),type=file,value_format=u,"
     "verbose=[],write_timestamp_usage=none",
-    confchk_WT_SESSION_create, 50},
+    confchk_WT_SESSION_create, 50, 24, false},
   {"WT_SESSION.drop",
     "checkpoint_wait=true,force=false,lock_wait=true,"
     "remove_files=true",
-    confchk_WT_SESSION_drop, 4},
+    confchk_WT_SESSION_drop, 4, 25, false},
   {"WT_SESSION.flush_tier", "flush_timestamp=,force=false,lock_wait=true,sync=on,timeout=0",
-    confchk_WT_SESSION_flush_tier, 5},
+    confchk_WT_SESSION_flush_tier, 5, 26, false},
   {"WT_SESSION.join",
     "bloom_bit_count=16,bloom_false_positives=false,"
     "bloom_hash_count=8,compare=\"eq\",count=,operation=\"and\","
     "strategy=",
-    confchk_WT_SESSION_join, 7},
-  {"WT_SESSION.log_flush", "sync=on", confchk_WT_SESSION_log_flush, 1},
-  {"WT_SESSION.log_printf", "", NULL, 0},
+    confchk_WT_SESSION_join, 7, 27, false},
+  {"WT_SESSION.log_flush", "sync=on", confchk_WT_SESSION_log_flush, 1, 28, false},
+  {"WT_SESSION.log_printf", "", NULL, 0, 29, false},
   {"WT_SESSION.open_cursor",
     "append=false,bulk=false,checkpoint=,checkpoint_wait=true,"
     "debug=(dump_version=false,release_evict=false),dump=,"
@@ -1284,37 +1651,37 @@ static const WT_CONFIG_ENTRY config_entries[] = {{"WT_CONNECTION.add_collator",
     "next_random=false,next_random_sample_size=0,overwrite=true,"
     "prefix_search=false,raw=false,read_once=false,readonly=false,"
     "skip_sort_check=false,statistics=,target=",
-    confchk_WT_SESSION_open_cursor, 17},
+    confchk_WT_SESSION_open_cursor, 17, 30, true},
   {"WT_SESSION.prepare_transaction", "prepare_timestamp=", confchk_WT_SESSION_prepare_transaction,
-    1},
-  {"WT_SESSION.query_timestamp", "get=read", confchk_WT_SESSION_query_timestamp, 1},
+    1, 31, false},
+  {"WT_SESSION.query_timestamp", "get=read", confchk_WT_SESSION_query_timestamp, 1, 32, false},
   {"WT_SESSION.reconfigure",
     "cache_cursors=true,cache_max_wait_ms=0,"
     "debug=(release_evict_page=false),ignore_cache_size=false,"
     "isolation=snapshot",
-    confchk_WT_SESSION_reconfigure, 5},
-  {"WT_SESSION.rename", "", NULL, 0}, {"WT_SESSION.reset", "", NULL, 0},
-  {"WT_SESSION.reset_snapshot", "", NULL, 0},
+    confchk_WT_SESSION_reconfigure, 5, 33, false},
+  {"WT_SESSION.rename", "", NULL, 0, 34, false}, {"WT_SESSION.reset", "", NULL, 0, 35, false},
+  {"WT_SESSION.reset_snapshot", "", NULL, 0, 36, false},
   {"WT_SESSION.rollback_transaction", "operation_timeout_ms=0",
-    confchk_WT_SESSION_rollback_transaction, 1},
-  {"WT_SESSION.salvage", "force=false", confchk_WT_SESSION_salvage, 1},
-  {"WT_SESSION.strerror", "", NULL, 0},
+    confchk_WT_SESSION_rollback_transaction, 1, 37, false},
+  {"WT_SESSION.salvage", "force=false", confchk_WT_SESSION_salvage, 1, 38, false},
+  {"WT_SESSION.strerror", "", NULL, 0, 39, false},
   {"WT_SESSION.timestamp_transaction",
     "commit_timestamp=,durable_timestamp=,prepare_timestamp=,"
     "read_timestamp=",
-    confchk_WT_SESSION_timestamp_transaction, 4},
-  {"WT_SESSION.truncate", "", NULL, 0}, {"WT_SESSION.upgrade", "", NULL, 0},
+    confchk_WT_SESSION_timestamp_transaction, 4, 40, true},
+  {"WT_SESSION.truncate", "", NULL, 0, 41, false}, {"WT_SESSION.upgrade", "", NULL, 0, 42, false},
   {"WT_SESSION.verify",
     "dump_address=false,dump_blocks=false,dump_layout=false,"
     "dump_offsets=,dump_pages=false,stable_timestamp=false,"
     "strict=false",
-    confchk_WT_SESSION_verify, 7},
+    confchk_WT_SESSION_verify, 7, 43, false},
   {"colgroup.meta",
     "app_metadata=,assert=(commit_timestamp=none,"
     "durable_timestamp=none,read_timestamp=none,write_timestamp=off),"
     "collator=,columns=,source=,type=file,verbose=[],"
     "write_timestamp_usage=none",
-    confchk_colgroup_meta, 8},
+    confchk_colgroup_meta, 8, 44, false},
   {"file.config",
     "access_pattern_hint=none,allocation_size=4KB,app_metadata=,"
     "assert=(commit_timestamp=none,durable_timestamp=none,"
@@ -1333,7 +1700,7 @@ static const WT_CONFIG_ENTRY config_entries[] = {{"WT_CONNECTION.add_collator",
     "bucket_prefix=,cache_directory=,local_retention=300,name=,"
     "object_target_size=10M),value_format=u,verbose=[],"
     "write_timestamp_usage=none",
-    confchk_file_config, 42},
+    confchk_file_config, 42, 45, false},
   {"file.meta",
     "access_pattern_hint=none,allocation_size=4KB,app_metadata=,"
     "assert=(commit_timestamp=none,durable_timestamp=none,"
@@ -1354,14 +1721,14 @@ static const WT_CONFIG_ENTRY config_entries[] = {{"WT_CONNECTION.add_collator",
     "cache_directory=,local_retention=300,name=,"
     "object_target_size=10M),value_format=u,verbose=[],"
     "version=(major=0,minor=0),write_timestamp_usage=none",
-    confchk_file_meta, 47},
+    confchk_file_meta, 47, 46, false},
   {"index.meta",
     "app_metadata=,assert=(commit_timestamp=none,"
     "durable_timestamp=none,read_timestamp=none,write_timestamp=off),"
     "collator=,columns=,extractor=,immutable=false,index_key_columns="
     ",key_format=u,source=,type=file,value_format=u,verbose=[],"
     "write_timestamp_usage=none",
-    confchk_index_meta, 13},
+    confchk_index_meta, 13, 47, false},
   {"lsm.meta",
     "access_pattern_hint=none,allocation_size=4KB,app_metadata=,"
     "assert=(commit_timestamp=none,durable_timestamp=none,"
@@ -1386,7 +1753,7 @@ static const WT_CONFIG_ENTRY config_entries[] = {{"WT_CONNECTION.add_collator",
     "cache_directory=,local_retention=300,name=,"
     "object_target_size=10M),value_format=u,verbose=[],"
     "write_timestamp_usage=none",
-    confchk_lsm_meta, 46},
+    confchk_lsm_meta, 46, 48, false},
   {"object.meta",
     "access_pattern_hint=none,allocation_size=4KB,app_metadata=,"
     "assert=(commit_timestamp=none,durable_timestamp=none,"
@@ -1407,13 +1774,13 @@ static const WT_CONFIG_ENTRY config_entries[] = {{"WT_CONNECTION.add_collator",
     "cache_directory=,local_retention=300,name=,"
     "object_target_size=10M),value_format=u,verbose=[],"
     "version=(major=0,minor=0),write_timestamp_usage=none",
-    confchk_object_meta, 49},
+    confchk_object_meta, 49, 49, false},
   {"table.meta",
     "app_metadata=,assert=(commit_timestamp=none,"
     "durable_timestamp=none,read_timestamp=none,write_timestamp=off),"
     "colgroups=,collator=,columns=,key_format=u,value_format=u,"
     "verbose=[],write_timestamp_usage=none",
-    confchk_table_meta, 9},
+    confchk_table_meta, 9, 50, false},
   {"tier.meta",
     "access_pattern_hint=none,allocation_size=4KB,app_metadata=,"
     "assert=(commit_timestamp=none,durable_timestamp=none,"
@@ -1434,7 +1801,7 @@ static const WT_CONFIG_ENTRY config_entries[] = {{"WT_CONNECTION.add_collator",
     "bucket_prefix=,cache_directory=,local_retention=300,name=,"
     "object_target_size=10M),value_format=u,verbose=[],"
     "version=(major=0,minor=0),write_timestamp_usage=none",
-    confchk_tier_meta, 50},
+    confchk_tier_meta, 50, 51, false},
   {"tiered.meta",
     "access_pattern_hint=none,allocation_size=4KB,app_metadata=,"
     "assert=(commit_timestamp=none,durable_timestamp=none,"
@@ -1455,7 +1822,7 @@ static const WT_CONFIG_ENTRY config_entries[] = {{"WT_CONNECTION.add_collator",
     "bucket=,bucket_prefix=,cache_directory=,local_retention=300,"
     "name=,object_target_size=10M),tiers=,value_format=u,verbose=[],"
     "version=(major=0,minor=0),write_timestamp_usage=none",
-    confchk_tiered_meta, 52},
+    confchk_tiered_meta, 52, 52, false},
   {"wiredtiger_open",
     "block_cache=(blkcache_eviction_aggression=1800,"
     "cache_on_checkpoint=true,cache_on_writes=true,enabled=false,"
@@ -1465,13 +1832,14 @@ static const WT_CONFIG_ENTRY config_entries[] = {{"WT_CONNECTION.add_collator",
     ",cache_max_wait_ms=0,cache_overhead=8,cache_size=100MB,"
     "checkpoint=(log_size=0,wait=0),checkpoint_sync=true,"
     "compatibility=(release=,require_max=,require_min=),"
-    "config_base=true,create=false,debug_mode=(checkpoint_retention=0"
-    ",corruption_abort=true,cursor_copy=false,eviction=false,"
-    "log_retention=0,realloc_exact=false,rollback_error=0,"
-    "slow_checkpoint=false,table_logging=false,"
-    "update_restore_evict=false),direct_io=,encryption=(keyid=,name=,"
-    "secretkey=),error_prefix=,eviction=(threads_max=8,threads_min=1)"
-    ",eviction_checkpoint_target=1,eviction_dirty_target=5,"
+    "compile_configuration_count=100,config_base=true,create=false,"
+    "debug_mode=(checkpoint_retention=0,corruption_abort=true,"
+    "cursor_copy=false,eviction=false,log_retention=0,"
+    "realloc_exact=false,rollback_error=0,slow_checkpoint=false,"
+    "table_logging=false,update_restore_evict=false),direct_io=,"
+    "encryption=(keyid=,name=,secretkey=),error_prefix=,"
+    "eviction=(threads_max=8,threads_min=1),"
+    "eviction_checkpoint_target=1,eviction_dirty_target=5,"
     "eviction_dirty_trigger=20,eviction_target=80,eviction_trigger=95"
     ",eviction_updates_target=0,eviction_updates_trigger=0,"
     "exclusive=false,extensions=,file_close_sync=true,file_extend=,"
@@ -1495,7 +1863,7 @@ static const WT_CONFIG_ENTRY config_entries[] = {{"WT_CONNECTION.add_collator",
     "transaction_sync=(enabled=false,method=fsync),"
     "use_environment=true,use_environment_priv=false,verbose=[],"
     "verify_metadata=false,write_through=",
-    confchk_wiredtiger_open, 59},
+    confchk_wiredtiger_open, 60, 53, false},
   {"wiredtiger_open_all",
     "block_cache=(blkcache_eviction_aggression=1800,"
     "cache_on_checkpoint=true,cache_on_writes=true,enabled=false,"
@@ -1505,13 +1873,14 @@ static const WT_CONFIG_ENTRY config_entries[] = {{"WT_CONNECTION.add_collator",
     ",cache_max_wait_ms=0,cache_overhead=8,cache_size=100MB,"
     "checkpoint=(log_size=0,wait=0),checkpoint_sync=true,"
     "compatibility=(release=,require_max=,require_min=),"
-    "config_base=true,create=false,debug_mode=(checkpoint_retention=0"
-    ",corruption_abort=true,cursor_copy=false,eviction=false,"
-    "log_retention=0,realloc_exact=false,rollback_error=0,"
-    "slow_checkpoint=false,table_logging=false,"
-    "update_restore_evict=false),direct_io=,encryption=(keyid=,name=,"
-    "secretkey=),error_prefix=,eviction=(threads_max=8,threads_min=1)"
-    ",eviction_checkpoint_target=1,eviction_dirty_target=5,"
+    "compile_configuration_count=100,config_base=true,create=false,"
+    "debug_mode=(checkpoint_retention=0,corruption_abort=true,"
+    "cursor_copy=false,eviction=false,log_retention=0,"
+    "realloc_exact=false,rollback_error=0,slow_checkpoint=false,"
+    "table_logging=false,update_restore_evict=false),direct_io=,"
+    "encryption=(keyid=,name=,secretkey=),error_prefix=,"
+    "eviction=(threads_max=8,threads_min=1),"
+    "eviction_checkpoint_target=1,eviction_dirty_target=5,"
     "eviction_dirty_trigger=20,eviction_target=80,eviction_trigger=95"
     ",eviction_updates_target=0,eviction_updates_trigger=0,"
     "exclusive=false,extensions=,file_close_sync=true,file_extend=,"
@@ -1535,7 +1904,7 @@ static const WT_CONFIG_ENTRY config_entries[] = {{"WT_CONNECTION.add_collator",
     "transaction_sync=(enabled=false,method=fsync),"
     "use_environment=true,use_environment_priv=false,verbose=[],"
     "verify_metadata=false,version=(major=0,minor=0),write_through=",
-    confchk_wiredtiger_open_all, 60},
+    confchk_wiredtiger_open_all, 61, 54, false},
   {"wiredtiger_open_basecfg",
     "block_cache=(blkcache_eviction_aggression=1800,"
     "cache_on_checkpoint=true,cache_on_writes=true,enabled=false,"
@@ -1545,6 +1914,7 @@ static const WT_CONFIG_ENTRY config_entries[] = {{"WT_CONNECTION.add_collator",
     ",cache_max_wait_ms=0,cache_overhead=8,cache_size=100MB,"
     "checkpoint=(log_size=0,wait=0),checkpoint_sync=true,"
     "compatibility=(release=,require_max=,require_min=),"
+    "compile_configuration_count=100,"
     "debug_mode=(checkpoint_retention=0,corruption_abort=true,"
     "cursor_copy=false,eviction=false,log_retention=0,"
     "realloc_exact=false,rollback_error=0,slow_checkpoint=false,"
@@ -1574,7 +1944,7 @@ static const WT_CONFIG_ENTRY config_entries[] = {{"WT_CONNECTION.add_collator",
     "object_target_size=10M),timing_stress_for_test=,"
     "transaction_sync=(enabled=false,method=fsync),verbose=[],"
     "verify_metadata=false,version=(major=0,minor=0),write_through=",
-    confchk_wiredtiger_open_basecfg, 54},
+    confchk_wiredtiger_open_basecfg, 55, 55, false},
   {"wiredtiger_open_usercfg",
     "block_cache=(blkcache_eviction_aggression=1800,"
     "cache_on_checkpoint=true,cache_on_writes=true,enabled=false,"
@@ -1584,6 +1954,7 @@ static const WT_CONFIG_ENTRY config_entries[] = {{"WT_CONNECTION.add_collator",
     ",cache_max_wait_ms=0,cache_overhead=8,cache_size=100MB,"
     "checkpoint=(log_size=0,wait=0),checkpoint_sync=true,"
     "compatibility=(release=,require_max=,require_min=),"
+    "compile_configuration_count=100,"
     "debug_mode=(checkpoint_retention=0,corruption_abort=true,"
     "cursor_copy=false,eviction=false,log_retention=0,"
     "realloc_exact=false,rollback_error=0,slow_checkpoint=false,"
@@ -1613,8 +1984,8 @@ static const WT_CONFIG_ENTRY config_entries[] = {{"WT_CONNECTION.add_collator",
     "object_target_size=10M),timing_stress_for_test=,"
     "transaction_sync=(enabled=false,method=fsync),verbose=[],"
     "verify_metadata=false,write_through=",
-    confchk_wiredtiger_open_usercfg, 53},
-  {NULL, NULL, NULL, 0}};
+    confchk_wiredtiger_open_usercfg, 54, 56, false},
+  {NULL, NULL, NULL, 0, 0, false}};
 
 int
 __wt_conn_config_init(WT_SESSION_IMPL *session)
diff --git a/src/config/test_config.c b/src/config/test_config.c
index 230e7c904..cdecaf2d7 100644
--- a/src/config/test_config.c
+++ b/src/config/test_config.c
@@ -3,181 +3,260 @@
 #include "wt_internal.h"
 
 static const WT_CONFIG_CHECK confchk_checkpoint_manager_subconfigs[] = {
-  {"enabled", "boolean", NULL, NULL, NULL, 0}, {"op_rate", "string", NULL, NULL, NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"enabled", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 0},
+  {"op_rate", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 1},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_cache_hs_insert_subconfigs[] = {
-  {"max", "string", NULL, NULL, NULL, 0}, {"min", "int", NULL, "min=0", NULL, 0},
-  {"postrun", "boolean", NULL, NULL, NULL, 0}, {"runtime", "boolean", NULL, NULL, NULL, 0},
-  {"save", "boolean", NULL, NULL, NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"max", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 1},
+  {"min", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 0},
+  {"postrun", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 2},
+  {"runtime", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 3},
+  {"save", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 4},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_cc_pages_removed_subconfigs[] = {
-  {"max", "string", NULL, NULL, NULL, 0}, {"min", "int", NULL, "min=0", NULL, 0},
-  {"postrun", "boolean", NULL, NULL, NULL, 0}, {"runtime", "boolean", NULL, NULL, NULL, 0},
-  {"save", "boolean", NULL, NULL, NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"max", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 1},
+  {"min", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 0},
+  {"postrun", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 2},
+  {"runtime", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 3},
+  {"save", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 4},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_stat_cache_size_subconfigs[] = {
-  {"max", "string", NULL, NULL, NULL, 0}, {"min", "int", NULL, "min=0", NULL, 0},
-  {"postrun", "boolean", NULL, NULL, NULL, 0}, {"runtime", "boolean", NULL, NULL, NULL, 0},
-  {"save", "boolean", NULL, NULL, NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"max", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 1},
+  {"min", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 0},
+  {"postrun", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 2},
+  {"runtime", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 3},
+  {"save", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 4},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_stat_db_size_subconfigs[] = {
-  {"max", "string", NULL, NULL, NULL, 0}, {"min", "int", NULL, "min=0", NULL, 0},
-  {"postrun", "boolean", NULL, NULL, NULL, 0}, {"runtime", "boolean", NULL, NULL, NULL, 0},
-  {"save", "boolean", NULL, NULL, NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"max", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 1},
+  {"min", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 0},
+  {"postrun", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 2},
+  {"runtime", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 3},
+  {"save", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 4},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_runtime_monitor_subconfigs[] = {
-  {"cache_hs_insert", "category", NULL, NULL, confchk_cache_hs_insert_subconfigs, 5},
-  {"cc_pages_removed", "category", NULL, NULL, confchk_cc_pages_removed_subconfigs, 5},
-  {"enabled", "boolean", NULL, NULL, NULL, 0}, {"op_rate", "string", NULL, NULL, NULL, 0},
-  {"stat_cache_size", "category", NULL, NULL, confchk_stat_cache_size_subconfigs, 5},
-  {"stat_db_size", "category", NULL, NULL, confchk_stat_db_size_subconfigs, 5},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"cache_hs_insert", "category", NULL, NULL, confchk_cache_hs_insert_subconfigs, 5,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 2},
+  {"cc_pages_removed", "category", NULL, NULL, confchk_cc_pages_removed_subconfigs, 5,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 3},
+  {"enabled", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 0},
+  {"op_rate", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 1},
+  {"stat_cache_size", "category", NULL, NULL, confchk_stat_cache_size_subconfigs, 5,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 4},
+  {"stat_db_size", "category", NULL, NULL, confchk_stat_db_size_subconfigs, 5,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 5},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_statistics_config_subconfigs[] = {
-  {"enable_logging", "boolean", NULL, NULL, NULL, 0}, {"type", "string", NULL, NULL, NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"enable_logging", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 1},
+  {"type", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 0},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_timestamp_manager_subconfigs[] = {
-  {"enabled", "boolean", NULL, NULL, NULL, 0},
-  {"oldest_lag", "int", NULL, "min=0,max=1000000", NULL, 0},
-  {"op_rate", "string", NULL, NULL, NULL, 0},
-  {"stable_lag", "int", NULL, "min=0,max=1000000", NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"enabled", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 0},
+  {"oldest_lag", "int", NULL, "min=0,max=1000000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 2},
+  {"op_rate", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 1},
+  {"stable_lag", "int", NULL, "min=0,max=1000000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 3},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_ops_per_transaction_subconfigs[] = {
-  {"max", "string", NULL, NULL, NULL, 0}, {"min", "int", NULL, "min=0", NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"max", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 1},
+  {"min", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 0},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_insert_config_subconfigs[] = {
-  {"key_size", "int", NULL, "min=0,max=10000", NULL, 0}, {"op_rate", "string", NULL, NULL, NULL, 0},
-  {"ops_per_transaction", "category", NULL, NULL, confchk_ops_per_transaction_subconfigs, 2},
-  {"thread_count", "int", NULL, "min=0", NULL, 0},
-  {"value_size", "int", NULL, "min=0,max=1000000000", NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"key_size", "int", NULL, "min=0,max=10000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 3},
+  {"op_rate", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 2},
+  {"ops_per_transaction", "category", NULL, NULL, confchk_ops_per_transaction_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 1},
+  {"thread_count", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 0},
+  {"value_size", "int", NULL, "min=0,max=1000000000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 4},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_populate_config_subconfigs[] = {
-  {"collection_count", "int", NULL, "min=0,max=200000", NULL, 0},
-  {"key_count_per_collection", "int", NULL, "min=0,max=1000000", NULL, 0},
-  {"key_size", "int", NULL, "min=0,max=10000", NULL, 0},
-  {"thread_count", "string", NULL, NULL, NULL, 0},
-  {"value_size", "int", NULL, "min=0,max=1000000000", NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"collection_count", "int", NULL, "min=0,max=200000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 2},
+  {"key_count_per_collection", "int", NULL, "min=0,max=1000000", NULL, 0,
+    WT_CONFIG_COMPILED_TYPE_INT, 3},
+  {"key_size", "int", NULL, "min=0,max=10000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 0},
+  {"thread_count", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 4},
+  {"value_size", "int", NULL, "min=0,max=1000000000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 1},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_read_config_subconfigs[] = {
-  {"key_size", "int", NULL, "min=0,max=10000", NULL, 0}, {"op_rate", "string", NULL, NULL, NULL, 0},
-  {"ops_per_transaction", "category", NULL, NULL, confchk_ops_per_transaction_subconfigs, 2},
-  {"thread_count", "int", NULL, "min=0", NULL, 0},
-  {"value_size", "int", NULL, "min=0,max=1000000000", NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"key_size", "int", NULL, "min=0,max=10000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 3},
+  {"op_rate", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 1},
+  {"ops_per_transaction", "category", NULL, NULL, confchk_ops_per_transaction_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 2},
+  {"thread_count", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 0},
+  {"value_size", "int", NULL, "min=0,max=1000000000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 4},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_update_config_subconfigs[] = {
-  {"key_size", "int", NULL, "min=0,max=10000", NULL, 0}, {"op_rate", "string", NULL, NULL, NULL, 0},
-  {"ops_per_transaction", "category", NULL, NULL, confchk_ops_per_transaction_subconfigs, 2},
-  {"thread_count", "int", NULL, "min=0", NULL, 0},
-  {"value_size", "int", NULL, "min=0,max=1000000000", NULL, 0}, {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"key_size", "int", NULL, "min=0,max=10000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 3},
+  {"op_rate", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 2},
+  {"ops_per_transaction", "category", NULL, NULL, confchk_ops_per_transaction_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 1},
+  {"thread_count", "int", NULL, "min=0", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 0},
+  {"value_size", "int", NULL, "min=0,max=1000000000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 4},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_workload_generator_subconfigs[] = {
-  {"enabled", "boolean", NULL, NULL, NULL, 0},
-  {"insert_config", "category", NULL, NULL, confchk_insert_config_subconfigs, 5},
-  {"op_rate", "string", NULL, NULL, NULL, 0},
-  {"populate_config", "category", NULL, NULL, confchk_populate_config_subconfigs, 5},
-  {"read_config", "category", NULL, NULL, confchk_read_config_subconfigs, 5},
-  {"update_config", "category", NULL, NULL, confchk_update_config_subconfigs, 5},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"enabled", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 0},
+  {"insert_config", "category", NULL, NULL, confchk_insert_config_subconfigs, 5,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 4},
+  {"op_rate", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 1},
+  {"populate_config", "category", NULL, NULL, confchk_populate_config_subconfigs, 5,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 2},
+  {"read_config", "category", NULL, NULL, confchk_read_config_subconfigs, 5,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 3},
+  {"update_config", "category", NULL, NULL, confchk_update_config_subconfigs, 5,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 5},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_workload_tracking_subconfigs[] = {
-  {"enabled", "boolean", NULL, NULL, NULL, 0}, {"op_rate", "string", NULL, NULL, NULL, 0},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"enabled", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 0},
+  {"op_rate", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 1},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_base_test[] = {
-  {"cache_size_mb", "int", NULL, "min=0,max=100000000000", NULL, 0},
-  {"checkpoint_manager", "category", NULL, NULL, confchk_checkpoint_manager_subconfigs, 2},
-  {"compression_enabled", "boolean", NULL, NULL, NULL, 0},
-  {"duration_seconds", "int", NULL, "min=0,max=1000000", NULL, 0},
-  {"enable_logging", "boolean", NULL, NULL, NULL, 0},
-  {"runtime_monitor", "category", NULL, NULL, confchk_runtime_monitor_subconfigs, 6},
-  {"statistics_config", "category", NULL, NULL, confchk_statistics_config_subconfigs, 2},
-  {"timestamp_manager", "category", NULL, NULL, confchk_timestamp_manager_subconfigs, 4},
-  {"workload_generator", "category", NULL, NULL, confchk_workload_generator_subconfigs, 6},
-  {"workload_tracking", "category", NULL, NULL, confchk_workload_tracking_subconfigs, 2},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"cache_size_mb", "int", NULL, "min=0,max=100000000000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 0},
+  {"checkpoint_manager", "category", NULL, NULL, confchk_checkpoint_manager_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 1},
+  {"compression_enabled", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 2},
+  {"duration_seconds", "int", NULL, "min=0,max=1000000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 3},
+  {"enable_logging", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 4},
+  {"runtime_monitor", "category", NULL, NULL, confchk_runtime_monitor_subconfigs, 6,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 5},
+  {"statistics_config", "category", NULL, NULL, confchk_statistics_config_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 6},
+  {"timestamp_manager", "category", NULL, NULL, confchk_timestamp_manager_subconfigs, 4,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 7},
+  {"workload_generator", "category", NULL, NULL, confchk_workload_generator_subconfigs, 6,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 8},
+  {"workload_tracking", "category", NULL, NULL, confchk_workload_tracking_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 9},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_burst_inserts[] = {
-  {"burst_duration", "string", NULL, NULL, NULL, 0},
-  {"cache_size_mb", "int", NULL, "min=0,max=100000000000", NULL, 0},
-  {"checkpoint_manager", "category", NULL, NULL, confchk_checkpoint_manager_subconfigs, 2},
-  {"compression_enabled", "boolean", NULL, NULL, NULL, 0},
-  {"duration_seconds", "int", NULL, "min=0,max=1000000", NULL, 0},
-  {"enable_logging", "boolean", NULL, NULL, NULL, 0},
-  {"runtime_monitor", "category", NULL, NULL, confchk_runtime_monitor_subconfigs, 6},
-  {"statistics_config", "category", NULL, NULL, confchk_statistics_config_subconfigs, 2},
-  {"timestamp_manager", "category", NULL, NULL, confchk_timestamp_manager_subconfigs, 4},
-  {"workload_generator", "category", NULL, NULL, confchk_workload_generator_subconfigs, 6},
-  {"workload_tracking", "category", NULL, NULL, confchk_workload_tracking_subconfigs, 2},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"burst_duration", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 0},
+  {"cache_size_mb", "int", NULL, "min=0,max=100000000000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 1},
+  {"checkpoint_manager", "category", NULL, NULL, confchk_checkpoint_manager_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 2},
+  {"compression_enabled", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 3},
+  {"duration_seconds", "int", NULL, "min=0,max=1000000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 4},
+  {"enable_logging", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 5},
+  {"runtime_monitor", "category", NULL, NULL, confchk_runtime_monitor_subconfigs, 6,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 6},
+  {"statistics_config", "category", NULL, NULL, confchk_statistics_config_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 7},
+  {"timestamp_manager", "category", NULL, NULL, confchk_timestamp_manager_subconfigs, 4,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 8},
+  {"workload_generator", "category", NULL, NULL, confchk_workload_generator_subconfigs, 6,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 9},
+  {"workload_tracking", "category", NULL, NULL, confchk_workload_tracking_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 10},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_example_test[] = {
-  {"cache_size_mb", "int", NULL, "min=0,max=100000000000", NULL, 0},
-  {"checkpoint_manager", "category", NULL, NULL, confchk_checkpoint_manager_subconfigs, 2},
-  {"compression_enabled", "boolean", NULL, NULL, NULL, 0},
-  {"duration_seconds", "int", NULL, "min=0,max=1000000", NULL, 0},
-  {"enable_logging", "boolean", NULL, NULL, NULL, 0},
-  {"runtime_monitor", "category", NULL, NULL, confchk_runtime_monitor_subconfigs, 6},
-  {"statistics_config", "category", NULL, NULL, confchk_statistics_config_subconfigs, 2},
-  {"timestamp_manager", "category", NULL, NULL, confchk_timestamp_manager_subconfigs, 4},
-  {"workload_generator", "category", NULL, NULL, confchk_workload_generator_subconfigs, 6},
-  {"workload_tracking", "category", NULL, NULL, confchk_workload_tracking_subconfigs, 2},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"cache_size_mb", "int", NULL, "min=0,max=100000000000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 0},
+  {"checkpoint_manager", "category", NULL, NULL, confchk_checkpoint_manager_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 1},
+  {"compression_enabled", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 2},
+  {"duration_seconds", "int", NULL, "min=0,max=1000000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 3},
+  {"enable_logging", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 4},
+  {"runtime_monitor", "category", NULL, NULL, confchk_runtime_monitor_subconfigs, 6,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 5},
+  {"statistics_config", "category", NULL, NULL, confchk_statistics_config_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 6},
+  {"timestamp_manager", "category", NULL, NULL, confchk_timestamp_manager_subconfigs, 4,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 7},
+  {"workload_generator", "category", NULL, NULL, confchk_workload_generator_subconfigs, 6,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 8},
+  {"workload_tracking", "category", NULL, NULL, confchk_workload_tracking_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 9},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_hs_cleanup[] = {
-  {"cache_size_mb", "int", NULL, "min=0,max=100000000000", NULL, 0},
-  {"checkpoint_manager", "category", NULL, NULL, confchk_checkpoint_manager_subconfigs, 2},
-  {"compression_enabled", "boolean", NULL, NULL, NULL, 0},
-  {"duration_seconds", "int", NULL, "min=0,max=1000000", NULL, 0},
-  {"enable_logging", "boolean", NULL, NULL, NULL, 0},
-  {"runtime_monitor", "category", NULL, NULL, confchk_runtime_monitor_subconfigs, 6},
-  {"statistics_config", "category", NULL, NULL, confchk_statistics_config_subconfigs, 2},
-  {"timestamp_manager", "category", NULL, NULL, confchk_timestamp_manager_subconfigs, 4},
-  {"workload_generator", "category", NULL, NULL, confchk_workload_generator_subconfigs, 6},
-  {"workload_tracking", "category", NULL, NULL, confchk_workload_tracking_subconfigs, 2},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"cache_size_mb", "int", NULL, "min=0,max=100000000000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 0},
+  {"checkpoint_manager", "category", NULL, NULL, confchk_checkpoint_manager_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 1},
+  {"compression_enabled", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 2},
+  {"duration_seconds", "int", NULL, "min=0,max=1000000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 3},
+  {"enable_logging", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 4},
+  {"runtime_monitor", "category", NULL, NULL, confchk_runtime_monitor_subconfigs, 6,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 5},
+  {"statistics_config", "category", NULL, NULL, confchk_statistics_config_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 6},
+  {"timestamp_manager", "category", NULL, NULL, confchk_timestamp_manager_subconfigs, 4,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 7},
+  {"workload_generator", "category", NULL, NULL, confchk_workload_generator_subconfigs, 6,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 8},
+  {"workload_tracking", "category", NULL, NULL, confchk_workload_tracking_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 9},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_search_near_01[] = {
-  {"cache_size_mb", "int", NULL, "min=0,max=100000000000", NULL, 0},
-  {"checkpoint_manager", "category", NULL, NULL, confchk_checkpoint_manager_subconfigs, 2},
-  {"compression_enabled", "boolean", NULL, NULL, NULL, 0},
-  {"duration_seconds", "int", NULL, "min=0,max=1000000", NULL, 0},
-  {"enable_logging", "boolean", NULL, NULL, NULL, 0},
-  {"runtime_monitor", "category", NULL, NULL, confchk_runtime_monitor_subconfigs, 6},
-  {"search_near_threads", "string", NULL, NULL, NULL, 0},
-  {"statistics_config", "category", NULL, NULL, confchk_statistics_config_subconfigs, 2},
-  {"timestamp_manager", "category", NULL, NULL, confchk_timestamp_manager_subconfigs, 4},
-  {"workload_generator", "category", NULL, NULL, confchk_workload_generator_subconfigs, 6},
-  {"workload_tracking", "category", NULL, NULL, confchk_workload_tracking_subconfigs, 2},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"cache_size_mb", "int", NULL, "min=0,max=100000000000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 0},
+  {"checkpoint_manager", "category", NULL, NULL, confchk_checkpoint_manager_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 1},
+  {"compression_enabled", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 2},
+  {"duration_seconds", "int", NULL, "min=0,max=1000000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 3},
+  {"enable_logging", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 4},
+  {"runtime_monitor", "category", NULL, NULL, confchk_runtime_monitor_subconfigs, 6,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 5},
+  {"search_near_threads", "string", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_STRING, 6},
+  {"statistics_config", "category", NULL, NULL, confchk_statistics_config_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 7},
+  {"timestamp_manager", "category", NULL, NULL, confchk_timestamp_manager_subconfigs, 4,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 8},
+  {"workload_generator", "category", NULL, NULL, confchk_workload_generator_subconfigs, 6,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 9},
+  {"workload_tracking", "category", NULL, NULL, confchk_workload_tracking_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 10},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_search_near_02[] = {
-  {"cache_size_mb", "int", NULL, "min=0,max=100000000000", NULL, 0},
-  {"checkpoint_manager", "category", NULL, NULL, confchk_checkpoint_manager_subconfigs, 2},
-  {"compression_enabled", "boolean", NULL, NULL, NULL, 0},
-  {"duration_seconds", "int", NULL, "min=0,max=1000000", NULL, 0},
-  {"enable_logging", "boolean", NULL, NULL, NULL, 0},
-  {"runtime_monitor", "category", NULL, NULL, confchk_runtime_monitor_subconfigs, 6},
-  {"statistics_config", "category", NULL, NULL, confchk_statistics_config_subconfigs, 2},
-  {"timestamp_manager", "category", NULL, NULL, confchk_timestamp_manager_subconfigs, 4},
-  {"workload_generator", "category", NULL, NULL, confchk_workload_generator_subconfigs, 6},
-  {"workload_tracking", "category", NULL, NULL, confchk_workload_tracking_subconfigs, 2},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"cache_size_mb", "int", NULL, "min=0,max=100000000000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 0},
+  {"checkpoint_manager", "category", NULL, NULL, confchk_checkpoint_manager_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 1},
+  {"compression_enabled", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 2},
+  {"duration_seconds", "int", NULL, "min=0,max=1000000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 3},
+  {"enable_logging", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 4},
+  {"runtime_monitor", "category", NULL, NULL, confchk_runtime_monitor_subconfigs, 6,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 5},
+  {"statistics_config", "category", NULL, NULL, confchk_statistics_config_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 6},
+  {"timestamp_manager", "category", NULL, NULL, confchk_timestamp_manager_subconfigs, 4,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 7},
+  {"workload_generator", "category", NULL, NULL, confchk_workload_generator_subconfigs, 6,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 8},
+  {"workload_tracking", "category", NULL, NULL, confchk_workload_tracking_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 9},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_CHECK confchk_search_near_03[] = {
-  {"cache_size_mb", "int", NULL, "min=0,max=100000000000", NULL, 0},
-  {"checkpoint_manager", "category", NULL, NULL, confchk_checkpoint_manager_subconfigs, 2},
-  {"compression_enabled", "boolean", NULL, NULL, NULL, 0},
-  {"duration_seconds", "int", NULL, "min=0,max=1000000", NULL, 0},
-  {"enable_logging", "boolean", NULL, NULL, NULL, 0},
-  {"runtime_monitor", "category", NULL, NULL, confchk_runtime_monitor_subconfigs, 6},
-  {"statistics_config", "category", NULL, NULL, confchk_statistics_config_subconfigs, 2},
-  {"timestamp_manager", "category", NULL, NULL, confchk_timestamp_manager_subconfigs, 4},
-  {"workload_generator", "category", NULL, NULL, confchk_workload_generator_subconfigs, 6},
-  {"workload_tracking", "category", NULL, NULL, confchk_workload_tracking_subconfigs, 2},
-  {NULL, NULL, NULL, NULL, NULL, 0}};
+  {"cache_size_mb", "int", NULL, "min=0,max=100000000000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 0},
+  {"checkpoint_manager", "category", NULL, NULL, confchk_checkpoint_manager_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 1},
+  {"compression_enabled", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 2},
+  {"duration_seconds", "int", NULL, "min=0,max=1000000", NULL, 0, WT_CONFIG_COMPILED_TYPE_INT, 3},
+  {"enable_logging", "boolean", NULL, NULL, NULL, 0, WT_CONFIG_COMPILED_TYPE_BOOLEAN, 4},
+  {"runtime_monitor", "category", NULL, NULL, confchk_runtime_monitor_subconfigs, 6,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 5},
+  {"statistics_config", "category", NULL, NULL, confchk_statistics_config_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 6},
+  {"timestamp_manager", "category", NULL, NULL, confchk_timestamp_manager_subconfigs, 4,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 7},
+  {"workload_generator", "category", NULL, NULL, confchk_workload_generator_subconfigs, 6,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 8},
+  {"workload_tracking", "category", NULL, NULL, confchk_workload_tracking_subconfigs, 2,
+    WT_CONFIG_COMPILED_TYPE_CATEGORY, 9},
+  {NULL, NULL, NULL, NULL, NULL, 0, 0, 0}};
 
 static const WT_CONFIG_ENTRY config_entries[] = {
   {"base_test",
@@ -200,7 +279,7 @@ static const WT_CONFIG_ENTRY config_entries[] = {
     "value_size=5),update_config=(key_size=5,op_rate=1s,"
     "ops_per_transaction=(max=1,min=0),thread_count=0,value_size=5)),"
     "workload_tracking=(enabled=true,op_rate=1s)",
-    confchk_base_test, 10},
+    confchk_base_test, 10, 1, false},
   {"burst_inserts",
     "burst_duration=90,cache_size_mb=0,"
     "checkpoint_manager=(enabled=false,op_rate=1s),"
@@ -222,7 +301,7 @@ static const WT_CONFIG_ENTRY config_entries[] = {
     "value_size=5),update_config=(key_size=5,op_rate=1s,"
     "ops_per_transaction=(max=1,min=0),thread_count=0,value_size=5)),"
     "workload_tracking=(enabled=true,op_rate=1s)",
-    confchk_burst_inserts, 11},
+    confchk_burst_inserts, 11, 2, false},
   {"example_test",
     "cache_size_mb=0,checkpoint_manager=(enabled=false,op_rate=1s),"
     "compression_enabled=false,duration_seconds=0,"
@@ -243,7 +322,7 @@ static const WT_CONFIG_ENTRY config_entries[] = {
     "value_size=5),update_config=(key_size=5,op_rate=1s,"
     "ops_per_transaction=(max=1,min=0),thread_count=0,value_size=5)),"
     "workload_tracking=(enabled=true,op_rate=1s)",
-    confchk_example_test, 10},
+    confchk_example_test, 10, 3, false},
   {"hs_cleanup",
     "cache_size_mb=0,checkpoint_manager=(enabled=false,op_rate=1s),"
     "compression_enabled=false,duration_seconds=0,"
@@ -264,7 +343,7 @@ static const WT_CONFIG_ENTRY config_entries[] = {
     "value_size=5),update_config=(key_size=5,op_rate=1s,"
     "ops_per_transaction=(max=1,min=0),thread_count=0,value_size=5)),"
     "workload_tracking=(enabled=true,op_rate=1s)",
-    confchk_hs_cleanup, 10},
+    confchk_hs_cleanup, 10, 4, false},
   {"search_near_01",
     "cache_size_mb=0,checkpoint_manager=(enabled=false,op_rate=1s),"
     "compression_enabled=false,duration_seconds=0,"
@@ -285,7 +364,7 @@ static const WT_CONFIG_ENTRY config_entries[] = {
     "value_size=5),update_config=(key_size=5,op_rate=1s,"
     "ops_per_transaction=(max=1,min=0),thread_count=0,value_size=5)),"
     "workload_tracking=(enabled=true,op_rate=1s)",
-    confchk_search_near_01, 11},
+    confchk_search_near_01, 11, 5, false},
   {"search_near_02",
     "cache_size_mb=0,checkpoint_manager=(enabled=false,op_rate=1s),"
     "compression_enabled=false,duration_seconds=0,"
@@ -306,7 +385,7 @@ static const WT_CONFIG_ENTRY config_entries[] = {
     "value_size=5),update_config=(key_size=5,op_rate=1s,"
     "ops_per_transaction=(max=1,min=0),thread_count=0,value_size=5)),"
     "workload_tracking=(enabled=true,op_rate=1s)",
-    confchk_search_near_02, 10},
+    confchk_search_near_02, 10, 6, false},
   {"search_near_03",
     "cache_size_mb=0,checkpoint_manager=(enabled=false,op_rate=1s),"
     "compression_enabled=false,duration_seconds=0,"
@@ -327,8 +406,8 @@ static const WT_CONFIG_ENTRY config_entries[] = {
     "value_size=5),update_config=(key_size=5,op_rate=1s,"
     "ops_per_transaction=(max=1,min=0),thread_count=0,value_size=5)),"
     "workload_tracking=(enabled=true,op_rate=1s)",
-    confchk_search_near_03, 10},
-  {NULL, NULL, NULL, 0}};
+    confchk_search_near_03, 10, 7, false},
+  {NULL, NULL, NULL, 0, 0, false}};
 
 /*
  * __wt_test_config_match --
diff --git a/src/conn/conn_api.c b/src/conn/conn_api.c
index 65e9cd3b3..e295303cc 100644
--- a/src/conn/conn_api.c
+++ b/src/conn/conn_api.c
@@ -1089,6 +1089,27 @@ __conn_is_new(WT_CONNECTION *wt_conn)
     return (((WT_CONNECTION_IMPL *)wt_conn)->is_new);
 }
 
+/*
+ * __conn_compile_configuration --
+ *     WT_CONNECTION->compile_configuration method.
+ */
+static int
+__conn_compile_configuration(
+  WT_CONNECTION *wt_conn, const char *method, const char *str, const char **compiled)
+{
+    WT_CONNECTION_IMPL *conn;
+    WT_DECL_RET;
+    WT_SESSION_IMPL *session;
+
+    conn = (WT_CONNECTION_IMPL *)wt_conn;
+    CONNECTION_API_CALL_NOCONF(conn, session, compile_configuration);
+
+    ret = __wt_conn_compile_configuration(session, method, str, compiled);
+
+err:
+    API_END_RET_NOTFOUND_MAP(session, ret);
+}
+
 /*
  * __conn_close --
  *     WT_CONNECTION->close method.
@@ -2566,8 +2587,8 @@ wiredtiger_open(const char *home, WT_EVENT_HANDLER *event_handler, const char *c
   WT_CONNECTION **connectionp)
 {
     static const WT_CONNECTION stdc = {__conn_close, __conn_debug_info, __conn_reconfigure,
-      __conn_get_home, __conn_configure_method, __conn_is_new, __conn_open_session,
-      __conn_query_timestamp, __conn_set_timestamp, __conn_rollback_to_stable,
+      __conn_get_home, __conn_configure_method, __conn_is_new, __conn_compile_configuration,
+      __conn_open_session, __conn_query_timestamp, __conn_set_timestamp, __conn_rollback_to_stable,
       __conn_load_extension, __conn_add_data_source, __conn_add_collator, __conn_add_compressor,
       __conn_add_encryptor, __conn_add_extractor, __conn_set_file_system, __conn_add_storage_source,
       __conn_get_storage_source, __conn_get_extension_api};
diff --git a/src/conn/conn_cache.c b/src/conn/conn_cache.c
index bf14fcf49..839d8bfc8 100644
--- a/src/conn/conn_cache.c
+++ b/src/conn/conn_cache.c
@@ -66,29 +66,36 @@ __cache_config_local(WT_SESSION_IMPL *session, bool shared, const char *cfg[])
      * All other settings are independent of whether we are using a shared cache or not.
      */
     if (!shared) {
-        WT_RET(__wt_config_gets(session, cfg, "cache_size", &cval));
+        WT_RET(__wt_config_gets_api(
+          session, cfg, WT_API_CONNECTION_RECONFIGURE_CACHE_SIZE, "cache_size", &cval));
         conn->cache_size = (uint64_t)cval.val;
     }
 
-    WT_RET(__wt_config_gets(session, cfg, "cache_overhead", &cval));
+    WT_RET(__wt_config_gets_api(
+      session, cfg, WT_API_CONNECTION_RECONFIGURE_CACHE_OVERHEAD, "cache_overhead", &cval));
     cache->overhead_pct = (u_int)cval.val;
 
-    WT_RET(__wt_config_gets(session, cfg, "eviction_target", &cval));
+    WT_RET(__wt_config_gets_api(
+      session, cfg, WT_API_CONNECTION_RECONFIGURE_EVICTION_TARGET, "eviction_target", &cval));
     cache->eviction_target = (double)cval.val;
     WT_RET(
       __cache_config_abs_to_pct(session, &(cache->eviction_target), "eviction target", shared));
 
-    WT_RET(__wt_config_gets(session, cfg, "eviction_trigger", &cval));
+    WT_RET(__wt_config_gets_api(
+      session, cfg, WT_API_CONNECTION_RECONFIGURE_EVICTION_TRIGGER, "eviction_trigger", &cval));
     cache->eviction_trigger = (double)cval.val;
     WT_RET(
       __cache_config_abs_to_pct(session, &(cache->eviction_trigger), "eviction trigger", shared));
 
-    WT_RET(__wt_config_gets(session, cfg, "eviction_checkpoint_target", &cval));
+    WT_RET(
+      __wt_config_gets_api(session, cfg, WT_API_CONNECTION_RECONFIGURE_EVICTION_CHECKPOINT_TARGET,
+        "eviction_checkpoint_target", &cval));
     cache->eviction_checkpoint_target = (double)cval.val;
     WT_RET(__cache_config_abs_to_pct(
       session, &(cache->eviction_checkpoint_target), "eviction checkpoint target", shared));
 
-    WT_RET(__wt_config_gets(session, cfg, "eviction_dirty_target", &cval));
+    WT_RET(__wt_config_gets_api(session, cfg, WT_API_CONNECTION_RECONFIGURE_EVICTION_DIRTY_TARGET,
+      "eviction_dirty_target", &cval));
     cache->eviction_dirty_target = (double)cval.val;
     WT_RET(__cache_config_abs_to_pct(
       session, &(cache->eviction_dirty_target), "eviction dirty target", shared));
@@ -106,7 +113,8 @@ __cache_config_local(WT_SESSION_IMPL *session, bool shared, const char *cfg[])
       cache->eviction_checkpoint_target < cache->eviction_dirty_target)
         cache->eviction_checkpoint_target = cache->eviction_dirty_target;
 
-    WT_RET(__wt_config_gets(session, cfg, "eviction_dirty_trigger", &cval));
+    WT_RET(__wt_config_gets_api(session, cfg, WT_API_CONNECTION_RECONFIGURE_EVICTION_DIRTY_TRIGGER,
+      "eviction_dirty_trigger", &cval));
     cache->eviction_dirty_trigger = (double)cval.val;
     WT_RET(__cache_config_abs_to_pct(
       session, &(cache->eviction_dirty_trigger), "eviction dirty trigger", shared));
@@ -119,14 +127,16 @@ __cache_config_local(WT_SESSION_IMPL *session, bool shared, const char *cfg[])
         cache->eviction_dirty_trigger = cache->eviction_trigger;
 
     /* Configure updates target / trigger */
-    WT_RET(__wt_config_gets(session, cfg, "eviction_updates_target", &cval));
+    WT_RET(__wt_config_gets_api(session, cfg, WT_API_CONNECTION_RECONFIGURE_EVICTION_UPDATES_TARGET,
+      "eviction_updates_target", &cval));
     cache->eviction_updates_target = (double)cval.val;
     WT_RET(__cache_config_abs_to_pct(
       session, &(cache->eviction_updates_target), "eviction updates target", shared));
     if (cache->eviction_updates_target < DBL_EPSILON)
         cache->eviction_updates_target = cache->eviction_dirty_target / 2;
 
-    WT_RET(__wt_config_gets(session, cfg, "eviction_updates_trigger", &cval));
+    WT_RET(__wt_config_gets_api(session, cfg,
+      WT_API_CONNECTION_RECONFIGURE_EVICTION_UPDATES_TRIGGER, "eviction_updates_trigger", &cval));
     cache->eviction_updates_trigger = (double)cval.val;
     WT_RET(__cache_config_abs_to_pct(
       session, &(cache->eviction_updates_trigger), "eviction updates trigger", shared));
@@ -137,11 +147,13 @@ __cache_config_local(WT_SESSION_IMPL *session, bool shared, const char *cfg[])
     if (cache->eviction_updates_trigger > cache->eviction_trigger)
         cache->eviction_updates_trigger = cache->eviction_trigger;
 
-    WT_RET(__wt_config_gets(session, cfg, "eviction.threads_max", &cval));
+    WT_RET(__wt_config_gets_api(
+      session, cfg, WT_API_CONNECTION_RECONFIGURE_EVICTION, "eviction.threads_max", &cval));
     WT_ASSERT(session, cval.val > 0);
     evict_threads_max = (uint32_t)cval.val;
 
-    WT_RET(__wt_config_gets(session, cfg, "eviction.threads_min", &cval));
+    WT_RET(__wt_config_gets_api(
+      session, cfg, WT_API_CONNECTION_RECONFIGURE_EVICTION, "eviction.threads_min", &cval));
     WT_ASSERT(session, cval.val > 0);
     evict_threads_min = (uint32_t)cval.val;
 
@@ -152,7 +164,8 @@ __cache_config_local(WT_SESSION_IMPL *session, bool shared, const char *cfg[])
     conn->evict_threads_min = evict_threads_min;
 
     /* Retrieve the wait time and convert from milliseconds */
-    WT_RET(__wt_config_gets(session, cfg, "cache_max_wait_ms", &cval));
+    WT_RET(__wt_config_gets_api(
+      session, cfg, WT_API_CONNECTION_RECONFIGURE_CACHE_MAX_WAIT_MS, "cache_max_wait_ms", &cval));
     cache->cache_max_wait_us = (uint64_t)(cval.val * WT_THOUSAND);
 
     return (0);
diff --git a/src/conn/conn_compiled.c b/src/conn/conn_compiled.c
new file mode 100644
index 000000000..a11452afd
--- /dev/null
+++ b/src/conn/conn_compiled.c
@@ -0,0 +1,372 @@
+/*-
+ * Copyright (c) 2014-present MongoDB, Inc.
+ * Copyright (c) 2008-2014 WiredTiger, Inc.
+ *	All rights reserved.
+ *
+ * See the file LICENSE for redistribution information.
+ */
+
+#include "wt_internal.h"
+
+/*
+ * __wt_compiled_config_init --
+ *     Initialize compiled configuration.
+ */
+int
+__wt_compiled_config_init(WT_SESSION_IMPL *session, const char **cfg)
+{
+    WT_CONFIG_ITEM cval;
+    WT_CONNECTION_IMPL *conn;
+    char *cs;
+#if 0
+    size_t i, lastlen;
+#endif
+
+    conn = S2C(session);
+    WT_RET(__wt_config_gets(session, cfg, "compile_configuration_count", &cval));
+    conn->compiled_max = (size_t)cval.val;
+
+    /*
+     * Compiled strings will look like some number of '~'s, with offset number at every ten:
+     *    "0~~~~~~~~~10~~~~~~~~20..."
+     * By design, this will give a configuration error if mistakenly interpreted directly, and
+     * makes it easier to debug.
+     */
+    WT_RET(__wt_calloc(session, conn->compiled_max + 2, 1, &cs));
+#if 1
+    memset(cs, 'Z', conn->compiled_max + 1);
+#else
+    memset(cs, '~', conn->compiled_max + 1);
+    lastlen = 1;
+    for (i = 0; i < conn->compiled_max - lastlen - 2; i += 10) {
+        WT_RET(__wt_snprintf_len_set(
+          &cs[i], conn->compiled_max - i - lastlen - 2, &lastlen, "%d", (int)i));
+        cs[i + lastlen] = '~';
+    }
+#endif
+    conn->compiled_config_current = conn->compiled_config_str = cs;
+
+    return (0);
+}
+
+/*
+ * __conn_compiled_free --
+ *     Free one compiled item.
+ */
+static void
+__conn_compiled_free(WT_SESSION_IMPL *session, WT_COMPILED *compiled)
+{
+    if (compiled != NULL) {
+        /*
+         * When an 'unbound' entry is created, and 'bound' entry is created in the next slot. They
+         * share pointers, so don't free the parts twice.
+         */
+        if (compiled->unbound == 0)
+            __wt_free(session, compiled->orig_config);
+
+        __wt_free(session, compiled);
+    }
+}
+
+/*
+ * __wt_compiled_bound_free --
+ *     Free all bound entries in the session.
+ */
+void
+__wt_compiled_bound_free(WT_SESSION_IMPL *session)
+{
+    WT_CONNECTION_IMPL *conn;
+    uint32_t i;
+
+    conn = S2C(session);
+
+    if (session->compiled_bound != NULL) {
+        for (i = 0; i < conn->compiled_unbound_cnt; ++i)
+            __wt_free(session, session->compiled_bound[i].values);
+        __wt_free(session, session->compiled_bound);
+    }
+}
+
+/*
+ * __conn_compiled_value --
+ *     Compile a value into the compiled struct.
+ */
+static int
+__conn_compiled_value(WT_SESSION_IMPL *session, WT_COMPILED *compiled, u_int pos,
+  const WT_CONFIG_CHECK *check, WT_CONFIG_ITEM *value)
+{
+    WT_COMPILED_VALUE *comp_value;
+    u_int bind_num, compiled_type;
+
+    comp_value = &compiled->values[pos];
+    comp_value->item = *value;
+    compiled_type = check->compiled_type;
+    if (value->type == WT_CONFIG_ITEM_ID && value->len > 0 && value->str[0] == '%') {
+        compiled->unbound |= (uint64_t)(1 << pos);
+        bind_num = compiled->bind_desc_cnt++;
+        WT_RET(__wt_realloc_def(
+          session, &compiled->bind_desc_size, compiled->bind_desc_cnt, &compiled->bind_desc));
+        compiled->bind_desc[bind_num].offset = pos;
+        if (value->str[1] == 'd')
+            compiled->bind_desc[bind_num].type = WT_CONFIG_ITEM_NUM;
+        else if (value->str[1] == 's')
+            compiled->bind_desc[bind_num].type = WT_CONFIG_ITEM_STRING;
+        else
+            WT_RET_MSG(session, EINVAL, "Value '%.*s' does not match %s for binding",
+              (int)value->len, value->str, "%d or %s");
+    } else
+        switch (compiled_type) {
+        case WT_CONFIG_COMPILED_TYPE_INT:
+            if (value->type != WT_CONFIG_ITEM_NUM)
+                WT_RET_MSG(session, EINVAL, "Value '%.*s' expected to be an integer",
+                  (int)value->len, value->str);
+            break;
+        case WT_CONFIG_COMPILED_TYPE_BOOLEAN:
+            if (value->type != WT_CONFIG_ITEM_BOOL &&
+              (value->type != WT_CONFIG_ITEM_NUM || (value->val != 0 && value->val != 1)))
+                WT_RET_MSG(session, EINVAL, "Value '%.*s' expected to be a boolean",
+                  (int)value->len, value->str);
+            break;
+        case WT_CONFIG_COMPILED_TYPE_STRING:
+            if (value->type != WT_CONFIG_ITEM_STRING && value->type != WT_CONFIG_ITEM_ID)
+                WT_RET_MSG(session, EINVAL, "Value '%.*s' expected to be a string", (int)value->len,
+                  value->str);
+            break;
+        case WT_CONFIG_COMPILED_TYPE_CATEGORY:
+            if (value->type != WT_CONFIG_ITEM_STRUCT || value->str[0] != '[')
+                WT_RET_MSG(session, EINVAL, "Value '%.*s' expected to be a category",
+                  (int)value->len, value->str);
+            break;
+        case WT_CONFIG_COMPILED_TYPE_LIST:
+            if (value->type != WT_CONFIG_ITEM_STRUCT || value->str[0] != '[')
+                WT_RET_MSG(session, EINVAL, "Value '%.*s' expected to be a list", (int)value->len,
+                  value->str);
+            break;
+        default:
+            return (__wt_illegal_value(session, compiled_type));
+            break;
+        }
+    return (0);
+}
+
+/*
+ * __wt_compiled_config_discard --
+ *     Discard compiled configuration info.
+ */
+void
+__wt_compiled_config_discard(WT_SESSION_IMPL *session)
+{
+    WT_CONNECTION_IMPL *conn;
+    uint32_t i;
+
+    conn = S2C(session);
+    __wt_free(session, conn->compiled_config_str);
+    if (conn->compiled_array != NULL) {
+        for (i = 0; i < conn->compiled_cnt; ++i)
+            __conn_compiled_free(session, conn->compiled_array[i]);
+        __wt_free(session, conn->compiled_array);
+    }
+}
+
+/*
+ * __wt_conn_compile_configuration --
+ *     Compile a configuration string, returning a string that can be used in the API.
+ */
+int
+__wt_conn_compile_configuration(
+  WT_SESSION_IMPL *session, const char *method, const char *str, const char **compiled_str)
+{
+    WT_COMPILED *compiled, *compiled_bind;
+    WT_CONFIG parser;
+    const WT_CONFIG_CHECK *check;
+    const WT_CONFIG_ENTRY *centry;
+    WT_CONFIG_ITEM key, value;
+    WT_CONNECTION_IMPL *conn;
+    WT_DECL_RET;
+    uint32_t count, i;
+
+    conn = S2C(session);
+    compiled = compiled_bind = NULL;
+
+    /* TODO: we need to lock the data structures in connection */
+    if (conn->compiled_cnt >= conn->compiled_max)
+        WT_RET_MSG(session, EINVAL,
+          "Error compiling '%s', overflowed maximum compile slots of %" PRIuMAX, str,
+          conn->compiled_max);
+
+    centry = __wt_conn_config_match(method);
+    if (centry == NULL)
+        WT_RET_MSG(session, EINVAL, "Error compiling configuration, unknown method '%s'", method);
+    if (!centry->compilable)
+        WT_RET_MSG(session, ENOTSUP,
+          "Error compiling, method '%s' does not support compiled configurations", method);
+    /* Make sure there is an extra bind entry */
+    WT_RET(__wt_realloc_def(
+      session, &conn->compiled_size, conn->compiled_cnt + 2, &conn->compiled_array));
+    WT_RET(__wt_calloc_one(session, &compiled));
+
+    compiled->config_entry = centry;
+    compiled->bind_link = -1;
+
+    /*
+     * Keep a copy of the original configuration string, as the caller may reuse their own string.
+     */
+    WT_ERR(__wt_strdup(session, str, &compiled->orig_config));
+
+    /*
+     * Walk through the given configuration string, for each key, look it up. We should find it in
+     * the configuration checks array, and the index in that array is both the bit position to flip
+     * in the 'set' array, and the position in the values table where we will compile the value.
+     */
+    __wt_config_init(session, &parser, compiled->orig_config);
+    count = 0;
+    while ((ret = __wt_config_next(&parser, &key, &value)) == 0) {
+        for (i = 0; i < centry->checks_entries; ++i) {
+            check = &centry->checks[i];
+            if (WT_STRING_MATCH(check->name, key.str, key.len)) {
+                compiled->set |= (uint64_t)(1 << i);
+                WT_ERR(__wt_realloc_def(session, &compiled->values_size, i + 1, &compiled->values));
+                WT_ERR(__conn_compiled_value(session, compiled, i, check, &value));
+                break;
+            }
+        }
+        if (i == centry->checks_entries)
+            WT_ERR_MSG(session, EINVAL, "Error compiling '%s', unknown key '%.*s' for method '%s'",
+              str, (int)key.len, key.str, method);
+
+        if (++count > 64) /* bit overflow */
+            /* TODO: we should do a sanity check when parsing api_data.py */
+            WT_ERR_MSG(session, EINVAL, "Error compiling '%s', too many keys", str);
+    }
+    if (compiled->unbound != 0) {
+        WT_ERR(__wt_calloc_one(session, &compiled_bind));
+        *compiled_bind = *compiled; /* structure assign */
+        compiled_bind->unbound = 0;
+        compiled_bind->bind_link = conn->compiled_unbound_cnt++; /* TODO - potentially wasteful */
+    }
+    WT_ERR_NOTFOUND_OK(ret, false);
+
+err:
+    if (ret == 0) {
+        conn->compiled_array[conn->compiled_cnt++] = compiled;
+        *compiled_str = conn->compiled_config_current++;
+        if (compiled_bind) {
+            conn->compiled_array[conn->compiled_cnt++] = compiled_bind;
+            ++conn->compiled_config_current;
+        }
+    } else {
+        __conn_compiled_free(session, compiled);
+        __conn_compiled_free(session, compiled_bind);
+    }
+
+    return (ret);
+}
+
+/*
+ * __wt_compiled_bind --
+ *     Bind values to a configuration string.
+ */
+int
+__wt_compiled_bind(
+  WT_SESSION_IMPL *session, const char *compiled_str, const char **bound_str, va_list ap)
+{
+    WT_COMPILED *compiled, *compiled_bind;
+    WT_COMPILED_BIND_DESC *bind_desc;
+    WT_COMPILED_BOUND *bound;
+    WT_CONNECTION_IMPL *conn;
+    uint64_t i;
+    u_int offset, voffset;
+    int bind_link;
+    const char *str;
+
+    conn = S2C(session);
+    WT_ASSERT(session, __wt_is_compiled_config(conn, compiled_str));
+    offset = (compiled_str - (conn)->compiled_config_str);
+    compiled = conn->compiled_array[offset];
+    if (compiled->unbound == 0)
+        WT_RET_MSG(session, EINVAL, "configuration has no bindings");
+    /* The next entry is the binding one */
+    compiled_bind = conn->compiled_array[offset + 1];
+
+    bind_link = compiled_bind->bind_link; /* TODO, may want to rotate, etc. */
+    if (bind_link < 0)
+        WT_RET_MSG(session, EINVAL, "missing bound entry");
+    if ((u_int)bind_link > conn->compiled_unbound_cnt)
+        WT_RET_MSG(session, EINVAL, "bad bind link");
+
+    /* TODO: must freeze. */
+    if (session->compiled_bound == NULL)
+        WT_RET(__wt_calloc_def(session, conn->compiled_unbound_cnt + 1, &session->compiled_bound));
+
+    bound = &session->compiled_bound[bind_link];
+    bound->compiled = compiled_bind;
+    /* TODO: The original is over-allocated, so this is wasteful */
+    WT_RET(__wt_realloc_def(session, &bound->values_size,
+      compiled->values_size / sizeof(compiled->values[0]), &bound->values));
+
+    // Copy all the values, then bind them one by one.
+    memcpy(bound->values, compiled->values, compiled->values_size);
+    for (i = 0; i < compiled->bind_desc_cnt; ++i) {
+        bind_desc = &compiled->bind_desc[i];
+        voffset = bind_desc->offset;
+        switch (bind_desc->type) {
+        case WT_CONFIG_ITEM_NUM:
+        case WT_CONFIG_ITEM_BOOL:
+            /* The str/len fields will continue to be set to "%d" in our copy of the config string.
+             */
+            bound->values[voffset].item.val = va_arg(ap, int64_t);
+            break;
+        case WT_CONFIG_ITEM_STRING:
+        case WT_CONFIG_ITEM_ID:
+            str = va_arg(ap, const char *);
+            bound->values[voffset].item.str = str;
+            bound->values[voffset].item.len = strlen(str);
+            break;
+        default:
+            return (__wt_illegal_value(session, bind_desc->type));
+        }
+        bound->values[voffset].item.type = (enum __wt_config_item_enum)bind_desc->type;
+    }
+
+    *bound_str = compiled_str + 1; /* Return the bind slot */
+    return (0);
+}
+
+/*
+ * __wt_compiled_get --
+ *     Get a value for the compiled string.
+ */
+int
+__wt_compiled_get(
+  WT_SESSION_IMPL *session, int api, const char *compiled_str, WT_CONFIG_ITEM *value)
+{
+    WT_COMPILED_BOUND *bound;
+    WT_COMPILED_VALUE *comp_value;
+    const WT_COMPILED *compiled;
+    WT_CONNECTION_IMPL *conn;
+    u_int offset;
+
+    conn = S2C(session);
+    bound = NULL;
+    WT_ASSERT(session, __wt_is_compiled_config(conn, compiled_str));
+    offset = (compiled_str - (conn)->compiled_config_str);
+    compiled = (conn)->compiled_array[offset];
+    WT_ASSERT(session, (compiled->set & (uint64_t)(1 << api)) != 0);
+
+    if (compiled->unbound != 0)
+        WT_RET_MSG(session, EINVAL, "reference to unbound configuration");
+    if (compiled->bind_link >= 0) {
+        if (session->compiled_bound == NULL ||
+          session->compiled_bound[compiled->bind_link].values == NULL)
+            WT_RET_MSG(session, EINVAL, "reference to unknown bound configuration");
+        bound = &session->compiled_bound[compiled->bind_link];
+        comp_value = &bound->values[api];
+    } else
+        comp_value = &compiled->values[api];
+
+    if (compiled->config_entry->method_id != session->api_method_id)
+        WT_RET_MSG(session, EINVAL, "configuration string compiled for incorrect API");
+
+    *value = comp_value->item;
+    return (0);
+}
diff --git a/src/conn/conn_handle.c b/src/conn/conn_handle.c
index bb5b7e27b..66786868e 100644
--- a/src/conn/conn_handle.c
+++ b/src/conn/conn_handle.c
@@ -106,6 +106,9 @@ __wt_connection_destroy(WT_CONNECTION_IMPL *conn)
     TAILQ_REMOVE(&__wt_process.connqh, conn, q);
     __wt_spin_unlock(session, &__wt_process.spinlock);
 
+    /* Compiled configuration */
+    __wt_compiled_config_discard(session);
+
     /* Configuration */
     __wt_conn_config_discard(session); /* configuration */
 
diff --git a/src/conn/conn_open.c b/src/conn/conn_open.c
index 5b89817c9..c180b54af 100644
--- a/src/conn/conn_open.c
+++ b/src/conn/conn_open.c
@@ -47,6 +47,9 @@ __wt_connection_open(WT_CONNECTION_IMPL *conn, const char *cfg[])
      */
     WT_WRITE_BARRIER();
 
+    /* Set up compiled configuration strings. */
+    WT_RET(__wt_compiled_config_init(session, cfg));
+
     /* Create the cache. */
     WT_RET(__wt_cache_create(session, cfg));
 
diff --git a/src/conn/conn_reconfig.c b/src/conn/conn_reconfig.c
index 14378f1d7..f5be715d2 100644
--- a/src/conn/conn_reconfig.c
+++ b/src/conn/conn_reconfig.c
@@ -53,7 +53,8 @@ __wt_conn_compat_config(WT_SESSION_IMPL *session, const char **cfg, bool reconfi
     new_compat = min_compat = max_compat = WT_NO_VERSION;
     unchg = false;
 
-    WT_RET(__wt_config_gets(session, cfg, "compatibility.release", &cval));
+    WT_RET(__wt_config_gets_api(
+      session, cfg, WT_API_CONNECTION_RECONFIGURE_COMPATIBILITY, "compatibility.release", &cval));
     if (cval.len == 0) {
         new_compat.major = WIREDTIGER_VERSION_MAJOR;
         new_compat.minor = WIREDTIGER_VERSION_MINOR;
@@ -88,11 +89,13 @@ __wt_conn_compat_config(WT_SESSION_IMPL *session, const char **cfg, bool reconfi
      * The maximum and minimum required version for existing files is only available on opening the
      * connection, not reconfigure.
      */
-    WT_RET(__wt_config_gets(session, cfg, "compatibility.require_min", &cval));
+    WT_RET(__wt_config_gets_api(session, cfg, WT_API_CONNECTION_RECONFIGURE_COMPATIBILITY,
+      "compatibility.require_min", &cval));
     if (cval.len != 0)
         WT_RET(__conn_compat_parse(session, &cval, &min_compat.major, &min_compat.minor));
 
-    WT_RET(__wt_config_gets(session, cfg, "compatibility.require_max", &cval));
+    WT_RET(__wt_config_gets_api(session, cfg, WT_API_CONNECTION_RECONFIGURE_COMPATIBILITY,
+      "compatibility.require_max", &cval));
     if (cval.len != 0)
         WT_RET(__conn_compat_parse(session, &cval, &max_compat.major, &max_compat.minor));
 
@@ -211,11 +214,13 @@ __wt_conn_optrack_setup(WT_SESSION_IMPL *session, const char *cfg[], bool reconf
 
     /* Once an operation tracking path has been set it can't be changed. */
     if (!reconfig) {
-        WT_RET(__wt_config_gets(session, cfg, "operation_tracking.path", &cval));
+        WT_RET(__wt_config_gets_api(session, cfg, WT_API_CONNECTION_RECONFIGURE_OPERATION_TRACKING,
+          "operation_tracking.path", &cval));
         WT_RET(__wt_strndup(session, cval.str, cval.len, &conn->optrack_path));
     }
 
-    WT_RET(__wt_config_gets(session, cfg, "operation_tracking.enabled", &cval));
+    WT_RET(__wt_config_gets_api(session, cfg, WT_API_CONNECTION_RECONFIGURE_OPERATION_TRACKING,
+      "operation_tracking.enabled", &cval));
     if (cval.val == 0) {
         if (F_ISSET(conn, WT_CONN_OPTRACK)) {
             WT_RET(__wt_conn_optrack_teardown(session, reconfig));
@@ -302,7 +307,8 @@ __wt_conn_statistics_config(WT_SESSION_IMPL *session, const char *cfg[])
 
     conn = S2C(session);
 
-    WT_RET(__wt_config_gets(session, cfg, "statistics", &cval));
+    WT_RET(__wt_config_gets_api(
+      session, cfg, WT_API_CONNECTION_RECONFIGURE_STATISTICS, "statistics", &cval));
 
     flags = 0;
     set = 0;
diff --git a/src/cursor/cur_file.c b/src/cursor/cur_file.c
index d373c089c..a462a12fe 100644
--- a/src/cursor/cur_file.c
+++ b/src/cursor/cur_file.c
@@ -716,14 +716,16 @@ __curfile_create(WT_SESSION_IMPL *session, WT_CURSOR *owner, const char *cfg[],
         cbulk = (WT_CURSOR_BULK *)cbt;
 
         /* Optionally skip the validation of each bulk-loaded key. */
-        WT_ERR(__wt_config_gets_def(session, cfg, "skip_sort_check", 0, &cval));
+        WT_ERR(__wt_config_gets_def_api(
+          session, cfg, WT_API_SESSION_OPEN_CURSOR_SKIP_SORT_CHECK, "skip_sort_check", 0, &cval));
         WT_ERR(__wt_curbulk_init(session, cbulk, bitmap, cval.val == 0 ? 0 : 1));
     }
 
     /*
      * Random retrieval, row-store only. Random retrieval cursors support a limited set of methods.
      */
-    WT_ERR(__wt_config_gets_def(session, cfg, "next_random", 0, &cval));
+    WT_ERR(__wt_config_gets_def_api(
+      session, cfg, WT_API_SESSION_OPEN_CURSOR_NEXT_RANDOM, "next_random", 0, &cval));
     if (cval.val != 0) {
         if (WT_CURSOR_RECNO(cursor))
             WT_ERR_MSG(
@@ -733,13 +735,15 @@ __curfile_create(WT_SESSION_IMPL *session, WT_CURSOR *owner, const char *cfg[],
         cursor->next = __wt_curfile_next_random;
         cursor->reset = __curfile_reset;
 
-        WT_ERR(__wt_config_gets_def(session, cfg, "next_random_sample_size", 0, &cval));
+        WT_ERR(__wt_config_gets_def_api(session, cfg,
+          WT_API_SESSION_OPEN_CURSOR_NEXT_RANDOM_SAMPLE_SIZE, "next_random_sample_size", 0, &cval));
         if (cval.val != 0)
             cbt->next_random_sample_size = (u_int)cval.val;
         cacheable = false;
     }
 
-    WT_ERR(__wt_config_gets_def(session, cfg, "read_once", 0, &cval));
+    WT_ERR(__wt_config_gets_def_api(
+      session, cfg, WT_API_SESSION_OPEN_CURSOR_READ_ONCE, "read_once", 0, &cval));
     if (cval.val != 0)
         F_SET(cbt, WT_CBT_READ_ONCE);
 
@@ -793,6 +797,7 @@ __wt_curfile_open(WT_SESSION_IMPL *session, const char *uri, WT_CURSOR *owner, c
     bool bitmap, bulk, checkpoint_wait;
 
     bitmap = bulk = false;
+
     checkpoint_wait = true;
     flags = 0;
 
@@ -800,7 +805,8 @@ __wt_curfile_open(WT_SESSION_IMPL *session, const char *uri, WT_CURSOR *owner, c
      * Decode the bulk configuration settings. In memory databases ignore bulk load.
      */
     if (!F_ISSET(S2C(session), WT_CONN_IN_MEMORY)) {
-        WT_RET(__wt_config_gets_def(session, cfg, "bulk", 0, &cval));
+        WT_RET(__wt_config_gets_def_api(
+          session, cfg, WT_API_SESSION_OPEN_CURSOR_BULK, "bulk", 0, &cval));
         if (cval.type == WT_CONFIG_ITEM_BOOL ||
           (cval.type == WT_CONFIG_ITEM_NUM && (cval.val == 0 || cval.val == 1))) {
             bitmap = false;
diff --git a/src/cursor/cur_std.c b/src/cursor/cur_std.c
index 0c7bbfb6f..3407562c7 100644
--- a/src/cursor/cur_std.c
+++ b/src/cursor/cur_std.c
@@ -808,28 +808,34 @@ __wt_cursor_cache_get(WT_SESSION_IMPL *session, const char *uri, uint64_t hash_v
          * for configurations that only differ by a cursor flag, which we can patch up if we find a
          * matching cursor.
          */
-        WT_RET(__wt_config_gets_def(session, cfg, "bulk", 0, &cval));
+        WT_RET(__wt_config_gets_def_api(
+          session, cfg, WT_API_SESSION_OPEN_CURSOR_BULK, "bulk", 0, &cval));
         if (cval.val)
             return (WT_NOTFOUND);
 
-        WT_RET(__wt_config_gets_def(session, cfg, "debug", 0, &cval));
+        WT_RET(__wt_config_gets_def_api(
+          session, cfg, WT_API_SESSION_OPEN_CURSOR_DEBUG, "debug", 0, &cval));
         if (cval.len != 0)
             return (WT_NOTFOUND);
 
-        WT_RET(__wt_config_gets_def(session, cfg, "dump", 0, &cval));
+        WT_RET(__wt_config_gets_def_api(
+          session, cfg, WT_API_SESSION_OPEN_CURSOR_DUMP, "dump", 0, &cval));
         if (cval.len != 0)
             return (WT_NOTFOUND);
 
-        WT_RET(__wt_config_gets_def(session, cfg, "next_random", 0, &cval));
+        WT_RET(__wt_config_gets_def_api(
+          session, cfg, WT_API_SESSION_OPEN_CURSOR_NEXT_RANDOM, "next_random", 0, &cval));
         if (cval.val != 0)
             return (WT_NOTFOUND);
 
-        WT_RET(__wt_config_gets_def(session, cfg, "readonly", 0, &cval));
+        WT_RET(__wt_config_gets_def_api(
+          session, cfg, WT_API_SESSION_OPEN_CURSOR_READONLY, "readonly", 0, &cval));
         if (cval.val)
             return (WT_NOTFOUND);
 
         /* Checkpoints are readonly, we won't cache them. */
-        WT_RET(__wt_config_gets_def(session, cfg, "checkpoint", 0, &cval));
+        WT_RET(__wt_config_gets_def_api(
+          session, cfg, WT_API_SESSION_OPEN_CURSOR_CHECKPOINT, "checkpoint", 0, &cval));
         if (cval.val)
             return (WT_NOTFOUND);
     }
@@ -872,21 +878,25 @@ __wt_cursor_cache_get(WT_SESSION_IMPL *session, const char *uri, uint64_t hash_v
                  * The append flag is only relevant to column stores.
                  */
                 if (WT_CURSOR_RECNO(cursor)) {
-                    WT_RET(__wt_config_gets_def(session, cfg, "append", 0, &cval));
+                    WT_RET(__wt_config_gets_def_api(
+                      session, cfg, WT_API_SESSION_OPEN_CURSOR_APPEND, "append", 0, &cval));
                     if (cval.val != 0)
                         F_SET(cursor, WT_CURSTD_APPEND);
                 }
 
-                WT_RET(__wt_config_gets_def(session, cfg, "overwrite", 1, &cval));
+                WT_RET(__wt_config_gets_def_api(
+                  session, cfg, WT_API_SESSION_OPEN_CURSOR_OVERWRITE, "overwrite", 1, &cval));
                 if (cval.val == 0)
                     F_CLR(cursor, WT_CURSTD_OVERWRITE);
 
-                WT_RET(__wt_config_gets_def(session, cfg, "raw", 0, &cval));
+                WT_RET(__wt_config_gets_def_api(
+                  session, cfg, WT_API_SESSION_OPEN_CURSOR_RAW, "raw", 0, &cval));
                 if (cval.val != 0)
                     F_SET(cursor, WT_CURSTD_RAW);
 
                 if (cbt) {
-                    WT_RET(__wt_config_gets_def(session, cfg, "read_once", 0, &cval));
+                    WT_RET(__wt_config_gets_def_api(
+                      session, cfg, WT_API_SESSION_OPEN_CURSOR_READ_ONCE, "read_once", 0, &cval));
                     if (cval.val != 0)
                         F_SET(cbt, WT_CBT_READ_ONCE);
                 }
@@ -1220,7 +1230,8 @@ __wt_cursor_init(
      * append The append flag is only relevant to column stores.
      */
     if (WT_CURSOR_RECNO(cursor)) {
-        WT_RET(__wt_config_gets_def(session, cfg, "append", 0, &cval));
+        WT_RET(__wt_config_gets_def_api(
+          session, cfg, WT_API_SESSION_OPEN_CURSOR_APPEND, "append", 0, &cval));
         if (cval.val != 0)
             F_SET(cursor, WT_CURSTD_APPEND);
     }
@@ -1231,11 +1242,13 @@ __wt_cursor_init(
      */
     readonly = F_ISSET(S2C(session), WT_CONN_READONLY);
     if (!readonly) {
-        WT_RET(__wt_config_gets_def(session, cfg, "checkpoint", 0, &cval));
+        WT_RET(__wt_config_gets_def_api(
+          session, cfg, WT_API_SESSION_OPEN_CURSOR_CHECKPOINT, "checkpoint", 0, &cval));
         readonly = cval.len != 0;
     }
     if (!readonly) {
-        WT_RET(__wt_config_gets_def(session, cfg, "readonly", 0, &cval));
+        WT_RET(__wt_config_gets_def_api(
+          session, cfg, WT_API_SESSION_OPEN_CURSOR_READONLY, "readonly", 0, &cval));
         readonly = cval.val != 0;
     }
     if (readonly) {
@@ -1253,7 +1266,8 @@ __wt_cursor_init(
      * with the dump config string, and with the index cursor as an owner. We don't want to create a
      * dump cursor in that case, because we'll create the dump cursor on the index cursor itself.
      */
-    WT_RET(__wt_config_gets_def(session, cfg, "dump", 0, &cval));
+    WT_RET(
+      __wt_config_gets_def_api(session, cfg, WT_API_SESSION_OPEN_CURSOR_DUMP, "dump", 0, &cval));
     if (cval.len != 0 && owner == NULL) {
         uint32_t dump_flag;
         if (WT_STRING_MATCH("json", cval.str, cval.len))
@@ -1278,14 +1292,15 @@ __wt_cursor_init(
         cdump = NULL;
 
     /* overwrite */
-    WT_RET(__wt_config_gets_def(session, cfg, "overwrite", 1, &cval));
+    WT_RET(__wt_config_gets_def_api(
+      session, cfg, WT_API_SESSION_OPEN_CURSOR_OVERWRITE, "overwrite", 1, &cval));
     if (cval.val)
         F_SET(cursor, WT_CURSTD_OVERWRITE);
     else
         F_CLR(cursor, WT_CURSTD_OVERWRITE);
 
     /* raw */
-    WT_RET(__wt_config_gets_def(session, cfg, "raw", 0, &cval));
+    WT_RET(__wt_config_gets_def_api(session, cfg, WT_API_SESSION_OPEN_CURSOR_RAW, "raw", 0, &cval));
     if (cval.val != 0)
         F_SET(cursor, WT_CURSTD_RAW);
 
diff --git a/src/include/api.h b/src/include/api.h
index 892972e28..5a3e0907e 100644
--- a/src/include/api.h
+++ b/src/include/api.h
@@ -37,19 +37,22 @@
 #define API_SESSION_PUSH(s, h, n, dh)                                                        \
     WT_DATA_HANDLE *__olddh = (s)->dhandle;                                                  \
     const char *__oldname;                                                                   \
+    u_int __oldmethodid;                                                                     \
     /* If this isn't an API reentry, the name should be NULL and the counter should be 0. */ \
     WT_ASSERT(s, (s)->name != NULL || (s)->api_call_counter == 0);                           \
     __oldname = (s)->name;                                                                   \
     ++(s)->api_call_counter;                                                                 \
     (s)->dhandle = (dh);                                                                     \
-    (s)->name = (s)->lastop = #h "." #n
-#define API_SESSION_POP(s)  \
-    (s)->dhandle = __olddh; \
-    (s)->name = __oldname;  \
+    (s)->name = (s)->lastop = #h "." #n;                                                     \
+    __oldmethodid = (s)->api_method_id
+#define API_SESSION_POP(s)              \
+    (s)->dhandle = __olddh;             \
+    (s)->name = __oldname;              \
+    (s)->api_method_id = __oldmethodid; \
     --(s)->api_call_counter
 
 /* Standard entry points to the API: declares/initializes local variables. */
-#define API_SESSION_INIT(s, h, n, dh)                                   \
+#define API_SESSION_INIT(s, h, n, dh, m)                                \
     WT_TRACK_OP_DECL;                                                   \
     API_SESSION_PUSH(s, h, n, dh);                                      \
     /*                                                                  \
@@ -64,16 +67,17 @@
     /* Reset wait time if this isn't an API reentry. */                 \
     if ((s)->api_call_counter == 1)                                     \
         (s)->cache_wait_us = 0;                                         \
+    (s)->api_method_id = m;                                             \
     __wt_verbose((s), WT_VERB_API, "%s", "CALL: " #h ":" #n)
 
 #define API_CALL_NOCONF(s, h, n, dh) \
     do {                             \
-    API_SESSION_INIT(s, h, n, dh)
+    API_SESSION_INIT(s, h, n, dh, 0)
 
 #define API_CALL(s, h, n, dh, config, cfg)                                \
     do {                                                                  \
         const char *(cfg)[] = {WT_CONFIG_BASE(s, h##_##n), config, NULL}; \
-        API_SESSION_INIT(s, h, n, dh);                                    \
+        API_SESSION_INIT(s, h, n, dh, WT_API_##h##_##n);                  \
         if ((config) != NULL)                                             \
     WT_ERR(__wt_config_check((s), WT_CONFIG_REF(s, h##_##n), (config), 0))
 
diff --git a/src/include/compiled.h b/src/include/compiled.h
new file mode 100644
index 000000000..1b2a6d63a
--- /dev/null
+++ b/src/include/compiled.h
@@ -0,0 +1,187 @@
+/*-
+ * Copyright (c) 2014-present MongoDB, Inc.
+ * Copyright (c) 2008-2014 WiredTiger, Inc.
+ *	All rights reserved.
+ *
+ * See the file LICENSE for redistribution information.
+ */
+
+/*******************************************
+ * API enumeration.
+ *******************************************/
+/*! Permitted values used by WT_CONNECTION::compile_config. */
+/*
+ * DO NOT EDIT: automatically built by dist/api_config.py.
+ * API methods: BEGIN
+ */
+#define WT_API_WT_CONNECTION_add_collator 1
+#define WT_API_WT_CONNECTION_add_compressor 2
+#define WT_API_WT_CONNECTION_add_data_source 3
+#define WT_API_WT_CONNECTION_add_encryptor 4
+#define WT_API_WT_CONNECTION_add_extractor 5
+#define WT_API_WT_CONNECTION_add_storage_source 6
+#define WT_API_WT_CONNECTION_close 7
+#define WT_API_WT_CONNECTION_debug_info 8
+#define WT_API_WT_CONNECTION_load_extension 9
+#define WT_API_WT_CONNECTION_open_session 10
+#define WT_API_WT_CONNECTION_query_timestamp 11
+#define WT_API_WT_CONNECTION_reconfigure 12
+#define WT_API_WT_CONNECTION_rollback_to_stable 13
+#define WT_API_WT_CONNECTION_set_file_system 14
+#define WT_API_WT_CONNECTION_set_timestamp 15
+#define WT_API_WT_CURSOR_close 16
+#define WT_API_WT_CURSOR_reconfigure 17
+#define WT_API_WT_SESSION_alter 18
+#define WT_API_WT_SESSION_begin_transaction 19
+#define WT_API_WT_SESSION_checkpoint 20
+#define WT_API_WT_SESSION_close 21
+#define WT_API_WT_SESSION_commit_transaction 22
+#define WT_API_WT_SESSION_compact 23
+#define WT_API_WT_SESSION_create 24
+#define WT_API_WT_SESSION_drop 25
+#define WT_API_WT_SESSION_flush_tier 26
+#define WT_API_WT_SESSION_join 27
+#define WT_API_WT_SESSION_log_flush 28
+#define WT_API_WT_SESSION_log_printf 29
+#define WT_API_WT_SESSION_open_cursor 30
+#define WT_API_WT_SESSION_prepare_transaction 31
+#define WT_API_WT_SESSION_query_timestamp 32
+#define WT_API_WT_SESSION_reconfigure 33
+#define WT_API_WT_SESSION_rename 34
+#define WT_API_WT_SESSION_reset 35
+#define WT_API_WT_SESSION_reset_snapshot 36
+#define WT_API_WT_SESSION_rollback_transaction 37
+#define WT_API_WT_SESSION_salvage 38
+#define WT_API_WT_SESSION_strerror 39
+#define WT_API_WT_SESSION_timestamp_transaction 40
+#define WT_API_WT_SESSION_truncate 41
+#define WT_API_WT_SESSION_upgrade 42
+#define WT_API_WT_SESSION_verify 43
+#define WT_API_colgroup_meta 44
+#define WT_API_file_config 45
+#define WT_API_file_meta 46
+#define WT_API_index_meta 47
+#define WT_API_lsm_meta 48
+#define WT_API_object_meta 49
+#define WT_API_table_meta 50
+#define WT_API_tier_meta 51
+#define WT_API_tiered_meta 52
+#define WT_API_wiredtiger_open 53
+#define WT_API_wiredtiger_open_all 54
+#define WT_API_wiredtiger_open_basecfg 55
+#define WT_API_wiredtiger_open_usercfg 56
+/*
+ * API methods: END
+ */
+
+/*******************************************
+ * API configuration keys.
+ *******************************************/
+/*
+ * DO NOT EDIT: automatically built by dist/api_config.py.
+ * API configuration keys: BEGIN
+ */
+#define WT_API_CONNECTION_RECONFIGURE_BLOCK_CACHE 0
+#define WT_API_CONNECTION_RECONFIGURE_CACHE_MAX_WAIT_MS 1
+#define WT_API_CONNECTION_RECONFIGURE_CACHE_OVERHEAD 2
+#define WT_API_CONNECTION_RECONFIGURE_CACHE_SIZE 3
+#define WT_API_CONNECTION_RECONFIGURE_CHECKPOINT 4
+#define WT_API_CONNECTION_RECONFIGURE_COMPATIBILITY 5
+#define WT_API_CONNECTION_RECONFIGURE_DEBUG_MODE 6
+#define WT_API_CONNECTION_RECONFIGURE_ERROR_PREFIX 7
+#define WT_API_CONNECTION_RECONFIGURE_EVICTION 8
+#define WT_API_CONNECTION_RECONFIGURE_EVICTION_CHECKPOINT_TARGET 9
+#define WT_API_CONNECTION_RECONFIGURE_EVICTION_DIRTY_TARGET 10
+#define WT_API_CONNECTION_RECONFIGURE_EVICTION_DIRTY_TRIGGER 11
+#define WT_API_CONNECTION_RECONFIGURE_EVICTION_TARGET 12
+#define WT_API_CONNECTION_RECONFIGURE_EVICTION_TRIGGER 13
+#define WT_API_CONNECTION_RECONFIGURE_EVICTION_UPDATES_TARGET 14
+#define WT_API_CONNECTION_RECONFIGURE_EVICTION_UPDATES_TRIGGER 15
+#define WT_API_CONNECTION_RECONFIGURE_FILE_MANAGER 16
+#define WT_API_CONNECTION_RECONFIGURE_HISTORY_STORE 17
+#define WT_API_CONNECTION_RECONFIGURE_IO_CAPACITY 18
+#define WT_API_CONNECTION_RECONFIGURE_JSON_OUTPUT 19
+#define WT_API_CONNECTION_RECONFIGURE_LOG 20
+#define WT_API_CONNECTION_RECONFIGURE_LSM_MANAGER 21
+#define WT_API_CONNECTION_RECONFIGURE_OPERATION_TIMEOUT_MS 22
+#define WT_API_CONNECTION_RECONFIGURE_OPERATION_TRACKING 23
+#define WT_API_CONNECTION_RECONFIGURE_SHARED_CACHE 24
+#define WT_API_CONNECTION_RECONFIGURE_STATISTICS 25
+#define WT_API_CONNECTION_RECONFIGURE_STATISTICS_LOG 26
+#define WT_API_CONNECTION_RECONFIGURE_TIERED_MANAGER 27
+#define WT_API_CONNECTION_RECONFIGURE_TIERED_STORAGE 28
+#define WT_API_CONNECTION_RECONFIGURE_TIMING_STRESS_FOR_TEST 29
+#define WT_API_CONNECTION_RECONFIGURE_VERBOSE 30
+#define WT_API_SESSION_OPEN_CURSOR_APPEND 0
+#define WT_API_SESSION_OPEN_CURSOR_BULK 1
+#define WT_API_SESSION_OPEN_CURSOR_CHECKPOINT 2
+#define WT_API_SESSION_OPEN_CURSOR_CHECKPOINT_WAIT 3
+#define WT_API_SESSION_OPEN_CURSOR_DEBUG 4
+#define WT_API_SESSION_OPEN_CURSOR_DUMP 5
+#define WT_API_SESSION_OPEN_CURSOR_INCREMENTAL 6
+#define WT_API_SESSION_OPEN_CURSOR_NEXT_RANDOM 7
+#define WT_API_SESSION_OPEN_CURSOR_NEXT_RANDOM_SAMPLE_SIZE 8
+#define WT_API_SESSION_OPEN_CURSOR_OVERWRITE 9
+#define WT_API_SESSION_OPEN_CURSOR_PREFIX_SEARCH 10
+#define WT_API_SESSION_OPEN_CURSOR_RAW 11
+#define WT_API_SESSION_OPEN_CURSOR_READ_ONCE 12
+#define WT_API_SESSION_OPEN_CURSOR_READONLY 13
+#define WT_API_SESSION_OPEN_CURSOR_SKIP_SORT_CHECK 14
+#define WT_API_SESSION_OPEN_CURSOR_STATISTICS 15
+#define WT_API_SESSION_OPEN_CURSOR_TARGET 16
+#define WT_API_SESSION_TIMESTAMP_TRANSACTION_COMMIT_TIMESTAMP 0
+#define WT_API_SESSION_TIMESTAMP_TRANSACTION_DURABLE_TIMESTAMP 1
+#define WT_API_SESSION_TIMESTAMP_TRANSACTION_PREPARE_TIMESTAMP 2
+#define WT_API_SESSION_TIMESTAMP_TRANSACTION_READ_TIMESTAMP 3
+/*
+ * API configuration keys: END
+ */
+
+/*
+ * Maximum bindings allowed in a session at once.
+ */
+#define WT_COMPILED_BOUND_MAX 1
+
+/*
+ * WT_COMPILED_VALUE --
+ *	A single compiled value in a configuration string
+ */
+struct __wt_compiled_value {
+    WT_CONFIG_ITEM item;
+};
+
+/*
+ * WT_COMPILED_BIND_DESC --
+ *	A descriptor about a value to be bound.
+ */
+struct __wt_compiled_bind_desc {
+    u_int type;   /* WT_CONFIG_ITEM.type */
+    u_int offset; /* offset into values table */
+};
+
+/*
+ * WT_COMPILED --
+ *	A compiled configuration string
+ */
+struct __wt_compiled {
+    const WT_CONFIG_ENTRY *config_entry;
+    char *orig_config;
+    uint64_t set;     /* if bit is on, set explicitly by configuration */
+    uint64_t unbound; /* if bit is on, value is index into binding values */
+    int bind_link;    /* link to compiled bound entry */
+    WT_COMPILED_BIND_DESC *bind_desc;
+    u_int bind_desc_cnt;
+    size_t bind_desc_size; /* Array size */
+    WT_COMPILED_VALUE *values;
+    size_t values_size; /* Array size */
+};
+
+/*
+ * WT_COMPILED_BOUND --
+ *	A bound configuration string
+ */
+struct __wt_compiled_bound {
+    const WT_COMPILED *compiled;
+    WT_COMPILED_VALUE *values;
+    size_t values_size; /* Array size */
+};
diff --git a/src/include/compiled_inline.h b/src/include/compiled_inline.h
new file mode 100644
index 000000000..c80ee8812
--- /dev/null
+++ b/src/include/compiled_inline.h
@@ -0,0 +1,30 @@
+/*-
+ * Copyright (c) 2014-present MongoDB, Inc.
+ * Copyright (c) 2008-2014 WiredTiger, Inc.
+ *	All rights reserved.
+ *
+ * See the file LICENSE for redistribution information.
+ */
+
+/*
+ * __wt_compiled_has --
+ *     Return true if the configuration string has the api tag.
+ */
+static inline bool
+__wt_compiled_has(WT_CONNECTION_IMPL *conn, const char *config, int api)
+{
+    uint64_t bit;
+
+    bit = (uint64_t)(1 << api);
+    return ((conn->compiled_array[(config - conn->compiled_config_str)]->set & bit) != 0);
+}
+
+/*
+ * __wt_is_compiled_config --
+ *     Return true if the configuration string has been compiled.
+ */
+static inline bool
+__wt_is_compiled_config(WT_CONNECTION_IMPL *conn, const char *config)
+{
+    return (config >= conn->compiled_config_str && config <= conn->compiled_config_current);
+}
diff --git a/src/include/config.h b/src/include/config.h
index 29c576def..0d410d39b 100644
--- a/src/include/config.h
+++ b/src/include/config.h
@@ -16,6 +16,12 @@ struct __wt_config {
     const int8_t *go;
 };
 
+#define WT_CONFIG_COMPILED_TYPE_INT 0
+#define WT_CONFIG_COMPILED_TYPE_BOOLEAN 1
+#define WT_CONFIG_COMPILED_TYPE_STRING 2
+#define WT_CONFIG_COMPILED_TYPE_CATEGORY 3
+#define WT_CONFIG_COMPILED_TYPE_LIST 4
+
 struct __wt_config_check {
     const char *name;
     const char *type;
@@ -23,6 +29,8 @@ struct __wt_config_check {
     const char *checks;
     const WT_CONFIG_CHECK *subconfigs;
     u_int subconfigs_entries;
+    u_int compiled_type;
+    u_int compiled_offset;
 };
 
 #define WT_CONFIG_REF(session, n) (S2C(session)->config_entries[WT_CONFIG_ENTRY_##n])
@@ -34,6 +42,8 @@ struct __wt_config_entry {
 
     const WT_CONFIG_CHECK *checks; /* check array */
     u_int checks_entries;
+    u_int method_id;
+    bool compilable;
 };
 
 struct __wt_config_parser_impl {
diff --git a/src/include/connection.h b/src/include/connection.h
index f361eb283..a345831a8 100644
--- a/src/include/connection.h
+++ b/src/include/connection.h
@@ -519,6 +519,16 @@ struct __wt_connection_impl {
 
     void *lang_private; /* Language specific private storage */
 
+    /* Compiled configuration */
+    char *compiled_config_str; /* Dummy strings used by caller */
+    char *compiled_config_current;
+    WT_COMPILED **compiled_array;
+    uint32_t compiled_cnt;         /* Items in compiled array */
+    uint32_t compiled_session_cnt; /* Items reserved in session array */
+    size_t compiled_size;          /* Size of compiled array */
+    size_t compiled_max;           /* Maximum size of compiled array */
+    size_t compiled_unbound_cnt;
+
     /* If non-zero, all buffers used for I/O will be aligned to this. */
     size_t buffer_alignment;
 
diff --git a/src/include/extern.h b/src/include/extern.h
index 5a05b6c14..c236e1668 100644
--- a/src/include/extern.h
+++ b/src/include/extern.h
@@ -399,6 +399,12 @@ extern int __wt_collator_config(WT_SESSION_IMPL *session, const char *uri, WT_CO
   WT_CONFIG_ITEM *metadata, WT_COLLATOR **collatorp, int *ownp)
   WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
 extern int __wt_compact(WT_SESSION_IMPL *session) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
+extern int __wt_compiled_bind(WT_SESSION_IMPL *session, const char *compiled_str,
+  const char **bound_str, va_list ap) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
+extern int __wt_compiled_config_init(WT_SESSION_IMPL *session, const char **cfg)
+  WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
+extern int __wt_compiled_get(WT_SESSION_IMPL *session, int api, const char *compiled_str,
+  WT_CONFIG_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
 extern int __wt_compressor_config(WT_SESSION_IMPL *session, WT_CONFIG_ITEM *cval,
   WT_COMPRESSOR **compressorp) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
 extern int __wt_cond_auto_alloc(WT_SESSION_IMPL *session, const char *name, uint64_t min,
@@ -409,6 +415,8 @@ extern int __wt_config_collapse(WT_SESSION_IMPL *session, const char **cfg, char
   WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
 extern int __wt_config_get(WT_SESSION_IMPL *session, const char **cfg_arg, WT_CONFIG_ITEM *key,
   WT_CONFIG_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
+extern int __wt_config_get_api(WT_SESSION_IMPL *session, const char **cfg_arg, int api,
+  WT_CONFIG_ITEM *key, WT_CONFIG_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
 extern int __wt_config_getone(WT_SESSION_IMPL *session, const char *config, WT_CONFIG_ITEM *key,
   WT_CONFIG_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
 extern int __wt_config_getones(WT_SESSION_IMPL *session, const char *config, const char *key,
@@ -417,8 +425,12 @@ extern int __wt_config_getones_none(WT_SESSION_IMPL *session, const char *config
   WT_CONFIG_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
 extern int __wt_config_gets(WT_SESSION_IMPL *session, const char **cfg, const char *key,
   WT_CONFIG_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
+extern int __wt_config_gets_api(WT_SESSION_IMPL *session, const char **cfg, int api,
+  const char *key, WT_CONFIG_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
 extern int __wt_config_gets_def(WT_SESSION_IMPL *session, const char **cfg, const char *key,
   int def, WT_CONFIG_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
+extern int __wt_config_gets_def_api(WT_SESSION_IMPL *session, const char **cfg, int api,
+  const char *key, int def, WT_CONFIG_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
 extern int __wt_config_gets_none(WT_SESSION_IMPL *session, const char **cfg, const char *key,
   WT_CONFIG_ITEM *value) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
 extern int __wt_config_merge(WT_SESSION_IMPL *session, const char **cfg, const char *cfg_strip,
@@ -445,6 +457,8 @@ extern int __wt_conn_cache_pool_open(WT_SESSION_IMPL *session)
   WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
 extern int __wt_conn_compat_config(WT_SESSION_IMPL *session, const char **cfg, bool reconfig)
   WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
+extern int __wt_conn_compile_configuration(WT_SESSION_IMPL *session, const char *method,
+  const char *str, const char **compiled_str) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
 extern int __wt_conn_config_init(WT_SESSION_IMPL *session)
   WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
 extern int __wt_conn_dhandle_alloc(WT_SESSION_IMPL *session, const char *uri,
@@ -1701,6 +1715,8 @@ extern void __wt_checkpoint_signal(WT_SESSION_IMPL *session, wt_off_t logsize);
 extern void __wt_checkpoint_tree_reconcile_update(WT_SESSION_IMPL *session, WT_TIME_AGGREGATE *ta);
 extern void __wt_ckpt_verbose(WT_SESSION_IMPL *session, WT_BLOCK *block, const char *tag,
   const char *ckpt_name, const uint8_t *ckpt_string, size_t ckpt_size);
+extern void __wt_compiled_bound_free(WT_SESSION_IMPL *session);
+extern void __wt_compiled_config_discard(WT_SESSION_IMPL *session);
 extern void __wt_cond_auto_wait(
   WT_SESSION_IMPL *session, WT_CONDVAR *cond, bool progress, bool (*run_func)(WT_SESSION_IMPL *));
 extern void __wt_cond_auto_wait_signal(WT_SESSION_IMPL *session, WT_CONDVAR *cond, bool progress,
@@ -1909,6 +1925,8 @@ static inline bool __wt_cache_stuck(WT_SESSION_IMPL *session)
   WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
 static inline bool __wt_checksum_match(const void *chunk, size_t len, uint32_t v)
   WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
+static inline bool __wt_compiled_has(WT_CONNECTION_IMPL *conn, const char *config, int api)
+  WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
 static inline bool __wt_eviction_clean_needed(WT_SESSION_IMPL *session, double *pct_fullp)
   WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
 static inline bool __wt_eviction_dirty_needed(WT_SESSION_IMPL *session, double *pct_fullp)
@@ -1919,6 +1937,8 @@ static inline bool __wt_eviction_updates_needed(WT_SESSION_IMPL *session, double
   WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
 static inline bool __wt_failpoint(WT_SESSION_IMPL *session, uint64_t conn_flag, u_int probability)
   WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
+static inline bool __wt_is_compiled_config(WT_CONNECTION_IMPL *conn, const char *config)
+  WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
 static inline bool __wt_isalnum(u_char c) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
 static inline bool __wt_isalpha(u_char c) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
 static inline bool __wt_isascii(u_char c) WT_GCC_FUNC_DECL_ATTRIBUTE((warn_unused_result));
diff --git a/src/include/session.h b/src/include/session.h
index b5a7479f7..a8e756997 100644
--- a/src/include/session.h
+++ b/src/include/session.h
@@ -72,6 +72,7 @@ struct __wt_session_impl {
     uint64_t operation_start_us;   /* Operation start */
     uint64_t operation_timeout_us; /* Maximum operation period before rollback */
     u_int api_call_counter;        /* Depth of api calls */
+    u_int api_method_id;           /* Method id, for compiled configuration */
 
     WT_DATA_HANDLE *dhandle;           /* Current data handle */
     WT_BUCKET_STORAGE *bucket_storage; /* Current bucket storage and file system */
@@ -146,6 +147,8 @@ struct __wt_session_impl {
     u_int ckpt_handle_next;       /* Next empty slot */
     size_t ckpt_handle_allocated; /* Bytes allocated */
 
+    WT_COMPILED_BOUND *compiled_bound; /* Precompiled configurations */
+
     /*
      * Operations acting on handles.
      *
diff --git a/src/include/wiredtiger.in b/src/include/wiredtiger.in
index 3d0fbcd16..fbf42772f 100644
--- a/src/include/wiredtiger.in
+++ b/src/include/wiredtiger.in
@@ -1095,6 +1095,17 @@ struct __wt_session {
 	int __F(alter)(WT_SESSION *session,
 	    const char *name, const char *config);
 
+	/*!
+	 * Bind values for a compiled configuration.
+	 *
+	 * @param session the session handle
+	 * @param compiled a string returned from WT_CONNECTION::compile_configuration
+	 * @param bound the returned configuration string
+	 * @errors
+	 */
+	int __F(bind_configuration)(WT_SESSION *session,
+	    const char *compiled, const char **bound, ...);
+
 	/*!
 	 * Create a table, column group, index or file.
 	 *
@@ -2422,6 +2433,26 @@ struct __wt_connection {
 	 */
 	int __F(is_new)(WT_CONNECTION *connection);
 
+	/*!
+	 * Compile a configuration string to be used with an API.  The string returned by this
+         * method can be used with the indicated API call as its configuration argument.
+         * Precompiled strings should be used where configuration parsing has proved to be a
+         * performance bottleneck. The lifetime of a configuration string ends when the connection
+         * is closed. The number of compilation strings that can be made is limited by
+         * the \c compile_configuration_count configuration in ::wiredtiger_open .
+         *
+         * Configuration strings containing '%d' or '%s' can have values bound, see
+         * WT_SESSION::bind_configuration.
+	 *
+	 * @param connection the connection handle
+	 * @param method the API to the configuration string applies to, e.g.
+         * WT_SESSION.open_cursor
+	 * @param str the configuration string to compile
+	 * @param compiled the returned configuration string
+	 */
+	int __F(compile_configuration)(WT_CONNECTION *connection, const char *method,
+            const char *str, const char **compiled);
+
 	/*!
 	 * @name Session handles
 	 * @{
@@ -2853,6 +2884,8 @@ struct __wt_connection {
  * version set in the \c release setting.  Has no effect if creating the database., a string;
  * default empty.}
  * @config{ ),,}
+ * @config{compile_configuration_count, limit to number of strings that compile_configuration can
+ * create., a string; default \c 100.}
  * @config{config_base, write the base configuration file if creating the database.  If \c false in
  * the config passed directly to ::wiredtiger_open\, will ignore any existing base configuration
  * file in addition to not creating one.  See @ref config_base for more information., a boolean
@@ -3539,7 +3572,7 @@ struct __wt_config_item {
 	int64_t val;
 
 	/*! Permitted values of the \c type field. */
-	enum {
+	enum __wt_config_item_enum {
 		/*! A string value with quotes stripped. */
 		WT_CONFIG_ITEM_STRING,
 		/*! A boolean literal ("true" or "false"). */
diff --git a/src/include/wt_internal.h b/src/include/wt_internal.h
index f5871dbf7..b897c53e4 100644
--- a/src/include/wt_internal.h
+++ b/src/include/wt_internal.h
@@ -127,6 +127,14 @@ struct __wt_colgroup;
 typedef struct __wt_colgroup WT_COLGROUP;
 struct __wt_compact_state;
 typedef struct __wt_compact_state WT_COMPACT_STATE;
+struct __wt_compiled;
+typedef struct __wt_compiled WT_COMPILED;
+struct __wt_compiled_bind_desc;
+typedef struct __wt_compiled_bind_desc WT_COMPILED_BIND_DESC;
+struct __wt_compiled_bound;
+typedef struct __wt_compiled_bound WT_COMPILED_BOUND;
+struct __wt_compiled_value;
+typedef struct __wt_compiled_value WT_COMPILED_VALUE;
 struct __wt_condvar;
 typedef struct __wt_condvar WT_CONDVAR;
 struct __wt_config;
@@ -423,6 +431,7 @@ typedef uint64_t wt_timestamp_t;
 #include "capacity.h"
 #include "cell.h"
 #include "compact.h"
+#include "compiled.h"
 #include "config.h"
 #include "cursor.h"
 #include "dlh.h"
@@ -467,6 +476,7 @@ typedef uint64_t wt_timestamp_t;
 #include "btree_inline.h" /* required by cursor_inline.h */
 #include "btree_cmp_inline.h"
 #include "column_inline.h"
+#include "compiled_inline.h"
 #include "cursor_inline.h"
 #include "log_inline.h"
 #include "os_fhandle_inline.h"
diff --git a/src/session/session_api.c b/src/session/session_api.c
index 31caa1d4f..b2401db86 100644
--- a/src/session/session_api.c
+++ b/src/session/session_api.c
@@ -183,6 +183,9 @@ __wt_session_release_resources(WT_SESSION_IMPL *session)
     /* Stashed memory. */
     __wt_stash_discard(session);
 
+    /* Compiled cleanup. */
+    __wt_compiled_bound_free(session);
+
     /* Scratch buffers and error memory. */
     if (done) {
         __wt_scr_discard(session);
@@ -795,6 +798,28 @@ err:
     API_END_RET(session, ret);
 }
 
+/*
+ * __session_bind_configuration --
+ *     WT_SESSION->bind_configuration method.
+ */
+static int
+__session_bind_configuration(WT_SESSION *wt_session, const char *compiled, const char **bound, ...)
+{
+    WT_DECL_RET;
+    WT_SESSION_IMPL *session;
+    va_list ap;
+
+    session = (WT_SESSION_IMPL *)wt_session;
+    SESSION_API_CALL_PREPARE_ALLOWED_NOCONF(session, bind_configuration);
+
+    va_start(ap, bound);
+    ret = __wt_compiled_bind(session, compiled, bound, ap);
+    va_end(ap);
+
+err:
+    API_END_RET(session, ret);
+}
+
 /*
  * __wt_session_create --
  *     Internal version of WT_SESSION::create.
@@ -2008,8 +2033,8 @@ __open_session(WT_CONNECTION_IMPL *conn, WT_EVENT_HANDLER *event_handler, const
 {
     static const WT_SESSION
       stds = {NULL, NULL, __session_close, __session_reconfigure, __session_flush_tier,
-        __wt_session_strerror, __session_open_cursor, __session_alter, __session_create,
-        __wt_session_compact, __session_drop, __session_join, __session_log_flush,
+        __wt_session_strerror, __session_open_cursor, __session_alter, __session_bind_configuration,
+        __session_create, __wt_session_compact, __session_drop, __session_join, __session_log_flush,
         __session_log_printf, __session_rename, __session_reset, __session_salvage,
         __session_truncate, __session_upgrade, __session_verify, __session_begin_transaction,
         __session_commit_transaction, __session_prepare_transaction, __session_reset_snapshot,
@@ -2018,11 +2043,11 @@ __open_session(WT_CONNECTION_IMPL *conn, WT_EVENT_HANDLER *event_handler, const
         __wt_session_breakpoint},
       stds_readonly = {NULL, NULL, __session_close, __session_reconfigure, __session_flush_tier,
         __wt_session_strerror, __session_open_cursor, __session_alter_readonly,
-        __session_create_readonly, __wt_session_compact_readonly, __session_drop_readonly,
-        __session_join, __session_log_flush_readonly, __session_log_printf_readonly,
-        __session_rename_readonly, __session_reset, __session_salvage_readonly,
-        __session_truncate_readonly, __session_upgrade_readonly, __session_verify,
-        __session_begin_transaction, __session_commit_transaction,
+        __session_bind_configuration, __session_create_readonly, __wt_session_compact_readonly,
+        __session_drop_readonly, __session_join, __session_log_flush_readonly,
+        __session_log_printf_readonly, __session_rename_readonly, __session_reset,
+        __session_salvage_readonly, __session_truncate_readonly, __session_upgrade_readonly,
+        __session_verify, __session_begin_transaction, __session_commit_transaction,
         __session_prepare_transaction_readonly, __session_reset_snapshot,
         __session_rollback_transaction, __session_timestamp_transaction, __session_query_timestamp,
         __session_checkpoint_readonly, __session_transaction_pinned_range,
diff --git a/src/txn/txn_timestamp.c b/src/txn/txn_timestamp.c
index e818d98b1..a2d94b435 100644
--- a/src/txn/txn_timestamp.c
+++ b/src/txn/txn_timestamp.c
@@ -843,14 +843,12 @@ __wt_txn_set_read_timestamp(WT_SESSION_IMPL *session, wt_timestamp_t read_ts)
 int
 __wt_txn_set_timestamp(WT_SESSION_IMPL *session, const char *cfg[])
 {
-    WT_CONFIG cparser;
-    WT_CONFIG_ITEM ckey, cval;
+    WT_CONFIG_ITEM cval;
     WT_DECL_RET;
-    wt_timestamp_t commit_ts, durable_ts, prepare_ts, read_ts;
+    wt_timestamp_t ts;
     bool set_ts;
 
     set_ts = false;
-    commit_ts = durable_ts = prepare_ts = read_ts = 0;
 
     WT_TRET(__wt_txn_context_check(session, true));
 
@@ -861,50 +859,58 @@ __wt_txn_set_timestamp(WT_SESSION_IMPL *session, const char *cfg[])
     if (cfg == NULL || cfg[0] == NULL || cfg[1] == NULL)
         return (0);
 
-    /*
-     * We take a shortcut in parsing that works because we're only given a base configuration and a
-     * user configuration.
-     */
-    WT_ASSERT(session, cfg[0] != NULL && cfg[1] != NULL && cfg[2] == NULL);
-    __wt_config_init(session, &cparser, cfg[1]);
-    while ((ret = __wt_config_next(&cparser, &ckey, &cval)) == 0) {
-        WT_ASSERT(session, ckey.str != NULL);
-        if (WT_STRING_MATCH("commit_timestamp", ckey.str, ckey.len)) {
-            WT_RET(__wt_txn_parse_timestamp(session, "commit", &commit_ts, &cval));
-            set_ts = true;
-        } else if (WT_STRING_MATCH("durable_timestamp", ckey.str, ckey.len)) {
-            WT_RET(__wt_txn_parse_timestamp(session, "durable", &durable_ts, &cval));
-            set_ts = true;
-        } else if (WT_STRING_MATCH("prepare_timestamp", ckey.str, ckey.len)) {
-            WT_RET(__wt_txn_parse_timestamp(session, "prepare", &prepare_ts, &cval));
-            set_ts = true;
-        } else if (WT_STRING_MATCH("read_timestamp", ckey.str, ckey.len)) {
-            WT_RET(__wt_txn_parse_timestamp(session, "durable", &read_ts, &cval));
-            set_ts = true;
-        }
-    }
-    WT_RET_NOTFOUND_OK(ret);
-
     /* Look for a commit timestamp. */
-    if (commit_ts != 0)
-        WT_RET(__wt_txn_set_commit_timestamp(session, commit_ts));
+    ret = __wt_config_gets_def_api(session, cfg,
+      WT_API_SESSION_TIMESTAMP_TRANSACTION_COMMIT_TIMESTAMP, "commit_timestamp", 0, &cval);
+    WT_RET_NOTFOUND_OK(ret);
+    if (ret == 0 && cval.len != 0) {
+        if (cval.type == WT_CONFIG_ITEM_NUM)
+            ts = (uint64_t)cval.val;
+        else
+            WT_RET(__wt_txn_parse_timestamp(session, "commit", &ts, &cval));
+        WT_RET(__wt_txn_set_commit_timestamp(session, ts));
+        set_ts = true;
+    }
 
     /*
      * Look for a durable timestamp. Durable timestamp should be set only after setting the commit
      * timestamp.
      */
-    if (durable_ts != 0)
-        WT_RET(__wt_txn_set_durable_timestamp(session, durable_ts));
+    ret = __wt_config_gets_def_api(session, cfg,
+      WT_API_SESSION_TIMESTAMP_TRANSACTION_DURABLE_TIMESTAMP, "durable_timestamp", 0, &cval);
+    WT_RET_NOTFOUND_OK(ret);
+    if (ret == 0 && cval.len != 0) {
+        if (cval.type == WT_CONFIG_ITEM_NUM)
+            ts = (uint64_t)cval.val;
+        else
+            WT_RET(__wt_txn_parse_timestamp(session, "durable", &ts, &cval));
+        WT_RET(__wt_txn_set_durable_timestamp(session, ts));
+    }
+
     __wt_txn_publish_durable_timestamp(session);
 
     /* Look for a read timestamp. */
-    if (read_ts != 0)
-        WT_RET(__wt_txn_set_read_timestamp(session, read_ts));
+    WT_RET(__wt_config_gets_def_api(session, cfg,
+      WT_API_SESSION_TIMESTAMP_TRANSACTION_READ_TIMESTAMP, "read_timestamp", 0, &cval));
+    if (ret == 0 && cval.len != 0) {
+        if (cval.type == WT_CONFIG_ITEM_NUM)
+            ts = (uint64_t)cval.val;
+        else
+            WT_RET(__wt_txn_parse_timestamp(session, "read", &ts, &cval));
+        set_ts = true;
+        WT_RET(__wt_txn_set_read_timestamp(session, ts));
+    }
 
     /* Look for a prepare timestamp. */
-    if (prepare_ts != 0)
-        WT_RET(__wt_txn_set_prepare_timestamp(session, prepare_ts));
-
+    WT_RET(__wt_config_gets_def_api(session, cfg,
+      WT_API_SESSION_TIMESTAMP_TRANSACTION_PREPARE_TIMESTAMP, "prepare_timestamp", 0, &cval));
+    if (ret == 0 && cval.len != 0) {
+        if (cval.type == WT_CONFIG_ITEM_NUM)
+            ts = (uint64_t)cval.val;
+        else
+            WT_RET(__wt_txn_parse_timestamp(session, "prepare", &ts, &cval));
+        WT_RET(__wt_txn_set_prepare_timestamp(session, ts));
+    }
     if (set_ts)
         WT_RET(__wt_txn_ts_log(session));
 
diff --git a/test/csuite/CMakeLists.txt b/test/csuite/CMakeLists.txt
index 847e4a90a..05fcb1e9c 100644
--- a/test/csuite/CMakeLists.txt
+++ b/test/csuite/CMakeLists.txt
@@ -4,6 +4,14 @@ include(${CMAKE_SOURCE_DIR}/cmake/helpers.cmake)
 
 set(c_tests)
 
+define_c_test(
+    TARGET test_compile_config
+    SOURCES compile_config/main.c
+    DIR_NAME compile_config
+    ARGUMENTS $<TARGET_FILE:test_compile_config>
+    DEPENDS "WT_POSIX"
+)
+
 define_c_test(
     TARGET test_incr_backup
     SOURCES incr_backup/main.c
diff --git a/test/csuite/compile_config/main.c b/test/csuite/compile_config/main.c
new file mode 100644
index 000000000..e66a6c0b7
--- /dev/null
+++ b/test/csuite/compile_config/main.c
@@ -0,0 +1,219 @@
+/*-
+ * Public Domain 2014-present MongoDB, Inc.
+ * Public Domain 2008-2014 WiredTiger, Inc.
+ *
+ * This is free and unencumbered software released into the public domain.
+ *
+ * Anyone is free to copy, modify, publish, use, compile, sell, or
+ * distribute this software, either in source code form or as a compiled
+ * binary, for any purpose, commercial or non-commercial, and by any
+ * means.
+ *
+ * In jurisdictions that recognize copyright laws, the author or authors
+ * of this software dedicate any and all copyright interest in the
+ * software to the public domain. We make this dedication for the benefit
+ * of the public at large and to the detriment of our heirs and
+ * successors. We intend this dedication to be an overt act of
+ * relinquishment in perpetuity of all present and future rights to this
+ * software under copyright law.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+#include "test_util.h"
+
+#include <signal.h>
+
+/*
+ * compile_check --
+ *     Run tests for the compiled configuration strings.
+ */
+static void
+compile_check(TEST_OPTS *opts, bool first, bool compile)
+{
+    WT_CONNECTION *conn;
+    WT_CURSOR *c;
+    WT_SESSION *session;
+    time_t start, end;
+    const char *compiled;
+    const char *compiled_conn1;
+    const char *compiled_conn2;
+    const char *compiled_dump;
+    const char *compiled_dump_variable;
+    const char *compiled_multi;
+    const char *compiled_overwrite;
+    const char *compiled_ts;
+
+    const char *uri = "table:foo";
+    const char *uri2 = "table:bar";
+
+    testutil_check(wiredtiger_open(opts->home, NULL, "create", &opts->conn));
+    conn = opts->conn;
+
+    if (compile)
+        testutil_check(
+          conn->compile_configuration(conn, "WT_SESSION.open_cursor", "dump=hex", &compiled_dump));
+    else
+        compiled_dump = "dump=hex";
+
+    if (compile)
+        testutil_check(conn->compile_configuration(
+          conn, "WT_SESSION.open_cursor", "dump=%s", &compiled_dump_variable));
+    else
+        compiled_dump_variable = NULL;
+    if (compile)
+        testutil_check(conn->compile_configuration(
+          conn, "WT_SESSION.open_cursor", "overwrite=false", &compiled_overwrite));
+    else
+        compiled_overwrite = "overwrite=false";
+
+    testutil_check(conn->open_session(conn, NULL, NULL, &session));
+    if (first) {
+        testutil_check(session->create(session, uri, "key_format=S,value_format=S"));
+        testutil_check(session->create(session, uri2, "key_format=S,value_format=S"));
+    }
+    testutil_check(session->open_cursor(session, uri, NULL, compiled_dump, &c));
+    testutil_assert((c->flags & WT_CURSTD_DUMP_HEX) != 0);
+    testutil_assert((c->flags & WT_CURSTD_OVERWRITE) != 0);
+    c->close(c);
+
+    testutil_check(session->open_cursor(session, uri, NULL, compiled_overwrite, &c));
+    testutil_assert((c->flags & WT_CURSTD_DUMP_HEX) == 0);
+    testutil_assert((c->flags & WT_CURSTD_OVERWRITE) == 0);
+    c->close(c);
+
+    if (compile)
+        testutil_check(
+          session->bind_configuration(session, compiled_dump_variable, &compiled, "json"));
+    else
+        compiled = "dump=json";
+    testutil_check(session->open_cursor(session, uri, NULL, compiled, &c));
+    testutil_assert((c->flags & WT_CURSTD_DUMP_HEX) == 0);
+    testutil_assert((c->flags & WT_CURSTD_DUMP_JSON) != 0);
+    testutil_assert((c->flags & WT_CURSTD_OVERWRITE) != 0);
+    c->close(c);
+
+    if (compile)
+        testutil_check(
+          session->bind_configuration(session, compiled_dump_variable, &compiled, "hex"));
+    else
+        compiled = "dump=hex";
+
+    testutil_check(session->open_cursor(session, uri, NULL, compiled, &c));
+    testutil_assert((c->flags & WT_CURSTD_DUMP_HEX) != 0);
+    testutil_assert((c->flags & WT_CURSTD_DUMP_JSON) == 0);
+    testutil_assert((c->flags & WT_CURSTD_OVERWRITE) != 0);
+    c->close(c);
+
+    compiled_multi = "raw=1,overwrite=0"; /* TODO: add "debug=(release_evict)" */
+    if (compile)
+        testutil_check(conn->compile_configuration(
+          conn, "WT_SESSION.open_cursor", compiled_multi, &compiled_multi));
+    testutil_check(session->open_cursor(session, uri2, NULL, compiled_multi, &c));
+    // TODO:
+    // testutil_assert((c->flags & WT_CURSTD_OVERWRITE) == 0);
+    // testutil_assert((c->flags & WT_CURSTD_RAW) == 1);
+    c->close(c);
+#define N_ITERATIONS_CURSOR_MULTI 5000000      // 5000000
+#define N_ITERATIONS_CURSOR_OVERWRITE 20000000 // 20000000
+#define N_ITERATIONS_TS 30000000               // 30000000
+#define N_ITERATIONS_RECONFIGURE 10000         // 10000
+    if (true) {
+        time(&start);
+        for (int i = 0; i < N_ITERATIONS_CURSOR_MULTI; i++) {
+            testutil_check(session->open_cursor(session, uri2, NULL, compiled_multi, &c));
+            c->close(c);
+            // if (i % 100000 == 0)
+            //    fprintf(stderr, " %d\n", i);
+        }
+        time(&end);
+        fprintf(stderr, "OPEN_CURSOR MULTI RUN FROM: %s TO ", ctime(&start));
+        fprintf(stderr, "%s: %d secs\n", ctime(&end), (int)(end - start));
+    }
+
+    if (true) {
+        time(&start);
+        for (int i = 0; i < N_ITERATIONS_CURSOR_OVERWRITE; i++) {
+            testutil_check(session->open_cursor(session, uri2, NULL, compiled_overwrite, &c));
+            c->close(c);
+            // if (i % 100000 == 0)
+            //    fprintf(stderr, " %d\n", i);
+        }
+        time(&end);
+        fprintf(stderr, "OPEN_CURSOR RUN OVERWRITE FROM: %s TO ", ctime(&start));
+        fprintf(stderr, "%s: %d secs\n", ctime(&end), (int)(end - start));
+    }
+
+    compiled_conn1 = "eviction_target=80,eviction_trigger=95";
+    compiled_conn2 = "eviction_target=81,eviction_trigger=96";
+    if (compile) {
+        testutil_check(conn->compile_configuration(
+          conn, "WT_CONNECTION.reconfigure", compiled_conn1, &compiled_conn1));
+        testutil_check(conn->compile_configuration(
+          conn, "WT_CONNECTION.reconfigure", compiled_conn2, &compiled_conn2));
+    }
+    if (true) {
+        time(&start);
+        for (int i = 0; i < N_ITERATIONS_RECONFIGURE; i++) {
+            testutil_check(conn->reconfigure(conn, compiled_conn1));
+            testutil_check(conn->reconfigure(conn, compiled_conn2));
+            if (i % 1000 == 0)
+                fprintf(stderr, " %d\n", i);
+        }
+        time(&end);
+        fprintf(stderr, "RECONFIGURE RUN FROM: %s TO ", ctime(&start));
+        fprintf(stderr, "%s: %d secs\n", ctime(&end), (int)(end - start));
+    }
+
+    if (true) {
+        if (compile)
+            testutil_check(conn->compile_configuration(conn, "WT_SESSION.timestamp_transaction",
+              "commit_timestamp=%d,durable_timestamp=%d", &compiled_ts));
+        else
+            compiled_ts = "commit_timestamp=1000,durable_timestamp=1000";
+
+        testutil_check(session->begin_transaction(session, NULL));
+        testutil_check(session->prepare_transaction(session, "prepare_timestamp=500"));
+        time(&start);
+        for (int i = 0; i < N_ITERATIONS_TS; i++) {
+            const char *bound;
+            if (compile)
+                testutil_check(
+                  session->bind_configuration(session, compiled_ts, &bound, 1001, 1001));
+            else
+                bound = compiled_ts;
+            testutil_check(session->timestamp_transaction(session, bound));
+        }
+        time(&end);
+        fprintf(stderr, "TIMESTAMP_TXN RUN FROM: %s TO ", ctime(&start));
+        fprintf(stderr, "%s: %d secs\n", ctime(&end), (int)(end - start));
+
+        testutil_check(session->rollback_transaction(session, NULL));
+    }
+
+    testutil_check(conn->close(conn, NULL));
+}
+
+/*
+ * main --
+ *     Set up the test for compiled configuration strings.
+ */
+int
+main(int argc, char *argv[])
+{
+    TEST_OPTS *opts, _opts;
+    opts = &_opts;
+    memset(opts, 0, sizeof(*opts));
+    testutil_check(testutil_parse_opts(argc, argv, opts));
+    testutil_make_work_dir(opts->home);
+
+    compile_check(opts, true, false);
+    compile_check(opts, false, true);
+
+    return (EXIT_SUCCESS);
+}
