Tratando de solucionar el inconveniente que les comente me di cuenta de lo
siguiente:

como les dije, no habia modificado en el readfuncs.ce a parseNodeString();

lo que hice fue lo siguiente: en la linea 1062 de readfuncs.c en
parsenoseString();inclui un nuevo condicional para que sepa que hacer con
los nodos A_Expr

else if (MATCH("AEXPR", 5))

    return_value = _readAexpr();

y cree _readAexpr(); de la siguiente forma:

static A_Expr *

_readAexpr(void)

{

    READ_LOCALS(A_Expr);

    READ_ENUM_FIELD(kind,A_Expr_Kind);

    READ_NODE_FIELD(name);

    READ_NODE_FIELD(lexpr);

    READ_NODE_FIELD(rexpr);

    READ_INT_FIELD(location);

    READ_DONE();

}

Ok, hasta aqui "todo bien", cuando ejecuto una consulta con predicado difuso
de la manera Select * From X Where edad = aprox;

me sigue dando el error de unexpected right parenthesis, y me di cuenta que
el error da al llamar READ_NODE_FIELD(); con cualquiera de las tres
llamadas; para name, lexpr y rexpr;

sigo sin saber que pueda ser esto no se si tiene que ver a que ese es un
nodo A_Expr guardado directamente desde el gram.y, me refiero sin hacer un
transformWhereClause(); ni nada, yo solo lo obtengo a la hora de crear un
fuzzy predicate y lo guardo directamente al catalogo transformandolo a text.

Responder a