pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
Partitioned Tables
2+ messages / 2 participants
[nested] [flat]

* Partitioned Tables
@ 2012-06-13 00:05  Wayne Cuddy <lists-pgsql@useunix.net>
  0 siblings, 1 reply; 2+ messages in thread

From: Wayne Cuddy @ 2012-06-13 00:05 UTC (permalink / raw)
  To: pgsql-sql

I'm using partitioned tables where a child table is chosen based on a
time stamp. One child table exists for each month.

I move records from a temp table to the partitioned table via something like
this:

INSERT INTO parent_table SELECT * FROM temp_table;

All works well but with when inserting to standard tables the insert
result contains the number of records inserted. I've found that when I
insert into partitioned tables the result is always zero.

I'm using the TCL binding (pgintcl) but psql behaves the same way. Is
there any way to determine the number of rows actually inserted?

Thanks,
Wayne 



^ permalink  raw  reply  [nested|flat] 2+ messages in thread

* Re: Partitioned Tables
@ 2012-06-13 02:37  Craig Ringer <ringerc@ringerc.id.au>
  parent: Wayne Cuddy <lists-pgsql@useunix.net>
  0 siblings, 0 replies; 2+ messages in thread

From: Craig Ringer @ 2012-06-13 02:37 UTC (permalink / raw)
  To: pgsql-sql

On 06/13/2012 08:05 AM, Wayne Cuddy wrote:
> I'm using partitioned tables where a child table is chosen based on a
> time stamp. One child table exists for each month.
>
> I move records from a temp table to the partitioned table via something like
> this:
>
> INSERT INTO parent_table SELECT * FROM temp_table;
>
> All works well but with when inserting to standard tables the insert
> result contains the number of records inserted. I've found that when I
> insert into partitioned tables the result is always zero.

Are you inserting directly into the partition? Or into the parent table?

If you're inserting into the parent, then it's true that no rows were 
inserted into the parent; a trigger redirected the write into the child 
table. Pg's handling of partitioning isn't yet sophisticated enough to 
recognise that those rows got written to a child and thus still appeared 
in the parent and report that.

As a workaround, ignore the insert count for partitioned tables, or 
insert directly into the appropriate partition(s).

--
Craig Ringer



^ permalink  raw  reply  [nested|flat] 2+ messages in thread


end of thread, other threads:[~2012-06-13 02:37 UTC | newest]

Thread overview: 2+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2012-06-13 00:05 Partitioned Tables Wayne Cuddy <lists-pgsql@useunix.net>
2012-06-13 02:37 ` Craig Ringer <ringerc@ringerc.id.au>

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox