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 1nvXte-00048c-7e for pgsql-bugs@arkaria.postgresql.org; Mon, 30 May 2022 05:24:54 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nvXtb-0000mK-HI for pgsql-bugs@arkaria.postgresql.org; Mon, 30 May 2022 05:24:51 +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 1nvXtb-0000m4-7n for pgsql-bugs@lists.postgresql.org; Mon, 30 May 2022 05:24:51 +0000 Received: from mail-oa1-x2c.google.com ([2001:4860:4864:20::2c]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1nvXtY-0001MX-Ny for pgsql-bugs@lists.postgresql.org; Mon, 30 May 2022 05:24:50 +0000 Received: by mail-oa1-x2c.google.com with SMTP id 586e51a60fabf-f2cbceefb8so12983436fac.11 for ; Sun, 29 May 2022 22:24:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=l77300ZDYxdmGmsv9Y2MxHiMV4TmdqwqEOBX0Q48rv0=; b=lukz36WzQkJ/mfr/8hojQLqUk23gjzh2dZ3/kTb49IQSAUpeP3O7WdyKm0I1C3yp+e 0VFvejzInT1spLO1RodEnLyEKPVDemaTin0GKi2mU0kX58GdNiAMmx9L5wtNmwDbdgaC cDgsnwFerhVstpMVMtnIGMTxr66SrbJAlh58njwou66iTzYdGPcpUn6JMXwRa9umbkPv fcZoAPPvE5cnt+IBfzmGr6uL8bx3+RKffbyEGGsMNqxmC0fl314C/YDJx1th0tU9xywL 4rHP2U3Iw50R5bgqPWyDyb/bAII8hX7cV5cbTT8lvEpIlAmggpPCy7h+gNqru6NUzBu/ zq/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=l77300ZDYxdmGmsv9Y2MxHiMV4TmdqwqEOBX0Q48rv0=; b=RhAgc+ZRnxgUhXtFd4Qc7qd+hiwgolhy6TqRWcGHcCoZrQoSuuybacXrnm5RonKRIT xtzineHf9maIML6F3KcbNeu0ZW3MF1CVrDZUOysmRHz0cD2kluBTEFwftf/4HcAA3m75 z0jgF7vnKOFBPJasOPDDsJY6XvRq0iS6g/0dU59jomqeM7//MBblrCeHIHIPdsoJIQuX WdYdTjaH8z2K+tqsDljz4flWkwLuyWRvDmo89fa2on29Yoey+2i61OdFtq9y+DTn8Khp WMKmU+7pRtMO9EO7TSeKGQHM+KLTPM77T5VDKFCrH5yPSms4brKleV2oIunUsZHsBKi9 yf5A== X-Gm-Message-State: AOAM532iyK1Jb0sImmyo9kMg039lXhCPeAJFNu0YOww4aeLltyIT5xaD Kf3Pu8DOpI7Evtne3X56i/5mzzYf956nhjQn54O1B8Dz X-Google-Smtp-Source: ABdhPJw3yktkhYbMs1GdUpKm9i2VdSGWDVZUfFPcPUeCv4sHVDxtW02dKqW85RZv8U5y2nDOal0Ums3Xd/opVxF+oFY= X-Received: by 2002:a05:6870:9586:b0:f1:d7f9:f0da with SMTP id k6-20020a056870958600b000f1d7f9f0damr8985335oao.259.1653888286773; Sun, 29 May 2022 22:24:46 -0700 (PDT) MIME-Version: 1.0 References: <17502-281a7aaacfaa872a@postgresql.org> <3722616.1653877139@sss.pgh.pa.us> <3727090.1653878700@sss.pgh.pa.us> <3730546.1653879769@sss.pgh.pa.us> In-Reply-To: <3730546.1653879769@sss.pgh.pa.us> From: David Rowley Date: Mon, 30 May 2022 17:24:33 +1200 Message-ID: Subject: Re: BUG #17502: View based on window functions returns wrong results when queried To: Tom Lane Cc: =?UTF-8?Q?Daniel_Farka=C5=A1?= , Magnus Hagander , PostgreSQL mailing lists Content-Type: multipart/mixed; boundary="000000000000d4e90205e033dfec" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000d4e90205e033dfec Content-Type: text/plain; charset="UTF-8" On Mon, 30 May 2022 at 15:02, Tom Lane wrote: > I'm not necessarily against adding the prohibition in the back > branches. However, if this has been wrong since 10.x (if not > further back) then it seems like few people are tripping over > the inconsistency. Yeah, perhaps. But we have received a report from 1 person and I think it seems strange to adopt a policy that we require multiple bug reports for the same issue before we consider fixing. FWIW, just to demonstrate what a fix could look like, I've attached a patch. I'm not planning to commit it if you really think we shouldn't be fixing it. The patch also does nothing for the weirdness that I described in the DISTINCT ON case earlier in this thread. David --000000000000d4e90205e033dfec Content-Type: text/plain; charset="US-ASCII"; name="dont_remove_srf_windowfuncs.patch" Content-Disposition: attachment; filename="dont_remove_srf_windowfuncs.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l3sa75b10 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2FsbHBhdGhzLmMgYi9zcmMv YmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9hbGxwYXRocy5jCmluZGV4IDdhYzExNmE3OTEuLjVkYWI0 MGY2ZmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2FsbHBhdGhzLmMK KysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvYWxscGF0aHMuYwpAQCAtMzkzMyw2ICsz OTMzLDQ0IEBAIHJlY3Vyc2VfcHVzaF9xdWFsKE5vZGUgKnNldE9wLCBRdWVyeSAqdG9wcXVlcnks CiAgKgkJCVNJTVBMSUZZSU5HIFNVQlFVRVJZIFRBUkdFVExJU1RTCiAgKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKiovCiAKKy8qCisgKiBoYXNfc2V0X3JldHVybmluZ193aW5kb3dfY2xhdXNlcworICoJCVJl dHVybnMgdHJ1ZSBpZiAnbm9kZScgY29udGFpbnMgYW55IFdpbmRvd0Z1bmNzIHdoaWNoIHJlZmVy ZW5jZSBhCisgKgkJV2luZG93Q2xhdXNlIHdoZXJlIHRoZSBQQVJUSVRJT04gQlkgb3IgT1JERVIg QlkgY2xhdXNlIGNvbnRhaW5zIGFueQorICoJCXNldCByZXR1cm5pbmcgZnVuY3Rpb25zLgorICov CitzdGF0aWMgYm9vbAoraGFzX3NldF9yZXR1cm5pbmdfd2luZG93X2NsYXVzZXMoUXVlcnkgKnN1 YnF1ZXJ5LCBOb2RlICpub2RlKQoreworCVdpbmRvd0Z1bmNMaXN0cyAqd2ZsaXN0czsKKworCXdm bGlzdHMgPSBmaW5kX3dpbmRvd19mdW5jdGlvbnMobm9kZSwKKwkJCQkJCQkJCWxpc3RfbGVuZ3Ro KHN1YnF1ZXJ5LT53aW5kb3dDbGF1c2UpKTsKKworCWlmICh3Zmxpc3RzLT5udW1XaW5kb3dGdW5j cyA9PSAwKQorCQlyZXR1cm4gZmFsc2U7CisKKwlmb3IgKGludCBpID0gMTsgaSA8PSB3Zmxpc3Rz LT5tYXhXaW5SZWY7IGkrKykKKwl7CisJCVdpbmRvd0NsYXVzZSAqd2NsYXVzZTsKKworCQlpZiAo d2ZsaXN0cy0+d2luZG93RnVuY3NbaV0gPT0gTklMKQorCQkJY29udGludWU7CisKKwkJd2NsYXVz ZSA9IChXaW5kb3dDbGF1c2UgKikgbGlzdF9udGgoc3VicXVlcnktPndpbmRvd0NsYXVzZSwgaSAt IDEpOworCisJCWlmIChleHByZXNzaW9uX3JldHVybnNfc2V0KChOb2RlICopIGdldF9zb3J0Z3Jv dXBsaXN0X2V4cHJzKHdjbGF1c2UtPnBhcnRpdGlvbkNsYXVzZSwKKwkJCQkJCQkJCQkJCQkJCQkJ c3VicXVlcnktPnRhcmdldExpc3QpKSkKKwkJCXJldHVybiB0cnVlOworCisJCWlmIChleHByZXNz aW9uX3JldHVybnNfc2V0KChOb2RlICopIGdldF9zb3J0Z3JvdXBsaXN0X2V4cHJzKHdjbGF1c2Ut Pm9yZGVyQ2xhdXNlLAorCQkJCQkJCQkJCQkJCQkJCSAgIHN1YnF1ZXJ5LT50YXJnZXRMaXN0KSkp CisJCQlyZXR1cm4gdHJ1ZTsKKwl9CisKKwlyZXR1cm4gZmFsc2U7Cit9CisKIC8qCiAgKiByZW1v dmVfdW51c2VkX3N1YnF1ZXJ5X291dHB1dHMKICAqCQlSZW1vdmUgc3VicXVlcnkgdGFyZ2V0bGlz dCBpdGVtcyB3ZSBkb24ndCBuZWVkCkBAIC00MDI4LDkgKzQwNjYsMjAgQEAgcmVtb3ZlX3VudXNl ZF9zdWJxdWVyeV9vdXRwdXRzKFF1ZXJ5ICpzdWJxdWVyeSwgUmVsT3B0SW5mbyAqcmVsKQogCQkg KiBJZiBpdCBjb250YWlucyBhIHNldC1yZXR1cm5pbmcgZnVuY3Rpb24sIHdlIGNhbid0IHJlbW92 ZSBpdCBzaW5jZQogCQkgKiB0aGF0IGNvdWxkIGNoYW5nZSB0aGUgbnVtYmVyIG9mIHJvd3MgcmV0 dXJuZWQgYnkgdGhlIHN1YnF1ZXJ5LgogCQkgKi8KLQkJaWYgKHN1YnF1ZXJ5LT5oYXNUYXJnZXRT UkZzICYmCi0JCQlleHByZXNzaW9uX3JldHVybnNfc2V0KHRleHByKSkKLQkJCWNvbnRpbnVlOwor CQlpZiAoc3VicXVlcnktPmhhc1RhcmdldFNSRnMpCisJCXsKKwkJCWlmIChleHByZXNzaW9uX3Jl dHVybnNfc2V0KHRleHByKSkKKwkJCQljb250aW51ZTsKKworCQkJLyoKKwkJCSAqIENoZWNrIGlm IHRoZSB0YXJnZXQgZW50cnkgY29udGFpbnMgYW55IFdpbmRvd0Z1bmMgcmVmZXJlbmNlcworCQkJ ICogd2hpY2ggaGF2ZSBhIFdpbmRvd0NsYXVzZSB3aGVyZSB0aGUgUEFSVElUSU9OIEJZIG9yIE9S REVSIEJZCisJCQkgKiBjbGF1c2UgY29udGFpbiBhbnkgU1JGcworCQkJICovCisJCQlpZiAoc3Vi cXVlcnktPmhhc1dpbmRvd0Z1bmNzICYmCisJCQkJaGFzX3NldF9yZXR1cm5pbmdfd2luZG93X2Ns YXVzZXMoc3VicXVlcnksIChOb2RlICopIHRleHByKSkKKwkJCQljb250aW51ZTsKKwkJfQogCiAJ CS8qCiAJCSAqIElmIGl0IGNvbnRhaW5zIHZvbGF0aWxlIGZ1bmN0aW9ucywgd2UgZGFyZW4ndCBy ZW1vdmUgaXQgZm9yIGZlYXIK --000000000000d4e90205e033dfec--