DROP CONSTRAINT (UNIQUE) preliminary support

Started by Christopher Kings-Lynneabout 25 years ago11 messagespatches
Jump to latest
#1Christopher Kings-Lynne
chriskl@familyhealth.com.au

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

Attachments:

unique.diffapplication/octet-stream; name=unique.diffDownload+169-4
#2Bruce Momjian
bruce@momjian.us
In reply to: Christopher Kings-Lynne (#1)
Re: DROP CONSTRAINT (UNIQUE) preliminary support

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
#3Christopher Kings-Lynne
chriskl@familyhealth.com.au
In reply to: Bruce Momjian (#2)
RE: DROP CONSTRAINT (UNIQUE) preliminary support

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.

Show quoted text

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
#4Bruce Momjian
bruce@momjian.us
In reply to: Christopher Kings-Lynne (#3)
Re: DROP CONSTRAINT (UNIQUE) preliminary support

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
#5Bruce Momjian
bruce@momjian.us
In reply to: Christopher Kings-Lynne (#1)
Re: DROP CONSTRAINT (UNIQUE) preliminary support

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
#6Christopher Kings-Lynne
chriskl@familyhealth.com.au
In reply to: Bruce Momjian (#5)
RE: DROP CONSTRAINT (UNIQUE) preliminary support

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

Show quoted text

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
#7Bruce Momjian
bruce@momjian.us
In reply to: Christopher Kings-Lynne (#6)
Re: DROP CONSTRAINT (UNIQUE) preliminary support

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
#8Christopher Kings-Lynne
chriskl@familyhealth.com.au
In reply to: Bruce Momjian (#7)
RE: DROP CONSTRAINT (UNIQUE) preliminary support

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

#9Bruce Momjian
bruce@momjian.us
In reply to: Christopher Kings-Lynne (#8)
Re: DROP CONSTRAINT (UNIQUE) preliminary support

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
#10Bruce Momjian
bruce@momjian.us
In reply to: Christopher Kings-Lynne (#1)
Re: 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
#11Christopher Kings-Lynne
chriskl@familyhealth.com.au
In reply to: Bruce Momjian (#10)
RE: DROP CONSTRAINT (UNIQUE) preliminary support

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

Show quoted text

-----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