aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Ferrari <fluca1978@gmail.com>2023-04-03 11:51:31 +0200
committerLuca Ferrari <fluca1978@gmail.com>2023-04-03 11:51:31 +0200
commit2773e3648994354fc169f59fa8dd148aacf96100 (patch)
tree1bfe97f44eef1169798bba35f7f520fa754f4504
parent01b9182fbd76e758dc13ea9706ea714612cdf98a (diff)
downloadperlweeklychallenge-club-2773e3648994354fc169f59fa8dd148aacf96100.tar.gz
perlweeklychallenge-club-2773e3648994354fc169f59fa8dd148aacf96100.tar.bz2
perlweeklychallenge-club-2773e3648994354fc169f59fa8dd148aacf96100.zip
Task 1 plperl done
-rw-r--r--challenge-211/luca-ferrari/postgresql/ch-1.plperl29
1 files changed, 29 insertions, 0 deletions
diff --git a/challenge-211/luca-ferrari/postgresql/ch-1.plperl b/challenge-211/luca-ferrari/postgresql/ch-1.plperl
new file mode 100644
index 0000000000..d2085bdc4c
--- /dev/null
+++ b/challenge-211/luca-ferrari/postgresql/ch-1.plperl
@@ -0,0 +1,29 @@
+--
+-- Perl Weekly Challenge 211
+-- Task 1
+-- See <https://perlweeklychallenge.org/blog/perl-weekly-challenge-211/>
+--
+
+CREATE SCHEMA IF NOT EXISTS pwc211;
+
+/*
+testdb=> select pwc211.task1_plperl( array[ array[4,3,2,1], array[ 5,4,3,2], array[6,5,4,3] ] );
+ task1_plperl
+--------------
+ t
+(1 row)
+
+*/
+CREATE OR REPLACE FUNCTION
+pwc211.task1_plperl( int[][] )
+RETURNS bool
+AS $CODE$
+ my ( $array ) = @_;
+
+ my $diag;
+ $diag->{ $array->[ $_ ]->[ $_ ] }++ for ( 0 .. scalar( $array->@* ) - 1 );
+ return 0 if ( keys( $diag->%* ) != 1 );
+ return 0 if ( $diag->{ $array->[ 0 ]->[ 0 ] } != scalar( $array->@* ) );
+ return 1;
+$CODE$
+LANGUAGE plperl;