Subject Re: [firebird-support] Is start a reserved word?
Author Helen Borrie
At 03:09 PM 5/05/2009, you wrote:
>I've just migrated from Firebird 1.03 to Firebird 2.5 and have problems with
>tables that have worked fine in 1.03.
>I'm using Flamerobin to manage my database.
>
>I have a couple of tables with Time-fields as the one below
>
>CREATE TABLE Pass
>(PassID integer NOT NULL,
> Brukare varchar(10) NOT NULL,
> PassBet varchar(4),
> Start Time,
> Slut Time,
> CONSTRAINT PK_PASS_PASSID PRIMARY KEY (PassID) );
>
>When I execute the statement
>
>select * from pass
>
>I get the whole table. But when I execute
>
>select passid, start from PASS
>
>Flamerobin says :
>Invalid token
>
>Engine Code : 335544569
>Engine Message :
>Dynamic SQL Error
>SQL error code = -104
>Token unknown - line 1, column 16
>start
>
>On the other hand, when I execute
>
>select passid, slut from PASS
>
>everything works fine.
>
>Is start a reserved word?

YES: read the v.2.1 release notes! It became reserved then, i.e., more than a year ago.

>How can I get around this? In my application I
>have hundreds of SQL-questions referring to tables with the fieldname start.

No choice but to fix it in your database (rename START to double-quoted "START")

viz,
alter table aTable
alter column START to "START"

and in your applications....however

..if you redefine it in the database as double-quoted "START", i.e., all upper case, *and* your application SQL has always passed START in all-uppercase, then the changes in your applications won't be so radical.

If the column has dependencies existing anywhere (in SPs, triggers, constraints, views, etc.), you won't be able to rename it. In that case, it will be a "long haul".

> Can anyone help?

V.2.5 is not a release version so, in any event, a leap from 1.0.x to the beta 2.5 is *extreme*, unless your main objective is field-testing, not production.

You could avoid the reservation of START by migrating to v.2.0.5 instead...but you will of course encounter the problem again later if you don't fix it in the meantime.

./heLen