aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Ferrari <fluca1978@gmail.com>2022-04-20 11:12:24 +0200
committerLuca Ferrari <fluca1978@gmail.com>2022-04-20 11:12:24 +0200
commitb9256920c8b9f0095867078e3e71025314604acb (patch)
tree93661974c5543cbfb8176f74fc4417b230177bcb
parent3a2868fb875e9a4a387f96b59d316e1ef777524e (diff)
downloadperlweeklychallenge-club-b9256920c8b9f0095867078e3e71025314604acb.tar.gz
perlweeklychallenge-club-b9256920c8b9f0095867078e3e71025314604acb.tar.bz2
perlweeklychallenge-club-b9256920c8b9f0095867078e3e71025314604acb.zip
Task1 PL/Perl done
-rw-r--r--challenge-161/luca-ferrari/postgresql/ch-1.plperl27
1 files changed, 27 insertions, 0 deletions
diff --git a/challenge-161/luca-ferrari/postgresql/ch-1.plperl b/challenge-161/luca-ferrari/postgresql/ch-1.plperl
new file mode 100644
index 0000000000..8d4e596abe
--- /dev/null
+++ b/challenge-161/luca-ferrari/postgresql/ch-1.plperl
@@ -0,0 +1,27 @@
+CREATE SCHEMA IF NOT EXISTS pwc161;
+
+/*
+testdb=> create schema pwc161;
+cCREATE SCHEMA
+testdb=> create table pwc161.dictionary( word text );
+CREATE TABLE
+
+$ psql -h miguel -U luca -c 'COPY pwc161.dictionary( word ) FROM STDIN;' testdb < ../../data/dictionary.txt
+COPY 39172
+*/
+
+
+CREATE OR REPLACE FUNCTION
+pwc161.plperl_abecedarian()
+RETURNS SETOF text
+AS $CODE$
+
+ my $query = spi_query( 'SELECT word FROM pwc161.dictionary ORDER BY length( word ) ASC' );
+ while ( defined ( $row = spi_fetchrow( $query ) ) ) {
+ my @letters = split //, $row->{ word };
+ return_next( $row->{ word } ) if ( $row->{ word } eq join( '', sort( @letters ) ) );
+}
+
+return undef;
+$CODE$
+LANGUAGE plperl;