pg.ddx.io pgsql-bugs@postgresql.org mailing list archive
help / color / mirror / Atom feedWrong result for comparing ROW(...) with IS NOT NULL
9+ messages / 5 participants
[nested] [flat]
Commits from this thread:
2023-11-13 bd86407892 doc: move ROW IS NULL examples to a different chapter
* Wrong result for comparing ROW(...) with IS NOT NULL
@ 2020-11-05 12:32 Wolfgang Walther <walther@technowledgy.de>
0 siblings, 1 reply; 9+ messages in thread
From: Wolfgang Walther @ 2020-11-05 12:32 UTC (permalink / raw)
To: pgsql-bugs@lists.postgresql.org
Hi,
when I do the following on PG 12.4, I get some unexpected results:
SELECT
ROW() IS NULL, -- true
ROW() IS NOT NULL; -- true
Both return true here. In any case IS NULL should return the opposite
from IS NOT NULL, right?
The same happens here:
SELECT
ROW(NULL, NULL) IS NULL, -- returns: true (expected)
ROW(NULL, NULL) IS NOT NULL, -- returns: false (expected)
ROW(1, NULL) IS NULL, -- returns: false (expected)
ROW(1, NULL) IS NOT NULL, -- returns: false !!
ROW(1, 1) IS NULL, -- returns: false (expected)
ROW(1, 1) IS NOT NULL; -- returns: true (expected)
The docs[1] say:
> Also, it is possible to [...] test a row with IS NULL or IS NOT NULL,
for example:
> [...]
> SELECT ROW(table.*) IS NULL FROM table; -- detect all-null rows
So I would expect the ROW(1, NULL) IS NOT NULL to be true, because it's
not "all-null". I'm not sure what I would expect ROW() to be, but surely
not the same for IS NULL and IS NOT NULL.
Best
Wolfgang
[1]:
https://www.postgresql.org/docs/current/sql-expressions.html#SQL-SYNTAX-ROW-CONSTRUCTORS
^ permalink raw reply [nested|flat] 9+ messages in thread
* Re: Wrong result for comparing ROW(...) with IS NOT NULL
@ 2020-11-05 13:14 Pavel Stehule <pavel.stehule@gmail.com>
parent: Wolfgang Walther <walther@technowledgy.de>
0 siblings, 1 reply; 9+ messages in thread
From: Pavel Stehule @ 2020-11-05 13:14 UTC (permalink / raw)
To: Wolfgang Walther <walther@technowledgy.de>; +Cc: PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Hi
čt 5. 11. 2020 v 13:32 odesílatel Wolfgang Walther <walther@technowledgy.de>
napsal:
> Hi,
>
> when I do the following on PG 12.4, I get some unexpected results:
>
> SELECT
> ROW() IS NULL, -- true
> ROW() IS NOT NULL; -- true
>
> Both return true here. In any case IS NULL should return the opposite
> from IS NOT NULL, right?
>
for composite types this sentence is not valid
https://til.cybertec-postgresql.com/post/2019-09-29-Composite-types-and-NULL-in-PostgreSQL/
is null - is true, when all fields are null, and is not null is true, when
all fields is not null.
Regards
Pavel
>
> The same happens here:
>
> SELECT
> ROW(NULL, NULL) IS NULL, -- returns: true (expected)
> ROW(NULL, NULL) IS NOT NULL, -- returns: false (expected)
> ROW(1, NULL) IS NULL, -- returns: false (expected)
> ROW(1, NULL) IS NOT NULL, -- returns: false !!
> ROW(1, 1) IS NULL, -- returns: false (expected)
> ROW(1, 1) IS NOT NULL; -- returns: true (expected)
>
> The docs[1] say:
>
> > Also, it is possible to [...] test a row with IS NULL or IS NOT NULL,
> for example:
> > [...]
> > SELECT ROW(table.*) IS NULL FROM table; -- detect all-null rows
>
> So I would expect the ROW(1, NULL) IS NOT NULL to be true, because it's
> not "all-null". I'm not sure what I would expect ROW() to be, but surely
> not the same for IS NULL and IS NOT NULL.
>
> Best
>
> Wolfgang
>
> [1]:
>
> https://www.postgresql.org/docs/current/sql-expressions.html#SQL-SYNTAX-ROW-CONSTRUCTORS
>
>
>
^ permalink raw reply [nested|flat] 9+ messages in thread
* Re: Wrong result for comparing ROW(...) with IS NOT NULL
@ 2020-11-05 13:40 Wolfgang Walther <walther@technowledgy.de>
parent: Pavel Stehule <pavel.stehule@gmail.com>
0 siblings, 1 reply; 9+ messages in thread
From: Wolfgang Walther @ 2020-11-05 13:40 UTC (permalink / raw)
To: Pavel Stehule <pavel.stehule@gmail.com>; +Cc: PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Pavel Stehule:
> for composite types this sentence is not valid
>
> https://til.cybertec-postgresql.com/post/2019-09-29-Composite-types-and-NULL-in-PostgreSQL/
>
> is null - is true, when all fields are null, and is not null is true,
> when all fields is not null.
Ok, I can see how this explanation is somehow consistent. The link you
gave is just another observation of that, though. Can I infer from
anywhere in the official docs, that this is correct and expected behaviour?
Best
Wolfgang
^ permalink raw reply [nested|flat] 9+ messages in thread
* Re: Wrong result for comparing ROW(...) with IS NOT NULL
@ 2020-11-05 13:48 Pavel Borisov <pashkin.elfe@gmail.com>
parent: Wolfgang Walther <walther@technowledgy.de>
0 siblings, 1 reply; 9+ messages in thread
From: Pavel Borisov @ 2020-11-05 13:48 UTC (permalink / raw)
To: Wolfgang Walther <walther@technowledgy.de>; +Cc: Pavel Stehule <pavel.stehule@gmail.com>; PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
>
> Ok, I can see how this explanation is somehow consistent. The link you
> gave is just another observation of that, though. Can I infer from
> anywhere in the official docs, that this is correct and expected behaviour?
>
Sure, it is described here:
https://www.postgresql.org/docs/13/functions-comparison.html
"If the *expression* is row-valued, then IS NULL is true when the row
expression itself is null or when all the row's fields are null, while IS
NOT NULL is true when the row expression itself is non-null and all the
row's fields are non-null. Because of this behavior, IS NULL and IS NOT NULL do
not always return inverse results for row-valued expressions; in
particular, a row-valued expression that contains both null and non-null
fields will return false for both tests. In some cases, it may be
preferable to write *row* IS DISTINCT FROM NULL or *row* IS NOT DISTINCT
FROM NULL, which will simply check whether the overall row value is null
without any additional tests on the row fields."
--
Best regards,
Pavel Borisov
Postgres Professional: http://postgrespro.com <http://www.postgrespro.com;
^ permalink raw reply [nested|flat] 9+ messages in thread
* Re: Wrong result for comparing ROW(...) with IS NOT NULL
@ 2020-11-05 14:09 Wolfgang Walther <walther@technowledgy.de>
parent: Pavel Borisov <pashkin.elfe@gmail.com>
0 siblings, 1 reply; 9+ messages in thread
From: Wolfgang Walther @ 2020-11-05 14:09 UTC (permalink / raw)
To: Pavel Borisov <pashkin.elfe@gmail.com>; +Cc: PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Pavel Borisov:
> Sure, it is described here:
> https://www.postgresql.org/docs/13/functions-comparison.html
>
> "If the /|expression|/ is row-valued, then |IS NULL| is true when the
> row expression itself is null or when all the row's fields are null,
> while |IS NOT NULL| is true when the row expression itself is non-null
> and all the row's fields are non-null. Because of this behavior, |IS
> NULL| and |IS NOT NULL| do not always return inverse results for
> row-valued expressions; in particular, a row-valued expression that
> contains both null and non-null fields will return false for both tests.
> In some cases, it may be preferable to write /|row|/|IS DISTINCT FROM
> NULL| or /|row|/|IS NOT DISTINCT FROM NULL|, which will simply check
> whether the overall row value is null without any additional tests on
> the row fields."
Thank you, that explains it very well.
When I realized there was something unexpected going on, I was looking
at all the ROW() syntax in the docs and I found this (as mentioned
upthread):
https://www.postgresql.org/docs/current/sql-expressions.html#SQL-SYNTAX-ROW-CONSTRUCTORS
It might be worth it to either add another example for IS NOT NULL, like
SELECT ROW(table.*) IS NOT NULL FROM table; -- detect all-non-null rows
or add a link to section 9.2, that you mentioned. Or do both.
Another thing that could be improved:
Below that example there is a link to section 9.24. The link is:
https://www.postgresql.org/docs/current/functions-comparisons.html
The link you gave me to section 9.2 is (replaced 13 with current):
https://www.postgresql.org/docs/current/functions-comparison.html
Like really? The only difference is the "s" in comparison(s). That
confused me at first for a bit, because I thought I had read your link
already :)
I think that link for 9.24 could be much better chosen.
row-array-comparisons.html would match the content.
Best
Wolfgang
^ permalink raw reply [nested|flat] 9+ messages in thread
* Re: Wrong result for comparing ROW(...) with IS NOT NULL
@ 2020-11-05 15:06 Wolfgang Walther <walther@technowledgy.de>
parent: Wolfgang Walther <walther@technowledgy.de>
0 siblings, 1 reply; 9+ messages in thread
From: Wolfgang Walther @ 2020-11-05 15:06 UTC (permalink / raw)
To: pgsql-bugs@lists.postgresql.org
Wolfgang Walther:
> Thank you, that explains it very well.
>
> When I realized there was something unexpected going on, I was looking
> at all the ROW() syntax in the docs and I found this (as mentioned
> upthread):
>
> https://www.postgresql.org/docs/current/sql-expressions.html#SQL-SYNTAX-ROW-CONSTRUCTORS
>
>
> It might be worth it to either add another example for IS NOT NULL, like
>
> SELECT ROW(table.*) IS NOT NULL FROM table; -- detect all-non-null rows
>
> or add a link to section 9.2, that you mentioned. Or do both.
>
>
>
> Another thing that could be improved:
>
> Below that example there is a link to section 9.24. The link is:
>
> https://www.postgresql.org/docs/current/functions-comparisons.html
>
> The link you gave me to section 9.2 is (replaced 13 with current):
>
> https://www.postgresql.org/docs/current/functions-comparison.html
>
> Like really? The only difference is the "s" in comparison(s). That
> confused me at first for a bit, because I thought I had read your link
> already :)
>
> I think that link for 9.24 could be much better chosen.
> row-array-comparisons.html would match the content.
Attached are some patches.
Best
Wolfgang
Attachments: download all (2 files, .tar.gz)
0001-doc-Add-IS-NOT-NULL-example-and-link-to-section-9.2-.patch (text/plain, 1.2K) download
>From 75704f4196e1dd7d92df58cb98aca803e6913e51 Mon Sep 17 00:00:00 2001
From: Wolfgang Walther <walther@technowledgy.de>
Date: Thu, 5 Nov 2020 15:45:34 +0100
Subject: [PATCH 1/2] doc: Add IS NOT NULL example and link to section 9.2 to
4.2.13 Row Constructors
---
doc/src/sgml/syntax.sgml | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/doc/src/sgml/syntax.sgml b/doc/src/sgml/syntax.sgml
index 3fdd87823e..8b5aa30ab4 100644
--- a/doc/src/sgml/syntax.sgml
+++ b/doc/src/sgml/syntax.sgml
@@ -2434,8 +2434,10 @@ SELECT getf1(CAST(ROW(11,'this is a test',2.5) AS myrowtype));
SELECT ROW(1,2.5,'this is a test') = ROW(1, 3, 'not the same');
SELECT ROW(table.*) IS NULL FROM table; -- detect all-null rows
+
+SELECT ROW(table.*) IS NOT NULL FROM table; -- detect all-non-null rows
</programlisting>
- For more detail see <xref linkend="functions-comparisons"/>.
+ For more detail see <xref linkend="functions-comparisons"/> (comparison) and <xref linkend="functions-comparison"/> (<literal>IS [NOT] NULL</literal>).
Row constructors can also be used in connection with subqueries,
as discussed in <xref linkend="functions-subquery"/>.
</para>
--
2.29.2
0002-doc-change-id-of-section-9.24-to-functions-row-array.patch (text/plain, 2.6K) download
>From a7c55ec8c93b1b7bce885f099b7ca7c9aabf2d92 Mon Sep 17 00:00:00 2001
From: Wolfgang Walther <walther@technowledgy.de>
Date: Thu, 5 Nov 2020 15:48:27 +0100
Subject: [PATCH 2/2] doc: change id of section 9.24 to
functions-row-array-comparisons
Section 9.2 and 9.24 have nearly identical ids in functions-comparison
and functions-comparisons.
---
doc/src/sgml/array.sgml | 2 +-
doc/src/sgml/func.sgml | 4 ++--
doc/src/sgml/syntax.sgml | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/doc/src/sgml/array.sgml b/doc/src/sgml/array.sgml
index 56185b9b03..6d81e58ef4 100644
--- a/doc/src/sgml/array.sgml
+++ b/doc/src/sgml/array.sgml
@@ -616,7 +616,7 @@ SELECT * FROM sal_emp WHERE pay_by_quarter[1] = 10000 OR
However, this quickly becomes tedious for large arrays, and is not
helpful if the size of the array is unknown. An alternative method is
- described in <xref linkend="functions-comparisons"/>. The above
+ described in <xref linkend="functions-row-array-comparisons"/>. The above
query could be replaced by:
<programlisting>
diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml
index bf6004f321..39ec76c487 100644
--- a/doc/src/sgml/func.sgml
+++ b/doc/src/sgml/func.sgml
@@ -20099,7 +20099,7 @@ WHERE EXISTS (SELECT 1 FROM tab2 WHERE col2 = tab1.col2);
</sect1>
- <sect1 id="functions-comparisons">
+ <sect1 id="functions-row-array-comparisons">
<title>Row and Array Comparisons</title>
<indexterm>
@@ -20161,7 +20161,7 @@ WHERE EXISTS (SELECT 1 FROM tab2 WHERE col2 = tab1.col2);
Boolean (true/false) results.
</para>
- <sect2 id="functions-comparisons-in-scalar">
+ <sect2 id="functions-row-array-comparisons-in-scalar">
<title><literal>IN</literal></title>
<synopsis>
diff --git a/doc/src/sgml/syntax.sgml b/doc/src/sgml/syntax.sgml
index 8b5aa30ab4..31b1da8011 100644
--- a/doc/src/sgml/syntax.sgml
+++ b/doc/src/sgml/syntax.sgml
@@ -2437,7 +2437,7 @@ SELECT ROW(table.*) IS NULL FROM table; -- detect all-null rows
SELECT ROW(table.*) IS NOT NULL FROM table; -- detect all-non-null rows
</programlisting>
- For more detail see <xref linkend="functions-comparisons"/> (comparison) and <xref linkend="functions-comparison"/> (<literal>IS [NOT] NULL</literal>).
+ For more detail see <xref linkend="functions-row-array-comparisons"/> (comparison) and <xref linkend="functions-comparison"/> (<literal>IS [NOT] NULL</literal>).
Row constructors can also be used in connection with subqueries,
as discussed in <xref linkend="functions-subquery"/>.
</para>
--
2.29.2
^ permalink raw reply [nested|flat] 9+ messages in thread
* Re: Wrong result for comparing ROW(...) with IS NOT NULL
@ 2020-11-05 17:43 David G. Johnston <david.g.johnston@gmail.com>
parent: Wolfgang Walther <walther@technowledgy.de>
0 siblings, 1 reply; 9+ messages in thread
From: David G. Johnston @ 2020-11-05 17:43 UTC (permalink / raw)
To: Wolfgang Walther <walther@technowledgy.de>; +Cc: PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
On Thu, Nov 5, 2020 at 8:06 AM Wolfgang Walther <walther@technowledgy.de>
wrote:
> Wolfgang Walther:
>
> > Thank you, that explains it very well.
> >
> > When I realized there was something unexpected going on, I was looking
> > at all the ROW() syntax in the docs and I found this (as mentioned
> > upthread):
> >
> >
> https://www.postgresql.org/docs/current/sql-expressions.html#SQL-SYNTAX-ROW-CONSTRUCTORS
> >
> >
> > It might be worth it to either add another example for IS NOT NULL, like
> >
> > SELECT ROW(table.*) IS NOT NULL FROM table; -- detect all-non-null rows
> >
> > or add a link to section 9.2, that you mentioned. Or do both.
>
> Attached are some patches.
>
I would move examples related to IS NULL to 9.2
I would also include a third example in 9.2: SELECT NOT(ROW(table.*) IS NOT
NULL); -- detect at least one null column in row
Thus:
"Row constructors can be used to build composite values to be stored in a
composite-type table column, or to be passed to a function that accepts a
composite parameter. Also, it is possible to test a row using the standard
comparison operators described in chapter 9.2, compare a row against
subquery results as described in chapter 9.23, or compare one row against
another as described in chapter 9.24."
And drop the examples and the following paragraph.
Also, nothing in 9.2 precludes composite and row constructor
comparisons from being included there, and the intro material suggests that
they probably should be. That we cover the details of (composite IS
DISTINCT FROM composite) in 9.24 instead of 9.2 should be noted in 9.2
somewhere and a link to 9.24 provided.
I do agree with changing the identifier to be more unique but I don't know
if it is this simple.
David J.
^ permalink raw reply [nested|flat] 9+ messages in thread
* Re: Wrong result for comparing ROW(...) with IS NOT NULL
@ 2023-11-01 23:38 Bruce Momjian <bruce@momjian.us>
parent: David G. Johnston <david.g.johnston@gmail.com>
0 siblings, 1 reply; 9+ messages in thread
From: Bruce Momjian @ 2023-11-01 23:38 UTC (permalink / raw)
To: David G. Johnston <david.g.johnston@gmail.com>; +Cc: Wolfgang Walther <walther@technowledgy.de>; PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
On Thu, Nov 5, 2020 at 10:43:45AM -0700, David G. Johnston wrote:
> On Thu, Nov 5, 2020 at 8:06 AM Wolfgang Walther <walther@technowledgy.de>
> wrote:
>
> Wolfgang Walther:
>
> > Thank you, that explains it very well.
> >
> > When I realized there was something unexpected going on, I was looking
> > at all the ROW() syntax in the docs and I found this (as mentioned
> > upthread):
> >
> > https://www.postgresql.org/docs/current/sql-expressions.html#
> SQL-SYNTAX-ROW-CONSTRUCTORS
> >
> >
> > It might be worth it to either add another example for IS NOT NULL, like
> >
> > SELECT ROW(table.*) IS NOT NULL FROM table; -- detect all-non-null rows
> >
> > or add a link to section 9.2, that you mentioned. Or do both.
>
> Attached are some patches.
>
>
> I would move examples related to IS NULL to 9.2
>
> I would also include a third example in 9.2: SELECT NOT(ROW(table.*) IS NOT
> NULL); -- detect at least one null column in row
>
> Thus:
>
> "Row constructors can be used to build composite values to be stored in a
> composite-type table column, or to be passed to a function that accepts a
> composite parameter. Also, it is possible to test a row using the standard
> comparison operators described in chapter 9.2, compare a row against subquery
> results as described in chapter 9.23, or compare one row against another as
> described in chapter 9.24."
>
> And drop the examples and the following paragraph.
>
> Also, nothing in 9.2 precludes composite and row constructor comparisons from
> being included there, and the intro material suggests that they probably should
> be. That we cover the details of (composite IS DISTINCT FROM composite) in
> 9.24 instead of 9.2 should be noted in 9.2 somewhere and a link to 9.24
> provided.
>
> I do agree with changing the identifier to be more unique but I don't know if
> it is this simple.
In reviewing this three-year-old email, I developed the attached patch
which I think captures what David suggested above.
--
Bruce Momjian <bruce@momjian.us> https://momjian.us
EDB https://enterprisedb.com
Only you can decide what is important to you.
Attachments:
row_nulls.diff (text/x-diff, 2.5K) download
diff --git a/doc/src/sgml/func.sgml b/doc/src/sgml/func.sgml
index c76ec52c55..ac4b47dc1e 100644
--- a/doc/src/sgml/func.sgml
+++ b/doc/src/sgml/func.sgml
@@ -718,7 +718,19 @@ repeat('Pg', 4) <returnvalue>PgPgPgPg</returnvalue>
<literal>IS NULL</literal> and <literal>IS NOT NULL</literal> do not always return
inverse results for row-valued expressions; in particular, a row-valued
expression that contains both null and non-null fields will return false
- for both tests. In some cases, it may be preferable to
+ for both tests. For example:
+
+<programlisting>
+SELECT ROW(1,2.5,'this is a test') = ROW(1, 3, 'not the same');
+
+SELECT ROW(table.*) IS NULL FROM table; -- detect all-null rows
+
+SELECT ROW(table.*) IS NOT NULL FROM table; -- detect all-non-null rows
+
+SELECT NOT(ROW(table.*) IS NOT NULL) FROM TABLE; -- detect at least one null in rows
+</programlisting>
+
+ In some cases, it may be preferable to
write <replaceable>row</replaceable> <literal>IS DISTINCT FROM NULL</literal>
or <replaceable>row</replaceable> <literal>IS NOT DISTINCT FROM NULL</literal>,
which will simply check whether the overall row value is null without any
diff --git a/doc/src/sgml/syntax.sgml b/doc/src/sgml/syntax.sgml
index 3ba844057f..7c8f7605c4 100644
--- a/doc/src/sgml/syntax.sgml
+++ b/doc/src/sgml/syntax.sgml
@@ -2467,17 +2467,12 @@ SELECT getf1(CAST(ROW(11,'this is a test',2.5) AS myrowtype));
<para>
Row constructors can be used to build composite values to be stored
in a composite-type table column, or to be passed to a function that
- accepts a composite parameter. Also,
- it is possible to compare two row values or test a row with
- <literal>IS NULL</literal> or <literal>IS NOT NULL</literal>, for example:
-<programlisting>
-SELECT ROW(1,2.5,'this is a test') = ROW(1, 3, 'not the same');
-
-SELECT ROW(table.*) IS NULL FROM table; -- detect all-null rows
-</programlisting>
- For more detail see <xref linkend="functions-comparisons"/>.
- Row constructors can also be used in connection with subqueries,
- as discussed in <xref linkend="functions-subquery"/>.
+ accepts a composite parameter. Also, it is possible to test rows
+ using the standard comparison operators as described in <xref
+ linkend="functions-comparison"/>, to compare one row against another
+ as described in <xref linkend="functions-comparisons"/>, and to
+ use them in connection with subqueries, as discussed in <xref
+ linkend="functions-subquery"/>,
</para>
</sect2>
^ permalink raw reply [nested|flat] 9+ messages in thread
* Re: Wrong result for comparing ROW(...) with IS NOT NULL
@ 2023-11-13 20:21 Bruce Momjian <bruce@momjian.us>
parent: Bruce Momjian <bruce@momjian.us>
0 siblings, 0 replies; 9+ messages in thread
From: Bruce Momjian @ 2023-11-13 20:21 UTC (permalink / raw)
To: David G. Johnston <david.g.johnston@gmail.com>; +Cc: Wolfgang Walther <walther@technowledgy.de>; PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
On Wed, Nov 1, 2023 at 07:38:47PM -0400, Bruce Momjian wrote:
> > Also, nothing in 9.2 precludes composite and row constructor comparisons from
> > being included there, and the intro material suggests that they probably should
> > be. That we cover the details of (composite IS DISTINCT FROM composite) in
> > 9.24 instead of 9.2 should be noted in 9.2 somewhere and a link to 9.24
> > provided.
> >
> > I do agree with changing the identifier to be more unique but I don't know if
> > it is this simple.
>
> In reviewing this three-year-old email, I developed the attached patch
> which I think captures what David suggested above.
Patch applied to master.
--
Bruce Momjian <bruce@momjian.us> https://momjian.us
EDB https://enterprisedb.com
Only you can decide what is important to you.
^ permalink raw reply [nested|flat] 9+ messages in thread
end of thread, other threads:[~2023-11-13 20:21 UTC | newest]
Thread overview: 9+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2020-11-05 12:32 Wrong result for comparing ROW(...) with IS NOT NULL Wolfgang Walther <walther@technowledgy.de>
2020-11-05 13:14 ` Pavel Stehule <pavel.stehule@gmail.com>
2020-11-05 13:40 ` Wolfgang Walther <walther@technowledgy.de>
2020-11-05 13:48 ` Pavel Borisov <pashkin.elfe@gmail.com>
2020-11-05 14:09 ` Wolfgang Walther <walther@technowledgy.de>
2020-11-05 15:06 ` Wolfgang Walther <walther@technowledgy.de>
2020-11-05 17:43 ` David G. Johnston <david.g.johnston@gmail.com>
2023-11-01 23:38 ` Bruce Momjian <bruce@momjian.us>
2023-11-13 20:21 ` Bruce Momjian <bruce@momjian.us>
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox