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 1rmFQi-006rNN-IM for pgsql-docs@arkaria.postgresql.org; Mon, 18 Mar 2024 16:01:41 +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 1rmFQg-003dyB-Bc for pgsql-docs@arkaria.postgresql.org; Mon, 18 Mar 2024 16:01:38 +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 1rmFQf-003dxx-Vz for pgsql-docs@lists.postgresql.org; Mon, 18 Mar 2024 16:01:38 +0000 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rmFQc-005AWe-Hd for pgsql-docs@lists.postgresql.org; Mon, 18 Mar 2024 16:01:37 +0000 Received: by mail-wm1-x335.google.com with SMTP id 5b1f17b1804b1-41412253e71so6813325e9.0 for ; Mon, 18 Mar 2024 09:01:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cybertec-at.20230601.gappssmtp.com; s=20230601; t=1710777694; x=1711382494; darn=lists.postgresql.org; h=mime-version:user-agent:autocrypt:references:in-reply-to:date:to :from:subject:message-id:from:to:cc:subject:date:message-id:reply-to; bh=YWZbfy5fL+hgpzsY1dOY2RFTpH3/6i+7hU+HahQ6NE0=; b=dDvcsU2kpMpDDGKyUcQDKjJxeyoh0Nc9EX4N7Ff/c04kodQXUKaLH8cu3YFqdX2XFe nXT62IgJDp2KEjHQqxs4whAvReeH06+9tyy8EZwzbLwdKsOdLRcZOe6IfULHMOtnL2YM pTjR8pWULTtF8j99OrvJYcde2z3ie1O6aiqkhqw0t9D6Fi2Uguj+H/Wi44PR1jeJnkmn 98R+XlKpcBlWaUj95BXeDW54eLanImhup5mVR0RL2R0JwaLvN54FnGaZgNB+ihgmpKVs xrbX791V9PRzw/tM69gJ1uiRpAadYdWAwP311SyiuUsdyzJNx39IIUA8eeGZpbIlwd/7 YNAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710777694; x=1711382494; h=mime-version:user-agent:autocrypt:references:in-reply-to:date:to :from:subject:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=YWZbfy5fL+hgpzsY1dOY2RFTpH3/6i+7hU+HahQ6NE0=; b=dwgo/7ZrnU4Lf1YpnxS9o/1woBTAwXyZLd8jUeI4P+64jR6pGk/otwH1JqIP6oBQap 1rn4R7Q54K79uinPTHg2ybxt8UM9orbEQd4hh8h7Vz3fDFKizTFSOG6l0Yr/WqR27nnc JvEWtpTThk6znG7I0z+HkbOmUQHzmmQ3Ov5ceyOLvhQGnNY4cXrP079dBfSt1hBjyuTy NbS1TaAoCdmjfNW24vN+mE/o7y6opWMscJqjNlce/MsHRedssMAC97z53KQht4LhlxdQ 1+ywgqcYGgLHcHYVU1GjsaHXO37U9cKaqI/CNj5Gn2tCi2EhZNUW2ypuAXWr7Q0BXJ/4 5PGA== X-Forwarded-Encrypted: i=1; AJvYcCV0rFNZcFQqdM2cmGEyzJy7K0Jt1KO+bJjIfWhpRs/d0BcZBxFAsheipaY6eJ3eST+MG8hbKpRDTYvEyQiRcExDPnfP4KMyNAhuFjkchcyJ X-Gm-Message-State: AOJu0YwggWWHdv6PzjYQbCt84/B1J0WWCOQrq4d3KIs8Yv28gMdqFJZT f4jnVVsKqmD/A9hpWd1qL+RfFwkgE4fWyy560acmNTWZlcg7+042Po1EKBWVJJc= X-Google-Smtp-Source: AGHT+IGpnV0R38jxsoO90RNpghO9+N8eTCOYXqw+64gSaXBCEpX7mnm0Z/xSx++JdpwUB7YihMFEig== X-Received: by 2002:a05:600c:198a:b0:414:860:bdc5 with SMTP id t10-20020a05600c198a00b004140860bdc5mr4691666wmq.17.1710777694213; Mon, 18 Mar 2024 09:01:34 -0700 (PDT) Received: from localhost.localdomain ([213.235.133.41]) by smtp.gmail.com with ESMTPSA id q18-20020adff792000000b0033ec9b26b7asm10130385wrp.25.2024.03.18.09.01.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Mar 2024 09:01:33 -0700 (PDT) Message-ID: <396e990fa8ae32bf5c1e3bf2473778e6e296fbfe.camel@cybertec.at> Subject: Re: Duplicates being removed from intarray on subtraction of another intarray From: Laurenz Albe To: tbogusiak@gmail.com, pgsql-docs@lists.postgresql.org Date: Mon, 18 Mar 2024 17:01:32 +0100 In-Reply-To: <171075007381.7104.7931589808177869854@wrigleys.postgresql.org> References: <171075007381.7104.7931589808177869854@wrigleys.postgresql.org> Autocrypt: addr=laurenz.albe@cybertec.at; prefer-encrypt=mutual; keydata=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 +AnW5l0HsQcY9ntFL/zEBOaonjdJf Content-Type: multipart/mixed; boundary="=-80txbr/dO123LTFLzFPT" User-Agent: Evolution 3.50.4 (3.50.4-1.fc39) MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-80txbr/dO123LTFLzFPT Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, 2024-03-18 at 08:21 +0000, PG Doc comments form wrote: > Page: https://www.postgresql.org/docs/16/intarray.html >=20 > Hi, > I recently ran into an unusual issue with the intarray extension where if > you subtract one array from another the result is *also* sorted and > de-duplicated. The documentation does not seem to imply that this should = be > the case, stating only that the operator "removes elements of the right > array from the left array" and not that it also de-duplicates and sorts t= he > result... It seems to only occur when subtracting an array. Is this the > intended behavior? >=20 > SELECT '{3,1,1,2,2,2}'::int[] - 1; --> {3,2,2,2} as you would expect > SELECT '{3,1,1,2,2,2}'::int[] - '{1}'::int[]; --> {2,3} instead of > {3,2,2,2} There is no harm in documenting that; I propose the attached patch. Yours, Laurenz Albe --=-80txbr/dO123LTFLzFPT Content-Disposition: attachment; filename="v1-0001-Documentation-fix-for-intarray-s-operator.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="v1-0001-Documentation-fix-for-intarray-s-operator.patch"; charset="UTF-8" RnJvbSA5NmE3ZmVkN2JlNzY4YzA0N2Y4YTc0YTQ0MzE3MTZkYTBiZWIwZTI4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogTW9uLCAxOCBNYXIgMjAyNCAxNjo1OTo0MyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg djFdIERvY3VtZW50YXRpb24gZml4IGZvciBpbnRhcnJheSdzICItIiBvcGVyYXRvcgoKRG9jdW1l bnQgdGhhdCBpbnRbXSAtIGludFtdIHJlbW92ZXMgZHVwbGljYXRlcyBhcyB3ZWxsIGFzCmVsZW1l bnRzIG9mIHRoZSByaWdodCBhcnJheS4KCkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20v MTcxMDc1MDA3MzgxLjcxMDQuNzkzMTU4OTgwODE3Nzg2OTg1NCU0MHdyaWdsZXlzLnBvc3RncmVz cWwub3JnCi0tLQogZG9jL3NyYy9zZ21sL2ludGFycmF5LnNnbWwgfCAyICstCiAxIGZpbGUgY2hh bmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvaW50YXJyYXkuc2dtbCBiL2RvYy9zcmMvc2dtbC9pbnRhcnJheS5zZ21sCmluZGV4IGM3 MmQ0OWIwMWQuLmVjMWQ1MjUwNDIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9pbnRhcnJheS5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9pbnRhcnJheS5zZ21sCkBAIC0zMTIsNyArMzEyLDcgQEAK ICAgICAgICAgPHJldHVybnZhbHVlPmludGVnZXJbXTwvcmV0dXJudmFsdWU+CiAgICAgICAgPC9w YXJhPgogICAgICAgIDxwYXJhPgotICAgICAgICBSZW1vdmVzIGVsZW1lbnRzIG9mIHRoZSByaWdo dCBhcnJheSBmcm9tIHRoZSBsZWZ0IGFycmF5LgorICAgICAgICBSZW1vdmVzIGVsZW1lbnRzIG9m IHRoZSByaWdodCBhcnJheSBhbmQgZHVwbGljYXRlIGVudHJpZXMgZnJvbSB0aGUgbGVmdCBhcnJh eS4KICAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgIDwvcm93PgogCi0tIAoyLjQ0LjAKCg== --=-80txbr/dO123LTFLzFPT--