From: | Scott Marlowe <scott(dot)marlowe(at)gmail(dot)com> |
---|---|
To: | Kim Rose Carlsen <krc(at)hiper(dot)dk> |
Cc: | Merlin Moncure <mmoncure(at)gmail(dot)com>, "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: How to hint 2 coulms IS NOT DISTINCT FROM each other |
Date: | 2016-10-29 13:02:11 |
Message-ID: | CAOR=d=3-jViQf_11heE9AHd=0uRd7aNcyVbKCbdsmUm44r6vhQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Sat, Oct 29, 2016 at 6:55 AM, Kim Rose Carlsen <krc(at)hiper(dot)dk> wrote:
>> try this :-D
>
>> create or replace function indf(anyelement, anyelement) returns anyelement
>> as
>> $$
>> select $1 = $2 or ($1 is null and $2 is null);
>> $$ language sql;
>>
>> CREATE VIEW view_circuit_with_status AS (
>> SELECT r.*,
>> s.circuit_status,
>> s.customer_id AS s_customer_id,
>> p.line_speed,
>> p.customer_id AS p_customer_id
>> FROM view_circuit r
>> JOIN view_circuit_product_main s
>> ON r.circuit_id = s.circuit_id
>> AND indf(r.customer_id, s.customer_id)
>> JOIN view_circuit_product p
>> ON r.circuit_id = p.circuit_id
>> AND indf(r.customer_id, s.customer_id)
>>
>> merlin
>
> This doesn't do much good. This doesn't tell the planner that the 3
> customer_ids are actually of same value, and it therefore can't filter them
> as it sees fit.
You do know you can index on a function, and the planner then keeps
stats on it when you run analyze right?
From | Date | Subject | |
---|---|---|---|
Next Message | Chris Mair | 2016-10-29 13:18:17 | Re: Best way to return Random rows from a table with non-repeatability of rows |
Previous Message | Kim Rose Carlsen | 2016-10-29 12:55:25 | Re: How to hint 2 coulms IS NOT DISTINCT FROM each other |