aboutsummaryrefslogtreecommitdiff
path: root/challenge-161/luca-ferrari/postgresql/ch-2.plperl
blob: edae5c307c60a1a672a2cd9cc97991b5dae2d52f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
-- Perl Weekly Challenge 161
CREATE SCHEMA IF NOT EXISTS pwc161;


CREATE OR REPLACE FUNCTION pwc161.pangrams()
RETURNS SETOF text
AS $CODE$
 my @found;
 
 for my $letter ( 'a' .. 'z' ){
   my $query = spi_query( "SELECT word FROM pwc161.dictionary WHERE word like '%$letter%' order by random()" );   

 while ( defined ( $row = spi_fetchrow( $query ) ) ) {
  # first word ever
  push @found, $row->{ word } and return_next( $row->{ word } ) if ! @found;

  next if grep /$letter/, @found;

  # add the word
  push @found, $row->{ word };
  return_next( $row->{ word } );

  }
}

return undef;
$CODE$
LANGUAGE plperl;