From 37f3dff1ca169167471cb7cb1415baa70b296ebf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabr=C3=ADzio=20de=20Royes=20Mello?= Date: Thu, 1 Dec 2022 16:05:40 -0300 Subject: [PATCH] Simplify columnar perf example (#6526) Rewrite the plpython function to generate random words in SQL to simplify the usage and run the example. --- src/backend/columnar/README.md | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/backend/columnar/README.md b/src/backend/columnar/README.md index e8681e0f3..ca3532dba 100644 --- a/src/backend/columnar/README.md +++ b/src/backend/columnar/README.md @@ -234,16 +234,14 @@ CREATE TABLE perf_columnar(LIKE perf_row) USING COLUMNAR; ## Data ```sql -CREATE OR REPLACE FUNCTION random_words(n INT4) RETURNS TEXT LANGUAGE plpython2u AS $$ -import random -t = '' -words = ['zero','one','two','three','four','five','six','seven','eight','nine','ten'] -for i in xrange(0,n): - if (i != 0): - t += ' ' - r = random.randint(0,len(words)-1) - t += words[r] -return t +CREATE OR REPLACE FUNCTION random_words(n INT4) RETURNS TEXT LANGUAGE sql AS $$ + WITH words(w) AS ( + SELECT ARRAY['zero','one','two','three','four','five','six','seven','eight','nine','ten'] + ), + random (word) AS ( + SELECT w[(random()*array_length(w, 1))::int] FROM generate_series(1, $1) AS i, words + ) + SELECT string_agg(word, ' ') FROM random; $$; ```