Re: "JPPD bypassed: DISTINCT clause" in 19c

From: Sayan Malakshinov <xt.and.r_at_gmail.com>
Date: Sun, 6 Sep 2020 01:00:00 +0300
Message-ID: <CAOVevU7dwujujFR08v6TBCPATnz1LhbUPkHb1iUDa9woRX+DJg_at_mail.gmail.com>



Hi Nenad,

I'm sorry, I hadn't time to investigate it earlier. Just checked it and can confirm that Cost-based JPPD doesn't work with JSON_OBJECT, though Old-style OJPPD still works fine with it and pushes predicates without problems.
Do you need it exactly in new cost-based jppd?

>Do you have any workaround when JSON_OBJECT is in the select clause of the
main query block?
I've checked v$system_fix_control and haven't found anything related to this limitation.
I've tried many different variants: to pull it into parent views, wrap it into (select/*+ no_unnest */ ... from dual), but unfortunately the only workaround I found is to wrap it in your own user-defined function instead of JSON_OBJECT, for example:

with
  function json_x(xval int) return varchar2 as

     res varchar2(4000);
  begin

     select
     JSON_OBJECT (
           'id' VALUE xval
           RETURNING VARCHAR2 (10)
           STRICT) as x
        into res
     from dual;
     return res;

  end;
select /*+ qb_name(QB_MAIN) */
 json_x(1) as x
  from t1 left outer join
    ( select /*+ qb_name(QB_MIDDLE) */ t2.n2
        from
          t2  ,
         ( select  /*+ qb_name(QB_INNER ) */  t3.n2
            from t3, t4
            where   t4.n1 = t3.n1
         ) v2
        where  v2.n2(+) = t2.n1

    ) v1 on v1.n2 = t1.n1;
/

On Fri, Sep 4, 2020 at 4:08 PM Noveljic Nenad <nenad.noveljic_at_vontobel.com> wrote:

> Thank you, Sayan.
>
>
>
> As opposed to your case, where you referenced json & co in the from
> clause, I used it only in the select clause.
>
>
>
> In this particular case, I don’t see any reason for bypassing JPPD –
> JSON_OBJECT is applied at the end.
>
>
>
> In fact, this used to work in 12c (tested on 12.2.0.1.190716), but it
> doesn’t as of 18c (tested on 18.7.0.0.190716 and 19.7.0.0.200414)
>
>
>
> Do you have any workaround when JSON_OBJECT is in the select clause of the
> main query block?
>
>
>
> Best regards,
>
>
>
> Nenad
>
>
>
> *From:* Sayan Malakshinov <xt.and.r_at_gmail.com>
> *Sent:* Freitag, 4. September 2020 14:55
> *To:* Noveljic Nenad <nenad.noveljic_at_vontobel.com>
> *Cc:* Andy Sayer <andysayer_at_gmail.com>; ORACLE-L (oracle-l_at_freelists.org)
> <oracle-l_at_freelists.org>
> *Subject:* Re: "JPPD bypassed: DISTINCT clause" in 19c
>
>
>
> Hi Nenad,
>
>
>
> Yes, JPPD doesn't work in case of table(), XMLTABLE and JSON_TABLE:
>
>
> http://orasql.org/2019/05/30/workarounds-for-jppd-with-view-and-tablekokbf-xmltable-or-json_table-functions/
>
>
>
> ____________________________________________________
>
> Please consider the environment before printing this e-mail.
>
> Bitte denken Sie an die Umwelt, bevor Sie dieses E-Mail drucken.
>
>
> Important Notice
> This message is intended only for the individual named. It may contain
> confidential or privileged information. If you are not the named addressee
> you should in particular not disseminate, distribute, modify or copy this
> e-mail. Please notify the sender immediately by e-mail, if you have
> received this message by mistake and delete it from your system.
> Without prejudice to any contractual agreements between you and us which
> shall prevail in any case, we take it as your authorization to correspond
> with you by e-mail if you send us messages by e-mail. However, we reserve
> the right not to execute orders and instructions transmitted by e-mail at
> any time and without further explanation.
> E-mail transmission may not be secure or error-free as information could
> be intercepted, corrupted, lost, destroyed, arrive late or incomplete. Also
> processing of incoming e-mails cannot be guaranteed. All liability of
> Vontobel Holding Ltd. and any of its affiliates (hereinafter collectively
> referred to as "Vontobel Group") for any damages resulting from e-mail use
> is excluded. You are advised that urgent and time sensitive messages should
> not be sent by e-mail and if verification is required please request a
> printed version. Please note that all e-mail communications to and from the
> Vontobel Group are subject to electronic storage and review by Vontobel
> Group. Unless stated to the contrary and without prejudice to any
> contractual agreements between you and Vontobel Group which shall prevail
> in any case, e-mail-communication is for informational purposes only and is
> not intended as an offer or solicitation for the purchase or sale of any
> financial instrument or as an official confirmation of any transaction.
> The legal basis for the processing of your personal data is the legitimate
> interest to develop a commercial relationship with you, as well as your
> consent to forward you commercial communications. You can exercise, at any
> time and under the terms established under current regulation, your rights.
> If you prefer not to receive any further communications, please contact
> your client relationship manager if you are a client of Vontobel Group or
> notify the sender. Please note for an exact reference to the affected group
> entity the corporate e-mail signature. For further information about data
> privacy at Vontobel Group please consult www.vontobel.com.
>

-- 
Best regards,
Sayan Malakshinov
Oracle performance tuning engineer
Oracle ACE Associate
http://orasql.org

--
http://www.freelists.org/webpage/oracle-l
Received on Sun Sep 06 2020 - 00:00:00 CEST

Original text of this message