2009/4/17 Alvaro Herrera <alvhe...@alvh.no-ip.org> > Arturo Rossodivita escribió: > > hola lista, un poco tarde pero seguro... > > > > bueno primero gracias ya que ahora si me tarigo el nodo en string > > desde el catalogo completo, les comento que no tenia ningun valor null > > en la tupla pero igual GETSTRUCT no me servia y tuve que usar > > heap_getattr > > Hmm, me imagino que eso puede suceder si has definido algún valor como char > * > o algo semejante. El truco de GETSTRUCT sólo funciona si tienes > solamente campos de ancho fijo. > > > ERROR: badly formated node string "AEXPR :name (">") :lexpr > {AEXPR"... > > > > me doy cuenta que el problema es cuando hago el stringToNode(fp->exprfp) > > Hmm ... esto se ve raro ... supongo que agregaste una funcion en > readfuncs.c verdad? Ten en cuenta que a cualquier nodo que modifiques > el struct debes también modificar su respectiva función en outfuncs.c y > readfuncs.c, posiblemente también en copyfuncs.c, etc etc. Obviamente > también debes agregar un T_* en el enum de tipos de nodos, y debes crear > el nodo con makeNode(), etc (asumo que todo esto ya lo hiciste).
No habia modificado el readfuncs. y ya lo hice, pero te explico no estoy tratando de pasar un nodo nuevo creado por mi, mi nodo completo es el A_FuzzyPred { NodeTag type; char *pred; int minfp; int core1; int core2; int maxfp; unsigned int vno; int vattno; List *compfplist; char *disd; char *exprfp; }A_FuzzyPred; en una tabla del catalogo yo tengo almacenados cada uno de los valore que necesito cargarle a este nodo al momento de un select el cual incluya una condicion difusa en el where; para los que estoy trabajando específicamente en este momento yo almaceno con forma de string un nodo A_Expr, al momento de calcular la expresion necesito pasar ese string (almacenado en exprfp del nodo A_FuzzyPred) de nuevo a nodo pues ese es el nuevo qual para la consulta. bueno me di guenta que stringToNode(); llama parseNodeString(); y que esta no tiene para crear la estructura de un nodo A_Expr, y la modifique. ahora el problema viene es porque entre los case de nodeRead() si hay un parentesis derecho ")" manda un error, y los nodos A_Expr que yo almaceno en el catalogo son de la forma: {AEXPR :name ("=") :lexpr {COLUMNREF :fields ("edad") :location 22 } :rexpr {COLUMNREF :fields ("aprox") :location 29 } :location 27 } al leer el parentesis me lanza un error diciendo que hay un parentesis derecho inesperado. No se si es que estoy haciendo algo mal o si me falta extender algo mas, si no me entienden mucho me avisan para explicar mas detalladamente. Gracias. > > > -- > Alvaro Herrera > http://www.amazon.com/gp/registry/DXLWNGRJD34J > "El sabio habla porque tiene algo que decir; > el tonto, porque tiene que decir algo" (Platon). >