aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Ferrari <fluca1978@gmail.com>2022-10-03 11:12:32 +0200
committerLuca Ferrari <fluca1978@gmail.com>2022-10-03 11:12:32 +0200
commita929164a89fc5f92c85da52d800b90b1215025f2 (patch)
tree68f2f4dde35d030e7b5684410359436f24796b09
parente248b2f4fefeed28f09546e24fb6d7dc9b935d6e (diff)
downloadperlweeklychallenge-club-a929164a89fc5f92c85da52d800b90b1215025f2.tar.gz
perlweeklychallenge-club-a929164a89fc5f92c85da52d800b90b1215025f2.tar.bz2
perlweeklychallenge-club-a929164a89fc5f92c85da52d800b90b1215025f2.zip
Task 2 ppgsql done
-rw-r--r--challenge-185/luca-ferrari/postgresql/ch-2.sql31
1 files changed, 31 insertions, 0 deletions
diff --git a/challenge-185/luca-ferrari/postgresql/ch-2.sql b/challenge-185/luca-ferrari/postgresql/ch-2.sql
new file mode 100644
index 0000000000..a18a7e73ab
--- /dev/null
+++ b/challenge-185/luca-ferrari/postgresql/ch-2.sql
@@ -0,0 +1,31 @@
+-- Perl Weekly Challenge 185
+-- Task 2
+
+CREATE SCHEMA IF NOT EXISTS pwc185;
+
+CREATE OR REPLACE FUNCTION
+pwc185.task2_plpgsql( code text )
+RETURNS text
+AS $CODE$
+DECLARE
+ how_many int := 4;
+ d char;
+ code_out text := '';
+BEGIN
+ FOREACH d IN ARRAY regexp_split_to_array( code, '' ) LOOP
+ IF how_many = 0 OR d !~ '\w' THEN
+ code_out := code_out || d;
+ CONTINUE;
+ ELSEIF how_many > 0 AND d ~ '\w' THEN
+ code_out := code_out || 'x';
+ how_many := how_many - 1;
+
+ ELSE
+ code_out := code_out || d;
+ END IF;
+ END LOOP;
+
+RETURN code_out;
+END
+$CODE$
+LANGUAGE plpgsql;