Thread: DROP CONSTRAINT (UNIQUE) preliminary support

DROP CONSTRAINT (UNIQUE) preliminary support

From
"Christopher Kings-Lynne"
Date:
Hi all,

This patch allows ALTER TABLE/DROP CONSTRAINT to drop UNIQUE constraints by
dropping the relevant index.

This is a prelim patch that I need comment on (The @@ comments), and I've
edited some things out by hand, so I don't recommend applying it to anything
just yet.

I have added an IsIndex function to indexcmds.c and a RemoveUniqueConstraint
to heap.c, plus modified command.c's AlterTableDropConstraint function to
call RemoveUniqueConstraint.

Note that I have disabled inheritance support for unique constraints - since
it's impossible to have two indices of the same name anyway...

Comments please.

Chris

Attachment

Re: DROP CONSTRAINT (UNIQUE) preliminary support

From
Bruce Momjian
Date:
How are we doing on this patch?

> Hi all,
>
> This patch allows ALTER TABLE/DROP CONSTRAINT to drop UNIQUE constraints by
> dropping the relevant index.
>
> This is a prelim patch that I need comment on (The @@ comments), and I've
> edited some things out by hand, so I don't recommend applying it to anything
> just yet.
>
> I have added an IsIndex function to indexcmds.c and a RemoveUniqueConstraint
> to heap.c, plus modified command.c's AlterTableDropConstraint function to
> call RemoveUniqueConstraint.
>
> Note that I have disabled inheritance support for unique constraints - since
> it's impossible to have two indices of the same name anyway...
>
> Comments please.
>
> Chris

[ Attachment, skipping... ]

>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
>     (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

RE: DROP CONSTRAINT (UNIQUE) preliminary support

From
"Christopher Kings-Lynne"
Date:
> How are we doing on this patch?

Don't commit it!  I just want feedback - however I prolly won't worry about
it until I've finished fully implementing DROP CONSTRAINT to support all
types of constraints.

> > Hi all,
> >
> > This patch allows ALTER TABLE/DROP CONSTRAINT to drop UNIQUE
> constraints by
> > dropping the relevant index.
> >
> > This is a prelim patch that I need comment on (The @@
> comments), and I've
> > edited some things out by hand, so I don't recommend applying
> it to anything
> > just yet.
> >
> > I have added an IsIndex function to indexcmds.c and a
> RemoveUniqueConstraint
> > to heap.c, plus modified command.c's AlterTableDropConstraint
> function to
> > call RemoveUniqueConstraint.
> >
> > Note that I have disabled inheritance support for unique
> constraints - since
> > it's impossible to have two indices of the same name anyway...
> >
> > Comments please.
> >
> > Chris
>
> [ Attachment, skipping... ]
>
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 2: you can get off all lists at once with the unregister command
> >     (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
>
> --
>   Bruce Momjian                        |  http://candle.pha.pa.us
>   pgman@candle.pha.pa.us               |  (610) 853-3000
>   +  If your life is a hard drive,     |  830 Blythe Avenue
>   +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026
>


Re: DROP CONSTRAINT (UNIQUE) preliminary support

From
Bruce Momjian
Date:
> > How are we doing on this patch?
>
> Don't commit it!  I just want feedback - however I prolly won't worry about
> it until I've finished fully implementing DROP CONSTRAINT to support all
> types of constraints.

I haven't seen anyone comment on it so I asked.

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Re: DROP CONSTRAINT (UNIQUE) preliminary support

From
Bruce Momjian
Date:
Christopher, where are we on this patch?


> Hi all,
>
> This patch allows ALTER TABLE/DROP CONSTRAINT to drop UNIQUE constraints by
> dropping the relevant index.
>
> This is a prelim patch that I need comment on (The @@ comments), and I've
> edited some things out by hand, so I don't recommend applying it to anything
> just yet.
>
> I have added an IsIndex function to indexcmds.c and a RemoveUniqueConstraint
> to heap.c, plus modified command.c's AlterTableDropConstraint function to
> call RemoveUniqueConstraint.
>
> Note that I have disabled inheritance support for unique constraints - since
> it's impossible to have two indices of the same name anyway...
>
> Comments please.
>
> Chris

[ Attachment, skipping... ]

>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
>     (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

RE: DROP CONSTRAINT (UNIQUE) preliminary support

From
"Christopher Kings-Lynne"
Date:
> Christopher, where are we on this patch?

No-one commented on it.  It's not a committable patch, it was basically to
get some feedback to see if I was going in the right direction.

Since then, I decided to complete the ADD CONSTRAINT stuff first.  I've
_almost_ finished ADD UNIQUE and ADD PRIMARY.  I'll probably submit a patch
for those in the next couple of days.  After that I'll worry about DROP
CONSTRAINT again.

Chris

> > Hi all,
> >
> > This patch allows ALTER TABLE/DROP CONSTRAINT to drop UNIQUE
> constraints by
> > dropping the relevant index.
> >
> > This is a prelim patch that I need comment on (The @@
> comments), and I've
> > edited some things out by hand, so I don't recommend applying
> it to anything
> > just yet.
> >
> > I have added an IsIndex function to indexcmds.c and a
> RemoveUniqueConstraint
> > to heap.c, plus modified command.c's AlterTableDropConstraint
> function to
> > call RemoveUniqueConstraint.
> >
> > Note that I have disabled inheritance support for unique
> constraints - since
> > it's impossible to have two indices of the same name anyway...
> >
> > Comments please.
> >
> > Chris
>
> [ Attachment, skipping... ]
>
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 2: you can get off all lists at once with the unregister command
> >     (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
>
> --
>   Bruce Momjian                        |  http://candle.pha.pa.us
>   pgman@candle.pha.pa.us               |  (610) 853-3000
>   +  If your life is a hard drive,     |  830 Blythe Avenue
>   +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026
>


Re: DROP CONSTRAINT (UNIQUE) preliminary support

From
Bruce Momjian
Date:
> > Christopher, where are we on this patch?
>
> No-one commented on it.  It's not a committable patch, it was basically to
> get some feedback to see if I was going in the right direction.
>
> Since then, I decided to complete the ADD CONSTRAINT stuff first.  I've
> _almost_ finished ADD UNIQUE and ADD PRIMARY.  I'll probably submit a patch
> for those in the next couple of days.  After that I'll worry about DROP
> CONSTRAINT again.

Oh, fine.  Just checking.  Didn't want you to think we weren't
interested in your work.

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

RE: DROP CONSTRAINT (UNIQUE) preliminary support

From
"Christopher Kings-Lynne"
Date:
> > Since then, I decided to complete the ADD CONSTRAINT stuff first.  I've
> > _almost_ finished ADD UNIQUE and ADD PRIMARY.  I'll probably
> submit a patch
> > for those in the next couple of days.  After that I'll worry about DROP
> > CONSTRAINT again.
>
> Oh, fine.  Just checking.  Didn't want you to think we weren't
> interested in your work.

Well - it isn't as sexy as UNDO/REDO support, planner optimisation or an
overwriting storage manager, but there's nothing more annoying to me as a
web developer to have inflexible schema.  How much do I want that DROP
COLUMN feature!  It's simply not feasible to recreate the table without the
column on a live server.

Chris


Re: DROP CONSTRAINT (UNIQUE) preliminary support

From
Bruce Momjian
Date:
> > > Since then, I decided to complete the ADD CONSTRAINT stuff first.  I've
> > > _almost_ finished ADD UNIQUE and ADD PRIMARY.  I'll probably
> > submit a patch
> > > for those in the next couple of days.  After that I'll worry about DROP
> > > CONSTRAINT again.
> >
> > Oh, fine.  Just checking.  Didn't want you to think we weren't
> > interested in your work.
>
> Well - it isn't as sexy as UNDO/REDO support, planner optimisation or an
> overwriting storage manager, but there's nothing more annoying to me as a
> web developer to have inflexible schema.  How much do I want that DROP
> COLUMN feature!  It's simply not feasible to recreate the table without the
> column on a live server.

Agreed.  We need to bite the bullet, decide on a plan, and get going.
My vote is to make a second copy of the table then update pg_class.  Now
that we have files as numbers, relfilenode, we can do that reliably.
Let's get started!

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

Re: DROP CONSTRAINT (UNIQUE) preliminary support

From
Bruce Momjian
Date:
Where did we leave this?

> Hi all,
>
> This patch allows ALTER TABLE/DROP CONSTRAINT to drop UNIQUE constraints by
> dropping the relevant index.
>
> This is a prelim patch that I need comment on (The @@ comments), and I've
> edited some things out by hand, so I don't recommend applying it to anything
> just yet.
>
> I have added an IsIndex function to indexcmds.c and a RemoveUniqueConstraint
> to heap.c, plus modified command.c's AlterTableDropConstraint function to
> call RemoveUniqueConstraint.
>
> Note that I have disabled inheritance support for unique constraints - since
> it's impossible to have two indices of the same name anyway...
>
> Comments please.
>
> Chris

[ Attachment, skipping... ]

>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
>     (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

RE: DROP CONSTRAINT (UNIQUE) preliminary support

From
"Christopher Kings-Lynne"
Date:
Forget this patch entirely - it was just a preview so I could get comment.
But then I got bored and decided to implement ADD UNIQUE and ADD PRIMARY
before worrying about the DROP code.

Discard it - I'll resubmit a proper patch some other time.

Chris

> -----Original Message-----
> From: Bruce Momjian [mailto:pgman@candle.pha.pa.us]
> Sent: Saturday, 25 August 2001 1:35 AM
> To: Christopher Kings-Lynne
> Cc: Patches
> Subject: Re: [PATCHES] DROP CONSTRAINT (UNIQUE) preliminary support
>
>
>
> Where did we leave this?
>
> > Hi all,
> >
> > This patch allows ALTER TABLE/DROP CONSTRAINT to drop UNIQUE
> constraints by
> > dropping the relevant index.
> >
> > This is a prelim patch that I need comment on (The @@
> comments), and I've
> > edited some things out by hand, so I don't recommend applying
> it to anything
> > just yet.
> >
> > I have added an IsIndex function to indexcmds.c and a
> RemoveUniqueConstraint
> > to heap.c, plus modified command.c's AlterTableDropConstraint
> function to
> > call RemoveUniqueConstraint.
> >
> > Note that I have disabled inheritance support for unique
> constraints - since
> > it's impossible to have two indices of the same name anyway...
> >
> > Comments please.
> >
> > Chris
>
> [ Attachment, skipping... ]
>
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 2: you can get off all lists at once with the unregister command
> >     (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
>
> --
>   Bruce Momjian                        |  http://candle.pha.pa.us
>   pgman@candle.pha.pa.us               |  (610) 853-3000
>   +  If your life is a hard drive,     |  830 Blythe Avenue
>   +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026
>