mirror of
https://github.com/postgres/postgres.git
synced 2025-07-27 12:41:57 +03:00
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
This commit is contained in:
@ -4,7 +4,9 @@ CREATE EXTENSION tablefunc;
|
||||
-- normal_rand()
|
||||
-- no easy way to do this for regression testing
|
||||
--
|
||||
SELECT avg(normal_rand)::int FROM normal_rand(100, 250, 0.2);
|
||||
SELECT avg(normal_rand)::int, count(*) FROM normal_rand(100, 250, 0.2);
|
||||
-- negative number of tuples
|
||||
SELECT avg(normal_rand)::int, count(*) FROM normal_rand(-1, 250, 0.2);
|
||||
|
||||
--
|
||||
-- crosstab()
|
||||
|
Reference in New Issue
Block a user