Bug?

Started by Indira Muthuswamyabout 19 years ago6 messages
#1Indira Muthuswamy
indumuthu@gmail.com

Hai,

I have encountered a problem with PostgreSQL.I have created a table
'tab1' with a column 'a' with serial type.I entered 20 records into the
table.So the query
select max(a) from tab1;
returned 20.When I tried the same query after the command
truncate table tab1;
I found that the output of the first query as

max
-----

(1 row)
When I tried to insert a new row into the table tab1 I found that the
value at column a incremented to the value 21.
But I heard from my friends that the value of the serial column gets
decremented whenever we issue the 'truncate table' command (in MS SQL
SERVER).Is the concept same with PostgreSQL or not?Can anyone clarify me on
this?

Thanks in advance,
Regards,
m.Indira

#2Andrew Dunstan
andrew@dunslane.net
In reply to: Indira Muthuswamy (#1)
Re: Bug?

Indira Muthuswamy wrote:

Hai,

I have encountered a problem with PostgreSQL.I have created a table
'tab1' with a column 'a' with serial type.I entered 20 records into
the table.So the query
select max(a) from tab1;
returned 20.When I tried the same query after the command
truncate table tab1;
I found that the output of the first query as

max
-----

(1 row)

When I tried to insert a new row into the table tab1 I found that the
value at column a incremented to the value 21.
But I heard from my friends that the value of the serial column gets
decremented whenever we issue the 'truncate table' command (in MS SQL
SERVER).Is the concept same with PostgreSQL or not?Can anyone clarify
me on this?

Sure. You heard wrong about postgres.

Please do not ask questions like this on the -hackers list - this should
have gone to pgsql-general. The hackers list is for postgresql
development discussions only.

cheers

andrew

#3Jim C. Nasby
jim@nasby.net
In reply to: Indira Muthuswamy (#1)
Re: [HACKERS] Bug?

Moving to -sql.

On Wed, Oct 18, 2006 at 06:53:46PM +0530, Indira Muthuswamy wrote:

Hai,

I have encountered a problem with PostgreSQL.I have created a table
'tab1' with a column 'a' with serial type.I entered 20 records into the
table.So the query
select max(a) from tab1;
returned 20.When I tried the same query after the command
truncate table tab1;
I found that the output of the first query as

max
-----

(1 row)
When I tried to insert a new row into the table tab1 I found that the
value at column a incremented to the value 21.
But I heard from my friends that the value of the serial column gets
decremented whenever we issue the 'truncate table' command (in MS SQL
SERVER).Is the concept same with PostgreSQL or not?Can anyone clarify me on
this?

Your friends are mistaken. TRUNCATE does nothing to affect sequences.
--
Jim Nasby jim@nasby.net
EnterpriseDB http://enterprisedb.com 512.569.9461 (cell)

#4Indira Muthuswamy
indumuthu@gmail.com
In reply to: Jim C. Nasby (#3)
Re: [HACKERS] Bug?

Then how do we clear the values of a serial column(is it done only by
dropping the column?)?

Regards,
M.Indira

Show quoted text

On 10/19/06, Jim C. Nasby <jim@nasby.net> wrote:

Moving to -sql.

On Wed, Oct 18, 2006 at 06:53:46PM +0530, Indira Muthuswamy wrote:

Hai,

I have encountered a problem with PostgreSQL.I have created a table
'tab1' with a column 'a' with serial type.I entered 20 records into the
table.So the query
select max(a) from tab1;
returned 20.When I tried the same query after the command
truncate table tab1;
I found that the output of the first query as

max
-----

(1 row)
When I tried to insert a new row into the table tab1 I found that the
value at column a incremented to the value 21.
But I heard from my friends that the value of the serial column gets
decremented whenever we issue the 'truncate table' command (in MS SQL
SERVER).Is the concept same with PostgreSQL or not?Can anyone clarify me

on

this?

Your friends are mistaken. TRUNCATE does nothing to affect sequences.
--
Jim Nasby jim@nasby.net
EnterpriseDB http://enterprisedb.com 512.569.9461 (cell)

#5Jim C. Nasby
jim@nasby.net
In reply to: Indira Muthuswamy (#4)
Re: [HACKERS] Bug?

See section 9.12 of the docs.

On Thu, Oct 19, 2006 at 12:28:58PM +0530, Indira Muthuswamy wrote:

Then how do we clear the values of a serial column(is it done only by
dropping the column?)?

Regards,
M.Indira

On 10/19/06, Jim C. Nasby <jim@nasby.net> wrote:

Moving to -sql.

On Wed, Oct 18, 2006 at 06:53:46PM +0530, Indira Muthuswamy wrote:

Hai,

I have encountered a problem with PostgreSQL.I have created a table
'tab1' with a column 'a' with serial type.I entered 20 records into the
table.So the query
select max(a) from tab1;
returned 20.When I tried the same query after the command
truncate table tab1;
I found that the output of the first query as

max
-----

(1 row)
When I tried to insert a new row into the table tab1 I found that the
value at column a incremented to the value 21.
But I heard from my friends that the value of the serial column gets
decremented whenever we issue the 'truncate table' command (in MS SQL
SERVER).Is the concept same with PostgreSQL or not?Can anyone clarify me

on

this?

Your friends are mistaken. TRUNCATE does nothing to affect sequences.
--
Jim Nasby jim@nasby.net
EnterpriseDB http://enterprisedb.com 512.569.9461 (cell)

--
Jim Nasby jim@nasby.net
EnterpriseDB http://enterprisedb.com 512.569.9461 (cell)

#6Richard Broersma Jr
rabroersma@yahoo.com
In reply to: Indira Muthuswamy (#4)
Re: [HACKERS] Bug?

Then how do we clear the values of a serial column(is it done only by
dropping the column?)?

If you look at the following link, you will see that serial is not really a true data-type. It is
merely a short-cut to get the desired results:

http://www.postgresql.org/docs/8.1/interactive/datatype.html#DATATYPE-SERIAL

Also, if you are interested in resetting your columns "serial" value back to 1 or 0 or -10000, you
can do it using the setval() function for the following link:

http://www.postgresql.org/docs/8.1/interactive/functions-sequence.html

Regards,

Richard Broersma Jr.