Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jLfsd-00042F-Vo for pgadmin-hackers@arkaria.postgresql.org; Tue, 07 Apr 2020 04:30:32 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1jLfsc-00033y-Re for pgadmin-hackers@arkaria.postgresql.org; Tue, 07 Apr 2020 04:30:30 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jLfsc-00033r-J8 for pgadmin-hackers@lists.postgresql.org; Tue, 07 Apr 2020 04:30:30 +0000 Received: from mail-lj1-x241.google.com ([2a00:1450:4864:20::241]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1jLfsZ-0000m7-5q for pgadmin-hackers@postgresql.org; Tue, 07 Apr 2020 04:30:30 +0000 Received: by mail-lj1-x241.google.com with SMTP id t17so2086754ljc.12 for ; Mon, 06 Apr 2020 21:30:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=WWx0LtCn08PFQizq2/jeu0sEysZJmiytvi3qYT0y9jM=; b=FyLoG8bWvTMQbhxZIw2xqmpvHQDpbrx7Q6dFHf7FH9/ScwQGKILIOTdlN6NJDrtZr9 UtJ4HqzCQT47538N7U3wBMPuo0ij6qCHf+/859Fvam/gN4eQsLNRlRGUHWqQ2hz4xK23 yf8ASu5JV1MIp4hlwoeLR0qpeJ93Z1XdGM6qGKteI1sshmsY2d4mFuEqhAvakMgmoOIe 0TYP0ISKG5vA0HaM0/ocUbskLdZgZ2D0wCQil3y+cDvZoNjdKKMeg1AmZ1b+R/zoSTpr lThOBq2sZX3/0Ruy2805k8MwgWWsUBDAT+BxFSfcIsPQ5dsCCOlLqo18QJJjJKfe/wxB J3RQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=WWx0LtCn08PFQizq2/jeu0sEysZJmiytvi3qYT0y9jM=; b=jQ0A2vsYSL9JtVYsmc64pO4FwArKGpSSQmJnpZxN7HK8n4430WhqWBHrQzXIR6GxiF g0rMWBnZg+0uJ1F4a31bN4e1xcbI+CRW+IlxkBq+3tZhffhUmcXencpyCvAzUvpSrDhM XfYk7D3ygHvTJvClKiUS9CyyD5/JtWYM49WISFmRVK1XQ3Wos9PhfEDPtUac3aTDf4sg FL9AH80R2kkpzo/E3iC4Fxxu4rBIHLDa4T2SA3xpO5d1sLZkWNix+PHsWDD/yu/WBzdu aprMkQZPshdSS/yblN22gmkHbLsAApgDmXhEVaX9Zo1eOIgrNE3jk2x+GavfcKG0KSv+ JWjA== X-Gm-Message-State: AGi0PuaXcY6CfuNXFkeHXruPLGNNWcM2BLJKZeuZjNp0aNdejrlwCP3i ZchbfjxTkjooqAmZrv/qUEiQsuzJaPbxm+O/5Rl3VF6geZNIfSUqbQqIXtechXYz5xK8pvS0SRA Zqo+PxLXZTuQnTDJ0kR+p2rZYWdop4qCPxHDlKDh4df3mHNS01TrTA4x28OA8WVd8sY7SUejP6n P+Ay/exRyR6gBkTZuO7VhRIy6CgyluzZxC/BMY90Ees7tDaUx8a8o= X-Google-Smtp-Source: APiQypLM/9FICqQcNgMs7MWidPjPSMC/c471KC7x5ZYtRX/57/AJ34I4EVc3muG89dsVgPOpHi5JievuKhMEW3QpNM8= X-Received: by 2002:a2e:151e:: with SMTP id s30mr403664ljd.92.1586233826202; Mon, 06 Apr 2020 21:30:26 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Khushboo Vashi Date: Tue, 7 Apr 2020 10:00:18 +0530 Message-ID: Subject: Re: [pgAdmin4][Patch]: RM 5053 - Getting an error while changing the columns in the existing view To: Akshay Joshi Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary="000000000000bec7ce05a2abd772" X-CLOUD-SEC-AV-Info: edb,google_mail,monitor X-CLOUD-SEC-AV-Sent: true X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --000000000000bec7ce05a2abd772 Content-Type: multipart/alternative; boundary="000000000000bec7cc05a2abd770" --000000000000bec7cc05a2abd770 Content-Type: text/plain; charset="UTF-8" Hi Akshay, Please find the attached updated patch. On Tue, Mar 24, 2020 at 2:47 PM Akshay Joshi wrote: > Hi Khushboo > > On Tue, Mar 24, 2020 at 1:47 PM Khushboo Vashi < > khushboo.vashi@enterprisedb.com> wrote: > >> Hi Akshay, >> >> On Tue, Jan 14, 2020 at 11:47 AM Akshay Joshi < >> akshay.joshi@enterprisedb.com> wrote: >> >>> Hi Khushboo >>> >>> Following are the review comments: >>> >>> - Fix the PEP8 issue. >>> - Drop query should be part of the jinja template for consistency. >>> Currently, it is added through the python file. >>> >>> The Delete query is already in the template file, I have just reused the >> delete call and merged the SQL queries in the python file. >> >>> >>> - Any changes in the view code should not warn the user "Changing >>> the columns in a view requires dropping...." and we should not drop the >>> view. For example, I have only change the WHERE clause or added 'ORDER BY'. >>> >>> I have tested but couldn't reproduce this issue. Can you please let me >> know the proper use case? >> > > Create a view with 'SELECT 1;' as code. Then change the code to 'SELECT > 1234;' and click on the Save button. > Warning popup is displayed "Changing the columns in a view....". Click > on the 'Yes' button and check the OID of the view. You will get the same > OID, it means view is not recreated. > > I can reproduce this issue with the given SQL but the problem is as per the PostgreSQL documentation, (Ref: https://www.postgresql.org/docs/12/sql-createview.html) "CREATE OR REPLACE VIEW is similar, but if a view of the same name already exists, it is replaced. The new query must generate the same columns that were generated by the existing view query (that is, the same column names in the same order and with the same data types), but it may add additional columns to the end of the list. The calculations giving rise to the output columns may be completely different." So, I put a check on the columns and if the column is changed, the message will popup. In case of the example given by you, the column name is not changed as if you don't give the column name it will be default and I think view would have the column names properly. > I have observed below error in the browser while changing the code: > view.js:241 Uncaught TypeError: Cannot read property 'replace' > of undefined > at child.onChange (view.js:241) > at HTMLDivElement.dispatch (jquery.js:5237) > at HTMLDivElement.elemData.handle (jquery.js:5044) > > Fixed. Thanks, Khushboo > >> Thanks, >> Khushboo >> >>> >>> >> >>> On Tue, Jan 14, 2020 at 10:27 AM Khushboo Vashi < >>> khushboo.vashi@enterprisedb.com> wrote: >>> >>>> Hi, >>>> >>>> Please find the attached patch for RM #5053 - Getting an error while >>>> changing the columns in the existing view. >>>> >>>> PostgreSQL doesn't allow to change the view columns. So, while >>>> performing this task the existing view should be dropped first and then >>>> recreate it and also user will get a warning first. >>>> >>>> Thanks, >>>> Khushboo >>>> >>> >>> >>> -- >>> *Thanks & Regards* >>> *Akshay Joshi* >>> >>> *Sr. Software Architect* >>> *EnterpriseDB Software India Private Limited* >>> *Mobile: +91 976-788-8246* >>> >> > > -- > *Thanks & Regards* > *Akshay Joshi* > > *Sr. Software Architect* > *EnterpriseDB Software India Private Limited* > *Mobile: +91 976-788-8246* > --000000000000bec7cc05a2abd770 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Akshay,

Please find the a= ttached updated patch.

On Tue, Mar 24, 2020 at 2:47 PM Akshay Joshi <akshay.joshi= @enterprisedb.com> wrote:
Hi=C2=A0Khushboo
On Tue, = Mar 24, 2020 at 1:47 PM Khushboo Vashi <khushboo.vashi@enterprisedb.com>= ; wrote:
Hi Akshay,

<= div dir=3D"ltr" class=3D"gmail_attr">On Tue, Jan 14, 2020 at 11:47 AM Aksha= y Joshi <akshay.joshi@enterprisedb.com> wrote:
Hi=C2=A0Khushboo

=
Following are the review comments:
  • Fix the PEP= 8 issue.
  • Drop query should be part of the jinja template for consis= tency. Currently, it is added through the python file.
The Delete query is already in the template file, I have= just reused the delete call and merged the SQL queries in the python file.= =C2=A0
  • Any changes in the view code should not warn the user &quo= t;Changing the columns in a view requires dropping...." and we should = not drop the view. For example, I have only change the WHERE clause or adde= d 'ORDER BY'.=C2=A0
I have t= ested but=C2=A0 couldn't reproduce this issue.=C2=A0 Can you please let= me know the proper use case?

=
=C2=A0 =C2=A0Create a view with 'SELECT 1;' as code. Then chan= ge the code to 'SELECT 1234;' and click on the Save button.=C2=A0
=C2=A0 =C2=A0Warning popup is displayed "Changing the columns= in a view....". Click on the 'Yes' button and check the OID o= f the view. You will get the same OID, it means view is not recreated.
=C2=A0 =C2=A0=C2=A0
I can reproduc= e this issue with the given SQL but the problem is as per the PostgreSQL do= cumentation, (Ref:=C2=A0https://www.postgresql.org/docs/12/sql-cr= eateview.html)

"CREATE OR REPLACE VIEW=C2=A0is= similar, but if a view of the same name already exists, it is replaced. Th= e new query must generate the same columns that were generated by the exist= ing view query (that is, the same column names in the same order and with t= he same data types), but it may add additional columns to the end of the li= st. The calculations giving rise to the output columns may be completely di= fferent."

So, I put a check on the col= umns and if the column is changed, the message will popup.

In case of the example given by you, the column name is not change= d as if you don't give the column name it will be default and I think v= iew would have the column names properly.
=C2=A0
=C2=A0 =C2=A0 I have observed below error in the browser w= hile changing the code:=C2=A0
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 view.js:241 Uncaught TypeError: Cannot read property 'replace= 9; of undefined
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 at child= .onChange (view.js:241)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 at HTM= LDivElement.dispatch (jquery.js:5237)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 at HTMLDivElement.elemData.handle (jquery.js:5044)

Fixed.=C2=A0
<= br>
Thanks,
Khushboo

Thanks,
Khushboo
=C2= =A0

On Tue, Jan 14, 2020 at 10:27 AM Khushbo= o Vashi <khushboo.vashi@enterprisedb.com> wrote:
Hi,

Please find the attached patch for RM #5053 -=C2=A0Getting an error while= changing the columns in the existing view.

Postgr= eSQL doesn't allow to change the view columns. So, while performing thi= s task the existing view should be dropped first and then recreate it and a= lso user will get a warning first.

Thanks,
Khushboo


--
Thanks & Regards
Akshay Joshi
<= font color=3D"#3333FF">Sr. Software Architect=
<= font color=3D"#000000" face=3D"arial, sans-serif">EnterpriseDB Software = India Private Limited
Mobile: +91 976-788-8246=


--
Thanks & Regards
Akshay Joshi
<= font color=3D"#3333FF">Sr. Software Architect=
<= font color=3D"#000000" face=3D"arial, sans-serif">EnterpriseDB Software = India Private Limited
Mobile: +91 976-788-8246=
--000000000000bec7cc05a2abd770-- --000000000000bec7ce05a2abd772 Content-Type: application/octet-stream; name="RM_5053_v1.patch" Content-Disposition: attachment; filename="RM_5053_v1.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k8peksta0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3ZpZXdzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvX19pbml0X18ucHkK aW5kZXggZmIxYWQ3NmFjLi5kNTAyYjI5YWEgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL19faW5pdF9f LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL19faW5pdF9fLnB5CkBAIC0xMCw2ICsxMCw3IEBACiAiIiJJbXBs ZW1lbnRzIFZpZXcgYW5kIE1hdGVyaWFsaXplZCBWaWV3IE5vZGUiIiIKIAogaW1wb3J0IGNvcHkK K2ltcG9ydCByZQogZnJvbSBmdW5jdG9vbHMgaW1wb3J0IHdyYXBzCiAKIGltcG9ydCBzaW1wbGVq c29uIGFzIGpzb24KQEAgLTQ5Niw3ICs0OTcsNyBAQCBjbGFzcyBWaWV3Tm9kZShQR0NoaWxkTm9k ZVZpZXcsIFZhY3V1bVNldHRpbmdzLCBTY2hlbWFEaWZmT2JqZWN0Q29tcGFyZSk6CiAgICAgICAg ICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICApCiAgICAgICAgIHRyeToKLSAgICAgICAg ICAgIFNRTCwgbmFtZU9yRXJyb3IgPSBzZWxmLmdldFNRTChnaWQsIHNpZCwgZGlkLCBkYXRhKQor ICAgICAgICAgICAgU1FMLCBuYW1lT3JFcnJvciA9IHNlbGYuZ2V0U1FMKGdpZCwgc2lkLCBkaWQs IHNjaWQsIGRhdGEpCiAgICAgICAgICAgICBpZiBTUUwgaXMgTm9uZToKICAgICAgICAgICAgICAg ICByZXR1cm4gbmFtZU9yRXJyb3IKICAgICAgICAgICAgIFNRTCA9IFNRTC5zdHJpcCgnXG4nKS5z dHJpcCgnICcpCkBAIC01NDEsNyArNTQyLDcgQEAgY2xhc3MgVmlld05vZGUoUEdDaGlsZE5vZGVW aWV3LCBWYWN1dW1TZXR0aW5ncywgU2NoZW1hRGlmZk9iamVjdENvbXBhcmUpOgogICAgICAgICAg ICAgcmVxdWVzdC5kYXRhLCBlbmNvZGluZz0ndXRmLTgnCiAgICAgICAgICkKICAgICAgICAgdHJ5 OgotICAgICAgICAgICAgU1FMLCBuYW1lID0gc2VsZi5nZXRTUUwoZ2lkLCBzaWQsIGRpZCwgZGF0 YSwgdmlkKQorICAgICAgICAgICAgU1FMLCBuYW1lID0gc2VsZi5nZXRTUUwoZ2lkLCBzaWQsIGRp ZCwgc2NpZCwgZGF0YSwgdmlkKQogICAgICAgICAgICAgaWYgU1FMIGlzIE5vbmU6CiAgICAgICAg ICAgICAgICAgcmV0dXJuIG5hbWUKICAgICAgICAgICAgIFNRTCA9IFNRTC5zdHJpcCgnXG4nKS5z dHJpcCgnICcpCkBAIC02NzgsNyArNjc5LDcgQEAgY2xhc3MgVmlld05vZGUoUEdDaGlsZE5vZGVW aWV3LCBWYWN1dW1TZXR0aW5ncywgU2NoZW1hRGlmZk9iamVjdENvbXBhcmUpOgogICAgICAgICAg ICAgZXhjZXB0IFZhbHVlRXJyb3I6CiAgICAgICAgICAgICAgICAgZGF0YVtrXSA9IHYKIAotICAg ICAgICBzcWwsIG5hbWVPckVycm9yID0gc2VsZi5nZXRTUUwoZ2lkLCBzaWQsIGRpZCwgZGF0YSwg dmlkKQorICAgICAgICBzcWwsIG5hbWVPckVycm9yID0gc2VsZi5nZXRTUUwoZ2lkLCBzaWQsIGRp ZCwgc2NpZCwgZGF0YSwgdmlkKQogICAgICAgICBpZiBzcWwgaXMgTm9uZToKICAgICAgICAgICAg IHJldHVybiBuYW1lT3JFcnJvcgogCkBAIC02OTIsNyArNjkzLDcgQEAgY2xhc3MgVmlld05vZGUo UEdDaGlsZE5vZGVWaWV3LCBWYWN1dW1TZXR0aW5ncywgU2NoZW1hRGlmZk9iamVjdENvbXBhcmUp OgogICAgICAgICAgICAgc3RhdHVzPTIwMAogICAgICAgICApCiAKLSAgICBkZWYgZ2V0U1FMKHNl bGYsIGdpZCwgc2lkLCBkaWQsIGRhdGEsIHZpZD1Ob25lKToKKyAgICBkZWYgZ2V0U1FMKHNlbGYs IGdpZCwgc2lkLCBkaWQsIHNjaWQsIGRhdGEsIHZpZD1Ob25lKToKICAgICAgICAgIiIiCiAgICAg ICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBnZW5lcmF0ZSBzcWwgZnJvbSBtb2RlbCBkYXRhCiAgICAg ICAgICIiIgpAQCAtNzE2LDcgKzcxNywyMCBAQCBjbGFzcyBWaWV3Tm9kZShQR0NoaWxkTm9kZVZp ZXcsIFZhY3V1bVNldHRpbmdzLCBTY2hlbWFEaWZmT2JqZWN0Q29tcGFyZSk6CiAgICAgICAgICAg ICBpZiAnc2NoZW1hJyBub3QgaW4gZGF0YToKICAgICAgICAgICAgICAgICBkYXRhWydzY2hlbWEn XSA9IHJlc1sncm93cyddWzBdWydzY2hlbWEnXQogCi0gICAgICAgICAgICBhY2xzID0gW10KKyAg ICAgICAgICAgIERFTF9TUUwgPSBOb25lCisgICAgICAgICAgICBpZiAnZGVmaW5pdGlvbicgaW4g ZGF0YToKKyAgICAgICAgICAgICAgICBuZXdfZGVmID0gcmUuc3ViKHIiXFciLCAiIiwgZGF0YVsn ZGVmaW5pdGlvbiddKS5zcGxpdCgnRlJPTScpCisgICAgICAgICAgICAgICAgb2xkX2RlZiA9IHJl LnN1YihyIlxXIiwgIiIsIHJlc1sncm93cyddWzBdWydkZWZpbml0aW9uJ10KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICkuc3BsaXQoJ0ZST00nKQorICAgICAgICAgICAgICAgIGlm ICdkZWZpbml0aW9uJyBpbiBkYXRhIGFuZCAoCisgICAgICAgICAgICAgICAgICAgICAgICBvbGRf ZGVmWzBdICE9IG5ld19kZWZbMF0gYW5kCisgICAgICAgICAgICAgICAgICAgICAgICBvbGRfZGVm WzBdIG5vdCBpbiBuZXdfZGVmWzBdCisgICAgICAgICAgICAgICAgKToKKyAgICAgICAgICAgICAg ICAgICAgREVMX1NRTCA9IHNlbGYuZGVsZXRlKGdpZD1naWQsIHNpZD1zaWQsIGRpZD1kaWQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2lkPXNjaWQsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWQ9dmlkLCBvbmx5X3NxbD1U cnVlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisKICAgICAg ICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBhY2xzID0gcmVuZGVyX3RlbXBsYXRlKAogICAg ICAgICAgICAgICAgICAgICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnc3FsL2FsbG93 ZWRfcHJpdnMuanNvbiddKQpAQCAtNzQwLDYgKzc1NCw5IEBAIGNsYXNzIFZpZXdOb2RlKFBHQ2hp bGROb2RlVmlldywgVmFjdXVtU2V0dGluZ3MsIFNjaGVtYURpZmZPYmplY3RDb21wYXJlKToKICAg ICAgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oCiAgICAgICAgICAg ICAgICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgsICdzcWwvdXBkYXRlLnNxbCddKSwgZGF0YT1k YXRhLAogICAgICAgICAgICAgICAgICAgICBvX2RhdGE9b2xkX2RhdGEsIGNvbm49c2VsZi5jb25u KQorCisgICAgICAgICAgICAgICAgaWYgREVMX1NRTDoKKyAgICAgICAgICAgICAgICAgICAgU1FM ID0gREVMX1NRTCArIFNRTAogICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAg ICAgICAgICAgICAgIGN1cnJlbnRfYXBwLmxvZ2dlci5leGNlcHRpb24oZSkKICAgICAgICAgICAg ICAgICByZXR1cm4gTm9uZSwgaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkK QEAgLTE0MzksNyArMTQ1NiwxNCBAQCBjbGFzcyBWaWV3Tm9kZShQR0NoaWxkTm9kZVZpZXcsIFZh Y3V1bVNldHRpbmdzLCBTY2hlbWFEaWZmT2JqZWN0Q29tcGFyZSk6CiAgICAgICAgIGlmIGRhdGE6 CiAgICAgICAgICAgICBpZiBkaWZmX3NjaGVtYToKICAgICAgICAgICAgICAgICBkYXRhWydzY2hl bWEnXSA9IGRpZmZfc2NoZW1hCi0gICAgICAgICAgICBzcWwsIG5hbWVPckVycm9yID0gc2VsZi5n ZXRTUUwoZ2lkLCBzaWQsIGRpZCwgZGF0YSwgb2lkKQorICAgICAgICAgICAgc3FsLCBuYW1lT3JF cnJvciA9IHNlbGYuZ2V0U1FMKGdpZCwgc2lkLCBkaWQsIHNjaWQsIGRhdGEsIG9pZCkKKyAgICAg ICAgICAgIGlmIHNxbC5maW5kKCdEUk9QIFZJRVcnKSAhPSAtMToKKyAgICAgICAgICAgICAgICBz cWwgPSBnZXR0ZXh0KCIiIgorLS0gQ2hhbmdpbmcgdGhlIGNvbHVtbnMgaW4gYSB2aWV3IHJlcXVp cmVzIGRyb3BwaW5nIGFuZCByZS1jcmVhdGluZyB0aGUgdmlldy4KKy0tIFRoaXMgbWF5IGZhaWwg aWYgb3RoZXIgb2JqZWN0cyBhcmUgZGVwZW5kZW50IHVwb24gdGhpcyB2aWV3LAorLS0gb3IgbWF5 IGNhdXNlIHByb2NlZHVyYWwgZnVuY3Rpb25zIHRvIGZhaWwgaWYgdGhleSBhcmUgbm90IG1vZGlm aWVkIHRvCistLSB0YWtlIGFjY291bnQgb2YgdGhlIGNoYW5nZXMuCisiIiIpICsgc3FsCiAgICAg ICAgIGVsc2U6CiAgICAgICAgICAgICBpZiBkcm9wX3NxbDoKICAgICAgICAgICAgICAgICBzcWwg PSBzZWxmLmRlbGV0ZShnaWQ9Z2lkLCBzaWQ9c2lkLCBkaWQ9ZGlkLApAQCAtMTU0Nyw4ICsxNTcx LDggQEAgY2xhc3MgTVZpZXdOb2RlKFZpZXdOb2RlLCBWYWN1dW1TZXR0aW5ncyk6CiAgICAgICAg ICAgICBkYXRhWyd2YWN1dW1fZGF0YSddWydyZXNldCddID0gW10KIAogICAgICAgICAgICAgIyB0 YWJsZSB2YWN1dW06IHNlcGFyYXRlIGxpc3Qgb2YgY2hhbmdlZCBhbmQgcmVzZXQgZGF0YSBmb3IK LSAgICAgICAgICAgIGlmICgndmFjdXVtX3RhYmxlJyBpbiBkYXRhKToKLSAgICAgICAgICAgICAg ICBpZiAoJ2NoYW5nZWQnIGluIGRhdGFbJ3ZhY3V1bV90YWJsZSddKToKKyAgICAgICAgICAgIGlm ICd2YWN1dW1fdGFibGUnIGluIGRhdGE6CisgICAgICAgICAgICAgICAgaWYgJ2NoYW5nZWQnIGlu IGRhdGFbJ3ZhY3V1bV90YWJsZSddOgogICAgICAgICAgICAgICAgICAgICBmb3IgaXRlbSBpbiBk YXRhWyd2YWN1dW1fdGFibGUnXVsnY2hhbmdlZCddOgogICAgICAgICAgICAgICAgICAgICAgICAg aWYgJ3ZhbHVlJyBpbiBpdGVtLmtleXMoKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiBpdGVtWyd2YWx1ZSddIGlzIE5vbmU6CkBAIC0xNTgxLDggKzE2MDUsOCBAQCBjbGFzcyBNVmll d05vZGUoVmlld05vZGUsIFZhY3V1bVNldHRpbmdzKToKICAgICAgICAgICAgICAgICAgICAgICd2 YWx1ZSc6IGRhdGFbJ2F1dG92YWN1dW1fZW5hYmxlZCddfSkKIAogICAgICAgICAgICAgIyB0b2Fz dCBhdXRvdmFjdXVtOiBzZXBhcmF0ZSBsaXN0IG9mIGNoYW5nZWQgYW5kIHJlc2V0IGRhdGEKLSAg ICAgICAgICAgIGlmICgndmFjdXVtX3RvYXN0JyBpbiBkYXRhKToKLSAgICAgICAgICAgICAgICBp ZiAoJ2NoYW5nZWQnIGluIGRhdGFbJ3ZhY3V1bV90b2FzdCddKToKKyAgICAgICAgICAgIGlmICd2 YWN1dW1fdG9hc3QnIGluIGRhdGE6CisgICAgICAgICAgICAgICAgaWYgJ2NoYW5nZWQnIGluIGRh dGFbJ3ZhY3V1bV90b2FzdCddOgogICAgICAgICAgICAgICAgICAgICBmb3IgaXRlbSBpbiBkYXRh Wyd2YWN1dW1fdG9hc3QnXVsnY2hhbmdlZCddOgogICAgICAgICAgICAgICAgICAgICAgICAgaWYg J3ZhbHVlJyBpbiBpdGVtLmtleXMoKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2Fz dF9rZXkgPSAndG9hc3RfJyArIGl0ZW1bJ25hbWUnXQpAQCAtMTY3MSwxNCArMTY5NSwxNCBAQCBj bGFzcyBNVmlld05vZGUoVmlld05vZGUsIFZhY3V1bVNldHRpbmdzKToKICAgICAgICAgICAgICAg ICBpZiAndmFsdWUnIGluIGl0ZW0ua2V5cygpIGFuZCBpdGVtWyd2YWx1ZSddIGlzIG5vdCBOb25l XQogCiAgICAgICAgICAgICAjIGFkZCB0YWJsZV9lbmFibGVkICYgdG9hc3RfZW5hYmxlZCBzZXR0 aW5ncwotICAgICAgICAgICAgaWYgKCdhdXRvdmFjdXVtX2N1c3RvbScgaW4gZGF0YSBhbmQgZGF0 YVsnYXV0b3ZhY3V1bV9jdXN0b20nXSk6CisgICAgICAgICAgICBpZiAnYXV0b3ZhY3V1bV9jdXN0 b20nIGluIGRhdGEgYW5kIGRhdGFbJ2F1dG92YWN1dW1fY3VzdG9tJ106CiAgICAgICAgICAgICAg ICAgdmFjdXVtX3RhYmxlLmFwcGVuZCgKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgICAgICAgICAgJ25hbWUnOiAnYXV0b3ZhY3V1bV9lbmFibGVkJywKICAgICAgICAgICAg ICAgICAgICAgICAgICd2YWx1ZSc6IHN0cihkYXRhWydhdXRvdmFjdXVtX2VuYWJsZWQnXSkKICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgIGlmICgn dG9hc3RfYXV0b3ZhY3V1bScgaW4gZGF0YSBhbmQgZGF0YVsndG9hc3RfYXV0b3ZhY3V1bSddKToK KyAgICAgICAgICAgIGlmICd0b2FzdF9hdXRvdmFjdXVtJyBpbiBkYXRhIGFuZCBkYXRhWyd0b2Fz dF9hdXRvdmFjdXVtJ106CiAgICAgICAgICAgICAgICAgdmFjdXVtX3RhYmxlLmFwcGVuZCgKICAg ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgJ25hbWUnOiAndG9h c3QuYXV0b3ZhY3V1bV9lbmFibGVkJywKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3N0YXRpYy9qcy92 aWV3LmpzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdmlld3Mvc3RhdGljL2pzL3ZpZXcuanMKaW5kZXggNzJlYTU5YzEzLi40OTIz NzA4OWEgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3N0YXRpYy9qcy92aWV3LmpzCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Zp ZXdzL3N0YXRpYy9qcy92aWV3LmpzCkBAIC0xNTQsOCArMTU0LDI5IEBAIGRlZmluZSgncGdhZG1p bi5ub2RlLnZpZXcnLCBbCiAgICAgICAgICAgaWQ6ICdkZWZpbml0aW9uJywgbGFiZWw6IGdldHRl eHQoJ0NvZGUnKSwgY2VsbDogJ3N0cmluZycsCiAgICAgICAgICAgdHlwZTogJ3RleHQnLCBtb2Rl OiBbJ2NyZWF0ZScsICdlZGl0J10sIGdyb3VwOiBnZXR0ZXh0KCdDb2RlJyksCiAgICAgICAgICAg dGFiUGFuZWxDb2RlQ2xhc3M6ICdzcWwtY29kZS1jb250cm9sJywKLSAgICAgICAgICBjb250cm9s OiBCYWNrZm9ybS5TcWxDb2RlQ29udHJvbCwKICAgICAgICAgICBkaXNhYmxlZDogJ25vdEluU2No ZW1hJywKKyAgICAgICAgICBjb250cm9sOiBCYWNrZm9ybS5TcWxDb2RlQ29udHJvbC5leHRlbmQo eworICAgICAgICAgICAgb25DaGFuZ2U6IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICBCYWNr Zm9ybS5TcWxDb2RlQ29udHJvbC5wcm90b3R5cGUub25DaGFuZ2UuYXBwbHkodGhpcywgYXJndW1l bnRzKTsKKyAgICAgICAgICAgICAgaWYodGhpcy5tb2RlbCAmJiB0aGlzLm1vZGVsLmNoYW5nZWQp IHsKKyAgICAgICAgICAgICAgICBpZih0aGlzLm1vZGVsLm9yaWdTZXNzQXR0cnMgJiYgdGhpcy5t b2RlbC5jaGFuZ2VkLmRlZmluaXRpb24gIT09IHVuZGVmaW5lZCAmJiAodGhpcy5tb2RlbC5jaGFu Z2VkLmRlZmluaXRpb24gIT0gdGhpcy5tb2RlbC5vcmlnU2Vzc0F0dHJzLmRlZmluaXRpb24pKSB7 CisgICAgICAgICAgICAgICAgICBsZXQgb2xkX2RlZiA9IHRoaXMubW9kZWwub3JpZ1Nlc3NBdHRy cy5kZWZpbml0aW9uLnJlcGxhY2UoL1xzL2dpLCAnJykuc3BsaXQoJ0ZST00nKSwKKyAgICAgICAg ICAgICAgICAgICAgbmV3X2RlZiA9IHRoaXMubW9kZWwuY2hhbmdlZC5kZWZpbml0aW9uLnJlcGxh Y2UoL1xzL2dpLCAnJykuc3BsaXQoJ0ZST00nKTsKKyAgICAgICAgICAgICAgICAgIGlmIChvbGRf ZGVmWzBdICE9IG5ld19kZWZbMF0pIHsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RlbC53 YXJuX3RleHQgPSBnZXR0ZXh0KCdDaGFuZ2luZyB0aGUgY29sdW1ucyBpbiBhIHZpZXcgcmVxdWly ZXMgZHJvcHBpbmcgYW5kIHJlLWNyZWF0aW5nIHRoZSB2aWV3LiBUaGlzIG1heSBmYWlsIGlmIG90 aGVyIG9iamVjdHMgYXJlIGRlcGVuZGVudCB1cG9uIHRoaXMgdmlldywgb3IgbWF5IGNhdXNlIHBy b2NlZHVyYWwgZnVuY3Rpb25zIHRvIGZhaWwgaWYgdGhleSBhcmUgbm90IG1vZGlmaWVkIHRvIHRh a2UgYWNjb3VudCBvZiB0aGUgY2hhbmdlcy4gRG8geW91IHdpc2ggdG8gY29udGludWU/Jyk7Cisg ICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB0aGlzLm1vZGVs Lndhcm5fdGV4dCA9IHVuZGVmaW5lZDsKKyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICB0aGlzLm1v ZGVsLndhcm5fdGV4dCA9IHVuZGVmaW5lZDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgdGhpcy5tb2RlbC53 YXJuX3RleHQgPSB1bmRlZmluZWQ7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisg ICAgICAgICAgfSksCiAgICAgICAgIH0sIHBnQnJvd3Nlci5TZWN1cml0eUdyb3VwU2NoZW1hLCB7 CiAgICAgICAgICAgLy8gQWRkIFByaXZpbGVnZSBDb250cm9sCiAgICAgICAgICAgaWQ6ICdkYXRh Y2wnLCBsYWJlbDogZ2V0dGV4dCgnUHJpdmlsZWdlcycpLCB0eXBlOiAnY29sbGVjdGlvbicsCg== --000000000000bec7ce05a2abd772--