Re: BUG #16511: Using '= all ( )' with empty table returns true - Mailing list pgsql-bugs

From Tom Lane
Subject Re: BUG #16511: Using '= all ( )' with empty table returns true
Date
Msg-id 2286502.1593108037@sss.pgh.pa.us
Whole thread Raw
In response to BUG #16511: Using '= all ( )' with empty table returns true  (PG Bug reporting form <noreply@postgresql.org>)
List pgsql-bugs
PG Bug reporting form <noreply@postgresql.org> writes:
> Given table is "task" (id uuid primary key, status text not null),
> Query "select 'b' = all (select status from task where status = 'a')"
> returns true if table "task" is empty

Why do you think that's wrong?  It matches usual mathematical practice,
and even if you dispute that, the SQL standard is quite explicit about it:

         1) Let R be the result of the <row value constructor> and let T be
            the result of the <table subquery>.
            ...
            a) If T is empty or if the implied <comparison predicate> is
              true for every row RT in T, then "R <comp op> <all> T" is
              true.

            regards, tom lane



pgsql-bugs by date:

Previous
From: PG Bug reporting form
Date:
Subject: BUG #16511: Using '= all ( )' with empty table returns true
Next
From: PG Bug reporting form
Date:
Subject: BUG #16512: Character considered as a number by regex but can not convert to numeric