diff options
| author | Luca Ferrari <fluca1978@gmail.com> | 2023-04-03 12:32:25 +0200 |
|---|---|---|
| committer | Luca Ferrari <fluca1978@gmail.com> | 2023-04-03 12:32:25 +0200 |
| commit | ff22c74e122711797e658d51ff3e5bd17ad66a8d (patch) | |
| tree | d7c2b6c689a748454875da79168ed679c95b6caf | |
| parent | c523fbd673bd6651db49e4c1a97908687a9fa035 (diff) | |
| download | perlweeklychallenge-club-ff22c74e122711797e658d51ff3e5bd17ad66a8d.tar.gz perlweeklychallenge-club-ff22c74e122711797e658d51ff3e5bd17ad66a8d.tar.bz2 perlweeklychallenge-club-ff22c74e122711797e658d51ff3e5bd17ad66a8d.zip | |
Task 1 plpgsql
| -rw-r--r-- | challenge-211/luca-ferrari/postgresql/ch-1.sql | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/challenge-211/luca-ferrari/postgresql/ch-1.sql b/challenge-211/luca-ferrari/postgresql/ch-1.sql new file mode 100644 index 0000000000..23a33447de --- /dev/null +++ b/challenge-211/luca-ferrari/postgresql/ch-1.sql @@ -0,0 +1,36 @@ +-- +-- Perl Weekly Challenge 211 +-- Task 1 +-- +-- See <https://perlweeklychallenge.org/blog/perl-weekly-challenge-211/> +-- + +CREATE SCHEMA IF NOT EXISTS pwc211; + +CREATE OR REPLACE FUNCTION +pwc211.task1_plpgsql( a int[][]) +RETURNS bool +AS $CODE$ +DECLARE + current_row int := 1; + current_col int := 1; + previous_val int := NULL; +BEGIN + WHILE current_row <= array_length( a, 1 ) LOOP + IF current_row > array_length( a, 2 ) THEN + RETURN false; + END IF; + + IF previous_val IS NULL THEN + previous_val := a[ current_row ][ current_row ]; + ELSIF previous_val <> a[ current_row ][ current_row ] THEN + RETURN false; + END IF; + + current_row := current_row + 1; + END LOOP; + + RETURN true; +END +$CODE$ +LANGUAGE plpgsql; |
