On 10 Jul 2002, Rod Taylor wrote:

> > However, is there an easy way of obtaining the list of columns (and their
> > types/indexes/etc) in a table, so that we can recreate table a with just
> > that column missing? One which won't break when the underlying pg_* schema 
> > changes?
> 
> I see.  No, not that I know of.  You could take an SQL dump of the DB
> and work on that, then restore at the end of the upgrade process -- but
> thats not so good :)

:)

> 
> Anyway, I'd *really* like to see PostgreSQL officially supported by
> Bugzilla.

So would I. I cringe every time I think of the locking issues we have with 
mysql. There is work being done on that (on a branch), but I don't know 
what the state of it is.

> We may get DROP COLUMN in this release (Christopher?).

Yeah, I've been reading the archives. bugzilla's auto-updating schema is 
probably a bit of an unusual application, but it works for us.

> 
> Changing data types probably won't appear. I don't know of anyone
> working on it -- and it can be quite a complex issue to get a good
> (resource friendly and transaction safe) version.

I'd be happy with a non-resource friendly and non-transaction-safe version 
over not having the functionality at all... ;)

> 
> That said, if drop column is finished in time would the below be close
> enough to do a data type change?:
> 
> alter table <table> rename <column> to <coltemp>;
> alter table <table> add column <column> <newtype>;
> update table <table> set <column> = <coltemp>;
> alter table <table> drop column <coltemp>;
> 

That would work - we'd have to manually recreate the indexes, but most of
the type changes are done in combination with other changes which have us
doing that anyway.

> 
> Are there any other requirements aside from drop column and altering
> data types?
> 

I think the big issues are bugzilla ones, using mysql specific features
(enum/timestamp types, REPLACE INTO, etc) Locking is the major one, but
the first port to pgsql will almost certainly use heavy locking (ie mysql
READ -> pgsql SHARE MODE, mysql WRITE -> ACCESS EXCLUSIVE MODE), because
thats the easiest thing to port the mysql-based code over to. Less
restrictive locking + select for update & friends can be added later.

Thanks,

Bradley


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

http://www.postgresql.org/users-lounge/docs/faq.html

Reply via email to