Subject Re: [Firebird-Architect] Replace the statement REPLACE
Author Jonathan Neve
Hi Jim and all,

Jim Starkey wrote:
> Geoff Worboys wrote:
>
>> PS. I think that REPLACE is the correct word for the behaviour
>> in MySQL - and would be the incorrect word for what you want to
>> achieve. Replace does imply removal of the existing, or the
>> restoration of something previously removed.
>>
>>
>>
> Withholding a final opinion until I see the actual syntax, I tend to
> favor the keyword REPLACE. Yes, MySQL has a REPLACE statement with
> approximately (?) the same syntax, but the MySQL statement is completely
> screwed up and works badly, if at all, with triggers or foreign keys.
> Having Firebird do it right will making fixing MySQL easier (believe it
> or not).
>

My only contribution to the issue would be to say that, as Geoff pointed
out, it would introduce another keyword into Firebird -- something
which, IMO, is to be avoided at all costs for the sake of backwards
compatibility. REPLACE may not be used very often in column definitions
(I'm pretty sure I've never used it myself, especially as I,
fortunately, mostly design my meta-data in French... :) ), but it seems
to me that this is still a consideration.

I have personally always wondered (though my wondering such things is
probably indicative only of my ignorance of the implementation details
behind it) why Firebird couldn't recognize keywords context-sensitively,
that is, allow keywords to be used as field names (for example) and only
treat them as keywords in a context where it would make sense. If I
write "alter table test add type varchar(50)", doesn't the context make
it clear that "type" is here a field name, and not a keyword? Again, I
suppose there must be some good technical reason behind this, but I'm
quite curious to know what it is. If there was any way of circumventing
this problem, it would certainly get my vote as one of the most useful
(though admittedly least noticeable) improvement that could be made to
Firebird in the near future.

--
Best regards,
Jonathan Neve
_______________
CopyTiger - advanced database replicator for Interbase/Firebird!
Web : http://www.microtec.fr/copycat/ct
_______________________________________
CopyCat - database replication components for Delphi/C++Builder!
Web : http://www.microtec.fr/copycat/cc



[Non-text portions of this message have been removed]