Re: [HACKERS] syntax for drop if exists

2005-11-14 Thread Andrew Dunstan



Tom Lane wrote:


Andrew Dunstan [EMAIL PROTECTED] writes:
 

The MySQL syntax is actually drop table if exists foo  
Implementing this unfortunately generates a shift/reduce conflict, 
   



What did you try exactly?  I don't see any fundamental reason for
a conflict here.  You may just need to rearrange the grammar to postpone
the reduction a bit.

 



You're right, as usual. I had factored out the IF EXISTS bit into a 
seperate rule. When I undid that and instead used 2 rules for DropStmt, 
the problem disappeared. (This is because it gives bison more info about 
the context of each IF - this has often caught me with bison - I should 
have known better).


cheers

andrew



---(end of broadcast)---
TIP 9: In versions below 8.0, the planner will ignore your desire to
  choose an index scan if your joining column's datatypes do not
  match


[HACKERS] syntax for drop if exists

2005-11-13 Thread Andrew Dunstan


I was just looking briefly at doing drop if exists as we discussed 
recently.


The MySQL syntax is actually drop table if exists foo  
Implementing this unfortunately generates a shift/reduce conflict, 
unless I put IF in the func_name_keyword list, which strikes me as a bad 
idea.


Alternatively,  we could use the syntax drop if exists table foo ... 
which seems more natural to me, and generates no conflict.


Or we could live with the conflict, which I think would be harmless 
unless you wanted to delete a table called if, in which case you might 
need to say drop table if exists if ;-)


I'm inclined to live with it, annoying as it is. I looked around to see 
what other DBs do - but AFAICS most don't support this.


Thoughts?

cheers

andrew



---(end of broadcast)---
TIP 3: Have you checked our extensive FAQ?

  http://www.postgresql.org/docs/faq


Re: [HACKERS] syntax for drop if exists

2005-11-13 Thread Tom Lane
Andrew Dunstan [EMAIL PROTECTED] writes:
 The MySQL syntax is actually drop table if exists foo  
 Implementing this unfortunately generates a shift/reduce conflict, 

What did you try exactly?  I don't see any fundamental reason for
a conflict here.  You may just need to rearrange the grammar to postpone
the reduction a bit.

 Or we could live with the conflict,

Utterly unacceptable; see previous discussions.

regards, tom lane

---(end of broadcast)---
TIP 9: In versions below 8.0, the planner will ignore your desire to
   choose an index scan if your joining column's datatypes do not
   match