aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Ferrari <fluca1978@gmail.com>2021-12-29 08:50:47 +0100
committerLuca Ferrari <fluca1978@gmail.com>2021-12-29 08:50:47 +0100
commit12828ab4269a983570736b0bd17299c32eae1b27 (patch)
tree464372b006627bb36939dabf6c0ca87e5f66ce26
parent728c60d492898b79bf9c4a45bc5584b94beb1109 (diff)
downloadperlweeklychallenge-club-12828ab4269a983570736b0bd17299c32eae1b27.tar.gz
perlweeklychallenge-club-12828ab4269a983570736b0bd17299c32eae1b27.tar.bz2
perlweeklychallenge-club-12828ab4269a983570736b0bd17299c32eae1b27.zip
Task 1 PostgreSQL done
-rw-r--r--challenge-145/luca-ferrari/postgresql/ch-1.sql23
1 files changed, 23 insertions, 0 deletions
diff --git a/challenge-145/luca-ferrari/postgresql/ch-1.sql b/challenge-145/luca-ferrari/postgresql/ch-1.sql
new file mode 100644
index 0000000000..bfa9121355
--- /dev/null
+++ b/challenge-145/luca-ferrari/postgresql/ch-1.sql
@@ -0,0 +1,23 @@
+/*
+testdb=> select f_dot_product( array[1,2,3], array[4,5,6] );
+f_dot_product
+---------------
+32
+*/
+CREATE OR REPLACE FUNCTION
+f_dot_product( a int[], b int[] )
+RETURNS int
+AS
+$CODE$
+DECLARE
+ i int;
+ total int := 0;
+BEGIN
+ FOR i IN 1 .. array_length( a, 1 ) LOOP
+ total := total + a[ i ] * b[ i ];
+ END LOOP;
+
+ RETURN total;
+END
+$CODE$
+LANGUAGE plpgsql;