Hi, I want to write a function that takes the raw parsetree and rewrites it according to my rules, then produce new raw parsetrees.
I will call this function inside backend/tcop/postgres.c . I wrote an header file called my_rewriter.h and include this inside postgres.c. my_writer.h looks like: ------------------------------------------------- #ifndef UWSDREWRITE_H #define UWSDREWRITE_H #include "nodes/pg_list.h" #include "nodes/nodes.h" typedef struct my_Projection { char *relname; List attnames; char *result_relname; } my_Projection; . . . extern void my_analyze(Node *parsetree); extern void my_rewrite(List *parsetree_list); #endif UWSDREWRITE_H --------------------------------------------- Then I wrote a C file called my_writer.c, and do the implementation of my_analyze(Node *parsetree) and my_rewrite(List *parsetree_list) functions. I need Node and List structures here, but when I include the necessary header files (#include "nodes/pg_list.h", #include "nodes/nodes.h"), I got errors at compile time like: --------------------------------------- ../../../src/include/nodes/nodes.h:359: error: syntax error before ‘Node’ ../../../src/include/nodes/nodes.h:398: error: syntax error before ‘equal’ ../../../src/include/nodes/nodes.h:398: warning: type defaults to ‘int’ in declaration of ‘equal’ ../../../src/include/nodes/nodes.h:398: warning: data definition has no type or storage class ---------------------------------------- So, I think there is a problem with the Makefiles but I do not know what. I added the object file my_writer.o to the Makefile inside backend/parser/Makefile and configured again, but it did not work, what else should I do? regards, dakotali __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com