Subject Re: [firebird-support] Re: Grant priviliges - another question.
Author Jacek Borowski
>> > No.
>> > But then again you don't really want to try this when anyone else
> is
>> > connected either.
>>
>> But, why ?
>
> While Firebird has MVCC on table records, it does not have any such
> concept on table meta data. If you have are in the middle of a
> transaction and all of a sudden the table has more or fewer fields,
> or there is a new constraint or something, then it is really going to
> confuse things. Firebird will NOT let you change the meta data of a
> table that is "in use", in fact you will get such a message if you
> try.
>
> In your case, you could quite easily create a program that shut down
> the particular fdb, connected as the owner, make any metadata changes
> required, then turn the fdb back on.
>
> From experience, I also wouldn't be so confident that old programs
> will work with new database structures, especially if you do not
> declare every field of a table in an insert statement etc.

From my experience this solution works. I need to connect to database as
owner, and I can alter tables even if other users works. In last two years
I've made it often and I hadn't any problems. The old software hasn't
information about new fields, then all selects, insert and updates are made
without them. New software selects, inserts and updates records with full
informations. Of course there are limitations (constraints,triggers ...) as
you said, but for calculated fields or simple additional informations there
is no problem.
It is not possible to shut down database when other users works.
I see, that even though this solution works, maybe there is something
danger.
Whole idea is simple. After testing some new solutions I need send new
software to many users, and I'd like to do it automaticaly, without my
supervisory control.

Thanks, Adam


Jacek