Re: crear expresion

From: Arturo Rossodivita <arossodivita(at)gmail(dot)com>
To: Jaime Casanova <jcasanov(at)systemguards(dot)com(dot)ec>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: crear expresion
Date: 2009-03-18 20:05:48
Message-ID: 36fdef070903181305y45798143j9186158216db5867@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

2009/3/18 Jaime Casanova <jcasanov(at)systemguards(dot)com(dot)ec>

> 2009/3/17 Arturo Rossodivita <arossodivita(at)gmail(dot)com>:
> > hola lista como estan?
> >
> > les comento estoy realizando una extension al nucleo de postgreSQL en la
> > cual si un usario quiere crear una expresion para luego consultar
> > directamente alguna tabla lo haga directamente con esa funcion por
> ejemplo:
> >
> > SELECT * FROM X WHERE edad = aprox; donde ya previamente aprox fue
> definido
> > como una expresion que podria ser como la siguiente:
> >
> > (x+1.5) / (5.3+6) > 0 donde x es el campo de la tabla a consultar, en el
> > ejemplo anterior edad para lo cual la expresion quedaria de la siguiente
> > forma:
> >
> > (edad+1.5) / (5.3+6) > 0 quedando el nuevo query asi:
> >
> > SELECT * FROM X WHERE (edad+1.5) / (5.3+6) > 0;
> >
>
> no seria mas sencillo escribir algo como:
> SELECT * FROM X WHERE aprox(edad)
>
> donde aprox es una funcion previamente definida que hace el calculo que
> deseas
>
si seria mas sencillo pero precisamente el trabajo que se esta haciendo es
modificando el nucleo de PostgreSQL y no con plpsql por cuestiones de
rendimiento, esto debido a que el paradigma que se esta trabajando es el de
bases de datos difusas y uno de los problemas sobre los cuales los
desarrolladores de DBMS han estado renuentes a trabajar sobre esto es por el
tiempo añadido que representa el calculo del grado de membresia. Se esta
haciendo una extension para luego hacer pruebas y ver si efectivamente el
tiempo añadido es depreciable o no.

> lo que no me gusta de esto es que segun tu ejemplo anterior creas la
> expresion solo con un nombre y luego esa expresion hace uso del campo
> que este en el lado izquierdo de la condicion para expandirse... que
> pasa si en cambio escribo: SELECT * FROM X WHERE aprox = edad;
>
> existe alguna razon en especial por la que deseas hacerlo de este modo?
>
como ya te comente es por lo que se esta haciendo y si haces aprox = edad se
lanza un error sintactico por cuestiones de definicion del uso de la logica
difusa en bases de datos
Gracias por tus comentarios ;)

> --
> Atentamente,
> Jaime Casanova
> Soporte y capacitación de PostgreSQL
> Asesoría y desarrollo de sistemas
> Guayaquil - Ecuador
> Cel. +59387171157
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2009-03-18 20:17:42 Re: Otro aporte a la Wiki de PostgreSQL [OT]
Previous Message Reynier Perez Mira 2009-03-18 20:02:16 RE: Otro aporte a la Wiki de PostgreSQL [OT]