Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1usy1Y-00Dlqf-3L for pgsql-hackers@arkaria.postgresql.org; Mon, 01 Sep 2025 06:28:17 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1usy1X-004oKB-I9 for pgsql-hackers@arkaria.postgresql.org; Mon, 01 Sep 2025 06:28:16 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1usy1W-004oIb-UL for pgsql-hackers@lists.postgresql.org; Mon, 01 Sep 2025 06:28:15 +0000 Received: from mail-ua1-x92e.google.com ([2607:f8b0:4864:20::92e]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1usy1T-002nHx-2d for pgsql-hackers@postgresql.org; Mon, 01 Sep 2025 06:28:14 +0000 Received: by mail-ua1-x92e.google.com with SMTP id a1e0cc1a2514c-890190d9f89so2286622241.2 for ; Sun, 31 Aug 2025 23:28:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756708090; x=1757312890; darn=postgresql.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=DXktAptj4QmIoI8kuJAXGUYI6xEQ2qMykiJ/Je4dzho=; b=KH7Md6/YBpBFlmWw9D1gK98KZO0vRRdwwp4siXA5gizAt/GKdeSNnUCosWFgKbLM3d u6I3vUVquFB4POg7acnmOwszXfgQlK6N/drGIukmdFfqEGhdZ2JAFDJluoboHioUNtdc 8peN1qnhdNzTQOTwhVjtzuPXFNX/RZIYskdDgHYTCLPH6ZlAzWG9CqzdnhSX4mAppvS+ Enxu2vcuF7YP6+LWzRtE2xcNic7Pi12hMDD7QI7Q8kW3dC6Dyseff2Zpg0voqUcnAq7g 09BPOfB2Pzytsvm4ox5Z/oV1vBSeYSbaZzywTdnu1RxTi193wa6Tghc587isnCN5MEHJ +xRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756708090; x=1757312890; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=DXktAptj4QmIoI8kuJAXGUYI6xEQ2qMykiJ/Je4dzho=; b=DIoR+PNCO2IBNb9+waG0PiNi2FdbXEzReZt7EV99PVS5p7zVIbY40RJxnnZMCjNHcB rMdlG3plIJglIebWnzzeniHco7svk9SQuE0QN+0a9Kf5cTUI5A9hE287saFmoh2ONcU4 B9wT6j0a521ge8S5FyApfjXQSf/rKSTxU+tJvSkyoShmgPDxzXfqnC+EY8nkKLZ7sAzt Verjs8LMiYPbhadLyiX4p549uyqXS6uWYeyaLM8exAjb51HOYaAnZKwKvCQCu8ELsAdT dVZare3zuJI5jAJclDDMHSg2XxqbZc1WYaUPxfTqf2177RLHL13DBm7F3elx7WbIX3FQ /IWg== X-Gm-Message-State: AOJu0Yz/WRjwrGesxx30mu83nrSVPMiAN4b5JS803/GRz1eAK6UFe7h/ b/+gdJIks2aVOS1zXLuoyFCB5Fep1iIHdKR3k+HqzfOcBRqUysiNEPl6QwCRE837DSlqsoBODiJ YGLSGYd7/H0bPKkAF00wP1GqI9LQ8JcvU2I16G0/0Jw== X-Gm-Gg: ASbGncv9GI3NbhColHkrOItMEu8T60QEPefGm3araDq8NYhaidr72VlyIcvX6/MCne/ olBf9MTraSOmqJDsvIJAOyJJZ2OayJUypCtTfokfOQhYJ0R6PPYqUQWJ+MlwTmEVDNmfsCM7Kw7 701bK8VIrUf6GpBO51pYAgn8RnrWtp62jL69phMIUlX3wBkbxAoC8tefKnwIat2XmrtqCLebaq2 9NhsYK2jc2f4gZ3I+rvJK5CabnKqD6gOQqh0CzAx4WYyoqGEW4wI89MJS0wuGqdmKlpAWhcna7Y kCng+Q== X-Google-Smtp-Source: AGHT+IHzw8rfqYDmWKa9lzdVdyZWZO9/T7B8OCEaA4TAina1lUgngAsTi4HJsqi8OhRuXr9t7XNT3ruwF78qybi4fhQ= X-Received: by 2002:a05:6102:4b84:b0:529:4cf5:8aee with SMTP id ada2fe7eead31-52b19e6576emr1895846137.12.1756708090364; Sun, 31 Aug 2025 23:28:10 -0700 (PDT) MIME-Version: 1.0 References: <229413.1741144420@sss.pgh.pa.us> In-Reply-To: From: jian he Date: Mon, 1 Sep 2025 14:27:33 +0800 X-Gm-Features: Ac12FXzcMpt9_SAgVOKUmA66AAOAyg9onOWAzpbJIF4l_TcyDFv52U4przm3yuA Message-ID: Subject: Re: support fast default for domain with constraints To: PostgreSQL-development Content-Type: multipart/mixed; boundary="000000000000b36f31063db779e5" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000b36f31063db779e5 Content-Type: text/plain; charset="UTF-8" hi. in previous patches v6-0001 to v6-0003, we added support for ALTER TABLE ADD COLUMN with fast defaults for domains having non-volatile constraints. inspired by another patch of mine: https://commitfest.postgresql.org/patch/5907 I believe it's doable to perform only a table scan when using ALTER TABLE ADD COLUMN with a domain that has volatile constraints. some example: CREATE DOMAIN domain8 as int check((value + random(min=>11::int, max=>11)) > 12); CREATE TABLE t3(a int); INSERT INTO t3 VALUES(1),(2); ALTER TABLE t3 ADD COLUMN f domain8 default 1; --error while coercing to domain ALTER TABLE t3 ADD COLUMN f domain8 default 20; --ok The idea is the same as mentioned in [1], for struct NewColumnValue, add another field (scan_only) to indicate that we use table scan to evaluate the CoerceToDomain node. summary of the attached v7. v7-0001, v7-00002: preparatory patch. v7-0003 adds fast default support for ALTER TABLE ADD COLUMN when the domain has non-volatile constraints. A table rewrite is still required for domains with volatile constraints. v7-0004 skip table rewrite (table scan only) for ALTER TABLE ADD COLUMN with domains has volatile constraints. [1] https://postgr.es/m/CACJufxFhWyWzf2sJS9txSKeyA8hstxGDb8q2QWWwbo5Q1smPMA@mail.gmail.com --000000000000b36f31063db779e5 Content-Type: text/x-patch; charset="US-ASCII"; name="v7-0003-fast-default-for-domain-with-constraints.patch" Content-Disposition: attachment; filename="v7-0003-fast-default-for-domain-with-constraints.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf0ql3eu1 RnJvbSA3OGNmNmIwZDkwMTMyNjdhZDdkOGUyZTlhMWFjMmZhYzU2NGRmMDc3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMiBKdW4gMjAyNSAxNjo1MDozNCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjcg My80XSBmYXN0IGRlZmF1bHQgZm9yIGRvbWFpbiB3aXRoIGNvbnN0cmFpbnRzCgpUaGlzIGlzIHBy aW1hcmlseSBkb25lIGJ5IGV2YWx1YXRpbmcgQ29lcmNlVG9Eb21haW4gd2l0aCBzb2Z0IGVycm9y IHN1cHBvcnQuCgpJZiBDb2VyY2VUb0RvbWFpbiBpcyBldmFsdWF0ZWQgYXMgZmFsc2UgaW4gQVRF eGVjQWRkQ29sdW1uLCB0aGUgZGVmdmFsIG5vZGUncwp2YWx1ZSBjYW5ub3QgYmUgY2FzdCB0byB0 aGUgZG9tYWluIHR5cGUuIEhvd2V2ZXIsIGluIHNvbWUgY2FzZXMgbGlrZSB3aGVuIHRoZQp0YWJs ZSBpcyBlbXB0eSwgd2UgY2Fubm90IGV4cGxpY2l0bHkgZXJyb3Igb3V0IGluIEFURXhlY0FkZENv bHVtbiAoUGhhc2UgMikuCkZvciBleGFtcGxlLCBpbWFnaW5lIGFkZCBhIG5ldyBkb21haW4gY29s dW1uIHRvIGVtcHR5IHgsIGFuZCB0aGUgY29sdW1uIGRvbWFpbgpzcGVjaWZpY2F0aW9uIGlzIGBg Q0hFQ0sodmFsdWUgPiAxMCkgREVGQVVMVCA4YGAuICBJbiBzdWNoIHNpdHVhdGlvbnMsIHRoZSBB TFRFUgpUQUJMRSBBREQgQ09MVU1OIHNob3VsZCBiZSBzdWNjZXNzLgoKVGhhbmtzIHRvIGNvbW1p dCBhYWFmOTQ0OWVjNmJlNjJjYjBkMzBlZDM1ODhkYzM4NGY1NjI3NGJmWzFdLApFeHByU3RhdGUu ZXNjb250ZXh0IChFcnJvclNhdmVDb250ZXh0KSB3YXMgYWRkZWQsIGFuZCBFeGVjRXZhbENvbnN0 cmFpbnROb3ROdWxsLApFeGVjRXZhbENvbnN0cmFpbnRDaGVjayB3ZXJlIGNoYW5nZWQgdG8gdXNl IGVycnNhdmUgaW5zdGVhZCBvZiBoYXJkIGVycm9yLiAgTm93CndlIGNhbiBldmFsdWF0ZSBDb2Vy Y2VUb0RvbWFpbiBpbiBhIHNvZnQgZXJyb3Igd2F5LgoKSG93ZXZlciB3ZSBkbyB0YWJsZSByZXdy aXRlIGZvciBkb21haW4gd2l0aCB2b2xhdGlsZSBjaGVjayBjb25zdHJhaW50cy4KCmRpc2N1c3Np b246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FDSnVmeEVfK2laQlIxaTQ5a19BSGlncHBQd0xUSmk2 a204Tk9zQzdGV3ZLZEVtbVhnQG1haWwuZ21haWwuY29tClsxXTogaHR0cHM6Ly9naXQucG9zdGdy ZXNxbC5vcmcvY2dpdC9wb3N0Z3Jlc3FsLmdpdC9jb21taXQvP2lkPWFhYWY5NDQ5ZWM2YmU2MmNi MGQzMGVkMzU4OGRjMzg0ZjU2Mjc0YmYKLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNt ZHMuYyAgICAgICAgICAgfCA0NiArKysrKysrKysrKysrKy0tLS0tLS0tCiBzcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2Zhc3RfZGVmYXVsdC5vdXQgfCA0NCArKysrKysrKysrKysrKysrKysrKysK IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zhc3RfZGVmYXVsdC5zcWwgICAgICB8IDM3ICsrKysrKysr KysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDExMSBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4IDA4MmEzNTc1ZDYyLi5jNTgwOTRh MzljMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTc0MjgsMTUgKzc0MjgsNiBAQCBB VEV4ZWNBZGRDb2x1bW4oTGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxh dGlvbiByZWwsCiAJICogTlVMTCBpZiBzbywgc28gd2l0aG91dCBhbnkgbW9kaWZpY2F0aW9uIG9m IHRoZSB0dXBsZSBkYXRhIHdlIHdpbGwgZ2V0CiAJICogdGhlIGVmZmVjdCBvZiBOVUxMIHZhbHVl cyBpbiB0aGUgbmV3IGNvbHVtbi4KIAkgKgotCSAqIEFuIGV4Y2VwdGlvbiBvY2N1cnMgd2hlbiB0 aGUgbmV3IGNvbHVtbiBpcyBvZiBhIGRvbWFpbiB0eXBlOiB0aGUgZG9tYWluCi0JICogbWlnaHQg aGF2ZSBhIG5vdC1udWxsIGNvbnN0cmFpbnQsIG9yIGEgY2hlY2sgY29uc3RyYWludCB0aGF0IGlu ZGlyZWN0bHkKLQkgKiByZWplY3RzIG51bGxzLiAgSWYgdGhlcmUgYXJlIGFueSBkb21haW4gY29u c3RyYWludHMgdGhlbiB3ZSBjb25zdHJ1Y3QKLQkgKiBhbiBleHBsaWNpdCBOVUxMIGRlZmF1bHQg dmFsdWUgdGhhdCB3aWxsIGJlIHBhc3NlZCB0aHJvdWdoCi0JICogQ29lcmNlVG9Eb21haW4gcHJv Y2Vzc2luZy4gIChUaGlzIGlzIGEgdGFkIGluZWZmaWNpZW50LCBzaW5jZSBpdCBjYXVzZXMKLQkg KiByZXdyaXRpbmcgdGhlIHRhYmxlIHdoaWNoIHdlIHJlYWxseSB3b3VsZG4ndCBoYXZlIHRvIGRv OyBidXQgd2UgZG8gaXQKLQkgKiB0byBwcmVzZXJ2ZSB0aGUgaGlzdG9yaWNhbCBiZWhhdmlvciB0 aGF0IHN1Y2ggYSBmYWlsdXJlIHdpbGwgYmUgcmFpc2VkCi0JICogb25seSBpZiB0aGUgdGFibGUg Y3VycmVudGx5IGNvbnRhaW5zIHNvbWUgcm93cy4pCi0JICoKIAkgKiBOb3RlOiB3ZSB1c2UgYnVp bGRfY29sdW1uX2RlZmF1bHQsIGFuZCBub3QganVzdCB0aGUgY29va2VkIGRlZmF1bHQKIAkgKiBy ZXR1cm5lZCBieSBBZGRSZWxhdGlvbk5ld0NvbnN0cmFpbnRzLCBzbyB0aGF0IHRoZSByaWdodCB0 aGluZyBoYXBwZW5zCiAJICogd2hlbiBhIGRhdGF0eXBlJ3MgZGVmYXVsdCBhcHBsaWVzLgpAQCAt NzQ1NSw2ICs3NDQ2LDcgQEAgQVRFeGVjQWRkQ29sdW1uKExpc3QgKip3cXVldWUsIEFsdGVyZWRU YWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCXsKIAkJYm9vbAkJaGFzX2RvbWFpbl9jb25z dHJhaW50czsKIAkJYm9vbAkJaGFzX21pc3NpbmcgPSBmYWxzZTsKKwkJYm9vbAkJaGFzX3ZvbGF0 aWxlID0gZmFsc2U7CiAKIAkJLyoKIAkJICogRm9yIGFuIGlkZW50aXR5IGNvbHVtbiwgd2UgY2Fu J3QgdXNlIGJ1aWxkX2NvbHVtbl9kZWZhdWx0KCksCkBAIC03NDcyLDggKzc0NjQsMTggQEAgQVRF eGVjQWRkQ29sdW1uKExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRp b24gcmVsLAogCQllbHNlCiAJCQlkZWZ2YWwgPSAoRXhwciAqKSBidWlsZF9jb2x1bW5fZGVmYXVs dChyZWwsIGF0dHJpYnV0ZS0+YXR0bnVtKTsKIAorCQloYXNfZG9tYWluX2NvbnN0cmFpbnRzID0g RG9tYWluSGF2ZVZvbGF0aWxlQ29uc3RyYWludHMoYXR0cmlidXRlLT5hdHR0eXBpZCwgJmhhc192 b2xhdGlsZSk7CisKKwkJLyoKKwkJICogQWRkaW5nIGNvbHVtbiB3aXRoIHZvbGF0aWxlIGRvbWFp biBjb25zdHJhaW50IHJlcXVpcmVzIHRhYmxlIHJld3JpdGUKKwkJICovCisJCWlmIChoYXNfdm9s YXRpbGUpCisJCXsKKwkJCUFzc2VydChoYXNfZG9tYWluX2NvbnN0cmFpbnRzKTsKKwkJCXRhYi0+ cmV3cml0ZSB8PSBBVF9SRVdSSVRFX0RFRkFVTFRfVkFMOworCQl9CisKIAkJLyogQnVpbGQgQ29l cmNlVG9Eb21haW4oTlVMTCkgZXhwcmVzc2lvbiBpZiBuZWVkZWQgKi8KLQkJaGFzX2RvbWFpbl9j b25zdHJhaW50cyA9IERvbWFpbkhhc0NvbnN0cmFpbnRzKGF0dHJpYnV0ZS0+YXR0dHlwaWQpOwog CQlpZiAoIWRlZnZhbCAmJiBoYXNfZG9tYWluX2NvbnN0cmFpbnRzKQogCQl7CiAJCQlPaWQJCQli YXNlVHlwZUlkOwpAQCAtNzUxNSwxNCArNzUxNywxOCBAQCBBVEV4ZWNBZGRDb2x1bW4oTGlzdCAq KndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJCQkgKiBBdHRl bXB0IHRvIHNraXAgYSBjb21wbGV0ZSB0YWJsZSByZXdyaXRlIGJ5IHN0b3JpbmcgdGhlCiAJCQkg KiBzcGVjaWZpZWQgREVGQVVMVCB2YWx1ZSBvdXRzaWRlIG9mIHRoZSBoZWFwLiAgVGhpcyBpcyBv bmx5CiAJCQkgKiBhbGxvd2VkIGZvciBwbGFpbiByZWxhdGlvbnMgYW5kIG5vbi1nZW5lcmF0ZWQg Y29sdW1ucywgYW5kIHRoZQotCQkJICogZGVmYXVsdCBleHByZXNzaW9uIGNhbid0IGJlIHZvbGF0 aWxlIChzdGFibGUgaXMgT0spLiAgTm90ZSB0aGF0Ci0JCQkgKiBjb250YWluX3ZvbGF0aWxlX2Z1 bmN0aW9ucyBkZWVtcyBDb2VyY2VUb0RvbWFpbiBpbW11dGFibGUsIGJ1dAotCQkJICogaGVyZSB3 ZSBjb25zaWRlciB0aGF0IGNvZXJjaW9uIHRvIGEgZG9tYWluIHdpdGggY29uc3RyYWludHMgaXMK LQkJCSAqIHZvbGF0aWxlOyBlbHNlIGl0IG1pZ2h0IGZhaWwgZXZlbiB3aGVuIHRoZSB0YWJsZSBp cyBlbXB0eS4KKwkJCSAqIGRlZmF1bHQgZXhwcmVzc2lvbiBjYW4ndCBiZSB2b2xhdGlsZSAoc3Rh YmxlIGlzIE9LKSwgYW5kIHRoZQorCQkJICogZG9tYWluIGNvbnN0cmFpbnQgZXhwcmVzc2lvbiBj YW4ndCBiZSB2b2xhdGlsZSAoc3RhYmxlIGlzIE9LKS4KKwkJCSAqCisJCQkgKiBOb3RlIHRoYXQg Y29udGFpbl92b2xhdGlsZV9mdW5jdGlvbnMgZGVlbXMgQ29lcmNlVG9Eb21haW4KKwkJCSAqIGlt bXV0YWJsZS4gIEhvd2V2ZXIgd2UgaGF2ZSBjb21wdXRlZCBDb2VyY2VUb0RvbWFpbiBpcyB2b2xh dGlsZQorCQkJICogb3Igbm90IHZpYSBEb21haW5IYXZlVm9sYXRpbGVDb25zdHJhaW50cy4gV2Ug dXNlIHNvZnQgZXJyb3IKKwkJCSAqIGV2YWx1YXRpb24gb2YgQ29lcmNlVG9Eb21haW4sIGlmIGV2 YWx1YXRpb24gZmFpbGVkLCB0aGVuIHNldAorCQkJICogdGFibGUgcmV3cml0ZSB0byB0cnVlLgog CQkJICovCiAJCQlpZiAocmVsLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9SRUxBVElPTiAm JgogCQkJCSFjb2xEZWYtPmdlbmVyYXRlZCAmJgotCQkJCSFoYXNfZG9tYWluX2NvbnN0cmFpbnRz ICYmCisJCQkJIWhhc192b2xhdGlsZSAmJgogCQkJCSFjb250YWluX3ZvbGF0aWxlX2Z1bmN0aW9u cygoTm9kZSAqKSBkZWZ2YWwpKQogCQkJewogCQkJCUVTdGF0ZQkgICAqZXN0YXRlOwpAQCAtNzUz MiwxMCArNzUzOCwxOCBAQCBBVEV4ZWNBZGRDb2x1bW4oTGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRh YmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAKIAkJCQkvKiBFdmFsdWF0ZSB0aGUgZGVmYXVs dCBleHByZXNzaW9uICovCiAJCQkJZXN0YXRlID0gQ3JlYXRlRXhlY3V0b3JTdGF0ZSgpOwotCQkJ CWV4cHJTdGF0ZSA9IEV4ZWNQcmVwYXJlRXhwcihkZWZ2YWwsIGVzdGF0ZSk7CisJCQkJZXhwclN0 YXRlID0gRXhlY1ByZXBhcmVFeHByU2FmZShkZWZ2YWwsIGVzdGF0ZSk7CisKIAkJCQltaXNzaW5n dmFsID0gRXhlY0V2YWxFeHByKGV4cHJTdGF0ZSwKIAkJCQkJCQkJCQkgIEdldFBlclR1cGxlRXhw ckNvbnRleHQoZXN0YXRlKSwKIAkJCQkJCQkJCQkgICZtaXNzaW5nSXNOdWxsKTsKKworCQkJCWlm IChTT0ZUX0VSUk9SX09DQ1VSUkVEKGV4cHJTdGF0ZS0+ZXNjb250ZXh0KSkKKwkJCQl7CisJCQkJ CW1pc3NpbmdJc051bGwgPSB0cnVlOworCQkJCQl0YWItPnJld3JpdGUgfD0gQVRfUkVXUklURV9E RUZBVUxUX1ZBTDsKKwkJCQl9CisKIAkJCQkvKiBJZiBpdCB0dXJucyBvdXQgTlVMTCwgbm90aGlu ZyB0byBkbzsgZWxzZSBzdG9yZSBpdCAqLwogCQkJCWlmICghbWlzc2luZ0lzTnVsbCkKIAkJCQl7 CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zhc3RfZGVmYXVsdC5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zhc3RfZGVmYXVsdC5vdXQKaW5kZXggY2NiY2Rm ODQwM2YuLmFhNTIyY2Y4YmZhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2Zhc3RfZGVmYXVsdC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mYXN0X2Rl ZmF1bHQub3V0CkBAIC0zMTcsMTEgKzMxNyw1NSBAQCBTRUxFQ1QgYSwgYiwgbGVuZ3RoKGMpID0g MyBhcyBjX29rLCBkLCBlID49IDEwIGFzIGVfb2sgRlJPTSB0MjsKICAyIHwgMyB8IHQgICAgfCB7 VGhpcyxpcyxhYmNkLHRoZSxyZWFsLHdvcmxkfSB8IHQKICgyIHJvd3MpCiAKKy0tLXRlc3QgZmFz dCBkZWZhdWx0IG92ZXIgZG9tYWlucyB3aXRoIGNvbnN0cmFpbnRzCitDUkVBVEUgRE9NQUlOIGRv bWFpbjUgQVMgaW50IGNoZWNrKHZhbHVlID4gMTApIGRlZmF1bHQgODsKK0NSRUFURSBET01BSU4g ZG9tYWluNiBhcyBpbnQgbm90IG51bGw7CitDUkVBVEUgRE9NQUlOIGRvbWFpbjcgYXMgaW50IGNo ZWNrKHZhbHVlID4gMTApIERFRkFVTFQgcmFuZG9tKG1pbj0+MTEsIG1heD0+MTAwKTsKK0NSRUFU RSBET01BSU4gZG9tYWluOCBhcyBpbnQgY2hlY2soKHZhbHVlICsgcmFuZG9tKG1pbj0+MTE6Omlu dCwgbWF4PT4xMSkpID4gMTIpOworLS10ZXN0cyB3aXRoIG5vbi1lbXB0eSB0YWJsZS4KK0NSRUFU RSBUQUJMRSB0MyhhIGludCk7CitJTlNFUlQgSU5UTyB0MyBWQUxVRVMoMSksKDIpOworQUxURVIg VEFCTEUgdDMgQUREIENPTFVNTiBiIGRvbWFpbjU7IC0tdGFibGUgcmV3cml0ZSwgdGhlbiBmYWls CitOT1RJQ0U6ICByZXdyaXRpbmcgdGFibGUgdDMgZm9yIHJlYXNvbiAyCitFUlJPUjogIHZhbHVl IGZvciBkb21haW4gZG9tYWluNSB2aW9sYXRlcyBjaGVjayBjb25zdHJhaW50ICJkb21haW41X2No ZWNrIgorQUxURVIgVEFCTEUgdDMgQUREIENPTFVNTiBiIGRvbWFpbjY7IC0tdGFibGUgcmV3cml0 ZSwgdGhlbiBmYWlsCitOT1RJQ0U6ICByZXdyaXRpbmcgdGFibGUgdDMgZm9yIHJlYXNvbiAyCitF UlJPUjogIGRvbWFpbiBkb21haW42IGRvZXMgbm90IGFsbG93IG51bGwgdmFsdWVzCitBTFRFUiBU QUJMRSB0MyBBREQgQ09MVU1OIGIgZG9tYWluNSBkZWZhdWx0IDEyOyAtLW5vIHRhYmxlIHJld3Jp dGUKK0FMVEVSIFRBQkxFIHQzIEFERCBDT0xVTU4gYyBkb21haW42IGRlZmF1bHQgMTM7IC0tbm8g dGFibGUgcmV3cml0ZQorLS1leHBsaWNpdCBjb2x1bW4gZGVmYXVsdCBleHByZXNzaW9uIG92ZXJy aWRlIGRvbWFpbidzIGRlZmF1bHQKKy0tZXhwcmVzc2lvbiwgc28gbm8gbmVlZCB0YWJsZSByZXdy aXRlLgorQUxURVIgVEFCTEUgdDMgQUREIENPTFVNTiBkIGRvbWFpbjcgZGVmYXVsdCAxNDsKK1NF TEVDVCBhdHRudW0sIGF0dG5hbWUsIGF0dGhhc21pc3NpbmcsIGF0dGhhc2RlZiwgYXR0bWlzc2lu Z3ZhbAorRlJPTSAgcGdfYXR0cmlidXRlCitXSEVSRSBhdHRudW0gPiAwIEFORCBhdHRyZWxpZCA9 ICd0Myc6OnJlZ2NsYXNzIEFORCBhdHRpc2Ryb3BwZWQgaXMgZmFsc2UKK0FORCAgIGF0dGhhc21p c3NpbmcKK09SREVSIEJZIGF0dG51bTsKKyBhdHRudW0gfCBhdHRuYW1lIHwgYXR0aGFzbWlzc2lu ZyB8IGF0dGhhc2RlZiB8IGF0dG1pc3Npbmd2YWwgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQorICAgICAgMiB8IGIgICAgICAg fCB0ICAgICAgICAgICAgIHwgdCAgICAgICAgIHwgezEyfQorICAgICAgMyB8IGMgICAgICAgfCB0 ICAgICAgICAgICAgIHwgdCAgICAgICAgIHwgezEzfQorICAgICAgNCB8IGQgICAgICAgfCB0ICAg ICAgICAgICAgIHwgdCAgICAgICAgIHwgezE0fQorKDMgcm93cykKKworLS1uZWVkIHRhYmxlIHJl d3JpdGUgd2hlbiB3ZSBhcmUgYXBwbHlpbmcgZG9tYWluIHZvbGF0aWxlIGRlZmF1bHQgZXhwcmVz aW9uCitBTFRFUiBUQUJMRSB0MyBBREQgQ09MVU1OIGUgZG9tYWluNzsKK05PVElDRTogIHJld3Jp dGluZyB0YWJsZSB0MyBmb3IgcmVhc29uIDIKKy0tIG5lZWQgdGFibGUgcmV3cml0ZSB3aGVuIG5l dyBjb2x1bW4gaXMgZG9tYWluIHdpdGggdm9sYXRpbGUgY29uc3RyYWludHMuCitBTFRFUiBUQUJM RSB0MyBBREQgQ09MVU1OIGYgZG9tYWluOCBkZWZhdWx0IDE0OworTk9USUNFOiAgcmV3cml0aW5n IHRhYmxlIHQzIGZvciByZWFzb24gMgorQUxURVIgVEFCTEUgdDMgQUREIENPTFVNTiBmMSBkb21h aW44OworTk9USUNFOiAgcmV3cml0aW5nIHRhYmxlIHQzIGZvciByZWFzb24gMgogRFJPUCBUQUJM RSB0MjsKK0RST1AgVEFCTEUgdDM7CiBEUk9QIERPTUFJTiBkb21haW4xOwogRFJPUCBET01BSU4g ZG9tYWluMjsKIERST1AgRE9NQUlOIGRvbWFpbjM7CiBEUk9QIERPTUFJTiBkb21haW40OworRFJP UCBET01BSU4gZG9tYWluNTsKK0RST1AgRE9NQUlOIGRvbWFpbjY7CitEUk9QIERPTUFJTiBkb21h aW43OworRFJPUCBET01BSU4gZG9tYWluODsKIERST1AgRlVOQ1RJT04gZm9vKElOVCk7CiAtLSBG YWxsIGJhY2sgdG8gZnVsbCByZXdyaXRlIGZvciB2b2xhdGlsZSBleHByZXNzaW9ucwogQ1JFQVRF IFRBQkxFIFQocGsgSU5UIE5PVCBOVUxMIFBSSU1BUlkgS0VZKTsKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL2Zhc3RfZGVmYXVsdC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9m YXN0X2RlZmF1bHQuc3FsCmluZGV4IDA2OGRkMGJjOGFhLi4yNjlhMzllZGY3NyAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZmFzdF9kZWZhdWx0LnNxbAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9mYXN0X2RlZmF1bHQuc3FsCkBAIC0yODcsMTEgKzI4Nyw0OCBAQCBPUkRFUiBC WSBhdHRudW07CiAKIFNFTEVDVCBhLCBiLCBsZW5ndGgoYykgPSAzIGFzIGNfb2ssIGQsIGUgPj0g MTAgYXMgZV9vayBGUk9NIHQyOwogCistLS10ZXN0IGZhc3QgZGVmYXVsdCBvdmVyIGRvbWFpbnMg d2l0aCBjb25zdHJhaW50cworQ1JFQVRFIERPTUFJTiBkb21haW41IEFTIGludCBjaGVjayh2YWx1 ZSA+IDEwKSBkZWZhdWx0IDg7CitDUkVBVEUgRE9NQUlOIGRvbWFpbjYgYXMgaW50IG5vdCBudWxs OworQ1JFQVRFIERPTUFJTiBkb21haW43IGFzIGludCBjaGVjayh2YWx1ZSA+IDEwKSBERUZBVUxU IHJhbmRvbShtaW49PjExLCBtYXg9PjEwMCk7CitDUkVBVEUgRE9NQUlOIGRvbWFpbjggYXMgaW50 IGNoZWNrKCh2YWx1ZSArIHJhbmRvbShtaW49PjExOjppbnQsIG1heD0+MTEpKSA+IDEyKTsKKwor LS10ZXN0cyB3aXRoIG5vbi1lbXB0eSB0YWJsZS4KK0NSRUFURSBUQUJMRSB0MyhhIGludCk7CitJ TlNFUlQgSU5UTyB0MyBWQUxVRVMoMSksKDIpOworCitBTFRFUiBUQUJMRSB0MyBBREQgQ09MVU1O IGIgZG9tYWluNTsgLS10YWJsZSByZXdyaXRlLCB0aGVuIGZhaWwKK0FMVEVSIFRBQkxFIHQzIEFE RCBDT0xVTU4gYiBkb21haW42OyAtLXRhYmxlIHJld3JpdGUsIHRoZW4gZmFpbAorQUxURVIgVEFC TEUgdDMgQUREIENPTFVNTiBiIGRvbWFpbjUgZGVmYXVsdCAxMjsgLS1ubyB0YWJsZSByZXdyaXRl CitBTFRFUiBUQUJMRSB0MyBBREQgQ09MVU1OIGMgZG9tYWluNiBkZWZhdWx0IDEzOyAtLW5vIHRh YmxlIHJld3JpdGUKKworLS1leHBsaWNpdCBjb2x1bW4gZGVmYXVsdCBleHByZXNzaW9uIG92ZXJy aWRlIGRvbWFpbidzIGRlZmF1bHQKKy0tZXhwcmVzc2lvbiwgc28gbm8gbmVlZCB0YWJsZSByZXdy aXRlLgorQUxURVIgVEFCTEUgdDMgQUREIENPTFVNTiBkIGRvbWFpbjcgZGVmYXVsdCAxNDsKKwor U0VMRUNUIGF0dG51bSwgYXR0bmFtZSwgYXR0aGFzbWlzc2luZywgYXR0aGFzZGVmLCBhdHRtaXNz aW5ndmFsCitGUk9NICBwZ19hdHRyaWJ1dGUKK1dIRVJFIGF0dG51bSA+IDAgQU5EIGF0dHJlbGlk ID0gJ3QzJzo6cmVnY2xhc3MgQU5EIGF0dGlzZHJvcHBlZCBpcyBmYWxzZQorQU5EICAgYXR0aGFz bWlzc2luZworT1JERVIgQlkgYXR0bnVtOworCistLW5lZWQgdGFibGUgcmV3cml0ZSB3aGVuIHdl IGFyZSBhcHBseWluZyBkb21haW4gdm9sYXRpbGUgZGVmYXVsdCBleHByZXNpb24KK0FMVEVSIFRB QkxFIHQzIEFERCBDT0xVTU4gZSBkb21haW43OworCistLSBuZWVkIHRhYmxlIHJld3JpdGUgd2hl biBuZXcgY29sdW1uIGlzIGRvbWFpbiB3aXRoIHZvbGF0aWxlIGNvbnN0cmFpbnRzLgorQUxURVIg VEFCTEUgdDMgQUREIENPTFVNTiBmIGRvbWFpbjggZGVmYXVsdCAxNDsKK0FMVEVSIFRBQkxFIHQz IEFERCBDT0xVTU4gZjEgZG9tYWluODsKKwogRFJPUCBUQUJMRSB0MjsKK0RST1AgVEFCTEUgdDM7 CiBEUk9QIERPTUFJTiBkb21haW4xOwogRFJPUCBET01BSU4gZG9tYWluMjsKIERST1AgRE9NQUlO IGRvbWFpbjM7CiBEUk9QIERPTUFJTiBkb21haW40OworRFJPUCBET01BSU4gZG9tYWluNTsKK0RS T1AgRE9NQUlOIGRvbWFpbjY7CitEUk9QIERPTUFJTiBkb21haW43OworRFJPUCBET01BSU4gZG9t YWluODsKIERST1AgRlVOQ1RJT04gZm9vKElOVCk7CiAKIC0tIEZhbGwgYmFjayB0byBmdWxsIHJl d3JpdGUgZm9yIHZvbGF0aWxlIGV4cHJlc3Npb25zCi0tIAoyLjM0LjEKCg== --000000000000b36f31063db779e5 Content-Type: text/x-patch; charset="US-ASCII"; name="v7-0004-table-scan-only-when-adding-domain-with-volatile-constraints.patch" Content-Disposition: attachment; filename="v7-0004-table-scan-only-when-adding-domain-with-volatile-constraints.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf0ql3eq0 RnJvbSBiMmMwNTZjMmUwZDVkN2NhNTJiY2I4NTliZWIyNDE2Zjg4MDJjYjIxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMSBTZXAgMjAyNSAxMzo0Nzo0NyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjcg NC80XSB0YWJsZSBzY2FuIG9ubHkgd2hlbiBhZGRpbmcgZG9tYWluIHdpdGggdm9sYXRpbGUKIGNv bnN0cmFpbnRzCgpXaGVuIGFkZGluZyBhIG5ldyBjb2x1bW4sIGEgdGFibGUgc2NhbiBpcyBzdWZm aWNpZW50IHRvIGV2YWx1YXRlIGRvbWFpbnMgd2l0aAp2b2xhdGlsZSBjaGVjayBjb25zdHJhaW50 cy4KCmV4YW1wbGUgZGVtbzoKQ1JFQVRFIERPTUFJTiBkb21haW44IGFzIGludCBjaGVjaygodmFs dWUgKyByYW5kb20obWluPT4xMTo6aW50LCBtYXg9PjExKSkgPiAxMik7CkNSRUFURSBUQUJMRSB0 MyhhIGludCk7CklOU0VSVCBJTlRPIHQzIFZBTFVFUygxKSwoMik7CgpBTFRFUiBUQUJMRSB0MyBB REQgQ09MVU1OIGYgZG9tYWluOCBkZWZhdWx0IDE7IC0tZXJyb3Igd2hpbGUgY29lcmNpbmcgdG8g ZG9tYWluCkFMVEVSIFRBQkxFIHQzIEFERCBDT0xVTU4gZiBkb21haW44IGRlZmF1bHQgMjA7IC0t b2sKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FDSnVmeEVfK2laQlIxaTQ5a19B SGlncHBQd0xUSmk2a204Tk9zQzdGV3ZLZEVtbVhnQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAgICAgIHwgNzIgKysrKysrKysrKysrKysr KysrLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mYXN0X2RlZmF1bHQub3V0IHwgMjcg KysrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zhc3RfZGVmYXVsdC5zcWwgICAgICB8IDE1 ICsrKystCiAzIGZpbGVzIGNoYW5nZWQsIDk4IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggYzU4MDk0YTM5YzAuLmZjYjM3OGU3OWQ1 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMv YmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtMjMwLDYgKzIzMCw5IEBAIHR5cGVkZWYg c3RydWN0IE5ld0NvbnN0cmFpbnQKICAqIGFyZSBqdXN0IGNvcGllZCBmcm9tIHRoZSBvbGQgdGFi bGUgZHVyaW5nIEFUUmV3cml0ZVRhYmxlLiAgTm90ZSB0aGF0IHRoZQogICogZXhwciBpcyBhbiBl eHByZXNzaW9uIG92ZXIgKm9sZCogdGFibGUgdmFsdWVzLCBleGNlcHQgd2hlbiBpc19nZW5lcmF0 ZWQKICAqIGlzIHRydWU7IHRoZW4gaXQgaXMgYW4gZXhwcmVzc2lvbiBvdmVyIGNvbHVtbnMgb2Yg dGhlICpuZXcqIHR1cGxlLgorICoKKyAqIElmIHNjYW5fb25seSBpcyB0cnVlLCBpdCBtZWFucyBp biBwaGFzZTMsIHRhYmxlIHNjYW4gaXMgZW5vdWdoIHRvIGV2YXVsYXRlIGV4cHIuCisgKiBDdXJy ZW50bHksIHRoaXMgaXMgc3VwcG9ydGVkIHdoZW4gZXhwciBpcyBDb2VyY2VUb0RvbWFpbi4KICAq LwogdHlwZWRlZiBzdHJ1Y3QgTmV3Q29sdW1uVmFsdWUKIHsKQEAgLTIzNyw2ICsyNDAsOCBAQCB0 eXBlZGVmIHN0cnVjdCBOZXdDb2x1bW5WYWx1ZQogCUV4cHIJICAgKmV4cHI7CQkJLyogZXhwcmVz c2lvbiB0byBjb21wdXRlICovCiAJRXhwclN0YXRlICAqZXhwcnN0YXRlOwkJLyogZXhlY3V0aW9u IHN0YXRlICovCiAJYm9vbAkJaXNfZ2VuZXJhdGVkOwkvKiBpcyBpdCBhIEdFTkVSQVRFRCBleHBy ZXNzaW9uPyAqLworCWJvb2wJCXNjYW5fb25seTsJCS8qIHVzZSB0YWJsZSBzY2FuIHRvIGV2YXVs YXRlIGV4cHJlc3Npb24sCisJCQkJCQkJCSAqIHVzZWZ1bCBvbmx5IHdoZW4gdGFibGUgcmV3cml0 ZSBpcyBmYWxzZSAqLwogfSBOZXdDb2x1bW5WYWx1ZTsKIAogLyoKQEAgLTYwMDgsNyArNjAxMyw4 IEBAIEFUUmV3cml0ZVRhYmxlcyhBbHRlclRhYmxlU3RtdCAqcGFyc2V0cmVlLCBMaXN0ICoqd3F1 ZXVlLCBMT0NLTU9ERSBsb2NrbW9kZSwKIAkJCSAqIHJlYnVpbGQgZGF0YS4KIAkJCSAqLwogCQkJ aWYgKHRhYi0+Y29uc3RyYWludHMgIT0gTklMIHx8IHRhYi0+dmVyaWZ5X25ld19ub3RudWxsIHx8 Ci0JCQkJdGFiLT5wYXJ0aXRpb25fY29uc3RyYWludCAhPSBOVUxMKQorCQkJCXRhYi0+cGFydGl0 aW9uX2NvbnN0cmFpbnQgIT0gTlVMTCB8fAorCQkJCXRhYi0+bmV3dmFscykKIAkJCQlBVFJld3Jp dGVUYWJsZSh0YWIsIEludmFsaWRPaWQpOwogCiAJCQkvKgpAQCAtNjExOCw3ICs2MTI0LDkgQEAg QVRSZXdyaXRlVGFibGUoQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBPaWQgT0lETmV3SGVhcCkKIAlS ZWxhdGlvbgluZXdyZWw7CiAJVHVwbGVEZXNjCW9sZFR1cERlc2M7CiAJVHVwbGVEZXNjCW5ld1R1 cERlc2M7CisJVHVwbGVEZXNjIAlvbGRUdXBEZXNjVGVtcDsKIAlib29sCQluZWVkc2NhbiA9IGZh bHNlOworCWJvb2wJCXNjYW5fb25seSA9IGZhbHNlOwogCUxpc3QJICAgKm5vdG51bGxfYXR0cnM7 CiAJTGlzdAkgICAqbm90bnVsbF92aXJ0dWFsX2F0dHJzOwogCWludAkJCWk7CkBAIC02MTM1LDYg KzYxNDMsNyBAQCBBVFJld3JpdGVUYWJsZShBbHRlcmVkVGFibGVJbmZvICp0YWIsIE9pZCBPSURO ZXdIZWFwKQogCSAqLwogCW9sZHJlbCA9IHRhYmxlX29wZW4odGFiLT5yZWxpZCwgTm9Mb2NrKTsK IAlvbGRUdXBEZXNjID0gdGFiLT5vbGREZXNjOworCW9sZFR1cERlc2NUZW1wID0gQ3JlYXRlVHVw bGVEZXNjQ29weShvbGRUdXBEZXNjKTsKIAluZXdUdXBEZXNjID0gUmVsYXRpb25HZXREZXNjcihv bGRyZWwpOwkvKiBpbmNsdWRlcyBhbGwgbW9kcyAqLwogCiAJaWYgKE9pZElzVmFsaWQoT0lETmV3 SGVhcCkpCkBAIC02MjAzLDYgKzYyMTIsMTEgQEAgQVRSZXdyaXRlVGFibGUoQWx0ZXJlZFRhYmxl SW5mbyAqdGFiLCBPaWQgT0lETmV3SGVhcCkKIAogCQkvKiBleHByIGFscmVhZHkgcGxhbm5lZCAq LwogCQlleC0+ZXhwcnN0YXRlID0gRXhlY0luaXRFeHByKChFeHByICopIGV4LT5leHByLCBOVUxM KTsKKwkJaWYgKGV4LT5zY2FuX29ubHkgJiYgIXRhYi0+cmV3cml0ZSAmJiAhc2Nhbl9vbmx5KQor CQl7CisJCQluZWVkc2NhbiA9IHRydWU7CisJCQlzY2FuX29ubHkgPSB0cnVlOworCQl9CiAJfQog CiAJbm90bnVsbF9hdHRycyA9IG5vdG51bGxfdmlydHVhbF9hdHRycyA9IE5JTDsKQEAgLTY0MzEs NiArNjQ0NSw0MyBAQCBBVFJld3JpdGVUYWJsZShBbHRlcmVkVGFibGVJbmZvICp0YWIsIE9pZCBP SUROZXdIZWFwKQogCQkJCSAqIG5ldyBjb25zdHJhaW50cyBldGMuCiAJCQkJICovCiAJCQkJaW5z ZXJ0c2xvdCA9IG9sZHNsb3Q7CisKKwkJCQkvKgorCQkJCSAqIFRoZSB0dXBkZXNjIChuZXdUdXBE ZXNjKSBpbiBvbGRzbG90IGFscmVhZHkgaGF2ZSB0aGUgdXBkYXRlZAorCQkJCSAqIGF0dHJpYnV0 ZSBjaGFuZ2VzLiBJZiB3ZSB1c2UgaXQgZm9yIGJlbG93IEV4ZWNFdmFsRXhwciwgdGhlbgorCQkJ CSAqIENoZWNrVmFyU2xvdENvbXBhdGliaWxpdHkgd2lsbCBmYWlsLiAgVGhlcmVmb3JlLCB3ZSBu ZWVkIHRvCisJCQkJICogdGVtcG9yYXJpbHkgc2V0IG9sZHNsb3QncyB0dHNfdHVwbGVEZXNjcmlw dG9yIGVxdWFsIHRvIG9sZFR1cERlc2MuCisJCQkJICogRXNzZW50aWFsbHksIHdoYXQgd2UncmUg ZG9pbmcgaGVyZSBpcyBldmFsdWF0aW5nIHRoZQorCQkJCSAqIENvZXJjZVRvRG9tYWluIG5vZGUg YWdhaW5zdCB0aGUgZXhpc3RpbmcgdGFibGUgc2xvdC4KKwkJCQkqLworCQkJCWlmIChzY2FuX29u bHkpCisJCQkJeworCQkJCQlEYXR1bQkJdmFsdWVzIHBnX2F0dHJpYnV0ZV91bnVzZWQoKTsKKwkJ CQkJYm9vbAkJaXNudWxsIHBnX2F0dHJpYnV0ZV91bnVzZWQoKTsKKworCQkJCQlpbnNlcnRzbG90 LT50dHNfdHVwbGVEZXNjcmlwdG9yID0gb2xkVHVwRGVzY1RlbXA7CisJCQkJCWVjb250ZXh0LT5l Y3h0X3NjYW50dXBsZSA9IGluc2VydHNsb3Q7CisKKwkJCQkJZm9yZWFjaChsLCB0YWItPm5ld3Zh bHMpCisJCQkJCXsKKwkJCQkJCU5ld0NvbHVtblZhbHVlICpleCA9IGxmaXJzdChsKTsKKworCQkJ CQkJaWYgKCFleC0+c2Nhbl9vbmx5KQorCQkJCQkJCWNvbnRpbnVlOworCisJCQkJCQkvKgorCQkJ CQkJICogd2UgY2FuIG5vdCB1c2UgRXhlY0V2YWxFeHByTm9SZXR1cm4gaGVyZSwgYmVjYXVzZSB3 ZQorCQkJCQkJICogdXNlIEV4ZWNJbml0RXhwciBjb21waWxlIE5ld0NvbHVtblZhbHVlLT5leHBy LiAgSGVyZSwKKwkJCQkJCSAqIHdlIG9ubHkgY2hlY2sgd2hldGhlciB0aGUgb2xkc2xvdCB2YWx1 ZSBzYXRpc2ZpZXMgdGhlCisJCQkJCQkgKiBkb21haW4gY29uc3RyYWludC4gU28gaXQgaXMgb2sg dG8gb3ZlcnJpZGUgdGhlIHZhbHVlCisJCQkJCQkgKiBldmFsdWF0ZWQgYnkgRXhlY0V2YWxFeHBy LgorCQkJCQkJICovCisJCQkJCQl2YWx1ZXMgPSBFeGVjRXZhbEV4cHIoZXgtPmV4cHJzdGF0ZSwg ZWNvbnRleHQsICZpc251bGwpOworCQkJCQkJdmFsdWVzID0gKERhdHVtKSAwOworCQkJCQkJaXNu dWxsID0gdHJ1ZTsKKwkJCQkJfQorCQkJCQlpbnNlcnRzbG90LT50dHNfdHVwbGVEZXNjcmlwdG9y ID0gbmV3VHVwRGVzYzsKKwkJCQl9CiAJCQl9CiAKIAkJCS8qIE5vdyBjaGVjayBhbnkgY29uc3Ry YWludHMgb24gdGhlIHBvc3NpYmx5LWNoYW5nZWQgdHVwbGUgKi8KQEAgLTc0NjYsMTUgKzc1MTcs NiBAQCBBVEV4ZWNBZGRDb2x1bW4oTGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFi LCBSZWxhdGlvbiByZWwsCiAKIAkJaGFzX2RvbWFpbl9jb25zdHJhaW50cyA9IERvbWFpbkhhdmVW b2xhdGlsZUNvbnN0cmFpbnRzKGF0dHJpYnV0ZS0+YXR0dHlwaWQsICZoYXNfdm9sYXRpbGUpOwog Ci0JCS8qCi0JCSAqIEFkZGluZyBjb2x1bW4gd2l0aCB2b2xhdGlsZSBkb21haW4gY29uc3RyYWlu dCByZXF1aXJlcyB0YWJsZSByZXdyaXRlCi0JCSAqLwotCQlpZiAoaGFzX3ZvbGF0aWxlKQotCQl7 Ci0JCQlBc3NlcnQoaGFzX2RvbWFpbl9jb25zdHJhaW50cyk7Ci0JCQl0YWItPnJld3JpdGUgfD0g QVRfUkVXUklURV9ERUZBVUxUX1ZBTDsKLQkJfQotCiAJCS8qIEJ1aWxkIENvZXJjZVRvRG9tYWlu KE5VTEwpIGV4cHJlc3Npb24gaWYgbmVlZGVkICovCiAJCWlmICghZGVmdmFsICYmIGhhc19kb21h aW5fY29uc3RyYWludHMpCiAJCXsKQEAgLTc1MTEsNiArNzU1MywxMyBAQCBBVEV4ZWNBZGRDb2x1 bW4oTGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJ CQluZXd2YWwtPmV4cHIgPSBkZWZ2YWw7CiAJCQluZXd2YWwtPmlzX2dlbmVyYXRlZCA9IChjb2xE ZWYtPmdlbmVyYXRlZCAhPSAnXDAnKTsKIAorCQkJLyoKKwkJCSAqIElmIHRoZSBkb21haW4gaGFz IHZvbGF0aWxlIGNvbnN0cmFpbnRzLCB0YWJsZSBzY2FuIGlzIGVub3VnaCB0bworCQkJICogZXZh bHVhdGUgQ29lcmNlVG9Eb21haW4sIG5vIG5lZWQgdGFibGUgcmV3cml0ZS4KKwkJCSovCisJCQlp ZiAoaGFzX3ZvbGF0aWxlICYmIElzQShkZWZ2YWwsIENvZXJjZVRvRG9tYWluKSkKKwkJCQluZXd2 YWwtPnNjYW5fb25seSA9IHRydWU7CisKIAkJCXRhYi0+bmV3dmFscyA9IGxhcHBlbmQodGFiLT5u ZXd2YWxzLCBuZXd2YWwpOwogCiAJCQkvKgpAQCAtNzUyOCw3ICs3NTc3LDYgQEAgQVRFeGVjQWRk Q29sdW1uKExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVs LAogCQkJICovCiAJCQlpZiAocmVsLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9SRUxBVElP TiAmJgogCQkJCSFjb2xEZWYtPmdlbmVyYXRlZCAmJgotCQkJCSFoYXNfdm9sYXRpbGUgJiYKIAkJ CQkhY29udGFpbl92b2xhdGlsZV9mdW5jdGlvbnMoKE5vZGUgKikgZGVmdmFsKSkKIAkJCXsKIAkJ CQlFU3RhdGUJICAgKmVzdGF0ZTsKQEAgLTc1NjAsNyArNzYwOCw3IEBAIEFURXhlY0FkZENvbHVt bihMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAkJ CQl9CiAJCQkJRnJlZUV4ZWN1dG9yU3RhdGUoZXN0YXRlKTsKIAkJCX0KLQkJCWVsc2UKKwkJCWVs c2UgaWYgKCFoYXNfdm9sYXRpbGUpCiAJCQl7CiAJCQkJLyoKIAkJCQkgKiBGYWlsZWQgdG8gdXNl IG1pc3NpbmcgbW9kZS4gIFdlIGhhdmUgdG8gZG8gYSB0YWJsZSByZXdyaXRlCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zhc3RfZGVmYXVsdC5vdXQgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2Zhc3RfZGVmYXVsdC5vdXQKaW5kZXggYWE1MjJjZjhiZmEuLjEzNjQ1 NGEyODlkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zhc3RfZGVmYXVs dC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mYXN0X2RlZmF1bHQub3V0CkBA IC0zNTEsMTEgKzM1MSwzNCBAQCBPUkRFUiBCWSBhdHRudW07CiAtLW5lZWQgdGFibGUgcmV3cml0 ZSB3aGVuIHdlIGFyZSBhcHBseWluZyBkb21haW4gdm9sYXRpbGUgZGVmYXVsdCBleHByZXNpb24K IEFMVEVSIFRBQkxFIHQzIEFERCBDT0xVTU4gZSBkb21haW43OwogTk9USUNFOiAgcmV3cml0aW5n IHRhYmxlIHQzIGZvciByZWFzb24gMgotLS0gbmVlZCB0YWJsZSByZXdyaXRlIHdoZW4gbmV3IGNv bHVtbiBpcyBkb21haW4gd2l0aCB2b2xhdGlsZSBjb25zdHJhaW50cy4KLUFMVEVSIFRBQkxFIHQz IEFERCBDT0xVTU4gZiBkb21haW44IGRlZmF1bHQgMTQ7CistLU5vIG5lZWQgdGFibGUgcmV3cml0 ZSB3aGVuIHdlIGFyZSBhcHBseWluZyBkb21haW4gY29uc3RyYWludCB2b2xhdGlsZSBleHByZXNp b24sCistLWJ1dCB0YWJsZSBzY2FuIGlzIHJlcXVpcmVkLgorQUxURVIgVEFCTEUgdDMgQUREIENP TFVNTiBmIGRvbWFpbjggZGVmYXVsdCAxOyAtLWVycm9yIHdoaWxlIGNvZXJjaW5nIHRvIGRvbWFp bgogTk9USUNFOiAgcmV3cml0aW5nIHRhYmxlIHQzIGZvciByZWFzb24gMgorRVJST1I6ICB2YWx1 ZSBmb3IgZG9tYWluIGRvbWFpbjggdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWludCAiZG9tYWluOF9j aGVjayIKK0FMVEVSIFRBQkxFIHQzIEFERCBDT0xVTU4gZiBkb21haW44IGRlZmF1bHQgMjA7IC0t b2sKK0FMVEVSIERPTUFJTiBkb21haW44IEFERCBDSEVDSyhWQUxVRSBJUyBOT1QgTlVMTCk7Cist LXRhYmxlIHJld3JpdGUgdGhlbiBlcnJvciwgYmVjYXVzZSBmMSBkZWZhdWx0IHZhbHVlIChOVUxM KSwgZG9lcyBub3Qgc2F0aXNmaWVkIHdpdGggZG9tYWluIGNvbnN0cmFpbnQKIEFMVEVSIFRBQkxF IHQzIEFERCBDT0xVTU4gZjEgZG9tYWluODsKIE5PVElDRTogIHJld3JpdGluZyB0YWJsZSB0MyBm b3IgcmVhc29uIDIKK0VSUk9SOiAgdmFsdWUgZm9yIGRvbWFpbiBkb21haW44IHZpb2xhdGVzIGNo ZWNrIGNvbnN0cmFpbnQgImRvbWFpbjhfY2hlY2sxIgorU0VMRUNUIGYgRlJPTSB0MzsKKyBmICAK Ky0tLS0KKyAyMAorIDIwCisoMiByb3dzKQorCitTRUxFQ1QgYXR0bnVtLCBhdHRuYW1lLCBhdHRo YXNtaXNzaW5nLCBhdHRoYXNkZWYsIGF0dG1pc3Npbmd2YWwKK0ZST00gIHBnX2F0dHJpYnV0ZQor V0hFUkUgYXR0bnVtID4gMCBBTkQgYXR0cmVsaWQgPSAndDMnOjpyZWdjbGFzcyBBTkQgYXR0aXNk cm9wcGVkIGlzIGZhbHNlCitBTkQgICBhdHRoYXNtaXNzaW5nCitPUkRFUiBCWSBhdHRudW07Cisg YXR0bnVtIHwgYXR0bmFtZSB8IGF0dGhhc21pc3NpbmcgfCBhdHRoYXNkZWYgfCBhdHRtaXNzaW5n dmFsIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0KKyAgICAgIDYgfCBmICAgICAgIHwgdCAgICAgICAgICAgICB8IHQgICAgICAg ICB8IHsyMH0KKygxIHJvdykKKwogRFJPUCBUQUJMRSB0MjsKIERST1AgVEFCTEUgdDM7CiBEUk9Q IERPTUFJTiBkb21haW4xOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZmFzdF9k ZWZhdWx0LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zhc3RfZGVmYXVsdC5zcWwKaW5kZXgg MjY5YTM5ZWRmNzcuLjE3ODI0OWRlOTYwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9mYXN0X2RlZmF1bHQuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zhc3RfZGVmYXVs dC5zcWwKQEAgLTMxNSwxMCArMzE1LDIxIEBAIE9SREVSIEJZIGF0dG51bTsKIC0tbmVlZCB0YWJs ZSByZXdyaXRlIHdoZW4gd2UgYXJlIGFwcGx5aW5nIGRvbWFpbiB2b2xhdGlsZSBkZWZhdWx0IGV4 cHJlc2lvbgogQUxURVIgVEFCTEUgdDMgQUREIENPTFVNTiBlIGRvbWFpbjc7CiAKLS0tIG5lZWQg dGFibGUgcmV3cml0ZSB3aGVuIG5ldyBjb2x1bW4gaXMgZG9tYWluIHdpdGggdm9sYXRpbGUgY29u c3RyYWludHMuCi1BTFRFUiBUQUJMRSB0MyBBREQgQ09MVU1OIGYgZG9tYWluOCBkZWZhdWx0IDE0 OworLS1ObyBuZWVkIHRhYmxlIHJld3JpdGUgd2hlbiB3ZSBhcmUgYXBwbHlpbmcgZG9tYWluIGNv bnN0cmFpbnQgdm9sYXRpbGUgZXhwcmVzaW9uLAorLS1idXQgdGFibGUgc2NhbiBpcyByZXF1aXJl ZC4KK0FMVEVSIFRBQkxFIHQzIEFERCBDT0xVTU4gZiBkb21haW44IGRlZmF1bHQgMTsgLS1lcnJv ciB3aGlsZSBjb2VyY2luZyB0byBkb21haW4KK0FMVEVSIFRBQkxFIHQzIEFERCBDT0xVTU4gZiBk b21haW44IGRlZmF1bHQgMjA7IC0tb2sKK0FMVEVSIERPTUFJTiBkb21haW44IEFERCBDSEVDSyhW QUxVRSBJUyBOT1QgTlVMTCk7CistLXRhYmxlIHJld3JpdGUgdGhlbiBlcnJvciwgYmVjYXVzZSBm MSBkZWZhdWx0IHZhbHVlIChOVUxMKSwgZG9lcyBub3Qgc2F0aXNmaWVkIHdpdGggZG9tYWluIGNv bnN0cmFpbnQKIEFMVEVSIFRBQkxFIHQzIEFERCBDT0xVTU4gZjEgZG9tYWluODsKIAorU0VMRUNU IGYgRlJPTSB0MzsKK1NFTEVDVCBhdHRudW0sIGF0dG5hbWUsIGF0dGhhc21pc3NpbmcsIGF0dGhh c2RlZiwgYXR0bWlzc2luZ3ZhbAorRlJPTSAgcGdfYXR0cmlidXRlCitXSEVSRSBhdHRudW0gPiAw IEFORCBhdHRyZWxpZCA9ICd0Myc6OnJlZ2NsYXNzIEFORCBhdHRpc2Ryb3BwZWQgaXMgZmFsc2UK K0FORCAgIGF0dGhhc21pc3NpbmcKK09SREVSIEJZIGF0dG51bTsKKwogRFJPUCBUQUJMRSB0MjsK IERST1AgVEFCTEUgdDM7CiBEUk9QIERPTUFJTiBkb21haW4xOwotLSAKMi4zNC4xCgo= --000000000000b36f31063db779e5 Content-Type: text/x-patch; charset="US-ASCII"; name="v7-0002-add-function-DomainHaveVolatileConstraints.patch" Content-Disposition: attachment; filename="v7-0002-add-function-DomainHaveVolatileConstraints.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf0ql3ev2 RnJvbSBkYTVlZmI4OGMxMTJkNDlhODgwMGU4MWY4NTcwMDZiYjU4ZGVlZTkyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMTkgTWF5IDIwMjUgMTE6MTE6MDEgKzA4MDAKU3ViamVjdDogW1BBVENIIHY3 IDIvNF0gYWRkIGZ1bmN0aW9uIERvbWFpbkhhdmVWb2xhdGlsZUNvbnN0cmFpbnRzCgp0aGUgc2ln bmF0dXJlIGlzOgpleHRlcm4gYm9vbCBEb21haW5IYXZlVm9sYXRpbGVDb25zdHJhaW50cyhPaWQg dHlwZV9pZCwgYm9vbCAqaGF2ZV92b2xhdGlsZSk7CgpSZXR1cm5zIHRydWUgaWYgdGhlIERvbWFp biBoYXMgYW55IGNvbnN0cmFpbnRzLiAgSWYgeW91IHdhbnQgY2hlY2sgdGhpcyBkb21haW4KaGF2 ZSBhbnkgdm9sYXRpbGUgY2hlY2sgY29uc3RyYWludHMsIG1ha2Ugc3VyZSBoYXZlX3ZvbGF0aWxl IGlzIG5vdCBOVUxMLgoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQUNKdWZ4RV8r aVpCUjFpNDlrX0FIaWdwcFB3TFRKaTZrbThOT3NDN0ZXdktkRW1tWGdAbWFpbC5nbWFpbC5jb20K LS0tCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS90eXBjYWNoZS5jIHwgNDAgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCiBzcmMvaW5jbHVkZS91dGlscy90eXBjYWNoZS5oICAgICAgIHwg IDEgKwogMiBmaWxlcyBjaGFuZ2VkLCA0MSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvdXRpbHMvY2FjaGUvdHlwY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hl L3R5cGNhY2hlLmMKaW5kZXggNmEzNDc2OThlZGYuLmRhOWVkMGQyOWM4IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC91dGlscy9jYWNoZS90eXBjYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2NhY2hlL3R5cGNhY2hlLmMKQEAgLTE0OTksNiArMTQ5OSw0NiBAQCBEb21haW5IYXNDb25zdHJh aW50cyhPaWQgdHlwZV9pZCkKIH0KIAogCisvKgorICogQ2hlY2sgd2hldGhlciBhIGRvbWFpbiBo YXMgYW55IGNvbnN0cmFpbnRzLCBhbmQgZGV0ZXJtaW5lIGlmIGFueSBvZiB0aG9zZQorICogY29u c3RyYWludHMgY29udGFpbiB2b2xhdGlsZSBleHByZXNzaW9ucy4KKyAqCisgKiBUbyBkZXRlY3Qg dm9sYXRpbGUgZXhwcmVzc2lvbnMgd2l0aGluIGRvbWFpbiBjaGVjayBjb25zdHJhaW50cywgZW5z dXJlIHRoYXQKKyAqIGhhdmVfdm9sYXRpbGUgaXMgbm90IE5VTEwuIElmIGhhdmVfdm9sYXRpbGUg aXMgTlVMTCwgdGhlIGJlaGF2aW9yIGlzCisgKiBlcXVpdmFsZW50IHRvIHRoYXQgb2YgRG9tYWlu SGFzQ29uc3RyYWludHMuCisgKi8KK2Jvb2wKK0RvbWFpbkhhdmVWb2xhdGlsZUNvbnN0cmFpbnRz KE9pZCB0eXBlX2lkLCBib29sICpoYXZlX3ZvbGF0aWxlKQoreworCVR5cGVDYWNoZUVudHJ5ICp0 eXBlbnRyeTsKKworCS8qCisJICogTm90ZTogYSBzaWRlIGVmZmVjdCBpcyB0byBjYXVzZSB0aGUg dHlwY2FjaGUncyBkb21haW4gZGF0YSB0byBiZWNvbWUKKwkgKiB2YWxpZC4gIFRoaXMgaXMgZmlu ZSBzaW5jZSB3ZSdsbCBsaWtlbHkgbmVlZCBpdCBzb29uIGlmIHRoZXJlIGlzIGFueS4KKwkgKi8K Kwl0eXBlbnRyeSA9IGxvb2t1cF90eXBlX2NhY2hlKHR5cGVfaWQsIFRZUEVDQUNIRV9ET01BSU5f Q09OU1RSX0lORk8pOworCisJaWYgKHR5cGVudHJ5LT5kb21haW5EYXRhICE9IE5VTEwpCisJewor CQlMaXN0Q2VsbCAgICpsYzsKKworCQlmb3JlYWNoKGxjLCB0eXBlbnRyeS0+ZG9tYWluRGF0YS0+ Y29uc3RyYWludHMpCisJCXsKKwkJCURvbWFpbkNvbnN0cmFpbnRTdGF0ZSAqciA9IChEb21haW5D b25zdHJhaW50U3RhdGUgKikgbGZpcnN0KGxjKTsKKworCQkJaWYgKHItPmNvbnN0cmFpbnR0eXBl ID09IERPTV9DT05TVFJBSU5UX0NIRUNLICYmCisJCQkJY29udGFpbl92b2xhdGlsZV9mdW5jdGlv bnMoKE5vZGUgKikgci0+Y2hlY2tfZXhwcikpCisJCQl7CisJCQkJaWYgKGhhdmVfdm9sYXRpbGUp CisJCQkJCSpoYXZlX3ZvbGF0aWxlID0gdHJ1ZTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCQly ZXR1cm4gdHJ1ZTsKKwl9CisJcmV0dXJuIGZhbHNlOworfQorCiAvKgogICogYXJyYXlfZWxlbWVu dF9oYXNfZXF1YWxpdHkgYW5kIGZyaWVuZHMgYXJlIGhlbHBlciByb3V0aW5lcyB0byBjaGVjawog ICogd2hldGhlciB3ZSBzaG91bGQgYmVsaWV2ZSB0aGF0IGFycmF5X2VxIGFuZCByZWxhdGVkIGZ1 bmN0aW9ucyB3aWxsIHdvcmsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3R5cGNhY2hl LmggYi9zcmMvaW5jbHVkZS91dGlscy90eXBjYWNoZS5oCmluZGV4IDFjYjMwZjE4MThjLi5hYTFj ODZlMzVjMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvdHlwY2FjaGUuaAorKysgYi9z cmMvaW5jbHVkZS91dGlscy90eXBjYWNoZS5oCkBAIC0xODQsNiArMTg0LDcgQEAgZXh0ZXJuIHZv aWQgSW5pdERvbWFpbkNvbnN0cmFpbnRSZWYoT2lkIHR5cGVfaWQsIERvbWFpbkNvbnN0cmFpbnRS ZWYgKnJlZiwKIGV4dGVybiB2b2lkIFVwZGF0ZURvbWFpbkNvbnN0cmFpbnRSZWYoRG9tYWluQ29u c3RyYWludFJlZiAqcmVmKTsKIAogZXh0ZXJuIGJvb2wgRG9tYWluSGFzQ29uc3RyYWludHMoT2lk IHR5cGVfaWQpOworZXh0ZXJuIGJvb2wgRG9tYWluSGF2ZVZvbGF0aWxlQ29uc3RyYWludHMoT2lk IHR5cGVfaWQsIGJvb2wgKmhhdmVfdm9sYXRpbGUpOwogCiBleHRlcm4gVHVwbGVEZXNjIGxvb2t1 cF9yb3d0eXBlX3R1cGRlc2MoT2lkIHR5cGVfaWQsIGludDMyIHR5cG1vZCk7CiAKLS0gCjIuMzQu MQoK --000000000000b36f31063db779e5 Content-Type: text/x-patch; charset="US-ASCII"; name="v7-0001-soft-error-variant-of-ExecPrepareExpr-ExecInitExpr.patch" Content-Disposition: attachment; filename="v7-0001-soft-error-variant-of-ExecPrepareExpr-ExecInitExpr.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mf0ql3ex3 RnJvbSAxMmY2YmZjOTM2YjFkNTFkNzk1NmIwMzUwNjZlYWNhZmUyODdjM2Y3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMjQgTWFyIDIwMjUgMTY6MDc6NDYgKzA4MDAKU3ViamVjdDogW1BBVENIIHY3 IDEvNF0gc29mdCBlcnJvciB2YXJpYW50IG9mIEV4ZWNQcmVwYXJlRXhwciwgRXhlY0luaXRFeHBy CgpFeGVjSW5pdEV4cHJTYWZlOiBzb2Z0IGVycm9yIG9mIEV4ZWNJbml0RXhwci4KRXhlY1ByZXBh cmVFeHByU2FmZTogc29mdCBlcnJvciBvZiBFeGVjUHJlcGFyZUV4cHIuCkV4ZWNQcmVwYXJlRXhw clNhZmUgaW5pdGlhbGl6ZSBmb3IgZXhwcmVzc2lvbiBleGVjdXRpb24gd2l0aCBzb2Z0IGVycm9y IHN1cHBvcnQuCm5vdCBhbGwgZXhwcmVzc2lvbiBub2RlIHN1cHBvcnQgaXQuIExpa2Ugbm9kZSBD b2VyY2VUb0RvbWFpbiBzdXBwb3J0IGl0LgoKWFhYIG1vcmUgY29tbWVudHMuCgpkaXNjdXNzaW9u OiBodHRwczovL3Bvc3Rnci5lcy9tL0NBQ0p1ZnhFXytpWkJSMWk0OWtfQUhpZ3BwUHdMVEppNmtt OE5Pc0M3Rld2S2RFbW1YZ0BtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNFeHByLmMgfCA2MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy9p bmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmggfCAgMiArKwogMiBmaWxlcyBjaGFuZ2VkLCA2NSBp bnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIu YyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKaW5kZXggZjE1Njk4NzliNTIuLjkx ODJiYTQ0NmEwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCisr KyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKQEAgLTE3MCw2ICsxNzAsNDcgQEAg RXhlY0luaXRFeHByKEV4cHIgKm5vZGUsIFBsYW5TdGF0ZSAqcGFyZW50KQogCXJldHVybiBzdGF0 ZTsKIH0KIAorLyoKKyAqIEV4ZWNJbml0RXhwclNhZmU6IHNvZnQgZXJyb3IgdmFyaWFudCBvZiBF eGVjSW5pdEV4cHIuCisgKgorICogdXNlIGl0IG9ubHkgZm9yIGV4cHJlc3Npb24gbm9kZXMgc3Vw cG9ydCBzb2Z0IGVycm9ycywgbm90IGFsbCBleHByZXNzaW9uCisgKiBub2RlcyBzdXBwb3J0IGl0 LgorKi8KK0V4cHJTdGF0ZSAqCitFeGVjSW5pdEV4cHJTYWZlKEV4cHIgKm5vZGUsIFBsYW5TdGF0 ZSAqcGFyZW50KQoreworCUV4cHJTdGF0ZSAgKnN0YXRlOworCUV4cHJFdmFsU3RlcCBzY3JhdGNo ID0gezB9OworCisJLyogU3BlY2lhbCBjYXNlOiBOVUxMIGV4cHJlc3Npb24gcHJvZHVjZXMgYSBO VUxMIEV4cHJTdGF0ZSBwb2ludGVyICovCisJaWYgKG5vZGUgPT0gTlVMTCkKKwkJcmV0dXJuIE5V TEw7CisKKwkvKiBJbml0aWFsaXplIEV4cHJTdGF0ZSB3aXRoIGVtcHR5IHN0ZXAgbGlzdCAqLwor CXN0YXRlID0gbWFrZU5vZGUoRXhwclN0YXRlKTsKKwlzdGF0ZS0+ZXhwciA9IG5vZGU7CisJc3Rh dGUtPnBhcmVudCA9IHBhcmVudDsKKwlzdGF0ZS0+ZXh0X3BhcmFtcyA9IE5VTEw7CisJc3RhdGUt PmVzY29udGV4dCA9IG1ha2VOb2RlKEVycm9yU2F2ZUNvbnRleHQpOworCXN0YXRlLT5lc2NvbnRl eHQtPnR5cGUgPSBUX0Vycm9yU2F2ZUNvbnRleHQ7CisJc3RhdGUtPmVzY29udGV4dC0+ZXJyb3Jf b2NjdXJyZWQgPSBmYWxzZTsKKwlzdGF0ZS0+ZXNjb250ZXh0LT5kZXRhaWxzX3dhbnRlZCA9IHRy dWU7CisKKwkvKiBJbnNlcnQgc2V0dXAgc3RlcHMgYXMgbmVlZGVkICovCisJRXhlY0NyZWF0ZUV4 cHJTZXR1cFN0ZXBzKHN0YXRlLCAoTm9kZSAqKSBub2RlKTsKKworCS8qIENvbXBpbGUgdGhlIGV4 cHJlc3Npb24gcHJvcGVyICovCisJRXhlY0luaXRFeHByUmVjKG5vZGUsIHN0YXRlLCAmc3RhdGUt PnJlc3ZhbHVlLCAmc3RhdGUtPnJlc251bGwpOworCisJLyogRmluYWxseSwgYXBwZW5kIGEgRE9O RSBzdGVwICovCisJc2NyYXRjaC5vcGNvZGUgPSBFRU9QX0RPTkVfUkVUVVJOOworCUV4cHJFdmFs UHVzaFN0ZXAoc3RhdGUsICZzY3JhdGNoKTsKKworCUV4ZWNSZWFkeUV4cHIoc3RhdGUpOworCisJ cmV0dXJuIHN0YXRlOworfQorCiAvKgogICogRXhlY0luaXRFeHByV2l0aFBhcmFtczogcHJlcGFy ZSBhIHN0YW5kYWxvbmUgZXhwcmVzc2lvbiB0cmVlIGZvciBleGVjdXRpb24KICAqCkBAIC03Nzgs NiArODE5LDI4IEBAIEV4ZWNQcmVwYXJlRXhwcihFeHByICpub2RlLCBFU3RhdGUgKmVzdGF0ZSkK IAlyZXR1cm4gcmVzdWx0OwogfQogCisvKgorICogRXhlY1ByZXBhcmVFeHByU2FmZTogc29mdCBl cnJvciB2YXJpYW50IG9mIEV4ZWNQcmVwYXJlRXhwci4KKyAqCisgKiB1c2UgaXQgd2hlbiBleHBy ZXNzaW9uIG5vZGUgKnN1cHBvcnQqIHNvZnQgZXJyb3IgZXhwcmVzc2lvbiBleGVjdXRpb24uCisg Ki8KK0V4cHJTdGF0ZSAqCitFeGVjUHJlcGFyZUV4cHJTYWZlKEV4cHIgKm5vZGUsIEVTdGF0ZSAq ZXN0YXRlKQoreworCUV4cHJTdGF0ZSAgKnJlc3VsdDsKKwlNZW1vcnlDb250ZXh0IG9sZGNvbnRl eHQ7CisKKwlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGVzdGF0ZS0+ZXNfcXVl cnlfY3h0KTsKKworCW5vZGUgPSBleHByZXNzaW9uX3BsYW5uZXIobm9kZSk7CisKKwlyZXN1bHQg PSBFeGVjSW5pdEV4cHJTYWZlKG5vZGUsIE5VTEwpOworCisJTWVtb3J5Q29udGV4dFN3aXRjaFRv KG9sZGNvbnRleHQpOworCisJcmV0dXJuIHJlc3VsdDsKK30KKwogLyoKICAqIEV4ZWNQcmVwYXJl UXVhbCAtLS0gaW5pdGlhbGl6ZSBmb3IgcXVhbCBleGVjdXRpb24gb3V0c2lkZSBhIG5vcm1hbAog ICogUGxhbiB0cmVlIGNvbnRleHQuCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9l eGVjdXRvci5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaAppbmRleCAxMGRjZWEw MzdjMy4uZWI1ZWNmOWQ1OWYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1 dG9yLmgKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaApAQCAtMzIwLDYgKzMy MCw3IEBAIEV4ZWNQcm9jTm9kZShQbGFuU3RhdGUgKm5vZGUpCiAgKiBwcm90b3R5cGVzIGZyb20g ZnVuY3Rpb25zIGluIGV4ZWNFeHByLmMKICAqLwogZXh0ZXJuIEV4cHJTdGF0ZSAqRXhlY0luaXRF eHByKEV4cHIgKm5vZGUsIFBsYW5TdGF0ZSAqcGFyZW50KTsKK2V4dGVybiBFeHByU3RhdGUgKkV4 ZWNJbml0RXhwclNhZmUoRXhwciAqbm9kZSwgUGxhblN0YXRlICpwYXJlbnQpOwogZXh0ZXJuIEV4 cHJTdGF0ZSAqRXhlY0luaXRFeHByV2l0aFBhcmFtcyhFeHByICpub2RlLCBQYXJhbUxpc3RJbmZv IGV4dF9wYXJhbXMpOwogZXh0ZXJuIEV4cHJTdGF0ZSAqRXhlY0luaXRRdWFsKExpc3QgKnF1YWws IFBsYW5TdGF0ZSAqcGFyZW50KTsKIGV4dGVybiBFeHByU3RhdGUgKkV4ZWNJbml0Q2hlY2soTGlz dCAqcXVhbCwgUGxhblN0YXRlICpwYXJlbnQpOwpAQCAtMzY4LDYgKzM2OSw3IEBAIGV4dGVybiBQ cm9qZWN0aW9uSW5mbyAqRXhlY0J1aWxkVXBkYXRlUHJvamVjdGlvbihMaXN0ICp0YXJnZXRMaXN0 LAogCQkJCQkJCQkJCQkJIFR1cGxlVGFibGVTbG90ICpzbG90LAogCQkJCQkJCQkJCQkJIFBsYW5T dGF0ZSAqcGFyZW50KTsKIGV4dGVybiBFeHByU3RhdGUgKkV4ZWNQcmVwYXJlRXhwcihFeHByICpu b2RlLCBFU3RhdGUgKmVzdGF0ZSk7CitleHRlcm4gRXhwclN0YXRlICpFeGVjUHJlcGFyZUV4cHJT YWZlKEV4cHIgKm5vZGUsIEVTdGF0ZSAqZXN0YXRlKTsKIGV4dGVybiBFeHByU3RhdGUgKkV4ZWNQ cmVwYXJlUXVhbChMaXN0ICpxdWFsLCBFU3RhdGUgKmVzdGF0ZSk7CiBleHRlcm4gRXhwclN0YXRl ICpFeGVjUHJlcGFyZUNoZWNrKExpc3QgKnF1YWwsIEVTdGF0ZSAqZXN0YXRlKTsKIGV4dGVybiBM aXN0ICpFeGVjUHJlcGFyZUV4cHJMaXN0KExpc3QgKm5vZGVzLCBFU3RhdGUgKmVzdGF0ZSk7Ci0t IAoyLjM0LjEKCg== --000000000000b36f31063db779e5--