SELECCIONAR DESCOMPRIMIR (texto) DESDE con sqlalchemy

Almaceno la función MySQL Compress para insertar datos comprimidos de blob en la base de datos.

En una pregunta anterior me dieron instrucciones para usar

func.compress 

( mysql Compress () con sqlalchemy )

El problema ahora es que quiero leer también los datos de la base de datos. En mysql lo habría hecho.

 SELECT UNCOMPRESS(text) FROM ... 

Probablemente debería usar un captador en la clase. Intenté hacer algo como:

 get_html(self): return func.uncompress(self.text) 

Pero esto no funciona. Devuelve un sqlalchemy.sql.expression.Function y no la cadena.

Además, no pude encontrar qué funciones contienen la función sqlalchemy.

Cualquier idea sobre cómo podría escribir un captador en el objeto para recuperar los datos no comprimidos.

func es realmente un objeto de fábrica realmente sofisticado para los objetos de funciones especiales que se procesan en SQL en el momento de la consulta; no puede evaluarlos en Python, ya que Python no sabría cómo implementa la base de datos compress() . Por eso no funciona.

SQLAlchemy le permite asignar expresiones SQL a atributos de clase asignados . Si está utilizando la syntax declarativa, amplíe su clase así (no está probado, pero estoy seguro de que este es el camino a seguir):

 from sqlalchemy.orm import column_property class Demo(...): data_uncompressed = column_property(func.uncompress(data)) 

Ahora, cada vez que SQLAlchemy carga una instancia de la base de datos, la consulta SELECT ..., UNCOMPRESS(demotable.data), ... FROM demotable contendrá SELECT ..., UNCOMPRESS(demotable.data), ... FROM demotable .

Editado por Giorgos Komninos: Utilicé el

http://docs.sqlalchemy.org/en/rel_0_7/orm/mapper_config.html#using-a-plain-descriptor

Y funcionó.