Re: \if, \elseif, \else, \endif (was Re: [HACKERS] PSQL commands:\quit_if, \quit_unless)
От | Jim Nasby |
---|---|
Тема | Re: \if, \elseif, \else, \endif (was Re: [HACKERS] PSQL commands:\quit_if, \quit_unless) |
Дата | |
Msg-id | b0d46850-bf15-882c-a0ad-352e8631efe4@BlueTreble.com обсуждение исходный текст |
Ответ на | Re: \if, \elseif, \else, \endif (was Re: [HACKERS] PSQL commands:\quit_if, \quit_unless) (Fabien COELHO <coelho@cri.ensmp.fr>) |
Список | pgsql-hackers |
On 1/29/17 2:35 AM, Fabien COELHO wrote: >>> I'm wondering what pg would do on "EXISTS(SELECT 1 FROM customer)" if >>> there are many employees. [...] >> >> I believe that the scan stops on the first row it finds, because the >> EXITS() clause is met. > > Hmmm... That is not so clear from "EXPLAIN" output: You need to use a better test case... > explain analyze select exists(select 1 from generate_series(1,99999) gs); > QUERY PLAN > ------------------------------------------------------------------------------------------------------------------------------- > Result (cost=0.01..0.02 rows=1 width=1) (actual time=26.278..26.278 rows=1 loops=1) > InitPlan 1 (returns $0) > -> Function Scan on generate_series gs (cost=0.00..10.00 rows=1000 width=0) (actual time=26.271..26.271 rows=1 loops=1) > Planning time: 6.568 ms > Execution time: 48.917 ms > (5 rows) In any case, +1 for not promoting count(*) <> 0; that's a really, really bad way to test for existence. -- Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX Experts in Analytics, Data Architecture and PostgreSQL Data in Trouble? Get it in Treble! http://BlueTreble.com 855-TREBLE2 (855-873-2532)
В списке pgsql-hackers по дате отправления: