diff options
| -rw-r--r-- | challenge-196/luca-ferrari/postgresql/ch-2.plperl | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/challenge-196/luca-ferrari/postgresql/ch-2.plperl b/challenge-196/luca-ferrari/postgresql/ch-2.plperl new file mode 100644 index 0000000000..2608c1a841 --- /dev/null +++ b/challenge-196/luca-ferrari/postgresql/ch-2.plperl @@ -0,0 +1,23 @@ +-- Perl Weekly Challenge 196 +-- Task 2 + +CREATE SCHEMA IF NOT EXISTS pwc196; + +CREATE OR REPLACE FUNCTION +pwc196.task2_plperl( int[] ) +RETURNS SETOF int[] +AS $CODE$ + my ( $array ) = $_[0]; + my ( $start, $end ) = ( 0, 0 ); + + while ( $start < $array->@* ) { + $end = $start; + $end++ while ( $end < $array->@* && $array->[ $end + 1 ] == $array->[ $end ] + 1 ); + return_next( [ $start, $end ] ) if ( $end > $start ); + $start += $end + 1; + } + +return undef; + +$CODE$ +LANGUAGE plperl; |
