Re: Llamadas a C desde postgres

Lists: pgsql-es-ayuda
From: "rogoh" <rogoh(at)dscorp(dot)com(dot)mx>
To: <pgsql-es-ayuda(at)postgresql(dot)org>, <alvherre(at)surnet(dot)cl>, <jp(dot)espino(at)gmail(dot)com>
Subject: Llamadas a C desde postgres
Date: 2005-05-26 02:22:21
Message-ID: 200505260110.j4Q1ASJ27822@linx2.dscorp.com.mx
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Gracias Alvaro y Pablo por su consejos, con lo que me dijeron ya funciona.
Ahora lo que pasa es lo siguiente es que desde postgres quiero mandar un
correo a través del shell de Linux por lo que hice un programita en C que
hace eso, lo compilo y genero el ejecutable y ejecuto el programa y manda el
correo, pero cuando lo compilo y genero el .so y lo agrego como una función
de postgres y lo ejecuto no hace nada, para esto utilice la función de C
“system()”, yo se que esto no es una lista de C pero alguien me podría
orientar sobre si lo que quiero hacer de mandar un correo desde postgres es
posible?.

Gracias de antemano.


From: Jaime Casanova <systemguards(at)gmail(dot)com>
To: rogoh <rogoh(at)dscorp(dot)com(dot)mx>
Cc: pgsql-es-ayuda(at)postgresql(dot)org, alvherre(at)surnet(dot)cl, jp(dot)espino(at)gmail(dot)com
Subject: Re: Llamadas a C desde postgres
Date: 2005-05-26 16:54:14
Message-ID: c2d9e70e05052609547384c737@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

On 5/25/05, rogoh <rogoh(at)dscorp(dot)com(dot)mx> wrote:
>
>
>
> Gracias Alvaro y Pablo por su consejos, con lo que me dijeron ya funciona.
>
> Ahora lo que pasa es lo siguiente es que desde postgres quiero mandar un
> correo a través del shell de Linux por lo que hice un programita en C que
> hace eso, lo compilo y genero el ejecutable y ejecuto el programa y manda el
> correo, pero cuando lo compilo y genero el .so y lo agrego como una función
> de postgres y lo ejecuto no hace nada, para esto utilice la función de C
> "system()", yo se que esto no es una lista de C pero alguien me podría
> orientar sobre si lo que quiero hacer de mandar un correo desde postgres es
> posible?.
>
>
>
No te compliques tanto, busca el proyecto pgMail en pgfoundry.org. es
una funcion en pl/tcl que envia correos.

--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)


From: Alvaro Herrera <alvherre(at)surnet(dot)cl>
To: Jaime Casanova <systemguards(at)gmail(dot)com>
Cc: rogoh <rogoh(at)dscorp(dot)com(dot)mx>, pgsql-es-ayuda(at)postgresql(dot)org, jp(dot)espino(at)gmail(dot)com
Subject: Re: Llamadas a C desde postgres
Date: 2005-05-26 17:26:47
Message-ID: 20050526172647.GA9107@surnet.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

On Thu, May 26, 2005 at 11:54:14AM -0500, Jaime Casanova wrote:
> On 5/25/05, rogoh <rogoh(at)dscorp(dot)com(dot)mx> wrote:
> >
> >
> >
> > Gracias Alvaro y Pablo por su consejos, con lo que me dijeron ya funciona.
> >
> > Ahora lo que pasa es lo siguiente es que desde postgres quiero mandar un
> > correo a través del shell de Linux por lo que hice un programita en C que
> > hace eso, lo compilo y genero el ejecutable y ejecuto el programa y manda el
> > correo, pero cuando lo compilo y genero el .so y lo agrego como una función
> > de postgres y lo ejecuto no hace nada, para esto utilice la función de C
> > "system()", yo se que esto no es una lista de C pero alguien me podría
> > orientar sobre si lo que quiero hacer de mandar un correo desde postgres es
> > posible?.
> >
> >
> >
> No te compliques tanto, busca el proyecto pgMail en pgfoundry.org. es
> una funcion en pl/tcl que envia correos.

De fallar eso, se puede hacer con pl/perl. Ya comentamos ese tema hace
poco tiempo.

--
Alvaro Herrera (<alvherre[a]surnet.cl>)
"Siempre hay que alimentar a los dioses, aunque la tierra esté seca" (Orual)


From: "Roberto Cesar Najera" <rob(at)dcaa(dot)unam(dot)mx>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: campos tipo OID
Date: 2005-05-26 17:36:44
Message-ID: 007701c56219$7d8ca180$8c000a0a@RTP.GOB.MX
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Hola lista hay forma de saber cuanto ocupa en bytes o MG en registro de tipo
OID

de antemano gracias !


From: Juan Pablo Espino <jp(dot)espino(at)gmail(dot)com>
To: Roberto Cesar Najera <rob(at)dcaa(dot)unam(dot)mx>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: campos tipo OID
Date: 2005-05-26 18:53:04
Message-ID: 3e7daec105052611533aa04a93@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Hola,

Un registro de tipo OID?, no estoy seguro de comprender lo que quieres, pero
el Oid de un registro es esto

/*
* Object ID is a fundamental type in Postgres.
*/
typedef unsigned int Oid;

serían 4 bytes, sizeof(Oid)

Saludos

Juan P. Espino


From: Alvaro Herrera <alvherre(at)surnet(dot)cl>
To: Roberto Cesar Najera <rob(at)dcaa(dot)unam(dot)mx>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: campos tipo OID
Date: 2005-05-26 19:16:13
Message-ID: 20050526191613.GB10667@surnet.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

On Thu, May 26, 2005 at 12:36:44PM -0500, Roberto Cesar Najera wrote:
> Hola lista hay forma de saber cuanto ocupa en bytes o MG en registro de tipo
> OID

Estas hablando de un large object? En ese caso, hay una funcion para
conocer el tamaño que puedes aplicar sobre un descriptor de large
object.

--
Alvaro Herrera (<alvherre[a]surnet.cl>)
La web junta la gente porque no importa que clase de mutante sexual seas,
tienes millones de posibles parejas. Pon "buscar gente que tengan sexo con
ciervos incendiándose", y el computador dirá "especifique el tipo de ciervo"
(Jason Alexander)


From: "Ing(dot) Jhon Carrillo - Caracas, Venezuela" <jdigital(at)cantv(dot)net>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: commit dentro de plpgsql
Date: 2005-05-26 19:16:30
Message-ID: 045401c56227$6c698b30$1400a8c0@tgusta2
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Saludos,

En PG 7.4 como puedo utilizar las instrucciones de transacción commit, begin, rollback dentro de una function pl/pgsql?

gracias.

JC


From: Alvaro Herrera <alvherre(at)surnet(dot)cl>
To: "Ing(dot) Jhon Carrillo - Caracas, Venezuela" <jdigital(at)cantv(dot)net>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: commit dentro de plpgsql
Date: 2005-05-26 19:32:45
Message-ID: 20050526193245.GD10667@surnet.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

On Thu, May 26, 2005 at 03:16:30PM -0400, Ing. Jhon Carrillo - Caracas, Venezuela wrote:

> En PG 7.4 como puedo utilizar las instrucciones de transacción
> commit, begin, rollback dentro de una function pl/pgsql?

De ninguna manera. Las funciones son atomicas y ya estan contenidas en
una transaccion, la cual no puedes cerrar hasta despues que la funcion
haya terminado.

--
Alvaro Herrera (<alvherre[a]surnet.cl>)
"You knock on that door or the sun will be shining on places inside you
that the sun doesn't usually shine" (en Death: "The High Cost of Living")


From: "Roberto Cesar Najera" <rob(at)dcaa(dot)unam(dot)mx>
To: "Juan Pablo Espino" <jp(dot)espino(at)gmail(dot)com>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: campos tipo OID
Date: 2005-05-27 20:50:19
Message-ID: 00af01c562fd$b3aa5660$8c000a0a@RTP.GOB.MX
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

mmm, no me referia al tamaño de cada objeto largo por ejemplo cunto mide en bytes cada documento que esta guardado

la pregunta es por que tengo que replicar una tabla que tiene campos de tipo oid y segun esto lo hace pero a la hora de sacar el archivo me dice que no esta

Como puedo saber que es lo que tiene dentro ese campo ?

De natemano gracias !
----- Original Message -----
From: Juan Pablo Espino
To: Roberto Cesar Najera
Cc: Sent: Thursday, May 26, 2005 1:53 PM
Subject: Re: [pgsql-es-ayuda] campos tipo OID

Hola,

Un registro de tipo OID?, no estoy seguro de comprender lo que quieres, pero el Oid de un registro es esto

/*
* Object ID is a fundamental type in Postgres.
*/
typedef unsigned int Oid;

serían 4 bytes, sizeof(Oid)

Saludos

Juan P. Espino


From: Alvaro Herrera <alvherre(at)surnet(dot)cl>
To: Roberto Cesar Najera <rob(at)dcaa(dot)unam(dot)mx>
Cc: Juan Pablo Espino <jp(dot)espino(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: campos tipo OID
Date: 2005-05-28 00:50:30
Message-ID: 20050528005030.GB11279@surnet.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

On Fri, May 27, 2005 at 03:50:19PM -0500, Roberto Cesar Najera wrote:
> mmm, no me referia al tamaño de cada objeto largo por ejemplo cunto
> mide en bytes cada documento que esta guardado

Primero abres el objeto, luego te posicionas en el byte final, luego
haces un "tell", y ese es el largo. Seria mas sencillo si hubiera una
funcion "length" pero no la hay.

alvherre=# create table lo (a oid);
CREATE TABLE
alvherre=# begin;
BEGIN
alvherre=# \lo_import .bashrc
lo_import 25451
alvherre=# insert into lo values (25441);
INSERT 25452 1
alvherre=# commit;
COMMIT

[tiempo despues]

alvherre=# begin;
BEGIN
alvherre=# select * from lo;
a
-------
25441
(1 fila)

alvherre=# select lo_open(25441, -1);
lo_open
---------
0
(1 fila)

alvherre=# select lo_lseek(0, 0, 2);
lo_lseek
----------
1421
(1 fila)

alvherre=# commit;
COMMIT

--
Alvaro Herrera (<alvherre[a]surnet.cl>)
"God is real, unless declared as int"