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 1reuh0-00ECR2-Uk for pgsql-hackers@arkaria.postgresql.org; Tue, 27 Feb 2024 10:28:12 +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 1reugy-00259m-G2 for pgsql-hackers@arkaria.postgresql.org; Tue, 27 Feb 2024 10:28:08 +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 1reugx-00258O-RV for pgsql-hackers@lists.postgresql.org; Tue, 27 Feb 2024 10:28:08 +0000 Received: from mx0b-00256a01.pphosted.com ([67.231.153.242]) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1reugp-001Sm4-8x for pgsql-hackers@postgresql.org; Tue, 27 Feb 2024 10:28:06 +0000 Received: from pps.filterd (m0355791.ppops.net [127.0.0.1]) by mx0b-00256a01.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 41R6Yd8Q008399 for ; Tue, 27 Feb 2024 05:27:59 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nyu.edu; h= mime-version:references:in-reply-to:from:date:message-id:subject :to:cc:content-type; s=20180315; bh=6vwhPAVhdjw6v9QsiK5P1kBQ4asb 73DFI1UYZ2+FdOE=; b=rM9gUcSu8Ur/Afq/4cLoYxM2rBLlhbKMiOJALw79Coge DAVGsg3lwVfLcttQN5ShSBK1GYuzhZAYrYolCHLkbW3RNdZG70IWEiyre4tjPgK8 4WhvY6Ek05r4BKQTPgXor+e7qaD8BnS19OfwK+Ws3tXRiiPXpIrP5Eh++VUfUbGN E9Pq4ehxdQgiRrtVLAzznGpKLq6C2OZiv4VosazC+WhQcr6Om3GFKPZg8x4FmO0c WkVvvmOLSg48mFG1FKzn1RM2CMslYNRiFfu63oyIIJfb5DlqTq/48dAisu1NFSkd d362O93QAUML3OzuorGG+kF0BjhVqKHaByOaJgHSug== Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by mx0b-00256a01.pphosted.com (PPS) with ESMTPS id 3wfxqa6ext-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Tue, 27 Feb 2024 05:27:58 -0500 (EST) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-29988382913so2871324a91.1 for ; Tue, 27 Feb 2024 02:27:58 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709029678; x=1709634478; h=cc: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=yuYKKw67Kxm2LVteAJe5ol8aQ6Lu/2UCRenAWBy9e0A=; b=RP24q6sUrhKFsNUOKMlhy8tE+G/y9H2ynwJKPvoxN1Jjhdy7BWLNH6M3FpkbGyquZ7 pEeMPI5o8Af4zAGfroIBlNi7x752r4DjpGLU0bi/YinN1u0IltGPV4zHZ9m/Z9TpgdEA +2tzIZ1XZ0m2IeXKazdZk8sit+9nt1S/REqc/h2yfOvJ5m+m6tuv4vWxJUgHxiwwv6bz R9S1YK9rWomF5y91OS5XZJ7eSeUR+gaFfleimPXWlxo2sk8eGPW0BCWYGgv6FiT5ZWY7 X4xXC24m4nYeilY+2dA1inou6Yf9Wlo/xf0/7ECUcmuwfPao4dVs8mmHmlCV5J+Irovi tBYw== X-Gm-Message-State: AOJu0YwWQwbsOh9j6i45U/c6B6GXxfLNS6tRr52GgMnGjePkCgu1V9uz anxWHKOM0YAnMOMGmpz2lFKS1c7T+FTLMOnbowdOpjc1uSz5QXFEgej7To7GzhdBLnPKIrYY6N1 dS9cyWXP6k3rtbHv4G/MxkXWQhnt28ebKE1ran4baqFMZ54FWgdV/0OD48MPGdawYksB4Jx4fM6 LMk8VZ6PJZxYpS5j6fbSL1nQuBIGHewR0fJg== X-Received: by 2002:a17:90b:30d0:b0:29a:4cae:3e5f with SMTP id hi16-20020a17090b30d000b0029a4cae3e5fmr7265167pjb.29.1709029677764; Tue, 27 Feb 2024 02:27:57 -0800 (PST) X-Google-Smtp-Source: AGHT+IGUh+s+VDl4DeiWjvQfJEmKn+8kL1AfPcOoNuPRfKhRehGN8JXnlc+GnS1bkMqhtA9xJhlFhChxSZ3dSjsLZl4= X-Received: by 2002:a17:90b:30d0:b0:29a:4cae:3e5f with SMTP id hi16-20020a17090b30d000b0029a4cae3e5fmr7265158pjb.29.1709029677437; Tue, 27 Feb 2024 02:27:57 -0800 (PST) MIME-Version: 1.0 References: <6200ACB3-8ECF-487B-8F9D-290BBEE146B4@yesql.se> In-Reply-To: <6200ACB3-8ECF-487B-8F9D-290BBEE146B4@yesql.se> From: Moaaz Assali Date: Tue, 27 Feb 2024 14:27:46 +0400 Message-ID: Subject: Re: Fix for edge case in date_bin() function To: daniel@yesql.se Cc: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000d5d1e106125a7aef" X-Proofpoint-ORIG-GUID: dg-e49GndL6fZVA3rZLbYxxaj7qtjZ79 X-Proofpoint-GUID: dg-e49GndL6fZVA3rZLbYxxaj7qtjZ79 X-Orig-IP: 209.85.216.70 X-Proofpoint-Spam-Details: rule=outbound_bp_notspam policy=outbound_bp score=0 spamscore=0 bulkscore=0 mlxlogscore=719 lowpriorityscore=0 malwarescore=0 adultscore=0 suspectscore=0 phishscore=0 impostorscore=0 clxscore=1015 mlxscore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2402120000 definitions=main-2402270082 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000d5d1e106125a7aef Content-Type: multipart/alternative; boundary="000000000000d5d1df06125a7aed" --000000000000d5d1df06125a7aed Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hello Daniel, I have added a test case for this in timestamp.sql and timestamp.out, and tests pass when using the bug fix patch in the first email. I have attached a new patch in this email below with the new tests only (doesn't include the bug fix). P.S. I forgot to CC the mailing list in my previous reply. This is just a copy of it. Best regards, Moaaz Assali On Tue, Feb 27, 2024 at 12:48=E2=80=AFPM Daniel Gustafsson wrote: > > On 27 Feb 2024, at 09:42, Moaaz Assali wrote: > > > To account for this edge, we simply add another condition in the if > statement to not perform the subtraction by one stride interval if the ti= me > difference is divisible by the stride. > > I only skimmed the patch, but I recommend adding a testcase to it to keep > the > regression from reappearing. src/test/regress/sql/timestamp.sql might be= a > good candidate testsuite. > > -- > Daniel Gustafsson > > --000000000000d5d1df06125a7aed Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello Daniel,

I have added a= test case for this in timestamp.sql and timestamp.out, and tests pass when using the=20 bug fix patch in the first email.
I have attached a new patch in = this email below with the new tests only (doesn't include the bug fix).=

P.S. I forgot to CC the mailing list in my previo= us reply. This is just a copy of it.

Best rega= rds,
Moaaz Assali

On Tue, Feb 27, 2024 at 12:48=E2=80=AFPM D= aniel Gustafsson <daniel@yesql.se= > wrote:
>= On 27 Feb 2024, at 09:42, Moaaz Assali <ma5679@nyu.edu> wrote:

> To account for this edge, we simply add another condition in the if st= atement to not perform the subtraction by one stride interval if the time d= ifference is divisible by the stride.

I only skimmed the patch, but I recommend adding a testcase to it to keep t= he
regression from reappearing.=C2=A0 src/test/regress/sql/timestamp.sql might= be a
good candidate testsuite.

--
Daniel Gustafsson

--000000000000d5d1df06125a7aed-- --000000000000d5d1e106125a7aef Content-Type: application/octet-stream; name="v1-0002-Regression-test-in-timestamp.sql-for-date_bin.patch" Content-Disposition: attachment; filename="v1-0002-Regression-test-in-timestamp.sql-for-date_bin.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lt483p3z0 RnJvbSBmNmI3ZjNkOGI5NDRjOWRkNGJkNzUwMjgzYzkzNmJjOWM2OTY3MDQxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNb2FheiBBc3NhbGkgPG1hNTY3OUBueXUuZWR1PgpEYXRlOiBU dWUsIDI3IEZlYiAyMDI0IDA5OjU5OjE5ICswMDAwClN1YmplY3Q6IFtQQVRDSCB2MV0gUmVncmVz c2lvbiB0ZXN0IGluIHRpbWVzdGFtcC5zcWwgZm9yIGRhdGVfYmluKCkgZnVuY3Rpb24uCgpBZGRl ZCB0aGUgdGVzdCBjYXNlIGZvciB0aGUgYnVnIGZpeCB0aGF0IGhhbmRsZXMgdGhlIGVkZ2UgY2Fz ZSBpbiBkYXRlX2JpbigpIHdoZW4Kc291cmNlIDwgb3JpZ2luIGFuZCBvcmlnaW4gaXMgZXF1aXZh bGVudCB0byBhIHZhbGlkIGJpbm5lZCBkYXRlLgoKUmVmZXIgdG8gQ0FMa0YrbnZ0dWFzLTJreWRH LVdmb2ZiUlNKcHlPREFKV3VuPT1XLXlPNWoyUjRtZXFBQG1haWwuZ21haWwuY29tIGZvciB0aGUg YnVnIGZpeCBjb21taXQuCgpBZGRlZCB0aGUgdGVzdCBjYXNlIFNFTEVDVCBkYXRlX2JpbignMzAg bWludXRlcyc6OmludGVydmFsLCB0aW1lc3RhbXAgJzIwMjQtMDItMDEgMTU6MDA6MDAnLCB0aW1l c3RhbXAgJzIwMjQtMDItMDEgMTc6MDA6MDAnKTsKVGhlIGV4cGVjdGVkIHJldHVybmVkIHZhbHVl IGZvciB0aGlzIHRlc3QgaXMgYSBzaW5nbGUgcm93IHdpdGggVGh1IEZlYiAwMSAxNTowMDowMCAy MDI0CgpQcmlvciB0byB0aGUgYnVnIGZpeCwgZGF0ZV9iaW4oKSB3b3VsZCByZXR1cm4gVGh1IEZl YiAwMSAxNDozMDowMCAyMDI0IGluc3RlYWQgb2YgVGh1IEZlYiAwMSAxNTowMDowMCAyMDI0LgpU aGlzIHRlc3QgY2FzZSBlbnN1cmVzIHRoZSBjb3JyZWN0IHJldHVybiB2YWx1ZSBhbG9uZ3NpZGUg dGhlIGJ1ZyBmaXggcGF0Y2guCi0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90aW1lc3Rh bXAub3V0IHwgNyArKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC90aW1lc3RhbXAuc3FsICAg ICAgfCAzICsrKwogMiBmaWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90aW1lc3RhbXAub3V0IGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC90aW1lc3RhbXAub3V0CmluZGV4IDgzNWYwZTU3NjIuLjM0ZjJjZjM2Yjcg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdGltZXN0YW1wLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RpbWVzdGFtcC5vdXQKQEAgLTczNiw2ICs3MzYs MTMgQEAgU0VMRUNUIGRhdGVfYmluKCc1IG1pbic6OmludGVydmFsLCB0aW1lc3RhbXAgJzIwMjAt MDItMDEgMDE6MDE6MDEnLCB0aW1lc3RhbXAgJzIKICBTYXQgRmViIDAxIDAwOjU3OjMwIDIwMjAK ICgxIHJvdykKIAorLS0gdGVzdCBkYXRlX2JpbiBvdXRwdXQgaXMgY29ycmVjdCB3aGVuIHNvdXJj ZSA8IG9yaWdpbiBhbmQgc291cmNlIGlzIGVxdWl2YWxlbnQgdG8gYSB2YWxpZCBiaW5uZWQgZGF0 ZQorU0VMRUNUIGRhdGVfYmluKCczMCBtaW51dGVzJzo6aW50ZXJ2YWwsIHRpbWVzdGFtcCAnMjAy NC0wMi0wMSAxNTowMDowMCcsIHRpbWVzdGFtcCAnMjAyNC0wMi0wMSAxNzowMDowMCcpOworICAg ICAgICAgZGF0ZV9iaW4gICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgVGh1 IEZlYiAwMSAxNTowMDowMCAyMDI0CisoMSByb3cpCisKIC0tIGRpc2FsbG93IGludGVydmFscyB3 aXRoIG1vbnRocyBvciB5ZWFycwogU0VMRUNUIGRhdGVfYmluKCc1IG1vbnRocyc6OmludGVydmFs LCB0aW1lc3RhbXAgJzIwMjAtMDItMDEgMDE6MDE6MDEnLCB0aW1lc3RhbXAgJzIwMDEtMDEtMDEn KTsKIEVSUk9SOiAgdGltZXN0YW1wcyBjYW5ub3QgYmUgYmlubmVkIGludG8gaW50ZXJ2YWxzIGNv bnRhaW5pbmcgbW9udGhzIG9yIHllYXJzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC90aW1lc3RhbXAuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdGltZXN0YW1wLnNxbAppbmRl eCBlYTEyZmZkMThkLi5iMDZhZmQxNWRiIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC90aW1lc3RhbXAuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3RpbWVzdGFtcC5zcWwK QEAgLTI2OCw2ICsyNjgsOSBAQCBGUk9NICgKIC0tIHNoaWZ0IGJpbnMgdXNpbmcgdGhlIG9yaWdp biBwYXJhbWV0ZXI6CiBTRUxFQ1QgZGF0ZV9iaW4oJzUgbWluJzo6aW50ZXJ2YWwsIHRpbWVzdGFt cCAnMjAyMC0wMi0wMSAwMTowMTowMScsIHRpbWVzdGFtcCAnMjAyMC0wMi0wMSAwMDowMjozMCcp OwogCistLSB0ZXN0IGRhdGVfYmluIG91dHB1dCBpcyBjb3JyZWN0IHdoZW4gc291cmNlIDwgb3Jp Z2luIGFuZCBzb3VyY2UgaXMgZXF1aXZhbGVudCB0byBhIHZhbGlkIGJpbm5lZCBkYXRlCitTRUxF Q1QgZGF0ZV9iaW4oJzMwIG1pbnV0ZXMnOjppbnRlcnZhbCwgdGltZXN0YW1wICcyMDI0LTAyLTAx IDE1OjAwOjAwJywgdGltZXN0YW1wICcyMDI0LTAyLTAxIDE3OjAwOjAwJyk7CisKIC0tIGRpc2Fs bG93IGludGVydmFscyB3aXRoIG1vbnRocyBvciB5ZWFycwogU0VMRUNUIGRhdGVfYmluKCc1IG1v bnRocyc6OmludGVydmFsLCB0aW1lc3RhbXAgJzIwMjAtMDItMDEgMDE6MDE6MDEnLCB0aW1lc3Rh bXAgJzIwMDEtMDEtMDEnKTsKIFNFTEVDVCBkYXRlX2JpbignNSB5ZWFycyc6OmludGVydmFsLCAg dGltZXN0YW1wICcyMDIwLTAyLTAxIDAxOjAxOjAxJywgdGltZXN0YW1wICcyMDAxLTAxLTAxJyk7 Ci0tIAoyLjM0LjEKCg== --000000000000d5d1e106125a7aef--