tablefunc: Reject negative number of tuples passed to normal_rand()

Peter Eisentraut <peter@eisentraut.org>

Commit: f73999262ed6c40d9a7c3d7cccec7143d4d15287
Author: Peter Eisentraut <peter@eisentraut.org>
Date: 2020-11-25T14:30:18Z
Releases: 14.0
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 <ashutosh.bapat@2ndquadrant.com>
Discussion: https://www.postgresql.org/message-id/CAG-ACPW3PUUmSnM6cLa9Rw4BEC5cEMKjX8Gogc8gvQcT3cYA1A@mail.gmail.com

Files

Discussion