def compiled( cls: Type[Expression], expr: Expression, schema: s_schema.Schema, *, options: Optional[qlcompiler.CompilerOptions] = None, as_fragment: bool = False, ) -> Expression: from edb.ir import ast as irast_ if as_fragment: ir: irast_.Command = qlcompiler.compile_ast_fragment_to_ir( expr.qlast, schema=schema, options=options, ) else: ir = qlcompiler.compile_ast_to_ir( expr.qlast, schema=schema, options=options, ) assert isinstance(ir, irast_.Statement) return cls( text=expr.text, refs=so.ObjectSet.create(schema, ir.schema_refs), _qlast=expr.qlast, _irast=ir, )
def compiled( cls: Type[Expression], expr: Expression, schema: s_schema.Schema, *, as_fragment: bool = False, modaliases: Optional[Mapping[Optional[str], str]] = None, parent_object_type: Optional[so.ObjectMeta] = None, anchors: Optional[ Mapping[Union[str, qlast_.SpecialAnchorT], so.Object] ] = None, path_prefix_anchor: Optional[qlast_.SpecialAnchorT] = None, allow_generic_type_output: bool = False, func_params: Optional[s_func.ParameterLikeList] = None, singletons: Sequence[s_types.Type] = (), ) -> Expression: from edb.edgeql import compiler as qlcompiler from edb.ir import ast as irast_ if as_fragment: ir: irast_.Command = qlcompiler.compile_ast_fragment_to_ir( expr.qlast, schema=schema, modaliases=modaliases, anchors=anchors, path_prefix_anchor=path_prefix_anchor, ) else: ir = qlcompiler.compile_ast_to_ir( expr.qlast, schema=schema, modaliases=modaliases, anchors=anchors, path_prefix_anchor=path_prefix_anchor, func_params=func_params, parent_object_type=parent_object_type, allow_generic_type_output=allow_generic_type_output, singletons=singletons, ) assert isinstance(ir, irast_.Statement) return cls( text=expr.text, origtext=expr.origtext, refs=so.ObjectSet.create(schema, ir.schema_refs), _qlast=expr.qlast, _irast=ir, )
def get_ir_default(self, *, schema): if self.get_default(schema) is None: return None from edb.edgeql import compiler as ql_compiler from edb.ir import utils as irutils ql_default = self.get_ql_default(schema) ir = ql_compiler.compile_ast_fragment_to_ir( ql_default, schema, location=f'default of the {self.get_name(schema)} parameter') if not irutils.is_const(ir.expr): raise ValueError('expression not constant') return ir
def compiled(cls, expr, schema, *, as_fragment=False, modaliases=None, parent_object_type=None, anchors=None, path_prefix_anchor=None, allow_generic_type_output=False, func_params=None, singletons=None) -> Expression: from edb.edgeql import compiler as qlcompiler if as_fragment: ir = qlcompiler.compile_ast_fragment_to_ir( expr.qlast, schema=schema, modaliases=modaliases, anchors=anchors, path_prefix_anchor=path_prefix_anchor, ) else: ir = qlcompiler.compile_ast_to_ir( expr.qlast, schema=schema, modaliases=modaliases, anchors=anchors, path_prefix_anchor=path_prefix_anchor, func_params=func_params, parent_object_type=parent_object_type, allow_generic_type_output=allow_generic_type_output, singletons=singletons, ) return cls( text=expr.text, origtext=expr.origtext, refs=so.ObjectSet.create(schema, ir.schema_refs), _qlast=expr.qlast, _irast=ir, )