Duda sobre startup_cost y total_cost en plantree

Lists: pgsql-es-ayuda
From: LDC - Carmen Brando <carmen(at)ldc(dot)usb(dot)ve>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Sobre variable targetList en una estructura Query
Date: 2006-09-24 13:36:15
Message-ID: Pine.LNX.4.64.0609240930020.11495@leto.ldc.usb.ve
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda


(va sin acentos)

Saludos,
Necesitamos una ayuda para comprender exactamente que es el
atributo targetList en la estructura Query, ya que estamos implementando
unos nuevos operadores en Postgres para consultas basadas en preferencias,
especificamente Skyline, Top-k y un nuevo operador hibrido.
Cualquier otro tip o recomendacion que puedan proporcionarnos sera
muy agradecida dado que se trata de nuestro trabajo de grado.

Agradeciendo de antemano,
Vanessa Gonzalez y Carmen Brando
Estudiantes de Ing. de Computacion de la
Universidad Simon Bolivar, Venezuela.


From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: LDC - Carmen Brando <carmen(at)ldc(dot)usb(dot)ve>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Sobre variable targetList en una estructura Query
Date: 2006-09-24 16:08:44
Message-ID: 20060924160844.GC7165@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

LDC - Carmen Brando escribió:

> Necesitamos una ayuda para comprender exactamente que es el
> atributo targetList en la estructura Query, ya que estamos implementando
> unos nuevos operadores en Postgres para consultas basadas en preferencias,
> especificamente Skyline, Top-k y un nuevo operador hibrido.

targetList lleva, bueno, el target list :-) es decir, un listado de
expresiones que son las que se emitiran como columnas en el resultado
del query. Pueden ser constantes, referencias a columnas de alguna
tabla (RangeTableEntry para ser mas preciso), expresiones derivadas de
lo anterior (por ej. una constante mas una ref. a una columna), etc.

Ni idea lo que son Skyline, Top-k ni los operadores hibridos; mucho
menos que tienen que ver con el target list.

> Cualquier otro tip o recomendacion que puedan proporcionarnos sera
> muy agradecida dado que se trata de nuestro trabajo de grado.

--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support


From: LDC - Carmen Brando <carmen(at)ldc(dot)usb(dot)ve>
To: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Sobre variable targetList en una estructura Query
Date: 2006-09-24 18:54:45
Message-ID: Pine.LNX.4.64.0609241451480.16420@agamemnon.ldc.usb.ve
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda


Hola,
Disculpe el abuso pero como su respuesta fue tan rapida :-),
aprevechamos de preguntarle otra duda que surgio, que es un RegProcedure?
lo vimos en backend/util/sort/tuplesort.c.

Muchas gracias por la ayuda!
Carmen y Vanessa.

On Sun, 24 Sep 2006, Alvaro Herrera wrote:

> LDC - Carmen Brando escribió:
>
>> Necesitamos una ayuda para comprender exactamente que es el
>> atributo targetList en la estructura Query, ya que estamos implementando
>> unos nuevos operadores en Postgres para consultas basadas en preferencias,
>> especificamente Skyline, Top-k y un nuevo operador hibrido.
>
> targetList lleva, bueno, el target list :-) es decir, un listado de
> expresiones que son las que se emitiran como columnas en el resultado
> del query. Pueden ser constantes, referencias a columnas de alguna
> tabla (RangeTableEntry para ser mas preciso), expresiones derivadas de
> lo anterior (por ej. una constante mas una ref. a una columna), etc.
>
> Ni idea lo que son Skyline, Top-k ni los operadores hibridos; mucho
> menos que tienen que ver con el target list.
>
>> Cualquier otro tip o recomendacion que puedan proporcionarnos sera
>> muy agradecida dado que se trata de nuestro trabajo de grado.
>
>
>From pgsql-es-ayuda-owner(at)postgresql(dot)org Sun Sep 24 19:33:12 2006
Received: from localhost (wm.hub.org [200.46.204.128])
by postgresql.org (Postfix) with ESMTP id 312E19FB1D5
for <pgsql-es-ayuda-postgresql(dot)org(at)postgresql(dot)org>; Sun, 24 Sep 2006 19:33:11 -0300 (ADT)
Received: from postgresql.org ([200.46.204.71])
by localhost (mx1.hub.org [200.46.204.128]) (amavisd-new, port 10024)
with ESMTP id 38204-05 for <pgsql-es-ayuda-postgresql(dot)org(at)postgresql(dot)org>;
Sun, 24 Sep 2006 22:33:05 +0000 (UTC)
X-Greylist: domain auto-whitelisted by SQLgrey-
Received: from mail.gmx.net (mail.gmx.net [213.165.64.20])
by postgresql.org (Postfix) with SMTP id F22D69FB1CE
for <pgsql-es-ayuda(at)postgresql(dot)org>; Sun, 24 Sep 2006 19:33:04 -0300 (ADT)
Received: (qmail invoked by alias); 24 Sep 2006 22:33:02 -0000
Received: from 202-48-28-200.adsl.terra.cl (EHLO juan) [200.28.48.202]
by mail.gmx.net (mp001) with SMTP; 25 Sep 2006 00:33:02 +0200
X-Authenticated: #13425437
From: "jp @ gmx" <mozstyle2002(at)gmx(dot)net>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: pg_hba.conf - Configurar IP variable
Date: Sun, 24 Sep 2006 18:32:53 -0400
MIME-Version: 1.0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
X-Mailer: Microsoft Office Outlook, Build 11.0.5510
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2962
Thread-Index: AcbfQ4OUiw6wkcDGR+uQRDbuI7E3QgA3fblA
In-Reply-To: <20060923190559(dot)GG5854(at)alvh(dot)no-ip(dot)org>
X-Y-GMX-Trusted: 0
Message-Id: <20060924223304(dot)F22D69FB1CE(at)postgresql(dot)org>
X-Virus-Scanned: Maia Mailguard 1.0.1
X-Spam-Status: No, hits=1.392 tagged_above=0 required=5
tests=MSGID_FROM_MTA_ID, SPF_PASS
X-Spam-Level: *
X-Archive-Number: 200609/475
X-Sequence-Number: 20536

Hola,
Tengo la necesidad de administrar una BD desde un pc que se conecta con =
ISP
que entrega IP variables (dhcp) por lo cual cada vez que el pc cambia de =
ip,
no es posible se conecte a la BD para administrarla, he intentado hacer =
lo
siguiente sin conseguirlo.

pg_hba.conf
host all miBD miip.no-ip.com 255.255.255.0 md5

Donde miip.no-ip.com es un servicio de no-ip.com para quienes no tenemos =
ip
fija ya que miip.no-ip.com se actualiza autom=E1ticamente con la IP de =
mi
conexi=F3n.

He intentado colocar la ip que me da el ISP reemplazando a =
miip.no-ip.com y
funciona.

=BFSer=E1 que pg_hba.conf no es capaz de resolver?
=BFes posible colocar el nombre del equipo remoto en vez de su IP?

Desde ya gracias por la ayuda.
Atte.
Juan=20


From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: LDC - Carmen Brando <carmen(at)ldc(dot)usb(dot)ve>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Sobre variable targetList en una estructura Query
Date: 2006-09-24 23:26:39
Message-ID: 20060924232639.GE13591@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

LDC - Carmen Brando escribió:
>
> Hola,
> Disculpe el abuso pero como su respuesta fue tan rapida :-),
> aprevechamos de preguntarle otra duda que surgio, que es un RegProcedure?
> lo vimos en backend/util/sort/tuplesort.c.

Registered Procedure

RegProcedure, al igual que otros tipos como regclass, regtype,
regoperator, es un tipo de dato que representa un procedimiento
(funcion). Esta definido en src/include/c.h; en terminos concretos, es
simplemente el Oid que identifica a la funcion en cuestion.

En SQL, uno puede usar algo como

select 'pg_class'::regclass

y obtener la representacion apropiada de la tabla pg_catalog.pg_class.
O tambien puede hacer

select '1260'::regclass
y obtener exactamente lo mismo. La conveniencia aqui es ignorar si la
tabla fue pasada como Oid o como nombre.

Con RegProcedure puedes hacer algo similar:

alvherre=# select 'generate_series(int,int4)'::regprocedure;
regprocedure
----------------------------------
generate_series(integer,integer)
(1 fila)

No confundir regprocedure con regproc:

alvherre=# \dT reg*
Listado de tipos de dato
Schema | Nombre | Descripción
------------+--------------+----------------------------------
pg_catalog | regclass | registered class
pg_catalog | regoper | registered operator
pg_catalog | regoperator | registered operator (with args)
pg_catalog | regproc | registered procedure
pg_catalog | regprocedure | registered procedure (with args)
pg_catalog | regtype | registered type
(6 rows)

A regprocedure le das los argumentos, a regproc no.

--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.


From: "Jaime Casanova" <systemguards(at)gmail(dot)com>
To: "LDC - Carmen Brando" <carmen(at)ldc(dot)usb(dot)ve>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Sobre variable targetList en una estructura Query
Date: 2006-09-25 06:01:00
Message-ID: c2d9e70e0609242301p58eb92c3v3b28fd0b2638f4bf@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

On 9/24/06, Alvaro Herrera <alvherre(at)commandprompt(dot)com> wrote:
> LDC - Carmen Brando escribió:
> >
> > Hola,
> > Disculpe el abuso pero como su respuesta fue tan rapida :-),
> > aprevechamos de preguntarle otra duda que surgio, que es un RegProcedure?
> > lo vimos en backend/util/sort/tuplesort.c.
>
> Registered Procedure
>
> En SQL, uno puede usar algo como
>
> select 'pg_class'::regclass
>
> y obtener la representacion apropiada de la tabla pg_catalog.pg_class.
> O tambien puede hacer
>
> select '1260'::regclass
> y obtener exactamente lo mismo. La conveniencia aqui es ignorar si la
> tabla fue pasada como Oid o como nombre.
>
>
> Con RegProcedure puedes hacer algo similar:
>
> alvherre=# select 'generate_series(int,int4)'::regprocedure;
> regprocedure
> ----------------------------------
> generate_series(integer,integer)
> (1 fila)
>

esa consulta puede ser confusa porque pareceria que regresa la misma
cadena de caracteres. esta deja claro que lo que retorna es un oid

template1=# select * from pg_proc
template1 -# where oid = 'generate_series(int,int4)'::regprocedure;
proname | pronamespace | proowner | prolang | proisagg |
prosecdef | proisstrict | proretset | provolatile | pronargs |
prorettype | proargtypes | proallargtypes | proargmodes | proargnames
| prosrc | probin | proacl
-----------------+--------------+----------+---------+----------+-----------+-------------+-----------+-------------+----------+------------+-------------+----------------+-------------+-------------+----------------------+--------+--------
generate_series | 11 | 10 | 12 | f | f
| t | t | v | 2 | 23 |
23 23 | | | |
generate_series_int4 | - |
(1 row)

o quiza esta:

template1=# select 'generate_series(int,int4)'::regprocedure::oid;
oid
------
1067
(1 row)

--
Atentamente,
Jaime Casanova

"Programming today is a race between software engineers striving to
build bigger and better idiot-proof programs and the universe trying
to produce bigger and better idiots.
So far, the universe is winning."
Richard Cook


From: LDC - Carmen Brando <carmen(at)ldc(dot)usb(dot)ve>
To: Jaime Casanova <systemguards(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Sobre variable targetList en una estructura Query
Date: 2006-09-25 15:06:01
Message-ID: Pine.LNX.4.64.0609251054060.30306@lingar.ldc.usb.ve
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda


Hola!
Muchas gracias por las respuestas, en realidad le preguntamos esto
por lo que vimos en src/backend/utils/sort/tuplesort.c, en la
funcion tuplesort_begin_heap ya que definen un RegProcedure
llamado sortFunction, entonces no sabemos exactamente que estan
haciendo con eso, ademas buscamos en el catalogo y no la
conseguimos..
Este sortFunction es acaso una referencia a algunas de las
funciones en el catalogo?

Muchas gracias y disculpen las molestias!

On Mon, 25 Sep 2006, Jaime Casanova wrote:

> On 9/24/06, Alvaro Herrera <alvherre(at)commandprompt(dot)com> wrote:
>> LDC - Carmen Brando escribió:
>> >
>> > Hola,
>> > Disculpe el abuso pero como su respuesta fue tan rapida :-),
>> > aprevechamos de preguntarle otra duda que surgio, que es un RegProcedure?
>> > lo vimos en backend/util/sort/tuplesort.c.
>>
>> Registered Procedure
>>
>> En SQL, uno puede usar algo como
>>
>> select 'pg_class'::regclass
>>
>> y obtener la representacion apropiada de la tabla pg_catalog.pg_class.
>> O tambien puede hacer
>>
>> select '1260'::regclass
>> y obtener exactamente lo mismo. La conveniencia aqui es ignorar si la
>> tabla fue pasada como Oid o como nombre.
>>
>>
>> Con RegProcedure puedes hacer algo similar:
>>
>> alvherre=# select 'generate_series(int,int4)'::regprocedure;
>> regprocedure
>> ----------------------------------
>> generate_series(integer,integer)
>> (1 fila)
>>
>
> esa consulta puede ser confusa porque pareceria que regresa la misma
> cadena de caracteres. esta deja claro que lo que retorna es un oid
>
> template1=# select * from pg_proc
> template1 -# where oid = 'generate_series(int,int4)'::regprocedure;
> proname | pronamespace | proowner | prolang | proisagg |
> prosecdef | proisstrict | proretset | provolatile | pronargs |
> prorettype | proargtypes | proallargtypes | proargmodes | proargnames
> | prosrc | probin | proacl
> -----------------+--------------+----------+---------+----------+-----------+-------------+-----------+-------------+----------+------------+-------------+----------------+-------------+-------------+----------------------+--------+--------
> generate_series | 11 | 10 | 12 | f | f
> | t | t | v | 2 | 23 |
> 23 23 | | | |
> generate_series_int4 | - |
> (1 row)
>
> o quiza esta:
>
> template1=# select 'generate_series(int,int4)'::regprocedure::oid;
> oid
> ------
> 1067
> (1 row)
>
>
>
>From pgsql-es-ayuda-owner(at)postgresql(dot)org Mon Sep 25 13:01:20 2006
Received: from localhost (mx1.hub.org [200.46.208.251])
by postgresql.org (Postfix) with ESMTP id 17C639FB265
for <pgsql-es-ayuda-postgresql(dot)org(at)postgresql(dot)org>; Mon, 25 Sep 2006 13:01:19 -0300 (ADT)
Received: from postgresql.org ([200.46.204.71])
by localhost (mx1.hub.org [200.46.208.251]) (amavisd-new, port 10024)
with ESMTP id 12823-06 for <pgsql-es-ayuda-postgresql(dot)org(at)postgresql(dot)org>;
Mon, 25 Sep 2006 13:01:15 -0300 (ADT)
X-Greylist: from auto-whitelisted by SQLgrey-
Received: from umcervantes.cl (mail.umcervantes.cl [200.27.50.118])
by postgresql.org (Postfix) with ESMTP id AD2B69FB25F
for <pgsql-es-ayuda(at)postgresql(dot)org>; Mon, 25 Sep 2006 13:01:14 -0300 (ADT)
Received: from localhost (sancho2 [127.0.0.1])
by umcervantes.cl (Postfix) with ESMTP id 68235422D1;
Mon, 25 Sep 2006 11:59:52 +0000 (UTC)
X-Virus-Scanned: Debian amavisd-new at umcervantes.cl
Received: from umcervantes.cl ([127.0.0.1])
by localhost (correo.umcervantes.cl [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id Te6KL9pruRSm; Mon, 25 Sep 2006 11:59:41 +0000 (UTC)
Received: from [10.1.1.8] (unknown [10.1.0.3])
by umcervantes.cl (Postfix) with ESMTP id C1C96422C3;
Mon, 25 Sep 2006 11:59:41 +0000 (UTC)
Message-ID: <4517FD75(dot)2020904(at)umcervantes(dot)cl>
Date: Mon, 25 Sep 2006 12:01:57 -0400
From: =?ISO-8859-15?Q?Juan_Mart=EDnez?= <jeugenio(at)umcervantes(dot)cl>
User-Agent: Thunderbird 1.5.0.5 (X11/20060812)
MIME-Version: 1.0
To: Victor Lopez <v(dot)lopez(dot)s(at)ono(dot)com>
CC: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: IMG a BDD.tabla o a Directorio ?
References: <200609251652(dot)30212(dot)v(dot)lopez(dot)s(at)ono(dot)com>
In-Reply-To: <200609251652(dot)30212(dot)v(dot)lopez(dot)s(at)ono(dot)com>
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 8bit
X-Virus-Scanned: Maia Mailguard 1.0.1
X-Spam-Status: No, hits=0.624 tagged_above=0 required=5 tests=AWL,
FORGED_RCVD_HELO
X-Spam-Level:
X-Archive-Number: 200609/488
X-Sequence-Number: 20549

Victor Lopez escribió:
> Mi pregunta es ... es mejor meter una imagen (GIF, JPG, ...) en la base de
> datos, y recuperarla desde ahí, o meterla en un directorio, y solo tener la
> referencia en la base de datos?

Este tema se ha conversado antes. Busca en los archivos de la lista.

keywords: Large Object, Bytea, Oid

--
Juan Martinez G.
Departamento de Informatica
Universidad Miguel de Cervantes


From: alvherre(at)example(dot)com
To: "LDC - Carmen Brando" <carmen(at)ldc(dot)usb(dot)ve>
Cc: "Jaime Casanova" <systemguards(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Sobre variable targetList en una estructura Query
Date: 2006-09-25 20:30:29
Message-ID: 58305.201.221.219.106.1159216229.squirrel@lists.commandprompt.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda


> Muchas gracias por las respuestas, en realidad le preguntamos esto
> por lo que vimos en src/backend/utils/sort/tuplesort.c, en la
> funcion tuplesort_begin_heap ya que definen un RegProcedure
> llamado sortFunction, entonces no sabemos exactamente que estan
> haciendo con eso, ademas buscamos en el catalogo y no la
> conseguimos..
> Este sortFunction es acaso una referencia a algunas de las
> funciones en el catalogo?

Efectivamente, sortFunction es una variable local que se extrae en
SelectSortFunction, y evidentemente depende del tipo de dato que se este
tratando de ordenar, por lo que viene del catalogo. (No es muy evidente,
puesto que se obtiene a traves del SysCache, pero baste indicar que el
syscache se puebla a partir del catalogo).


From: LDC - Carmen Brando <carmen(at)ldc(dot)usb(dot)ve>
To: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Ayuda en el executor
Date: 2006-10-01 20:34:57
Message-ID: Pine.LNX.4.64.0610011620040.31525@akarso.ldc.usb.ve
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda


Hola Alvaro!
Has sido de gran utilidad la informacion que nos has
brindado. Tenemos otra duda:
Estamos implementando un operador Skyline como ya te mencionamos,
especificamente, en nuestra funcion ExecSkyline del archivo
nodeSkyline.c necesitamos ordenar las tuplas que recibimos
antes de empezar nuestro algoritmo; quisimos aprovechar
el archivo tuplesort.c para hacer el ordenamiento externo,
y para eso necesitamos crear unos nodos Sort y SortState
artificiales, la idea es llamar tuplesort_performsort para que
ordene nuestras tuplas.
Pero nos causa mucha confusion el crear y rellenar estos
nodos Sort y SortState. Todo esto lo queremos hacer para no
tener un nodo Sort en el plantree.
En lineas generales, queremos usar un ordenamiento externo sin
tener un nodo de ordenamiento en el plantree.

Esperamos puedas orientarnos un poco sobre esto..
Muchas gracias de antemano.
Vanessa y Carmen.

On Sun, 24 Sep 2006, Alvaro Herrera wrote:

> LDC - Carmen Brando escribió:
>
>> Necesitamos una ayuda para comprender exactamente que es el
>> atributo targetList en la estructura Query, ya que estamos implementando
>> unos nuevos operadores en Postgres para consultas basadas en preferencias,
>> especificamente Skyline, Top-k y un nuevo operador hibrido.
>
> targetList lleva, bueno, el target list :-) es decir, un listado de
> expresiones que son las que se emitiran como columnas en el resultado
> del query. Pueden ser constantes, referencias a columnas de alguna
> tabla (RangeTableEntry para ser mas preciso), expresiones derivadas de
> lo anterior (por ej. una constante mas una ref. a una columna), etc.
>
> Ni idea lo que son Skyline, Top-k ni los operadores hibridos; mucho
> menos que tienen que ver con el target list.
>
>> Cualquier otro tip o recomendacion que puedan proporcionarnos sera
>> muy agradecida dado que se trata de nuestro trabajo de grado.
>
>
>From pgsql-es-ayuda-owner(at)postgresql(dot)org Sun Oct 1 19:30:22 2006
Received: from localhost (wm.hub.org [200.46.204.128])
by postgresql.org (Postfix) with ESMTP id 2C7B19FB3B0
for <pgsql-es-ayuda-postgresql(dot)org(at)postgresql(dot)org>; Sun, 1 Oct 2006 19:30:20 -0300 (ADT)
Received: from postgresql.org ([200.46.204.71])
by localhost (mx1.hub.org [200.46.204.128]) (amavisd-new, port 10024)
with ESMTP id 53143-08 for <pgsql-es-ayuda-postgresql(dot)org(at)postgresql(dot)org>;
Sun, 1 Oct 2006 22:30:15 +0000 (UTC)
X-Greylist: from auto-whitelisted by SQLgrey-
Received: from bugs.unl.edu.ar (bugs.unl.edu.ar [168.96.132.208])
by postgresql.org (Postfix) with ESMTP id 993789FB3AE
for <pgsql-es-ayuda(at)postgresql(dot)org>; Sun, 1 Oct 2006 19:30:14 -0300 (ADT)
Received: from localhost (localhost [127.0.0.1])
by bugs.unl.edu.ar (Postfix) with ESMTP id A66F16F910;
Sun, 1 Oct 2006 19:30:11 -0300 (ART)
Received: from bugs.unl.edu.ar ([127.0.0.1])
by localhost (bugs.unl.edu.ar [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id BctYyD2JCZO6; Sun, 1 Oct 2006 19:30:11 -0300 (ART)
Received: by bugs.unl.edu.ar (Postfix, from userid 33)
id AFA526F90A; Sun, 1 Oct 2006 19:30:10 -0300 (ART)
To: Herberth Lagos <hlagos(at)hylcomputacion(dot)com>
Subject: Re: Off Topic - PHP Transacciones Postgresql
MIME-Version: 1.0
Date: Sun, 1 Oct 2006 19:30:10 -0300
From: Martin Marques <martin(at)bugs(dot)unl(dot)edu(dot)ar>
Cc: Alexander Quilca <alquilca(at)hotmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Organization: Cetul - UNL
In-Reply-To: <001301c6e482$e841ddf0$cf00a8c0(at)SOPORTE>
References: <001301c6e482$e841ddf0$cf00a8c0(at)SOPORTE>
Message-ID: <bbbade7301f2d7b6b01404a7d290645b(at)bugs(dot)unl(dot)edu(dot)ar>
X-Sender: martin(at)bugs(dot)unl(dot)edu(dot)ar
User-Agent: RoundCube Webmail/0.1b
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-Virus-Scanned: Maia Mailguard 1.0.1
X-Spam-Status: No, hits=0 tagged_above=0 required=5 tests=
X-Spam-Level:
X-Archive-Number: 200610/3
X-Sequence-Number: 20696

Eso no soluciona nada. El problema que tiene es que esta iniciando una transaccion en una pagina y quere continuarla en otra, y lo mas comun es que te toque otro hijo de httpd, y por ende, otra conexion con la base de datos.

Consejo, las tranacciones hacelas toda en una instancia de PHP. Ni siquiera te sirve guardar la conexion en la session (mas aun, no se puede).

On Sat, 30 Sep 2006 13:23:49 +0200, "Herberth Lagos" <hlagos(at)hylcomputacion(dot)com> wrote:
> Usa el pg_pconnect() para una conexion persistente, en vez del pg_connect()
>
> Atte,
> Herberth Lagos E
> Ing (E) informática
> ----- Original Message -----
> From: "Alexander Quilca" <alquilca(at)hotmail(dot)com>
> To: <pgsql-es-ayuda(at)postgresql(dot)org>
> Sent: Saturday, September 30, 2006 2:45 AM
> Subject: [pgsql-es-ayuda] Off Topic - PHP Transacciones Postgresql
>
>
> Srs.
>
> Tengo el siguiente problema. Estoy Trabajando con PHP - Postgresql, yo
> defino mi conexion a la base de datos en un archivo conexion.php,
> $cnString = "host=$Server port=5432 dbname=$DbName user=$User
> password=$Pwd";
> $Conn = pg_pconnect($cnString); //conexiones permanentes
>
> , si se conecta pèrfectamente, pero yo incluyo este archivo en donde
> requiero acceder a mi base de datos, en uno de esos archivos inicio una
> tranasaccion en la base de datos, y hago un rollback en otro archivo .php.
>
> Y cuando ejecuto un rollback, me sale que no hay ninguna transacción, al
> parecer se ha perdido la conexion a la bases de datos y vuelve a crear
> otra
> conexion y se elimina la transaccion iniciada, pero esto se salva cuando
> me
> conecto con pconnect.
>
> Las Transacciones las inicio desde el php, con : pg_query($Conn,"begin;")
>
> Tal vez alguien se le presento un problema similar.
>
> Gracias
>
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 10: visita nuestro canal de IRC #postgresql-es en irc.freenode.net
>
>
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 7: no olvides aumentar la configuración del "free space map"
--
---------------------------------------------------------
Lic. Martín Marqués | SELECT 'mmarques' ||
Centro de Telemática | '@' || 'unl.edu.ar';
Universidad Nacional | DBA, Programador,
del Litoral | Administrador
---------------------------------------------------------


From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: LDC - Carmen Brando <carmen(at)ldc(dot)usb(dot)ve>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Ayuda en el executor
Date: 2006-10-01 23:31:35
Message-ID: 20061001233134.GB27696@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

LDC - Carmen Brando escribió:

Hola,

> Estamos implementando un operador Skyline como ya te mencionamos,
> especificamente, en nuestra funcion ExecSkyline del archivo
> nodeSkyline.c necesitamos ordenar las tuplas que recibimos
> antes de empezar nuestro algoritmo; quisimos aprovechar
> el archivo tuplesort.c para hacer el ordenamiento externo,
> y para eso necesitamos crear unos nodos Sort y SortState
> artificiales, la idea es llamar tuplesort_performsort para que
> ordene nuestras tuplas.
> Pero nos causa mucha confusion el crear y rellenar estos
> nodos Sort y SortState. Todo esto lo queremos hacer para no
> tener un nodo Sort en el plantree.
> En lineas generales, queremos usar un ordenamiento externo sin
> tener un nodo de ordenamiento en el plantree.

Entiendo. La verdad, no tengo idea como hacer eso. Lo que yo
intentaria seria lo contrario -- indicarle al ejecutor que la entrada
del Skyline debe estar ordenada de antemano. Porque es posible que la
entrada venga ordenada sin necesidad de invocar el ordenamiento, por
ejemplo si viniera de un indexscan de un indice que siga ese mismo
orden.

De esta forma, ademas, el ejecutor deberia agregar un nodo Sort
automaticamente segun sea necesario.

No se si esto es posible con la infraestructura actual.

--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.


From: LDC - Carmen Brando <carmen(at)ldc(dot)usb(dot)ve>
To: Jaime Casanova <systemguards(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Ayuda sobre forzar la posicion de un nodo en el plan tree
Date: 2006-10-04 13:59:54
Message-ID: Pine.LNX.4.64.0610040955330.15499@leto.ldc.usb.ve
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda


Hola,
Otra vez muchas gracias por la ayuda proporcionada, en cuanto al
problema anterior, ya lo resolvimos.
Tenemos una duda un poco teorica:
Queremos asegurar que nuestro algoritmo (nodo) de Skyline se
ejecute estrictamente despues del nodo sort/group by.
Si puede arrojar un poco de luz sobre este asunto estaremos
muy agradecidas :).

Saludos,
Vanessa y Carmen.

On Mon, 25 Sep 2006, Jaime Casanova wrote:

> On 9/24/06, Alvaro Herrera <alvherre(at)commandprompt(dot)com> wrote:
>> LDC - Carmen Brando escribió:
>> >
>> > Hola,
>> > Disculpe el abuso pero como su respuesta fue tan rapida :-),
>> > aprevechamos de preguntarle otra duda que surgio, que es un RegProcedure?
>> > lo vimos en backend/util/sort/tuplesort.c.
>>
>> Registered Procedure
>>
>> En SQL, uno puede usar algo como
>>
>> select 'pg_class'::regclass
>>
>> y obtener la representacion apropiada de la tabla pg_catalog.pg_class.
>> O tambien puede hacer
>>
>> select '1260'::regclass
>> y obtener exactamente lo mismo. La conveniencia aqui es ignorar si la
>> tabla fue pasada como Oid o como nombre.
>>
>>
>> Con RegProcedure puedes hacer algo similar:
>>
>> alvherre=# select 'generate_series(int,int4)'::regprocedure;
>> regprocedure
>> ----------------------------------
>> generate_series(integer,integer)
>> (1 fila)
>>
>
> esa consulta puede ser confusa porque pareceria que regresa la misma
> cadena de caracteres. esta deja claro que lo que retorna es un oid
>
> template1=# select * from pg_proc
> template1 -# where oid = 'generate_series(int,int4)'::regprocedure;
> proname | pronamespace | proowner | prolang | proisagg |
> prosecdef | proisstrict | proretset | provolatile | pronargs |
> prorettype | proargtypes | proallargtypes | proargmodes | proargnames
> | prosrc | probin | proacl
> -----------------+--------------+----------+---------+----------+-----------+-------------+-----------+-------------+----------+------------+-------------+----------------+-------------+-------------+----------------------+--------+--------
> generate_series | 11 | 10 | 12 | f | f
> | t | t | v | 2 | 23 |
> 23 23 | | | |
> generate_series_int4 | - |
> (1 row)
>
> o quiza esta:
>
> template1=# select 'generate_series(int,int4)'::regprocedure::oid;
> oid
> ------
> 1067
> (1 row)
>
>
>
>From pgsql-es-ayuda-owner(at)postgresql(dot)org Wed Oct 4 11:11:36 2006
Received: from localhost (wm.hub.org [200.46.204.128])
by postgresql.org (Postfix) with ESMTP id B941D9FB31D
for <pgsql-es-ayuda-postgresql(dot)org(at)postgresql(dot)org>; Wed, 4 Oct 2006 11:11:35 -0300 (ADT)
Received: from postgresql.org ([200.46.204.71])
by localhost (mx1.hub.org [200.46.204.128]) (amavisd-new, port 10024)
with ESMTP id 90163-06 for <pgsql-es-ayuda-postgresql(dot)org(at)postgresql(dot)org>;
Wed, 4 Oct 2006 14:11:25 +0000 (UTC)
X-Greylist: from auto-whitelisted by SQLgrey-
Received: from web30802.mail.mud.yahoo.com (web30802.mail.mud.yahoo.com [68.142.200.145])
by postgresql.org (Postfix) with SMTP id D44319FB31A
for <pgsql-es-ayuda(at)postgresql(dot)org>; Wed, 4 Oct 2006 11:11:24 -0300 (ADT)
Received: (qmail 33597 invoked by uid 60001); 4 Oct 2006 14:11:22 -0000
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws;
s=s1024; d=yahoo.es;
h=Message-ID:Received:Date:From:Subject:To:In-Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding;
b=IhnuB+wAlBnQE1Y6plue2/ipULsc041XW9wFRpm3EJjlZMWm0u7liBXXy1oHZfjwCL3AEieBBe/tqH1NgCREHb9c7bwHoxaJ+8Uifx7SkM3blg43HnHgHLnp6TIuUD46ON+pMM+i7yOKxihL8414Gw0o6MsctbeAACTrX8qGkaM= ;
Message-ID: <20061004141122(dot)33595(dot)qmail(at)web30802(dot)mail(dot)mud(dot)yahoo(dot)com>
Received: from [200.121.151.126] by web30802.mail.mud.yahoo.com via HTTP; Wed, 04 Oct 2006 16:11:22 CEST
Date: Wed, 4 Oct 2006 16:11:22 +0200 (CEST)
From: Hensa <hensa22(at)yahoo(dot)es>
Subject: RE: Problema Foreign Keys
To: pgsql-es-ayuda(at)postgresql(dot)org
In-Reply-To: <57D33DD5098F134FA0E91EF298513ED7842C2B(at)emissarius(dot)planalfa(dot)info>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="0-696548521-1159971082=:30657"
Content-Transfer-Encoding: 8bit
X-Virus-Scanned: Maia Mailguard 1.0.1
X-Spam-Status: No, hits=2.883 tagged_above=0 required=5 tests=HTML_30_40,
HTML_IMAGE_ONLY_32, HTML_MESSAGE, RCVD_IN_SORBS_WEB
X-Spam-Level: **
X-Archive-Number: 200610/57
X-Sequence-Number: 20750

--0-696548521-1159971082=:30657
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit

Pasos :
1.- Primero tienes que ver si solamente un empleado puede estar en varias empresas.
Aqui se formaria una relacion de 1 a muchos.

Si ocurre este caso solo es necesario mandar a la tabla empresa como FK el codigo de la tabla empledo.

2.- Otro caso seria que si varios empleado pueden estar varias empresas entonces tendrias que hacer los siguiente :
Aqui se formaria una relacion de muchos a muchos
Entonces se crea una tabla intermedia

Puedes crear una tabla intermedia entre las dos tablas que ya existen.

Tienes tu tabla Empleado
Tienes tu tabla Empresa

entonces create una tabla Empleado_Empresa donde
los primary key sean el Codigo de la tabla Empleado y del la tabla Empresa.
y quita esos FK de cada tabla.

Puedes buscar informacion sobre normalizacion de base de datos para que lo tengas mas claro.

juanmi <juanmi(at)planalfa(dot)es> escribió: Hola a todos, este es mi primer mensaje a la lista, lo primero gracias por vuestro tiempo.

Mi problema es el siguiente, me acabo de pasar de m*sql a postgres, en debian la version de m*sql no soporta vistas y postgres si, y por un para de razones mas.......

Tanto en M*sql como en Postgres la creacion de FK la hago sin problemas (mas facil en postgres), pero el problema me viene con lo siguiente, os pongo un ejemplo, al crear la tabla empresa esta tabla tiene un campo llamado director (FK de la tabla empleados) y al crear la tabla empleados, esta tabla tiene un campo empresa (FK de la tabla empresa), la creacion de estas dos tablas ya viola las referencias, en M*sql lo solucionaba de la siguiente forma:

SET FOREIGN_KEY_CHECKS = 0;
Creacion de tablas e inserccion de campos
SET FOREIGN_KEY_CHECKS = 1;
¿Como lo hago en postgres?
Muchas gracias por vuestro tiempo ;-)
Saludos.
Juanmi

Henry

---------------------------------

LLama Gratis a cualquier PC del Mundo.
Llamadas a fijos y móviles desde 1 céntimo por minuto.
http://es.voice.yahoo.com
--0-696548521-1159971082=:30657
Content-Type: text/html; charset=iso-8859-1
Content-Transfer-Encoding: 8bit

Pasos :<br>1.- Primero tienes que ver si solamente un empleado puede estar en varias empresas.<br>Aqui se formaria una relacion de 1 a muchos.<br><br>Si ocurre este caso solo es necesario mandar a la tabla empresa como FK el codigo de la tabla empledo.<br><br>2.- Otro caso seria que si varios empleado pueden estar varias empresas entonces tendrias que hacer los siguiente :<br>Aqui se formaria una relacion de muchos a muchos<br>Entonces se crea una tabla intermedia<br><br>Puedes crear una tabla intermedia entre las dos tablas que ya existen.<br><br>Tienes tu tabla Empleado<br>Tienes tu tabla Empresa<br><br>entonces create una tabla Empleado_Empresa donde<br>los primary key sean el Codigo de la tabla Empleado y del la tabla Empresa.<br>y quita esos FK de cada tabla.<br><br>Puedes buscar informacion sobre normalizacion de base de datos para que lo tengas mas claro.<br><br><b><i>juanmi &lt;juanmi(at)planalfa(dot)es&gt;</i></b> escribió:<blockquote class="replbq" style="border-left:
2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><div><font color="#000000" face="Arial" size="2"> <div><font color="#000000" face="Arial" size="2">Hola a todos, este es mi primer mensaje a la lista, lo primero gracias por vuestro tiempo.</font></div> <div><font face="Arial" size="2"></font>&nbsp;</div> <div><font face="Arial" size="2">Mi problema es el siguiente, me acabo de pasar de m*sql a postgres, en debian la version de m*sql no soporta vistas y postgres si, y por un para de razones mas.......</font></div> <div><font face="Arial" size="2"></font>&nbsp;</div> <div><font face="Arial" size="2">Tanto en M*sql como en Postgres la creacion de FK la hago sin problemas (mas facil en postgres), pero el problema me viene con lo siguiente, os pongo un ejemplo, al crear la tabla empresa esta tabla tiene un campo llamado director (FK de la tabla empleados) y al crear la tabla
empleados, esta tabla tiene un campo empresa (FK de la tabla empresa), la creacion de estas dos tablas ya viola las referencias, e</font><font face="Arial" size="2">n M*sql lo solucionaba de la siguiente forma:</font></div> <div><font face="Arial" size="2"></font>&nbsp;</div> <div><font size="2"> <div>SET FOREIGN_KEY_CHECKS = 0;</div> <div>Creacion de tablas e inserccion de campos</div><font size="2"> <div>SET FOREIGN_KEY_CHECKS = 1;</div> <div><font face="Arial">¿Como lo hago en postgres?</font></div> <div><font face="Arial">Muchas gracias por vuestro tiempo ;-)</font></div> <div><font face="Arial">Saludos.</font></div> <div><font face="Arial">Juanmi</font></div></font></font></div></font></div></blockquote><br><BR><BR><FONT color=#0080ff>Henry <IMG src="http://us.i1.yimg.com/us.yimg.com/i/mesg/tsmileys2/01.gif"></FONT><p>&#32;
<hr size=1><br><font face="Verdana" size="-2">LLama Gratis a cualquier PC del Mundo.<br>Llamadas a fijos y móviles desde 1 céntimo por minuto.<br><a href="http://us.rd.yahoo.com/mail/es/tagline/messenger/*http://es.voice.yahoo.com/">http://es.voice.yahoo.com</a></font>
--0-696548521-1159971082=:30657--


From: LDC - Carmen Brando <carmen(at)ldc(dot)usb(dot)ve>
To: Jaime Casanova <systemguards(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Ayuda en compilacion de postgres.
Date: 2006-10-04 15:33:20
Message-ID: Pine.LNX.4.64.0610041123290.15499@leto.ldc.usb.ve
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda


Disculpe que le mandemos los correos directamente pero no estamos
seguras que lleguen a la lista (a pesar de que estamos suscritas),
porque siempre nos avisa que estan
stalled pero nunca nos confirma que salen de ese estado.

Estamos teniendo problemas al compilar, porque nosotras agregamos
unos archivos al executor y al parecer no los linkea. El error
especifico es

make[3]: Leaving directory `/opt/pgtests/src/codigo/src/timezone'
gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Winline
-Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing
-L../../src/port -Wl,-rpath,/opt/pgtests/postgresv2/lib -Wl,-E
access/SUBSYS.o bootstrap/SUBSYS.o catalog/SUBSYS.o parser/SUBSYS.o
commands/SUBSYS.o executor/SUBSYS.o lib/SUBSYS.o libpq/SUBSYS.o
main/SUBSYS.o nodes/SUBSYS.o optimizer/SUBSYS.o port/SUBSYS.o
postmaster/SUBSYS.o regex/SUBSYS.o rewrite/SUBSYS.o storage/SUBSYS.o
tcop/SUBSYS.o utils/SUBSYS.o ../../src/timezone/SUBSYS.o
../../src/port/libpgport_srv.a -lz -lreadline -ltermcap -lcrypt
-lresolv -lnsl -ldl -lm -lbsd -o postgres
executor/SUBSYS.o(.text+0x2dbb): In function `ExecInitNode':
: undefined reference to `ExecInitHybrid'
executor/SUBSYS.o(.text+0x2dcf): In function `ExecInitNode':
: undefined reference to `ExecInitTopk'
executor/SUBSYS.o(.text+0x2de3): In function `ExecInitNode':
: undefined reference to `ExecInitSkyline'
executor/SUBSYS.o(.text+0x3181): In function `ExecProcNode':
: undefined reference to `ExecHybrid'
executor/SUBSYS.o(.text+0x3191): In function `ExecProcNode':
: undefined reference to `ExecTopk'
executor/SUBSYS.o(.text+0x31a1): In function `ExecProcNode':
: undefined reference to `ExecSkyline'
executor/SUBSYS.o(.text+0x32d4): In function `ExecCountSlotsNode':
: undefined reference to `ExecCountSlotsHybrid'
executor/SUBSYS.o(.text+0x32e0): In function `ExecCountSlotsNode':
: undefined reference to `ExecCountSlotsTopk'
executor/SUBSYS.o(.text+0x32ec): In function `ExecCountSlotsNode':
: undefined reference to `ExecCountSlotsSkyline'
executor/SUBSYS.o(.text+0x35eb): In function `ExecEndNode':
: undefined reference to `ExecEndHybrid'
executor/SUBSYS.o(.text+0x35f9): In function `ExecEndNode':
: undefined reference to `ExecEndTopk'
executor/SUBSYS.o(.text+0x3607): In function `ExecEndNode':
: undefined reference to `ExecEndSkyline'
collect2: ld returned 1 exit status
make[2]: *** [postgres] Error 1
make[2]: Leaving directory `/opt/pgtests/src/codigo/src/backend'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/opt/pgtests/src/codigo/src'
make: *** [all] Error 2

nuestros archivos son nodeSkyline, nodeTopk y nodeHybrid .h y .c,
pensamos que debe ser un problema con el autoconf pero no
encontramos como solucionarlo.

Saludos,
Vanessa y Carmen.

On Mon, 25 Sep 2006, Jaime Casanova wrote:

> On 9/24/06, Alvaro Herrera <alvherre(at)commandprompt(dot)com> wrote:
>> LDC - Carmen Brando escribió:
>> >
>> > Hola,
>> > Disculpe el abuso pero como su respuesta fue tan rapida :-),
>> > aprevechamos de preguntarle otra duda que surgio, que es un RegProcedure?
>> > lo vimos en backend/util/sort/tuplesort.c.
>>
>> Registered Procedure
>>
>> En SQL, uno puede usar algo como
>>
>> select 'pg_class'::regclass
>>
>> y obtener la representacion apropiada de la tabla pg_catalog.pg_class.
>> O tambien puede hacer
>>
>> select '1260'::regclass
>> y obtener exactamente lo mismo. La conveniencia aqui es ignorar si la
>> tabla fue pasada como Oid o como nombre.
>>
>>
>> Con RegProcedure puedes hacer algo similar:
>>
>> alvherre=# select 'generate_series(int,int4)'::regprocedure;
>> regprocedure
>> ----------------------------------
>> generate_series(integer,integer)
>> (1 fila)
>>
>
> esa consulta puede ser confusa porque pareceria que regresa la misma
> cadena de caracteres. esta deja claro que lo que retorna es un oid
>
> template1=# select * from pg_proc
> template1 -# where oid = 'generate_series(int,int4)'::regprocedure;
> proname | pronamespace | proowner | prolang | proisagg |
> prosecdef | proisstrict | proretset | provolatile | pronargs |
> prorettype | proargtypes | proallargtypes | proargmodes | proargnames
> | prosrc | probin | proacl
> -----------------+--------------+----------+---------+----------+-----------+-------------+-----------+-------------+----------+------------+-------------+----------------+-------------+-------------+----------------------+--------+--------
> generate_series | 11 | 10 | 12 | f | f
> | t | t | v | 2 | 23 |
> 23 23 | | | |
> generate_series_int4 | - |
> (1 row)
>
> o quiza esta:
>
> template1=# select 'generate_series(int,int4)'::regprocedure::oid;
> oid
> ------
> 1067
> (1 row)
>
>
>
>From pgsql-es-ayuda-owner(at)postgresql(dot)org Wed Oct 4 13:36:51 2006
Received: from localhost (mx1.hub.org [200.46.208.251])
by postgresql.org (Postfix) with ESMTP id D5B919FB1EE
for <pgsql-es-ayuda-postgresql(dot)org(at)postgresql(dot)org>; Wed, 4 Oct 2006 13:36:50 -0300 (ADT)
Received: from postgresql.org ([200.46.204.71])
by localhost (mx1.hub.org [200.46.208.251]) (amavisd-new, port 10024)
with ESMTP id 01879-06 for <pgsql-es-ayuda-postgresql(dot)org(at)postgresql(dot)org>;
Wed, 4 Oct 2006 13:36:45 -0300 (ADT)
X-Greylist: from auto-whitelisted by SQLgrey-
Received: from lists.commandprompt.com (host-130.commandprompt.net [207.173.203.130])
by postgresql.org (Postfix) with ESMTP id 8124F9FB417
for <pgsql-es-ayuda(at)postgresql(dot)org>; Wed, 4 Oct 2006 13:36:45 -0300 (ADT)
Received: from alvh.no-ip.org (200-126-100-219.bk7-dsl.surnet.cl [200.126.100.219])
(authenticated bits=0)
by lists.commandprompt.com (8.13.7/8.13.6) with ESMTP id k94GaRL0011084;
Wed, 4 Oct 2006 09:36:28 -0700
Received: by alvh.no-ip.org (Postfix, from userid 1000)
id 1E095C2D408; Wed, 4 Oct 2006 12:35:45 -0400 (CLT)
Date: Wed, 4 Oct 2006 12:35:45 -0400
From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: LDC - Carmen Brando <carmen(at)ldc(dot)usb(dot)ve>
Cc: Jaime Casanova <systemguards(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Ayuda en compilacion de postgres.
Message-ID: <20061004163543(dot)GA20549(at)alvh(dot)no-ip(dot)org>
Mail-Followup-To: LDC - Carmen Brando <carmen(at)ldc(dot)usb(dot)ve>,
Jaime Casanova <systemguards(at)gmail(dot)com>,
pgsql-es-ayuda(at)postgresql(dot)org
References: <Pine(dot)LNX(dot)4(dot)64(dot)0609240930020(dot)11495(at)leto(dot)ldc(dot)usb(dot)ve> <20060924160844(dot)GC7165(at)alvh(dot)no-ip(dot)org> <Pine(dot)LNX(dot)4(dot)64(dot)0609241451480(dot)16420(at)agamemnon(dot)ldc(dot)usb(dot)ve> <20060924232639(dot)GE13591(at)alvh(dot)no-ip(dot)org> <c2d9e70e0609242301p58eb92c3v3b28fd0b2638f4bf(at)mail(dot)gmail(dot)com> <Pine(dot)LNX(dot)4(dot)64(dot)0610041123290(dot)15499(at)leto(dot)ldc(dot)usb(dot)ve>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <Pine(dot)LNX(dot)4(dot)64(dot)0610041123290(dot)15499(at)leto(dot)ldc(dot)usb(dot)ve>
User-Agent: Mutt/1.5.13 (2006-08-11)
X-Virus-Scanned: ClamAV version 0.88.4, clamav-milter version 0.88.4 on projects.commandprompt.com
X-Virus-Status: Clean
X-Greylist: Sender succeded SMTP AUTH authentication, not delayed by milter-greylist-1.6 (lists.commandprompt.com [192.168.2.159]); Wed, 04 Oct 2006 09:36:34 -0700 (PDT)
X-Virus-Scanned: Maia Mailguard 1.0.1
X-Spam-Status: No, hits=0.824 tagged_above=0 required=5 tests=AWL,
FORGED_RCVD_HELO
X-Spam-Level:
X-Archive-Number: 200610/59
X-Sequence-Number: 20752

LDC - Carmen Brando escribió:
>
> Disculpe que le mandemos los correos directamente pero no estamos
> seguras que lleguen a la lista (a pesar de que estamos suscritas),
> porque siempre nos avisa que estan
> stalled pero nunca nos confirma que salen de ese estado.
>
> Estamos teniendo problemas al compilar, porque nosotras agregamos
> unos archivos al executor y al parecer no los linkea. El error

Modifica el Makefile del directorio donde estan tus archivos y agregalos
a la lista de OBJS que forman el SUBSYS.o

--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support


From: LDC - Carmen Brando <carmen(at)ldc(dot)usb(dot)ve>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: desglosar una funcion FuncExpr
Date: 2006-11-20 14:16:42
Message-ID: Pine.LNX.4.64.0611201004110.5269@leto.ldc.usb.ve
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda


Hola lista,
Estamos intentando recorrer el subarbol de una funcion similar a
la de ORDER BY, por ejemplo (distance + 2*price). Lo estamos
intentando recorrer recursivamente con una funcion que tiene un
switch-case dado tipo del nodo (NodeTag), pero cuando se hace la
comparacion para averiguar el tipo de los argumentos (OpExpr,
FuncExpr, Var) no entra en ninguno de estos tres casos.

Este primer switch-case funciona bien y es el que se encarga de
decidir llamar a la funcion recursiva:
NOTA: tle es el TargetEntry que contiene la funcion.

switch(nodeTag((Node *) tle->expr))
{
case T_Var: /* Table Column */
node->tleTopKRef = assignTopKRef(tle->resno,
*targetlist);
node->topkOp = ordering_oper_opid(restype);
topkrefs = lappend(topkrefs, node);
break;
case T_FuncExpr:
fexpr = (FuncExpr *) tle->expr;
args = fexpr->args;
//llamada recursiva a continuacion
setTLErefsInExprOfFunc(args, topkrefs, targetlist);
break;
case T_OpExpr:
oexpr = (OpExpr *) tle->expr;
args = oexpr->args;
setTLErefsInExprOfFunc(args, topkrefs, targetlist);
break;
default:
break;
}

Este es el switch-case que falla, que se encuentra dentro de la
funcion recursiva. La diferencia con el anterior es que este verifica
contra los argumentos de la funcion en lugar del tle:

foreach(arg, args)
{
if(IsA((Expr *) arg, Var))
{
var = (Var *) lfirst(arg);
node = makeNode(TopKRefs);
node->tleTopKRef = assignTopKRef(var->varattno,
*targetlist);
node->topkOp = ordering_oper_opid(var->vartype);
topkrefs = lappend(topkrefs, node);
}
else if(IsA((Expr *) arg, FuncExpr))
{
fexpr = (FuncExpr *) lfirst(arg);
setTLErefsInExprOfFunc(fexpr->args, topkrefs, targetlist);
}
else if(IsA((Expr *) arg, OpExpr))
{
oexpr = (OpExpr *) lfirst(arg);
setTLErefsInExprOfFunc(oexpr->args, topkrefs, targetlist);
}
}

Muchas gracias por la ayuda que nos puedan brindar =D
Carmen y Vanessa.


From: LDC - Carmen Brando <carmen(at)ldc(dot)usb(dot)ve>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: desglosar una funcion FuncExpr
Date: 2006-11-20 14:43:57
Message-ID: Pine.LNX.4.64.0611201043080.5269@leto.ldc.usb.ve
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda


Hola otra vez :$

Ya solucionamos, se nos olvido hacer lfirst de args :P

Gracias!

On Mon, 20 Nov 2006, LDC - Carmen Brando wrote:

>
> Hola lista,
> Estamos intentando recorrer el subarbol de una funcion similar a
> la de ORDER BY, por ejemplo (distance + 2*price). Lo estamos
> intentando recorrer recursivamente con una funcion que tiene un
> switch-case dado tipo del nodo (NodeTag), pero cuando se hace la
> comparacion para averiguar el tipo de los argumentos (OpExpr,
> FuncExpr, Var) no entra en ninguno de estos tres casos.
>
> Este primer switch-case funciona bien y es el que se encarga de
> decidir llamar a la funcion recursiva:
> NOTA: tle es el TargetEntry que contiene la funcion.
>
> switch(nodeTag((Node *) tle->expr))
> {
> case T_Var: /* Table Column */
> node->tleTopKRef = assignTopKRef(tle->resno,
> *targetlist);
> node->topkOp = ordering_oper_opid(restype);
> topkrefs = lappend(topkrefs, node);
> break;
> case T_FuncExpr:
> fexpr = (FuncExpr *) tle->expr;
> args = fexpr->args;
> //llamada recursiva a continuacion
> setTLErefsInExprOfFunc(args, topkrefs, targetlist);
> break;
> case T_OpExpr:
> oexpr = (OpExpr *) tle->expr;
> args = oexpr->args;
> setTLErefsInExprOfFunc(args, topkrefs, targetlist);
> break;
> default:
> break;
> }
>
> Este es el switch-case que falla, que se encuentra dentro de la
> funcion recursiva. La diferencia con el anterior es que este verifica
> contra los argumentos de la funcion en lugar del tle:
>
> foreach(arg, args)
> {
> if(IsA((Expr *) arg, Var))
> {
> var = (Var *) lfirst(arg);
> node = makeNode(TopKRefs);
> node->tleTopKRef = assignTopKRef(var->varattno,
> *targetlist);
> node->topkOp = ordering_oper_opid(var->vartype);
> topkrefs = lappend(topkrefs, node);
> }
> else if(IsA((Expr *) arg, FuncExpr))
> {
> fexpr = (FuncExpr *) lfirst(arg);
> setTLErefsInExprOfFunc(fexpr->args, topkrefs, targetlist);
> }
> else if(IsA((Expr *) arg, OpExpr))
> {
> oexpr = (OpExpr *) lfirst(arg);
> setTLErefsInExprOfFunc(oexpr->args, topkrefs, targetlist);
> }
> }
>
> Muchas gracias por la ayuda que nos puedan brindar =D
> Carmen y Vanessa.
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 6: ¿Has buscado en los archivos de nuestra lista de correo?
>
> http://archives.postgresql.org/pgsql-es-ayuda
>
>From pgsql-es-ayuda-owner(at)postgresql(dot)org Mon Nov 20 10:54:03 2006
Received: from localhost (wm.hub.org [200.46.204.128])
by postgresql.org (Postfix) with ESMTP id 930FB9FA221
for <pgsql-es-ayuda-postgresql(dot)org(at)postgresql(dot)org>; Mon, 20 Nov 2006 10:54:02 -0400 (AST)
Received: from postgresql.org ([200.46.204.71])
by localhost (mx1.hub.org [200.46.204.128]) (amavisd-new, port 10024)
with ESMTP id 72644-10 for <pgsql-es-ayuda-postgresql(dot)org(at)postgresql(dot)org>;
Mon, 20 Nov 2006 14:53:54 +0000 (UTC)
X-Greylist: domain auto-whitelisted by SQLgrey-
Received: from bay0-omc2-s12.bay0.hotmail.com (bay0-omc2-s12.bay0.hotmail.com [65.54.246.148])
by postgresql.org (Postfix) with ESMTP id 88CDB9FA1DB
for <pgsql-es-ayuda(at)postgresql(dot)org>; Mon, 20 Nov 2006 10:53:52 -0400 (AST)
Received: from hotmail.com ([65.55.140.14]) by bay0-omc2-s12.bay0.hotmail.com with Microsoft SMTPSVC(6.0.3790.1830);
Mon, 20 Nov 2006 06:53:50 -0800
Received: from mail pickup service by hotmail.com with Microsoft SMTPSVC;
Mon, 20 Nov 2006 06:53:50 -0800
Message-ID: <BAY135-DAV4D0BED7D2D8BEACCE58B6BAED0(at)phx(dot)gbl>
Received: from 200.47.156.43 by BAY135-DAV4.phx.gbl with DAV;
Mon, 20 Nov 2006 14:53:45 +0000
X-Originating-IP: [200.47.156.43]
X-Originating-Email: [raulandresduque(at)hotmail(dot)com]
X-Sender: raulandresduque(at)hotmail(dot)com
From: "Raul Andres Duque" <raulandresduque(at)hotmail(dot)com>
To: =?utf-8?Q?Javier_Est=C3=A9vez_CIFA_C=C3=B3rdoba?= <javier(dot)estevez(dot)ext(at)juntadeandalucia(dot)es>,
<rmero(at)marzam-online(dot)com>,
"Edwin Perez Lozano" <edwinandperez(at)gmail(dot)com>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
References: <BAY104-F1B0C226481BF50F01D5C8BAE90(at)phx(dot)gbl> <1163774982(dot)15302(dot)4(dot)camel(at)desarrollo3(dot)aeroenvios(dot)com> <455DDF44(dot)8050106(at)marzam-online(dot)com> <02d801c70c7f$887dbc70$6d64460a(at)cfco04(dot)cap(dot)juntaandalucia(dot)es>
Subject: Re: problema con phppgadmin
Date: Mon, 20 Nov 2006 09:53:17 -0500
MIME-Version: 1.0
Content-Type: text/plain;
format=flowed;
charset="utf-8";
reply-type=original
Content-Transfer-Encoding: 8bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2900.2869
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2962
X-OriginalArrivalTime: 20 Nov 2006 14:53:50.0451 (UTC) FILETIME=[B093E430:01C70CB3]
X-Virus-Scanned: Maia Mailguard 1.0.1
X-Archive-Number: 200611/472
X-Sequence-Number: 21805

Hola Javier.

Como comenté en un e-mail anterior tenía el mismo problema ... cambien lo
que me indicaron y no me funcionó !!! pero luego identifiqué que el
"session.save_path" esta dos veces en el archivo ... cambien en ambos sitios
y funcionó !!!

Atentamente,

RAUL DUQUE
Bogotá, Colombia

----- Original Message -----
From: "Javier Estévez CIFA Córdoba" <javier(dot)estevez(dot)ext(at)juntadeandalucia(dot)es>
To: <rmero(at)marzam-online(dot)com>; "Edwin Perez Lozano"
<edwinandperez(at)gmail(dot)com>
Cc: "Raúl Andrés Duque Murillo" <raulandresduque(at)hotmail(dot)com>;
<pgsql-es-ayuda(at)postgresql(dot)org>
Sent: Monday, November 20, 2006 3:40 AM
Subject: Re: [pgsql-es-ayuda] problema con phppgadmin

> Yo tambiérn lo hice, reinicié, y tampoco he solucionado el error, sigue
> pidiéndome constantemente el login y passwd.
>
> Voy a instalarme el FIERFOX tal y como me aconseja Álvaro.
>
> Adjunto el hhtp.conf y el php.ini por si alguien le puede echar un
> vistazo,
> tal como me indicó.
>
> Gracias.
>
>
> Javier Estévez
>
> ----- Original Message -----
> From: "Raúl Mero Moreira" <rmero(at)marzam-online(dot)com>
> To: "Edwin Perez Lozano" <edwinandperez(at)gmail(dot)com>
> Cc: "Raúl Andrés Duque Murillo" <raulandresduque(at)hotmail(dot)com>;
> <javier(dot)estevez(dot)ext(at)juntadeandalucia(dot)es>; <pgsql-es-ayuda(at)postgresql(dot)org>
> Sent: Friday, November 17, 2006 5:11 PM
> Subject: Re: [pgsql-es-ayuda] problema con phppgadmin
>
>
> ENVIAME EL PHP.INI Y EL HTTP.CONF QUE TIENES PARA COMPARARLO CON LOS
> MIOS TIENES ALGO MAL CONFIGURADO POR QUE A MI ME FUNCIONA BEIN Y NO
> TENGO QUE ESTAR INGRESANDO EL USER Y PASS
>
> SALUDOS
>
>
>
>
> Edwin Perez Lozano escribió:
>> El jue, 16-11-2006 a las 18:42 -0500, Raúl Andrés Duque Murillo
>> escribió:
>>
>>> Gracias Edwin.
>>>
>>> Realice lo que me comentaste pero sigue sin funcionar !!!
>>>
>>> Alguna sugerencia?
>>>
>>> PD. mi php.ini quedó así:
>>> session.save_path = "C:/tmp"
>>> y efectivamente cree ese directorio en la unidad C:
>>>
>>> Atentamente,
>>>
>>> RAUL DUQUE
>>> Bogotá, Colombia
>>>
>>>
>>>> From: Edwin Perez Lozano <edwinandperez(at)gmail(dot)com>
>>>> To: Javier Estévez CIFA Córdoba
>>>> <javier(dot)estevez(dot)ext(at)juntadeandalucia(dot)es>
>>>> CC: pgsql-es-ayuda(at)postgresql(dot)org
>>>> Subject: Re: [pgsql-es-ayuda] problema con phppgadmin
>>>> Date: Thu, 16 Nov 2006 10:22:02 -0500
>>>>
>>>> El jue, 16-11-2006 a las 13:56 +0100, Javier Estévez CIFA Córdoba
>>>> escribió:
>>>>
>>>>> PERO ME OCURRE EXACTAMENTE lo mismo que a ti, me pide constantemente
>>>>> "login" y "password"
>>>>>
>>>> 1. En la configuracion que tienen de php, donde estan guardando las
>>>> sesiones?¿ (la directiva es session.save_path en el php.ini), por
>>>> defecto es en la carpeta tmp, verfiquen este dato, modifiquenlo
>>>> (indicando donde quieren guardar las sesiones y que esta exista en el
>>>> sistema logicamente), reinicien el apache y prueben nuevamente.
>>>>
>>>>
>>>> ---------------------------(fin del mensaje)---------------------------
>>>> TIP 10: visita nuestro canal de IRC #postgresql-es en irc.freenode.net
>>>>
>>> _________________________________________________________________
>>> Consigue aquí las mejores y mas recientes ofertas de trabajo en América
>>> Latina y USA: http://latam.msn.com/empleos/
>>>
>>>
>> esta bien raro .. pero dime una cosa primero... cuando te logueas en
>> phppgadmin revisa si en la carpeta C:/tmp se genera un archivito...esto
>> para salir de dudas si se esta generando las sesiones.. si no genera
>> nada debemos de revisar la configuracion del php (podrias mandar tu
>> php.ini)
>>
>>
>> ---------------------------(fin del mensaje)---------------------------
>> TIP 1: para suscribirte y desuscribirte, visita
> http://archives.postgresql.org/pgsql-es-ayuda
>>
>>
>
>


From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: LDC - Carmen Brando <carmen(at)ldc(dot)usb(dot)ve>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: desglosar una funcion FuncExpr
Date: 2006-11-20 15:41:05
Message-ID: 20061120154105.GB13555@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

LDC - Carmen Brando escribió:
>
> Hola otra vez :$
>
> Ya solucionamos, se nos olvido hacer lfirst de args :P

:-) Bien ... Sugerencia, supongo que vieron todo el asunto de
expression_tree_walker? (optimizer/util/clauses.c) Con la ayuda de los
"walkers" y los "mutators" hay mucho codigo que se puede hacer mas
simple que si haces tu propio codigo para recorrer arboles de
expresiones.

--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.


From: LDC - Carmen Brando <carmen(at)ldc(dot)usb(dot)ve>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Estadisticas en postgres
Date: 2007-02-21 11:39:29
Message-ID: Pine.LNX.4.64.0702210728150.27881@lingar.ldc.usb.ve
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda


Hola Lista,
Estoy recolectando estadisticas de accesos I/O por cada 5 queries,
es decir, ejecuto 5 queries y obtengo las estadisticas.. Estos queries
acceden una tabla y revisando la documentacion de postgres veo que las
estadisticas las puedo obtener por tabla usando las funciones
pg_stat_get_blocks_fetched(oid) y pg_stat_get_blocks_hit(oid), ademas
active los parametros en postgresql.conf de:
stats_start_collector = on
stats_command_string = on
stats_block_level = on
stats_reset_on_server_start = on

Ahora, mi duda viene sobre obtener el oid, en la tabla pg_class me parecio
que podia pero eso no lo tengo muy claro.. Debo activar otro parametro? es
decir, lei que ademas hay que activar default_statistics o algo parecido
que sustituye el hacer ANALYZE y ALTER TABLE .. SET STATISTICS..

Muy agradecida por la ayuda y orientacion que me puedan brindar,
Carmen B.


From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: LDC - Carmen Brando <carmen(at)ldc(dot)usb(dot)ve>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Estadisticas en postgres
Date: 2007-02-21 13:11:29
Message-ID: 20070221131129.GH25424@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

LDC - Carmen Brando escribió:

> Hola Lista,

Hola!

> Estoy recolectando estadisticas de accesos I/O por cada 5 queries,
> es decir, ejecuto 5 queries y obtengo las estadisticas.. Estos queries
> acceden una tabla y revisando la documentacion de postgres veo que las
> estadisticas las puedo obtener por tabla usando las funciones
> pg_stat_get_blocks_fetched(oid) y pg_stat_get_blocks_hit(oid), ademas
> active los parametros en postgresql.conf de:
> stats_start_collector = on
> stats_command_string = on
> stats_block_level = on
> stats_reset_on_server_start = on
>
> Ahora, mi duda viene sobre obtener el oid, en la tabla pg_class me parecio
> que podia pero eso no lo tengo muy claro..

select oid, relname from pg_class ;

Lo que pasa es que no se muestra en un \d de la tabla porque es un campo
de sistema que "siempre" esta ahi (excepto cuando no está)

> es decir, lei que ademas hay que activar default_statistics o algo
> parecido que sustituye el hacer ANALYZE y ALTER TABLE .. SET
> STATISTICS..

No, eso es otra cosa, no lo necesitas para esto.

--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support


From: LDC - Carmen Brando <carmen(at)ldc(dot)usb(dot)ve>
To: pgsql-es-ayuda(at)postgresql(dot)org
Cc: "Prof(dot) Marlene Goncalves" <mgoncalves(at)ldc(dot)usb(dot)ve>
Subject: Evaluar funciones en el evaluador
Date: 2007-02-24 01:28:56
Message-ID: Pine.LNX.4.64.0702232122050.27138@lingar.ldc.usb.ve
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda


Hola lista :)

Tenia una duda si existe una funcion en postgres que se pueda usar
a nivel de evaluador de un nodo, para el operador que estamos
desarrollando. Nosotras usamos una clausula ORDER BY como la de postgres
donde queremos evaluar funciones aritmeticas en cada tupla, la idea es que
en el evaluador pueda decir algo como que aplica la funcion f a la tupla t
y me devuelva el valor, obviamente esta funcion depende de los atributos
de esta tupla..

Muchas gracias por la ayuda que me puedan brindar.
Carmen Brando.


From: "Jaime Casanova" <systemguards(at)gmail(dot)com>
To: "LDC - Carmen Brando" <carmen(at)ldc(dot)usb(dot)ve>
Cc: pgsql-es-ayuda(at)postgresql(dot)org, "Prof(dot) Marlene Goncalves" <mgoncalves(at)ldc(dot)usb(dot)ve>
Subject: Re: Evaluar funciones en el evaluador
Date: 2007-02-24 05:49:09
Message-ID: c2d9e70e0702232149g347313e1t58770afef344916c@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

On 2/23/07, LDC - Carmen Brando <carmen(at)ldc(dot)usb(dot)ve> wrote:
>
> Hola lista :)
>
> Tenia una duda si existe una funcion en postgres que se pueda usar
> a nivel de evaluador de un nodo, para el operador que estamos
> desarrollando. Nosotras usamos una clausula ORDER BY como la de postgres
> donde queremos evaluar funciones aritmeticas en cada tupla, la idea es que
> en el evaluador pueda decir algo como que aplica la funcion f a la tupla t
> y me devuelva el valor, obviamente esta funcion depende de los atributos
> de esta tupla..
>

no entendi... quieres algun tipo de debugger?

--
Atentamente,
Jaime Casanova

"Programming today is a race between software engineers striving to
build bigger and better idiot-proof programs and the universe trying
to produce bigger and better idiots.
So far, the universe is winning."
Richard Cook


From: LDC - Carmen Brando <carmen(at)ldc(dot)usb(dot)ve>
To: Jaime Casanova <systemguards(at)gmail(dot)com>
Cc: "Prof(dot) Marlene Goncalves" <mgoncalves(at)ldc(dot)usb(dot)ve>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Evaluar funciones en el evaluador
Date: 2007-02-24 13:31:00
Message-ID: Pine.LNX.4.64.0702240922300.10957@lingar.ldc.usb.ve
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda


Ciertamente no fui muy clara con la explicacion, el asunto es que
que estamos implementando un operador relacional en postgres que se llama
Top-k Skyline, este responde a consultas basadas en preferencias con las
clausulas que definimos: SKYLINE OF, STOP AFTER y ORDER BY. Hicimos todos
los pasos en el parser, rewriter, optimizador y evaluador. Ahora en el
evaluador definimos NodeMiNodo.c y un archivo auxiliar
tupleminodo.c (al estilo del nodo Sort de postgres), ahora en ese archivo
queremos saber si podemos usar una funcion o conjunto de librerias de
postgres que tome la funcion que pasamos en el order by (que esta disponible
en el nodo del plan de nuestro nodo), la evalue en cada tupla y me de un
valor como resultado.
Por ejemplo, si tengo la tabla c(d1,d2) y la funcion es d1*d2, quiero
evaluar para cada tupla esta funcion y tener el resultado de d1*d2..
Espero haber aclarado el punto :)

Gracias por el interes,
Carmen Brando

On
Sat, 24 Feb 2007, Jaime Casanova wrote:

> On 2/23/07, LDC - Carmen Brando <carmen(at)ldc(dot)usb(dot)ve> wrote:
>>
>> Hola lista :)
>>
>> Tenia una duda si existe una funcion en postgres que se pueda usar
>> a nivel de evaluador de un nodo, para el operador que estamos
>> desarrollando. Nosotras usamos una clausula ORDER BY como la de postgres
>> donde queremos evaluar funciones aritmeticas en cada tupla, la idea es que
>> en el evaluador pueda decir algo como que aplica la funcion f a la tupla t
>> y me devuelva el valor, obviamente esta funcion depende de los atributos
>> de esta tupla..
>>
>
> no entendi... quieres algun tipo de debugger?
>
>


From: LDC - Carmen Brando <carmen(at)ldc(dot)usb(dot)ve>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Duda sobre startup_cost y total_cost en plantree
Date: 2007-02-26 22:48:39
Message-ID: Pine.LNX.4.64.0702261844320.20304@lingar.ldc.usb.ve
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda


Hola :)
Tenia una pequena duda sobre que tan relacionado esta el valor del
campo "total_cost" y "startup_cost" con el tiempo de duracion de la
consulta que arroja postgres cuando se ejecuta en modo verbose. Por
ejemplo estos valores del pedazito del arbol:

:lefttree
{SEQSCAN
:startup_cost 0.00
:total_cost 482.79

Con este valor que se arroja en esta salida:

psql:query14.sql:1: LOG: duration: 295470.032 ms statement:
SELECT * FROM X.....

Agradezco la ayuda que me puedan brindar,
Carmen Brando


From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: LDC - Carmen Brando <carmen(at)ldc(dot)usb(dot)ve>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Duda sobre startup_cost y total_cost en plantree
Date: 2007-02-26 23:16:00
Message-ID: 20070226231600.GQ19104@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

LDC - Carmen Brando escribió:

> Tenia una pequena duda sobre que tan relacionado esta el valor del
> campo "total_cost" y "startup_cost" con el tiempo de duracion de la
> consulta que arroja postgres cuando se ejecuta en modo verbose. Por
> ejemplo estos valores del pedazito del arbol:
>
> :lefttree
> {SEQSCAN
> :startup_cost 0.00
> :total_cost 482.79
>
> Con este valor que se arroja en esta salida:
>
> psql:query14.sql:1: LOG: duration: 295470.032 ms statement:
> SELECT * FROM X.....

Lo que muestras arriba es la estimacion del planner, y lo que meustras
abajo es el tiempo real transcurrido. Si el planner no sabe hacer la
estimacion correctamente, obviamente los valores pueden ser muy
diferentes (como el caso que muestras). Tipicamente esto se considera
una deficiencia del planner.

Saludos,

el chevere ;-)

--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support


From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: LDC - Carmen Brando <carmen(at)ldc(dot)usb(dot)ve>
Cc: Jaime Casanova <systemguards(at)gmail(dot)com>, "Prof(dot) Marlene Goncalves" <mgoncalves(at)ldc(dot)usb(dot)ve>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Evaluar funciones en el evaluador
Date: 2007-03-02 14:13:18
Message-ID: 20070302141318.GA4885@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

LDC - Carmen Brando escribió:
>
> Ciertamente no fui muy clara con la explicacion, el asunto es que
> que estamos implementando un operador relacional en postgres que se llama
> Top-k Skyline, este responde a consultas basadas en preferencias con las
> clausulas que definimos: SKYLINE OF, STOP AFTER y ORDER BY. Hicimos todos
> los pasos en el parser, rewriter, optimizador y evaluador. Ahora en el
> evaluador definimos NodeMiNodo.c y un archivo auxiliar
> tupleminodo.c (al estilo del nodo Sort de postgres), ahora en ese archivo
> queremos saber si podemos usar una funcion o conjunto de librerias de
> postgres que tome la funcion que pasamos en el order by (que esta disponible
> en el nodo del plan de nuestro nodo), la evalue en cada tupla y me de un
> valor como resultado.
> Por ejemplo, si tengo la tabla c(d1,d2) y la funcion es d1*d2, quiero
> evaluar para cada tupla esta funcion y tener el resultado de d1*d2..

Hola, no entiendo por que no pones simplemente esta d1*d2 en la lista de
resultados? O sea algo como

select d1*d2 from .... where foo skyline of bar ... order by d1*d2
?

El asunto es que el ejecutor (lo que tu llamas evaluador) se preocupa de
no evaluar (ExecEvalExpr, supongo) una funcion dos veces, de manera que
si encuentra en la lista de resultados un nodo que es identico a un nodo
que esta en otra parte (por ejemplo tu clausula order by), entonces
entiendo que va a usar el mismo resultado para ambas, sin evaluar dos
veces la funcion. Dependiendo de algunas condiciones claro; por ej. si
la funcion esta marcada volatile, hay algunas consideraciones que hacer,
puesto que la funcion puede tener efectos secundarios y "no deberia"
cambiarse la cantidad de veces que es invocada.

Pero como Uds. modificaron el ORDER BY, es posible que este
comportamiento no este funcionando como es debido ...

--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.