Dear Bruce,

> Why did all the tags have to be renamed:
>       + cmdGRANT: GRANT {noH;};

that's a good question.

In order to add hints, I want to attach them to the states of the parser
automaton. So as to do that, I need I put a name on every state, so I need
to refactor the prefix that lead to a state, at give it a name.

Otherwise, I would have :

xxx: GRANT {noH;} ALL
   | GRANT {noH;} CREATE

(1) I would have to put the "after GRANT" hint twice, one after each
    GRANT occurence.

(2) this would result in shift/reduce conflicts, as the parser does not
    know which hint should be put. Well, it is the same code in both case,
    but yacc does not look at that.

Also, I need to stop hints, otherwise the last 'pushed' hint would be
shown on any error later.

> Also, what is typical output for a hint?  Can you show one?

Well, the current status of the infrastructure is that there is no hint;-)
The only hint with the patch is if you do not put an SQL command.

It may look like :

psql> creat table foo();
ERROR: syntax error at or near "creat" at character 1
creat table foo();
HINT: sql command such as SELECT or CREATE... ?

All other syntax errors result in no hint being displayed, thanks to
all added noH calls I put.

Also, As far as I remember, I put a new option to activate these hints.
Hints are disactivated by default. This is because some people do not
like advices and may want to turn them on or off.

Fabien Coelho - [EMAIL PROTECTED]

---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend

Reply via email to