Slide 17
Slide 17 text
Example
CREATE FUNCTION add_rating(id int, rating int)
RETURNS float AS
$$
var data = plv8.execute("SELECT count, total,
average FROM ratings WHERE id = $1", [id])[0];
var newTotal = data.total + rating;
var newCount = data.count + 1;
var newAverage = (newTotal / newCount);
plv8.execute("UPDATE ratings SET count = $1,
total = $2, average = $3 WHERE id = $4",
[newCount, newTotal, newAverage, id]);
return newAverage;
$$
LANGUAGE plv8;
CREATE TABLE ratings (id int, count int,
total int, average float);