def _apply_field_ast( self, schema: s_schema.Schema, context: sd.CommandContext, node: qlast.DDLOperation, op: sd.AlterObjectProperty, ) -> None: assert isinstance(node, qlast.CreateCast) new_value: Any = op.new_value if op.property == 'from_type': # In a cast we can only have pure types, so this is going # to be a TypeName. node.from_type = cast(qlast.TypeName, utils.typeref_to_ast(schema, new_value)) elif op.property == 'to_type': # In a cast we can only have pure types, so this is going # to be a TypeName. node.to_type = cast(qlast.TypeName, utils.typeref_to_ast(schema, new_value)) elif op.property == 'code': if node.code is None: node.code = qlast.CastCode() node.code.code = new_value elif op.property == 'language': if node.code is None: node.code = qlast.CastCode() node.code.language = new_value elif op.property == 'from_function' and new_value: if node.code is None: node.code = qlast.CastCode() node.code.from_function = new_value elif op.property == 'from_expr' and new_value: if node.code is None: node.code = qlast.CastCode() node.code.from_expr = new_value elif op.property == 'from_cast' and new_value: if node.code is None: node.code = qlast.CastCode() node.code.from_cast = new_value else: super()._apply_field_ast(schema, context, node, op)
def _apply_field_ast( self, schema: s_schema.Schema, context: sd.CommandContext, node: qlast.DDLOperation, op: sd.AlterObjectProperty, ) -> None: assert isinstance(node, qlast.CreateOperator) new_value: Any = op.new_value if op.property == 'return_type': node.returning = utils.typeref_to_ast(schema, new_value) elif op.property == 'return_typemod': node.returning_typemod = new_value elif op.property == 'code': if node.code is None: node.code = qlast.OperatorCode() node.code.code = new_value elif op.property == 'language': if node.code is None: node.code = qlast.OperatorCode() node.code.language = new_value elif op.property == 'from_function' and new_value: if node.code is None: node.code = qlast.OperatorCode() node.code.from_function = new_value elif op.property == 'from_expr' and new_value: if node.code is None: node.code = qlast.OperatorCode() node.code.from_expr = new_value elif op.property == 'from_operator' and new_value: if node.code is None: node.code = qlast.OperatorCode() node.code.from_operator = tuple(new_value) else: super()._apply_field_ast(schema, context, node, op)