Alguien lo ha hecho en una funcion trigger:
es que quiero pasar toda la fila que se está actualizando a digamos
un formato como JSON o YAML y entonces necestio sacar los nombres de
las columnas y sus valores respectivos.

--
/\/\;/-----------------------------------------------------
Milton Labanda [miltonlab]
Distro: Debian GNU/Linux 6.0 Squeeze
Blog: http://1000tonlab.wordpress.com
jabber: [email protected] <[email protected]>
"... Solamente la libertad que se somete a la Verdad conduce a la persona
humana a su verdadero bien...". Karol Wojtyla
(:\ Usa Software Legal, usa Software Libre /:)

Search Discussions

  • Jaime Casanova at Jun 9, 2011 at 4:47 pm

    2011/6/9 Milton Labanda <[email protected]>:
    Alguien lo ha hecho en una funcion trigger:
    es que quiero pasar toda la fila que se está actualizando a digamos
    un formato como JSON o YAML y entonces necestio sacar los nombres de
    las columnas y sus valores respectivos.
    tiene que ser en un trigger?

    no se como hacer (o si se puede) que un record se comporte como una
    tabla para extraer los campos con un select pero puedes usar una de
    estas directamente de la tabla o de un select:
    http://www.postgresql.org/docs/9.0/static/functions-xml.html#FUNCTIONS-XML-MAPPING

    --
    Jaime Casanova         www.2ndQuadrant.com
    Professional PostgreSQL: Soporte 24x7 y capacitación
  • Álvaro Hernández Tortosa at Jun 9, 2011 at 5:27 pm
    Thu, Jun 09, 2011 at 11:47:19AM -0500, Jaime Casanova escribió:
    2011/6/9 Milton Labanda <[email protected]>:
    Alguien lo ha hecho en una funcion trigger:
    es que quiero pasar toda la fila que se está actualizando a digamos
    un formato como JSON o YAML y entonces necestio sacar los nombres de
    las columnas y sus valores respectivos.
    tiene que ser en un trigger?

    no se como hacer (o si se puede) que un record se comporte como una
    tabla para extraer los campos con un select pero puedes usar una de
    estas directamente de la tabla o de un select:
    http://www.postgresql.org/docs/9.0/static/functions-xml.html#FUNCTIONS-XML-MAPPING
    Se me ocurre hacer una consulta que mire en pg_attribute los
    nombres de las columnas. A partir de ahí puedes hacer consultas
    dinámicas (EXECUTE .. INTO) para cada columna y ya entonces generar la
    cadena que quieras. Tal vez sea un poco ineficiente (una consulta por
    cada fila y por cada columna), pero si no te importa esto es sencillo y
    fácil :)

    Saludos,

    Álvaro

    --

    Álvaro Hernández Tortosa


    -----------
    NOSYS
    Networked Open SYStems
  • Jaime Casanova at Jun 9, 2011 at 5:56 pm
    2011/6/9 Álvaro Hernández <[email protected]>:
    Se me ocurre hacer una consulta que mire en pg_attribute los
    nombres de las columnas. A partir de ahí puedes hacer consultas
    dinámicas (EXECUTE .. INTO) para cada columna y ya entonces generar la
    cadena que quieras. Tal vez sea un poco ineficiente (una consulta por
    cada fila y por cada columna), pero si no te importa esto es sencillo y
    fácil :)
    o usar plperl

    --
    Jaime Casanova         www.2ndQuadrant.com
    Professional PostgreSQL: Soporte 24x7 y capacitación
  • Milton Labanda at Jun 9, 2011 at 8:57 pm
    veo que en plpython se OLD es un diccionario, alli si creo que se hacen mas
    faciles las cosas

    El 9 de junio de 2011 12:56, Jaime Casanova <[email protected]>escribió:
    2011/6/9 Álvaro Hernández <[email protected]>:
    Se me ocurre hacer una consulta que mire en pg_attribute los
    nombres de las columnas. A partir de ahí puedes hacer consultas
    dinámicas (EXECUTE .. INTO) para cada columna y ya entonces generar la
    cadena que quieras. Tal vez sea un poco ineficiente (una consulta por
    cada fila y por cada columna), pero si no te importa esto es sencillo y
    fácil :)
    o usar plperl

    --
    Jaime Casanova www.2ndQuadrant.com
    Professional PostgreSQL: Soporte 24x7 y capacitación


    --
    /\/\;/-----------------------------------------------------
    Milton Labanda [miltonlab]
    Distro: Debian GNU/Linux 6.0 Squeeze
    Blog: http://1000tonlab.wordpress.com
    jabber: [email protected] <[email protected]>
    "... Solamente la libertad que se somete a la Verdad conduce a la persona
    humana a su verdadero bien...". Karol Wojtyla
    (:\ Usa Software Legal, usa Software Libre /:)
  • Alvaro Herrera at Jun 9, 2011 at 8:59 pm

    Excerpts from Milton Labanda's message of jue jun 09 11:51:11 -0400 2011:
    Alguien lo ha hecho en una funcion trigger:
    es que quiero pasar toda la fila que se está actualizando a digamos
    un formato como JSON o YAML y entonces necestio sacar los nombres de
    las columnas y sus valores respectivos.
    Creo que lo más simple sería pasarlo a hstore y de ahí a YAML o JSON
    http://www.postgresql.org/docs/9.0/static/hstore.html

    --
    Álvaro Herrera <[email protected]>
  • Álvaro Hernández Tortosa at Jun 10, 2011 at 2:57 pm
    Thu, Jun 09, 2011 at 04:59:41PM -0400, Alvaro Herrera escribió:
    Excerpts from Milton Labanda's message of jue jun 09 11:51:11 -0400 2011:
    Alguien lo ha hecho en una funcion trigger:
    es que quiero pasar toda la fila que se está actualizando a digamos
    un formato como JSON o YAML y entonces necestio sacar los nombres de
    las columnas y sus valores respectivos.
    Creo que lo más simple sería pasarlo a hstore y de ahí a YAML o JSON
    http://www.postgresql.org/docs/9.0/static/hstore.html
    hstore es probablemente una muy buena idea.

    Ahora bien, probablemente la mejor de todas (IMHO) no sea
    hacerlo en bbdd, sino en aplicación. Hay un ejemplo muy bueno que tal
    vez te venga bien con node.js. Por si resulta de tu interés:

    http://people.planetpostgresql.org/andrew/index.php?/archives/190-Cool-stuff.html

    Saludos,

    Álvaro

    --

    Álvaro Hernández Tortosa


    -----------
    NOSYS
    Networked Open SYStems
  • Alvaro Herrera at Jun 10, 2011 at 4:02 pm

    Excerpts from Álvaro Hernández Tortosa's message of vie jun 10 10:57:49 -0400 2011:

    Ahora bien, probablemente la mejor de todas (IMHO) no sea
    hacerlo en bbdd, sino en aplicación. Hay un ejemplo muy bueno que tal
    vez te venga bien con node.js. Por si resulta de tu interés:

    http://people.planetpostgresql.org/andrew/index.php?/archives/190-Cool-stuff.html
    Es interesante todo el tema de node.js. Una ex-colega de Command
    Prompt, Aurynn Shaw, trabajaba en un "driver" para Postgres,
    https://github.com/aurynn/postgres-js/

    Tenía hartas cosas simpáticas ... yo no me muevo mucho con JS así que
    desconozco el tema, pero conversamos varias veces sobre las mejores
    formas de usar clausuras (refs. a funciones) en diversos lugares.
    http://www.commandprompt.com/blogs/aurynn_shaw/

    Ella trabajó bastante en un ORM para Python, Sympicity, ideado y
    diseñado para gente de bases de datos (en contraposición a uno diseñado
    por gente del área OO, los cuales son horripilantes a los ojos de este
    otro lado de la cancha). Lamentablemente (??) encontró una pega muy
    buena en otro lado (Weta Digital), pero por lo visto sigue trabajando
    en postgres.js.

    saludos

    --
    Álvaro Herrera <[email protected]>
  • Ovnicraft at Jun 10, 2011 at 4:33 pm
    2011/6/10 Alvaro Herrera <[email protected]>
    Excerpts from Álvaro Hernández Tortosa's message of vie jun 10 10:57:49
    -0400 2011:
    Ahora bien, probablemente la mejor de todas (IMHO) no sea
    hacerlo en bbdd, sino en aplicación. Hay un ejemplo muy bueno que tal
    vez te venga bien con node.js. Por si resulta de tu interés:
    http://people.planetpostgresql.org/andrew/index.php?/archives/190-Cool-stuff.html

    Es interesante todo el tema de node.js. Una ex-colega de Command
    Prompt, Aurynn Shaw, trabajaba en un "driver" para Postgres,
    https://github.com/aurynn/postgres-js/

    node.js es lo maximo toda una revolucion en la web, yo use ese driver para
    unas cosas en OpenERP, un CRM con alta concurrencia aun que se le esta
    modificando.

    Tenía hartas cosas simpáticas ... yo no me muevo mucho con JS así que
    desconozco el tema, pero conversamos varias veces sobre las mejores
    formas de usar clausuras (refs. a funciones) en diversos lugares.
    http://www.commandprompt.com/blogs/aurynn_shaw/

    Ella trabajó bastante en un ORM para Python, Sympicity, ideado y
    diseñado para gente de bases de datos (en contraposición a uno diseñado
    por gente del área OO, los cuales son horripilantes a los ojos de este
    otro lado de la cancha). Lamentablemente (??) encontró una pega muy
    buena en otro lado (Weta Digital), pero por lo visto sigue trabajando
    en postgres.js.
    La verdad que una de las razones porque uso postgres (para todo) es lo
    OO-oriented que es :).

    Saludos,
    saludos

    --
    Álvaro Herrera <[email protected]>

    --
    Sent via ecpug mailing list ([email protected])
    To make changes to your subscription:
    http://www.postgresql.org/mailpref/ecpug


    --
    Cristian Salamea
    @ovnicraft
  • Milton Labanda at Jun 10, 2011 at 5:22 pm
    está interesante,
    pero lo he hecho ya con plpython y ahora el problema que quierea crearme una
    funcion independiente
    para traducir cualquier ROW a mi formato,
    pero veo que plpython no acepta por ejemplo anyelement o cosas así, en los
    foros
    he visto que no hay. pero creo que seria bueno que se agregar alguna forma
    de que en los parametros de una funcion se pudiera recibri cualquier
    registro (
    es que no quiero que sea especifico para que sea invocable desde un trigger
    de una
    tabla especifica)

    El 9 de junio de 2011 15:59, Alvaro Herrera <[email protected]>escribió:
    Excerpts from Milton Labanda's message of jue jun 09 11:51:11 -0400 2011:
    Alguien lo ha hecho en una funcion trigger:
    es que quiero pasar toda la fila que se está actualizando a digamos
    un formato como JSON o YAML y entonces necestio sacar los nombres de
    las columnas y sus valores respectivos.
    Creo que lo más simple sería pasarlo a hstore y de ahí a YAML o JSON
    http://www.postgresql.org/docs/9.0/static/hstore.html

    --
    Álvaro Herrera <[email protected]>


    --
    /\/\;/-----------------------------------------------------
    Milton Labanda [miltonlab]
    Distro: Debian GNU/Linux 6.0 Squeeze
    Blog: http://1000tonlab.wordpress.com
    jabber: [email protected] <[email protected]>
    "... Solamente la libertad que se somete a la Verdad conduce a la persona
    humana a su verdadero bien...". Karol Wojtyla
    (:\ Usa Software Legal, usa Software Libre /:)
  • Milton Labanda at Jun 10, 2011 at 5:24 pm
    estaba pensando en modificar el codigo de la funcion db_urlencode() del
    modulo skytools
    alguien lo ha usado....

    El 10 de junio de 2011 12:22, Milton Labanda <[email protected]>escribió:
    está interesante,
    pero lo he hecho ya con plpython y ahora el problema que quierea crearme
    una funcion independiente
    para traducir cualquier ROW a mi formato,
    pero veo que plpython no acepta por ejemplo anyelement o cosas así, en los
    foros
    he visto que no hay. pero creo que seria bueno que se agregar alguna forma
    de que en los parametros de una funcion se pudiera recibri cualquier
    registro (
    es que no quiero que sea especifico para que sea invocable desde un trigger
    de una
    tabla especifica)

    El 9 de junio de 2011 15:59, Alvaro Herrera <[email protected]>escribió:

    Excerpts from Milton Labanda's message of jue jun 09 11:51:11 -0400 2011:
    Alguien lo ha hecho en una funcion trigger:
    es que quiero pasar toda la fila que se está actualizando a digamos
    un formato como JSON o YAML y entonces necestio sacar los nombres de
    las columnas y sus valores respectivos.
    Creo que lo más simple sería pasarlo a hstore y de ahí a YAML o JSON
    http://www.postgresql.org/docs/9.0/static/hstore.html

    --
    Álvaro Herrera <[email protected]>


    --
    /\/\;/-----------------------------------------------------
    Milton Labanda [miltonlab]
    Distro: Debian GNU/Linux 6.0 Squeeze
    Blog: http://1000tonlab.wordpress.com
    jabber: [email protected] <[email protected]>
    "... Solamente la libertad que se somete a la Verdad conduce a la persona
    humana a su verdadero bien...". Karol Wojtyla
    (:\ Usa Software Legal, usa Software Libre /:)

    --
    /\/\;/-----------------------------------------------------
    Milton Labanda [miltonlab]
    Distro: Debian GNU/Linux 6.0 Squeeze
    Blog: http://1000tonlab.wordpress.com
    jabber: [email protected] <[email protected]>
    "... Solamente la libertad que se somete a la Verdad conduce a la persona
    humana a su verdadero bien...". Karol Wojtyla
    (:\ Usa Software Legal, usa Software Libre /:)
  • Alvaro Herrera at Jun 10, 2011 at 6:05 pm

    Excerpts from Milton Labanda's message of vie jun 10 13:22:06 -0400 2011:
    está interesante,
    pero lo he hecho ya con plpython y ahora el problema que quierea crearme una
    funcion independiente
    para traducir cualquier ROW a mi formato,
    Sí, encerrarse a sí mismo en una esquina es una idea genial.
    La recomiendo 100%.

    ¿O no?
    http://www.flickr.com/photos/[email protected]/4952414851/in/[email protected]

    --
    Álvaro Herrera <[email protected]>

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouppgsql-es-ayuda @
categoriespostgresql
postedJun 9, '11 at 3:51p
activeJun 10, '11 at 6:05p
posts12
users5
websitepostgresql.org.es
irc#postgresql

People

Translate

site design / logo © 2023 Grokbase