diff options
| author | Luca Ferrari <fluca1978@gmail.com> | 2023-01-30 10:11:12 +0100 |
|---|---|---|
| committer | Luca Ferrari <fluca1978@gmail.com> | 2023-01-30 10:11:12 +0100 |
| commit | 4b3cc2f5422c01d581c64266d8ae42669ef97764 (patch) | |
| tree | 1cb108ef868862f8aa07cb4f048a4346279e8d3a /challenge-202 | |
| parent | a3574bb79c1a246e200dffbd87520f481d4be086 (diff) | |
| download | perlweeklychallenge-club-4b3cc2f5422c01d581c64266d8ae42669ef97764.tar.gz perlweeklychallenge-club-4b3cc2f5422c01d581c64266d8ae42669ef97764.tar.bz2 perlweeklychallenge-club-4b3cc2f5422c01d581c64266d8ae42669ef97764.zip | |
Task 1 plpgsql
Diffstat (limited to 'challenge-202')
| -rw-r--r-- | challenge-202/luca-ferrari/postgresql/ch-1.sql | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/challenge-202/luca-ferrari/postgresql/ch-1.sql b/challenge-202/luca-ferrari/postgresql/ch-1.sql new file mode 100644 index 0000000000..ddc906c223 --- /dev/null +++ b/challenge-202/luca-ferrari/postgresql/ch-1.sql @@ -0,0 +1,42 @@ +-- +-- Perl Weekly Challenge 202 +-- Task 1 +-- +-- See <https://perlweeklychallenge.org/blog/perl-weekly-challenge-202/> +-- + +CREATE SCHEMA IF NOT EXISTS pwc202; + +CREATE OR REPLACE FUNCTION +pwc202.task1_plpgsql( l int[] ) +RETURNS int +AS $CODE$ +DECLARE + odds int[]; + cur int; +BEGIN + FOREACH cur IN ARRAY l LOOP + IF cur % 2 = 0 THEN + CONTINUE; + END IF; + + IF array_length( odds, 1 ) = 0 OR odds IS NULL THEN + odds := odds || cur; + CONTINUE; + END IF; + + IF odds[ array_length( odds, 1 ) ] + 2 <> cur THEN + CONTINUE; + END IF; + + odds := odds || cur; + END LOOP; + + IF array_length( odds, 1 ) >= 3 THEN + RETURN 1; + ELSE + RETURN 0; + END IF; +END +$CODE$ +LANGUAGE plpgsql; |
