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 по дате отправления:

Предыдущее
От: tmorelli@tmorelli.com.br
Дата:
Сообщение: Problemas with gram.y
Следующее
От: Martijn van Oosterhout
Дата:
Сообщение: Re: Problemas with gram.y