Re: BUG #15800: Order by random in functions

From: Andrew Gierth <andrew(at)tao11(dot)riddles(dot)org(dot)uk>
To: pgsql-bugs(at)lists(dot)postgresql(dot)org, alessio(dot)gennari78(at)gmail(dot)com
Subject: Re: BUG #15800: Order by random in functions
Date: 2019-05-13 07:57:31
Message-ID: 87r292g58w.fsf@news-spur.riddles.org.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

>>>>> "PG" == PG Bug reporting form <noreply(at)postgresql(dot)org> writes:

PG> in version 9.5 (select version(): PostgreSQL 9.5.12 on
PG> x86_64-pc-linux-gnu (Debian 9.5.12-1.pgdg80+1), compiled by gcc
PG> (Debian 4.9.2-10+deb8u1) 4.9.2, 64-bit) this statement returns
PG> element (id_card_type) randomly ordered:

PG> select jsonb_array_elements('[...]')...order by random()

PG> While in version 9.6 (PostgreSQL 9.6.12 on x86_64-pc-linux-gnu,
PG> compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36), 64-bit)
PG> and above (I tested it in Postgres 10.8) the query return elements
PG> not ordered but in the same sequence as it is in json array.

PG> Is it a bug or an expected behavior?

Expected behavior, though I'm not sure it's adequately documented.

The preferred way to do this is:

SELECT a.value->>'id_card_type'
FROM jsonb_array_elements('[...]') a
ORDER BY random();

which will randomize the order regardless of postgresql version.

--
Andrew (irc:RhodiumToad)

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Michael Paquier 2019-05-13 08:20:26 Re: BUG #15801: pg_stat_database update stats_reset only by pg_stat_reset
Previous Message PG Bug reporting form 2019-05-13 07:15:47 BUG #15801: pg_stat_database update stats_reset only by pg_stat_reset