Rodolfo Vegas escribió: > Hola como estan? Como ya sabran me encuentro todavía implementando las > operaciones conjuntistas difusas, pero hay que validar una cosa puede > existir el caso que en un intersect un select sea difuso y el otro no, el > select que no es difuso el grado de membresía hay que inicializarlo en 1, la > idea que tengo es recorrer el árbol setop que genera porque si un select no > es difuso en targetentry no tiene un nodo de mas que sería el atributo de > grado de membresía y al hacer la intersección el resultTupleslot no tiene > valor y acceder a esa posición me da error porque no existe, la idea que yo > pensaba era recorrer el árbol, veo si un seqscan es difuso y los demás los > convierto en difuso pero seria ineficiente recorrer todo el árbol ya que > puede tener muchos elementos y tardaría demasiado, otra cosa que yo pensaba > era algo asi como la función en php "*isset*($variable)" verifica si existe > esa variable, no habra una función asi en *C* , la verdad ya estoy > desesperado porque son muchas cosas, a parte presento inconvenientes en el > except y la union
Creo que debes recorrer el árbol. Creo que tu explicación de "tardaría demasiado" no tiene asidero; después de todo, es así como trabaja el optimizador. Para esto puedes usar expression_tree_walker(). Simplemente debes escribir un walker que modifique el atributo de difuso en los scans. El comentario en expression_tree_walker explica los detalles de implementación. Debería ser razonablemente simple ... -- Alvaro Herrera http://www.advogato.org/person/alvherre "¿Qué importan los años? Lo que realmente importa es comprobar que a fin de cuentas la mejor edad de la vida es estar vivo" (Mafalda) -- TIP 4: No hagas 'kill -9' a postmaster