tablefunc: Reject negative number of tuples passed to normal_rand()
authorPeter Eisentraut <[email protected]>
Wed, 25 Nov 2020 14:30:18 +0000 (15:30 +0100)
committerPeter Eisentraut <[email protected]>
Wed, 25 Nov 2020 14:30:18 +0000 (15:30 +0100)
commitf73999262ed6c40d9a7c3d7cccec7143d4d15287
treeb8f9d03bd2943346d96e7a70fa33816502e1030b
parent2fbd786c3446b1bc90f396d3fa5f4614b0a57d89
tablefunc: Reject negative number of tuples passed to normal_rand()

The function converted the first argument i.e. the number of tuples to
return into an unsigned integer which turns out to be huge number when
a negative value is passed.  This causes the function to take much
longer time to execute.  Instead, reject a negative value.

(If someone really wants to generate many more result rows, they
should consider adding a bigint or numeric variant.)

While at it, improve SQL test to test the number of tuples returned by
this function.

Author: Ashutosh Bapat <[email protected]>
Discussion: https://www.postgresql.org/message-id/CAG-ACPW3PUUmSnM6cLa9Rw4BEC5cEMKjX8Gogc8gvQcT3cYA1A@mail.gmail.com
contrib/tablefunc/expected/tablefunc.out
contrib/tablefunc/sql/tablefunc.sql
contrib/tablefunc/tablefunc.c