def test_server_compiler_compile_edgeql_script(self): compiler.compile_edgeql_script( self._std_schema, self.schema, modaliases={None: 'test'}, eql=''' SELECT Foo { bar } ''', )
def test_server_compiler_compile_edgeql_script(self): compiler = tb.new_compiler() context = edbcompiler.new_compiler_context( user_schema=self.schema, modaliases={None: 'default'}, ) edbcompiler.compile_edgeql_script( compiler=compiler, ctx=context, eql=''' SELECT Foo { bar } ''', )
async def _get_dbs_and_roles( pgconn: asyncpg.Connection, ) -> Tuple[List[str], List[str]]: compiler = edbcompiler.Compiler() await compiler.initialize_from_pg(pgconn) compilerctx = edbcompiler.new_compiler_context( user_schema=s_schema.FlatSchema(), global_schema=s_schema.FlatSchema(), expected_cardinality_one=False, single_statement=True, output_format=edbcompiler.IoFormat.JSON, bootstrap_mode=True, ) _, get_databases_sql = edbcompiler.compile_edgeql_script( compiler, compilerctx, 'SELECT sys::Database.name', ) databases = list( sorted( json.loads(await pgconn.fetchval(get_databases_sql)), key=lambda dname: edbdef.EDGEDB_TEMPLATE_DB in dname, )) _, get_roles_sql = edbcompiler.compile_edgeql_script( compiler, compilerctx, '''SELECT sys::Role { name, parents := .member_of.name, }''', ) roles = json.loads(await pgconn.fetchval(get_roles_sql)) sorted_roles = list( topological.sort({ r['name']: topological.DepGraphEntry( item=r['name'], deps=r['parents'], extra=False, ) for r in roles })) return databases, sorted_roles
async def _get_dbs_and_roles(pgconn) -> Tuple[List[str], List[str]]: compiler = edbcompiler.Compiler({}) await compiler.ensure_initialized(pgconn) schema = compiler.get_std_schema() compilerctx = edbcompiler.new_compiler_context( schema, expected_cardinality_one=False, single_statement=True, output_format=edbcompiler.IoFormat.JSON, ) schema, get_databases_sql = edbcompiler.compile_edgeql_script( compiler, compilerctx, 'SELECT sys::Database.name', ) databases = list( sorted( json.loads(await pgconn.fetchval(get_databases_sql)), key=lambda dname: dname == edbdef.EDGEDB_TEMPLATE_DB, )) schema, get_roles_sql = edbcompiler.compile_edgeql_script( compiler, compilerctx, '''SELECT sys::Role { name, parents := .member_of.name, }''', ) roles = json.loads(await pgconn.fetchval(get_roles_sql)) sorted_roles = list( topological.sort({ r['name']: topological.DepGraphEntry( item=r['name'], deps=r['parents'], extra=False, ) for r in roles })) return databases, sorted_roles
def compile_bootstrap_script( compiler: edbcompiler.Compiler, schema: s_schema.Schema, eql: str, *, single_statement: bool = False, expected_cardinality_one: bool = False, ) -> Tuple[s_schema.Schema, str]: ctx = edbcompiler.new_compiler_context( schema=schema, single_statement=single_statement, expected_cardinality_one=expected_cardinality_one, json_parameters=True, output_format=edbcompiler.IoFormat.JSON, ) return edbcompiler.compile_edgeql_script(compiler, ctx, eql)