diff --git a/edb/edgeql/compiler/config_desc.py b/edb/edgeql/compiler/config_desc.py index 08b18f397f4..b07a8cb0d04 100644 --- a/edb/edgeql/compiler/config_desc.py +++ b/edb/edgeql/compiler/config_desc.py @@ -51,7 +51,9 @@ def compile_describe_config( ctx.env.schema, scope, ctx.env.options.testmode) config_ast = qlparser.parse_fragment(config_edgeql) - return dispatch.compile(config_ast, ctx=ctx) + with ctx.new() as subctx: + subctx.allow_factoring() + return dispatch.compile(config_ast, ctx=subctx) def _describe_config( diff --git a/edb/server/compiler_pool/worker_proc.py b/edb/server/compiler_pool/worker_proc.py index a0990c382e2..b917156abaa 100644 --- a/edb/server/compiler_pool/worker_proc.py +++ b/edb/server/compiler_pool/worker_proc.py @@ -22,6 +22,7 @@ import os import pickle import signal +import sys import time import traceback @@ -115,6 +116,8 @@ def main(get_handler): parser.add_argument("--version-serial", type=int) args = parser.parse_args() + sys.setrecursionlimit(2000) + ql_parser.preload_spec() gc.freeze() diff --git a/tests/test_edgeql_userddl.py b/tests/test_edgeql_userddl.py index 348618a9e45..5fd2a0e83e7 100644 --- a/tests/test_edgeql_userddl.py +++ b/tests/test_edgeql_userddl.py @@ -447,6 +447,13 @@ async def test_edgeql_userddl_all_extensions_01(self): COMMIT MIGRATION; """) + await self.con.query(""" + describe current database config as ddl + """) + await self.con.query(""" + describe instance config as ddl + """) + await self.con.execute(f""" START MIGRATION TO {{ {ext_commands}