#!/usr/bin/env bash

set -u

uuid=$(echo $(uuidgen) | tr '[:upper:]' '[:lower:]')

stream_name=“testStream-$uuid” if [ ! -z ${STREAM_NAME+x} ]; then

stream_name=$STREAM_NAME

fi

cycles=1000 if [ ! -z ${CYCLES+x} ]; then

cycles=$CYCLES

fi

function script_dir {

val="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
echo "$val"

}

base=$(script_dir)

echo echo “Benchmark $cycles cycles (Stream Name: $stream_name)” echo “= = =” echo

default_name=message_store

if [ -z ${DATABASE_USER+x} ]; then

echo "(DATABASE_USER is not set)"
user=$default_name

else

user=$DATABASE_USER

fi echo “Database user is: $user”

if [ -z ${DATABASE_NAME+x} ]; then

echo "(DATABASE_NAME is not set)"
database=$default_name

else

database=$DATABASE_NAME

fi echo “Database name is: $database” echo

echo “Installing benchmark scripts” echo

psql $database -f $base/benchmark_write.sql psql $database -f $base/benchmark_get.sql

echo echo “Benchmarking write” echo “- - -” echo

psql $database -c “EXPLAIN ANALYZE SELECT benchmark_write('$stream_name'::varchar, $cycles::int);”

echo

echo echo “Benchmarking get” echo “- - -” echo

psql $database -c “EXPLAIN ANALYZE SELECT benchmark_get('$stream_name'::varchar, $cycles::int);”

echo