On 9/23/2010 5:33 PM, Tom Lane wrote:
"David Schmitt"<da...@dasz.at>  writes:
Description:        Optimizer creates strange execution plan leading to
wrong results

Please supply a self-contained example demonstrating the incorrect results.
The information you've provided is completely inadequate for
investigating this problem report.  A SQL script that creates some test
tables and executes a query that gives wrong answers would be helpful.


Executing the attached example.sql on a fresh database demonstrates the problem I'm seeing:

postg...@db:~$ dropdb test; createdb test; psql test < example.sql
[load dump]
[execute query]
 ID |         CreatedOn          |         ChangedOn          |              
ExportGuid              | fk_CreatedBy | fk_ChangedBy | fk_Property | ID |      
   CreatedOn          |         ChangedOn          |              ExportGuid    
          | fk_CreatedBy | fk_ChangedBy | fk_Property | C1 | C2 | C3 | C4 | 
fk_EnumVal
----+----------------------------+----------------------------+--------------------------------------+--------------+--------------+-------------+----+----------------------------+----------------------------+--------------------------------------+--------------+--------------+-------------+----+----+----+----+------------
 60 | 2010-09-20 13:22:17.773308 | 2010-09-20 13:22:17.773308 | 
ecbd6901-13e8-4beb-a6a2-0548eba345a8 |              |              |         
783 | 60 | 2010-09-20 13:22:17.773308 | 2010-09-20 13:22:17.773308 | 
ecbd6901-13e8-4beb-a6a2-0548eba345a8 |              |              |         
783 | 60 | f  | t  | f  |          3
 60 | 2010-09-20 13:22:17.773308 | 2010-09-20 13:22:17.773308 | 
ecbd6901-13e8-4beb-a6a2-0548eba345a8 |              |              |         
783 | 60 | 2010-09-20 13:22:17.773308 | 2010-09-20 13:22:17.773308 | 
ecbd6901-13e8-4beb-a6a2-0548eba345a8 |              |              |         
783 | 60 | f  | t  | f  |          3
(2 rows)

[remove pk]
[execute query again]
ALTER TABLE
 ID |         CreatedOn          |         ChangedOn          |              
ExportGuid              | fk_CreatedBy | fk_ChangedBy | fk_Property | ID |      
   CreatedOn          |         ChangedOn          |              ExportGuid    
          | fk_CreatedBy | fk_ChangedBy | fk_Property | C1 | C2 | C3 | C4 | 
fk_EnumVal
----+----------------------------+----------------------------+--------------------------------------+--------------+--------------+-------------+----+----------------------------+----------------------------+--------------------------------------+--------------+--------------+-------------+----+----+----+----+------------
 60 | 2010-09-20 13:22:17.773308 | 2010-09-20 13:22:17.773308 | 
ecbd6901-13e8-4beb-a6a2-0548eba345a8 |              |              |         
783 | 60 | 2010-09-20 13:22:17.773308 | 2010-09-20 13:22:17.773308 | 
ecbd6901-13e8-4beb-a6a2-0548eba345a8 |              |              |         
783 | 60 | f  | t  | f  |          3
(1 row)


Hopefully, this helps you debugging it! Thanks for your time and work on the otherwise really great PostgreSQL.


Best Regards, David
--
dasz.at OG              Tel: +43 (0)664 2602670     Web: http://dasz.at
Klosterneuburg                                         UID: ATU64260999

       FB-Nr.: FN 309285 g          FB-Gericht: LG Korneuburg
--
-- PostgreSQL database dump
--

SET statement_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = off;
SET check_function_bodies = false;
SET client_min_messages = warning;
SET escape_string_warning = off;

SET default_with_oids = false;


CREATE OR REPLACE FUNCTION uuid_generate_v4()
  RETURNS uuid AS
'$libdir/uuid-ossp', 'uuid_generate_v4'
  LANGUAGE 'c' VOLATILE STRICT
  COST 1;

--
-- Name: CurrentDateTimeDefaultValues; Type: TABLE; Schema: dbo; Owner: zbox; 
Tablespace: 
--

CREATE TABLE "CurrentDateTimeDefaultValues" (
    "ID" integer NOT NULL
);


--
-- Name: DefaultPropertyValues; Type: TABLE; Schema: dbo; Owner: zbox; 
Tablespace: 
--

CREATE TABLE "DefaultPropertyValues" (
    "ID" integer NOT NULL,
    "CreatedOn" timestamp without time zone,
    "ChangedOn" timestamp without time zone,
    "ExportGuid" uuid DEFAULT public.uuid_generate_v4() NOT NULL,
    "fk_CreatedBy" integer,
    "fk_ChangedBy" integer,
    "fk_Property" integer NOT NULL
);


--
-- Name: DefaultPropertyValues_ID_seq; Type: SEQUENCE; Schema: dbo; Owner: zbox
--

CREATE SEQUENCE "DefaultPropertyValues_ID_seq"
    START WITH 1
    INCREMENT BY 1
    NO MAXVALUE
    NO MINVALUE
    CACHE 1;


--
-- Name: DefaultPropertyValues_ID_seq; Type: SEQUENCE OWNED BY; Schema: dbo; 
Owner: zbox
--

ALTER SEQUENCE "DefaultPropertyValues_ID_seq" OWNED BY 
"DefaultPropertyValues"."ID";


--
-- Name: DefaultPropertyValues_ID_seq; Type: SEQUENCE SET; Schema: dbo; Owner: 
zbox
--

SELECT pg_catalog.setval('"DefaultPropertyValues_ID_seq"', 60, true);


--
-- Name: EnumDefaultValues; Type: TABLE; Schema: dbo; Owner: zbox; Tablespace: 
--

CREATE TABLE "EnumDefaultValues" (
    "ID" integer NOT NULL,
    "fk_EnumValue" integer NOT NULL
);


--
-- Name: NewGuidDefaultValues; Type: TABLE; Schema: dbo; Owner: zbox; 
Tablespace: 
--

CREATE TABLE "NewGuidDefaultValues" (
    "ID" integer NOT NULL
);


--
-- Name: ID; Type: DEFAULT; Schema: dbo; Owner: zbox
--

ALTER TABLE "DefaultPropertyValues" ALTER COLUMN "ID" SET DEFAULT 
nextval('"DefaultPropertyValues_ID_seq"'::regclass);


--
-- Data for Name: CurrentDateTimeDefaultValues; Type: TABLE DATA; Schema: dbo; 
Owner: zbox
--

COPY "CurrentDateTimeDefaultValues" ("ID") FROM stdin;
58
57
56
55
59
\.


--
-- Data for Name: DefaultPropertyValues; Type: TABLE DATA; Schema: dbo; Owner: 
zbox
--

COPY "DefaultPropertyValues" ("ID", "CreatedOn", "ChangedOn", "ExportGuid", 
"fk_CreatedBy", "fk_ChangedBy", "fk_Property") FROM stdin;
1       2010-08-13 15:21:05.76775       2010-08-13 15:21:05.76775       
c76e0b6a-54e5-4aa7-94eb-275a1bc9371c    \N      \N      107
2       2010-07-12 18:11:15.14978       2010-07-12 18:11:15.14978       
fc046683-3e72-412c-a4c4-be6bfb47d636    \N      \N      142
3       2010-01-29 13:11:51.28  2010-01-29 13:11:51.28  
0978bee8-7802-4c7d-b463-16a4f37b82ef    \N      \N      108
4       2010-03-25 09:36:15.417 2010-03-25 09:36:15.417 
a907f2c6-f999-4306-b1a9-6e3ce05690de    \N      \N      103
5       2009-12-14 17:08:05.39  2009-12-14 17:08:05.39  
9d9ed07b-5922-4009-8d9e-19ace4ba5d77    \N      \N      100
6       2009-12-14 17:08:05.387 2009-12-14 17:08:05.387 
f570c30e-ddff-4af7-9870-0512858b0d99    \N      \N      101
7       2009-12-14 17:08:05.39  2009-12-14 17:08:05.39  
ff4229a6-78cb-4ac4-86a1-342fc9a6b63b    \N      \N      102
8       2010-03-08 15:47:06.183 2010-03-08 15:47:06.183 
3e7c34d5-e1ab-4f06-87d7-d1f61b4f2e3b    \N      \N      99
9       2010-08-16 11:08:36.566158      2010-08-16 11:08:36.566158      
5981b736-dfa6-4c95-b2ab-eb0969beb962    \N      \N      106
10      2009-12-14 17:08:05.39  2009-12-14 17:08:05.39  
01c2abbc-fa48-4a55-9ba5-bd2f9f12375e    \N      \N      104
11      2010-08-11 14:38:12.67653       2010-08-11 14:38:12.67653       
54267d1f-0800-4a43-b659-08c1b16b5235    \N      \N      105
12      2010-07-23 16:21:13.775739      2010-07-23 16:21:13.775739      
79203001-7fd9-4cf0-b38f-ca5e83ababf1    \N      \N      184
13      2010-07-16 14:25:11.112133      2010-07-16 14:25:11.112133      
cba59ff5-8cc1-4d9c-9130-6c114724524e    \N      \N      144
14      2010-07-22 11:55:24.863555      2010-07-22 11:55:24.863555      
cffe625f-a171-4018-8022-61d655af4de8    \N      \N      145
15      2009-12-14 17:08:05.403 2009-12-14 17:08:05.403 
14918fa9-45e3-4bae-9e08-25268515610c    \N      \N      183
16      2010-08-11 12:10:50.764801      2010-08-11 12:10:50.764801      
4ee7b660-482c-4edb-b525-6b6b517de318    \N      \N      146
17      2010-08-20 10:54:30.49596       2010-08-20 10:54:30.49596       
bb12edce-955c-438a-8d08-fd1f6dabff10    \N      \N      143
18      2010-08-26 17:23:58.6985        2010-08-26 17:23:58.6985        
b4814559-ce95-4f7d-9afe-c0378be65d8f    \N      \N      139
19      2010-07-21 16:55:50.018353      2010-07-21 16:55:50.018353      
95602787-4e40-4b42-a54f-0ae8ae6efc46    \N      \N      138
20      2010-07-12 17:57:28.204481      2010-07-12 17:57:28.204481      
78c6c4a9-8115-476e-b717-41e2c5a36a48    \N      \N      140
21      2010-05-26 11:21:03.997 2010-05-26 11:21:03.997 
de9052f6-3039-4f2a-8fa0-f4c8b7484d83    \N      \N      185
22      2010-08-30 17:25:46.040982      2010-08-30 17:25:46.040982      
4bfb802f-4ec4-4cde-9ac0-fa22e59d1bc7    \N      \N      141
23      2010-07-19 13:40:55.269556      2010-07-19 13:40:55.269556      
c3aeed08-6e44-4525-bf05-c5db98c99f3b    \N      \N      180
24      2009-12-14 17:08:05.403 2009-12-14 17:08:05.403 
fe342efd-3267-4221-be27-e51c2c85a18d    \N      \N      176
25      2010-07-12 16:32:08.613657      2010-07-12 16:32:08.613657      
c2f8dd32-ec41-4c09-bfd5-f317127c4476    \N      \N      177
26      2010-07-12 14:16:38.519642      2010-07-12 14:16:38.519642      
7d7617ce-3413-401a-9833-6f26be9e9fc7    \N      \N      179
27      2010-07-01 17:03:50.947 2010-07-01 17:03:50.947 
1aa97f2d-ef92-478e-aabf-0b4b1048c50c    \N      \N      178
28      2010-07-01 17:03:50.943 2010-07-01 17:03:50.943 
75b38722-7e3e-4d24-8918-e58f7bb562b3    \N      \N      175
29      2009-12-14 17:08:05.39  2009-12-14 17:08:05.39  
8314cea3-d577-49da-9e33-7a11130d61c5    \N      \N      182
30      2010-07-08 15:56:41.988113      2010-07-08 15:56:41.988113      
c5112a8e-f08b-48d2-9771-a053f053f146    \N      \N      147
31      2009-12-14 17:08:05.39  2009-12-14 17:08:05.39  
7099a399-42f5-470b-859f-f16847d617b3    \N      \N      148
32      2009-12-14 17:08:05.39  2009-12-14 17:08:05.39  
4edb8fb2-f2f2-49c1-addd-2584ac8c77ae    \N      \N      181
33      2010-07-01 17:03:50.947 2010-07-01 17:03:50.947 
6308c43c-ce15-495a-b7cd-12428170b7b4    \N      \N      174
34      2009-12-14 17:08:05.39  2009-12-14 17:08:05.39  
157a7cc8-3c14-4e0a-8cb5-66a3ef2749c0    \N      \N      115
35      2009-12-14 17:08:05.39  2009-12-14 17:08:05.39  
7e8187e3-2e6a-439a-9534-f91192c33897    \N      \N      114
36      2009-12-14 17:08:05.39  2009-12-14 17:08:05.39  
849c1c20-8aaf-4c1e-9722-6634bd46301a    \N      \N      116
37      2009-12-14 17:08:05.39  2009-12-14 17:08:05.39  
d90c6237-cea9-497c-af56-8a8265a5cff6    \N      \N      118
38      2009-12-14 17:08:05.39  2009-12-14 17:08:05.39  
4f91070a-3f9e-4c77-8814-99aea8430f22    \N      \N      117
39      2010-08-26 18:19:01.649418      2010-08-26 18:19:01.649418      
17454c31-d3d4-4ac0-b570-28df7f19db54    \N      \N      110
40      2010-08-16 11:19:40.713145      2010-08-16 11:19:40.713145      
87c42abc-1d68-4939-b86a-461af591037b    \N      \N      109
41      2009-12-14 17:08:05.39  2009-12-14 17:08:05.39  
19092ca2-45dc-47bb-bec9-87b06f087929    \N      \N      111
42      2010-06-01 11:02:55.373 2010-06-01 11:02:55.373 
05ee1498-1300-4d4a-a3cb-e4712bf19c3e    \N      \N      113
43      2009-12-14 17:08:05.39  2009-12-14 17:08:05.39  
32ad4eaa-febc-4b69-b875-ed2e7c782f4c    \N      \N      112
44      2009-12-14 17:08:05.39  2009-12-14 17:08:05.39  
12614e14-f045-469f-85fa-7fc1e00ef0b7    \N      \N      119
45      2010-07-12 15:48:11.088799      2010-07-12 15:48:11.088799      
917dbd99-7444-4cc6-9999-5d830bb14d28    \N      \N      128
46      2010-08-26 14:22:12.194683      2010-08-26 14:22:12.194683      
0ee36644-86eb-4e4b-a5dd-82d0fa9d730d    \N      \N      127
47      2010-07-12 15:45:39.270116      2010-07-12 15:45:39.270116      
5f03f849-81f0-4fbe-8fa0-0a994228db14    \N      \N      129
48      2010-07-21 17:04:48.306141      2010-07-21 17:04:48.306141      
0ff13553-8e40-45ed-996b-129556e62268    \N      \N      137
49      2010-08-25 13:49:28.928468      2010-08-25 13:49:28.928468      
ba1c85f7-607e-4452-acba-5aac7865ffa7    \N      \N      136
50      2010-03-10 13:14:05.063 2010-03-10 13:14:05.063 
9908f0df-2f0b-48ea-89c8-41337ad723f3    \N      \N      124
51      2009-12-14 17:08:05.39  2009-12-14 17:08:05.39  
353415fa-4304-481c-af7e-3484afcecf0c    \N      \N      121
52      2009-12-14 17:08:05.39  2009-12-14 17:08:05.39  
8cea0e1d-82b6-4344-8d60-e850491b6157    \N      \N      120
53      2010-01-29 11:01:14.903 2010-01-29 11:01:14.903 
0d75021d-5071-4766-b63f-5d704879da12    \N      \N      122
54      2010-08-13 15:18:48.821917      2010-08-13 15:18:48.821917      
0292a7d3-8c44-4dcc-91bc-7767fe3956f0    \N      \N      123
55      2010-08-30 11:26:50.352211      2010-08-30 11:26:50.352211      
ce24b705-89ba-488d-afc2-9c4a81636889    \N      \N      597
56      2010-08-30 11:27:09.659315      2010-08-30 11:27:09.659315      
a39b2a6a-190b-4335-8d41-a763f2692fad    \N      \N      627
57      2010-08-30 11:25:36.588992      2010-08-30 11:25:36.588992      
e0bdabe0-9a18-42e0-b2d2-ab107219f2d3    \N      \N      605
58      2010-08-30 11:26:14.438157      2010-08-30 11:26:14.438157      
4b8f603a-7305-4086-8dfe-560abe616fa5    \N      \N      604
59      2010-09-20 12:25:47.706407      2010-09-20 12:25:47.706407      
2597fb09-4d50-47cb-ba2a-0167b5f88fd5    \N      \N      807
60      2010-09-20 13:22:17.773308      2010-09-20 13:22:17.773308      
ecbd6901-13e8-4beb-a6a2-0548eba345a8    \N      \N      783
\.


--
-- Data for Name: EnumDefaultValues; Type: TABLE DATA; Schema: dbo; Owner: zbox
--

COPY "EnumDefaultValues" ("ID", "fk_EnumValue") FROM stdin;
60      3
\.


--
-- Data for Name: NewGuidDefaultValues; Type: TABLE DATA; Schema: dbo; Owner: 
zbox
--

COPY "NewGuidDefaultValues" ("ID") FROM stdin;
12
17
11
10
48
47
46
15
13
14
16
9
1
51
50
52
33
54
53
2
7
49
8
6
3
4
5
25
24
36
26
23
39
37
38
30
29
34
31
32
35
28
27
22
43
42
44
45
18
40
41
21
20
19
\.


--
-- Name: PK_[zbox].[dbo].[CurrentDateTimeDefaultValues]; Type: CONSTRAINT; 
Schema: dbo; Owner: zbox; Tablespace: 
--

ALTER TABLE ONLY "CurrentDateTimeDefaultValues"
    ADD CONSTRAINT "PK_[zbox].[dbo].[CurrentDateTimeDefaultValues]" PRIMARY KEY 
("ID");


--
-- Name: PK_[zbox].[dbo].[DefaultPropertyValues]; Type: CONSTRAINT; Schema: 
dbo; Owner: zbox; Tablespace: 
--

ALTER TABLE ONLY "DefaultPropertyValues"
    ADD CONSTRAINT "PK_[zbox].[dbo].[DefaultPropertyValues]" PRIMARY KEY ("ID");


--
-- Name: PK_[zbox].[dbo].[EnumDefaultValues]; Type: CONSTRAINT; Schema: dbo; 
Owner: zbox; Tablespace: 
--

ALTER TABLE ONLY "EnumDefaultValues"
    ADD CONSTRAINT "PK_[zbox].[dbo].[EnumDefaultValues]" PRIMARY KEY ("ID");


--
-- Name: PK_[zbox].[dbo].[NewGuidDefaultValues]; Type: CONSTRAINT; Schema: dbo; 
Owner: zbox; Tablespace: 
--

ALTER TABLE ONLY "NewGuidDefaultValues"
    ADD CONSTRAINT "PK_[zbox].[dbo].[NewGuidDefaultValues]" PRIMARY KEY ("ID");


--
-- Name: IDX_DefaultPropertyValues_fk_Property; Type: INDEX; Schema: dbo; 
Owner: zbox; Tablespace: 
--

CREATE UNIQUE INDEX "IDX_DefaultPropertyValues_fk_Property" ON 
"DefaultPropertyValues" USING btree ("fk_Property");


--
-- Name: UIDX_DefaultPropertyValues_ExportGuid; Type: INDEX; Schema: dbo; 
Owner: zbox; Tablespace: 
--

CREATE UNIQUE INDEX "UIDX_DefaultPropertyValues_ExportGuid" ON 
"DefaultPropertyValues" USING btree ("ExportGuid");


--
-- Name: FK_CurrentDateTimeDefaultValue_DefaultPropertyValue_ID; Type: FK 
CONSTRAINT; Schema: dbo; Owner: zbox
--

ALTER TABLE ONLY "CurrentDateTimeDefaultValues"
    ADD CONSTRAINT "FK_CurrentDateTimeDefaultValue_DefaultPropertyValue_ID" 
FOREIGN KEY ("ID") REFERENCES "DefaultPropertyValues"("ID");


--
-- Name: FK_EnumDefaultValue_DefaultPropertyValue_ID; Type: FK CONSTRAINT; 
Schema: dbo; Owner: zbox
--

ALTER TABLE ONLY "EnumDefaultValues"
    ADD CONSTRAINT "FK_EnumDefaultValue_DefaultPropertyValue_ID" FOREIGN KEY 
("ID") REFERENCES "DefaultPropertyValues"("ID");


--
-- Name: FK_NewGuidDefaultValue_DefaultPropertyValue_ID; Type: FK CONSTRAINT; 
Schema: dbo; Owner: zbox
--

ALTER TABLE ONLY "NewGuidDefaultValues"
    ADD CONSTRAINT "FK_NewGuidDefaultValue_DefaultPropertyValue_ID" FOREIGN KEY 
("ID") REFERENCES "DefaultPropertyValues"("ID");



--
-- PostgreSQL database dump complete
--


select *
from "DefaultPropertyValues" AS "Extent1"
        INNER JOIN "DefaultPropertyValues" AS "Extent2" ON 
"Extent1"."ID"="Extent2"."ID"
        LEFT JOIN (
                SELECT "UnionAll1"."ID" AS "C1","UnionAll1"."C1" AS 
"C2","UnionAll1"."C2" AS "C3","UnionAll1"."C3" AS "C4","UnionAll1"."C4" AS 
"fk_EnumVal" FROM (
                        SELECT "Extent3"."ID" AS "ID",TRUE AS "C1",FALSE AS 
"C2",FALSE AS "C3",CAST (NULL AS int4) AS "C4" 
                        FROM "CurrentDateTimeDefaultValues" AS "Extent3" 
                        UNION ALL
                        SELECT "Extent4"."ID" AS "ID", TRUE AS "C1",FALSE AS 
"C2",TRUE AS "C3",CAST (NULL AS int4) AS "C4" 
                        FROM "NewGuidDefaultValues" AS "Extent4") AS "UnionAll1"
                UNION ALL
                SELECT "Extent5"."ID" AS "ID",FALSE AS "C1",TRUE AS "C2",FALSE 
AS "C3","Extent5"."fk_EnumValue" AS "fk_EnumValue"
                FROM "EnumDefaultValues" AS "Extent5") AS "UnionAll2"
        ON "Extent2"."ID"="UnionAll2"."C1"
WHERE ("Extent1"."fk_Property" IS NOT NULL ) AND ("Extent1"."fk_Property"= 
(((783))));

ALTER TABLE ONLY "EnumDefaultValues" DROP CONSTRAINT 
"PK_[zbox].[dbo].[EnumDefaultValues]";

select *
from "DefaultPropertyValues" AS "Extent1"
        INNER JOIN "DefaultPropertyValues" AS "Extent2" ON 
"Extent1"."ID"="Extent2"."ID"
        LEFT JOIN (
                SELECT "UnionAll1"."ID" AS "C1","UnionAll1"."C1" AS 
"C2","UnionAll1"."C2" AS "C3","UnionAll1"."C3" AS "C4","UnionAll1"."C4" AS 
"fk_EnumVal" FROM (
                        SELECT "Extent3"."ID" AS "ID",TRUE AS "C1",FALSE AS 
"C2",FALSE AS "C3",CAST (NULL AS int4) AS "C4" 
                        FROM "CurrentDateTimeDefaultValues" AS "Extent3" 
                        UNION ALL
                        SELECT "Extent4"."ID" AS "ID", TRUE AS "C1",FALSE AS 
"C2",TRUE AS "C3",CAST (NULL AS int4) AS "C4" 
                        FROM "NewGuidDefaultValues" AS "Extent4") AS "UnionAll1"
                UNION ALL
                SELECT "Extent5"."ID" AS "ID",FALSE AS "C1",TRUE AS "C2",FALSE 
AS "C3","Extent5"."fk_EnumValue" AS "fk_EnumValue"
                FROM "EnumDefaultValues" AS "Extent5") AS "UnionAll2"
        ON "Extent2"."ID"="UnionAll2"."C1"
WHERE ("Extent1"."fk_Property" IS NOT NULL ) AND ("Extent1"."fk_Property"= 
(((783))));

-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to