query.sql 663 B

12345678910111213141516171819202122232425
  1. create or replace function queries(queries text default '') returns jsonb as $$
  2. DECLARE
  3. r "World"%ROWTYPE;
  4. j jsonb := jsonb_build_array();
  5. count int;
  6. BEGIN
  7. IF queries ~ '^[1-9]\d{0,2}$' THEN
  8. count := CAST(queries as int);
  9. ELSE
  10. count := 1;
  11. END IF;
  12. IF count > 500 THEN
  13. count := 500;
  14. END IF;
  15. LOOP
  16. IF count <= 0 THEN
  17. EXIT; -- exit loop
  18. END IF;
  19. SELECT id, randomNumber into r from (SELECT ((random()*9999)::int+1) as rnd) g JOIN "World" ON id = rnd;
  20. j := jsonb_insert(j, '{0}', to_jsonb(r), true);
  21. count := count - 1;
  22. END LOOP;
  23. RETURN j;
  24. END
  25. $$ language plpgsql volatile;