Re: Problemas with gram.y
От | Andrew Dunstan |
---|---|
Тема | Re: Problemas with gram.y |
Дата | |
Msg-id | 4408B4BB.1050102@dunslane.net обсуждение исходный текст |
Ответ на | Problemas with gram.y (tmorelli@tmorelli.com.br) |
Список | pgsql-hackers |
tmorelli@tmorelli.com.br wrote: >Hi, > >I'm trying to extend the CREATE INDEX statement with a fillfactor clause. In >Gram.y, I did this: > >IndexStmt: CREATE index_opt_unique INDEX index_name ON qualified_name >access_method_clause '(' index_params ')' fillfactor_clause where_clause > { > IndexStmt *n = makeNode(IndexStmt); > n->unique = $2; > n->idxname = $4; > n->relation = $6; > n->accessMethod = $7; > n->indexParams = $9; > n->fillfactor = $11; > n->whereClause = $12; > $$ = (Node *)n; > } > >And the clause: > >fillfactor_clause: >FILLFACTOR IntegerOnly { $$ = makeInteger($2); } > { $$ = 0; }; > >I had to add a new field into IndexStmt (unsigned int fillfactor). Everything >is fine after parsing except that I can't see the integer value. For example, >in transformIndexStmt (analyze.c), I've inspected stmt->fillfactor and I've got > a strange, obviously wrong, value (137616352) after issuing this statement: > >create index ix_desc on products(description) fillfactor 7; > >Is thre any statement with numeric clauses? The only one that I found was >Alter/Create Sequence, but there is an ugly list there. > >Could anyone help me, please? > >Thanks a lot! > > > > did you change nodes/copyfuncs.c and nodes/equalfuncs.c as you have to do when you add new node fields? cheers andrew
В списке pgsql-hackers по дате отправления: