if you want to play with the latest postgresql development snapshot here is a very simple makefile which does the work for you ( given that you have installed all the dependencies required for building postgresql ):
PGBASEVER=9.3
PG=http://ftp.postgresql.org/pub/snapshot/dev/postgresql-snapshot.tar.bz2
PGFILE=postgresql-snapshot.tar.bz2
CURRDIR=$(shell pwd)
DATADIR=$(CURRDIR)/data
fromscratch: reset download buildpg initdb startdb
reset: stopdb
rm -rf build
rm -rf install
rm -rf data
mkdir build
mkdir install
mkdir data
download:
wget ${PG}
mv ${PGFILE} build/
buildpg:
( cd build && tar -axf ${PGFILE} )
( cd build/postgresql-${PGBASEVER}* && ./configure --prefix=${CURRDIR}/install )
( cd build/postgresql-${PGBASEVER}* && make )
( cd build/postgresql-${PGBASEVER}* && make check )
( cd build/postgresql-${PGBASEVER}* && make install )
initdb:
( cd install/bin && ./initdb -D ${DATADIR} )
startdb:
( install/bin/pg_ctl -D ${DATADIR} start )
stopdb:
if [ -f ${DATADIR}/postmaster.pid ]; then \
( install/bin/pg_ctl -D ${DATADIR} stop -m fast ) \
fi
copy this to a directory where you are the owner of, name the file “Makefile” and execute:
make fromscratch
this will create the directories, download the latest snapshot, compile the source and start the postgresql database ( this takes 4 minutes on my mint workstation ). once the script finished you may connect to the database and start playing:
install/bin/psql postgres
psql (9.3devel)
Type "help" for help.
postgres=# \h create materialized view
Command: CREATE MATERIALIZED VIEW
Description: define a new materialized view
Syntax:
CREATE [ UNLOGGED ] MATERIALIZED VIEW table_name
[ (column_name [, ...] ) ]
[ WITH ( storage_parameter [= value] [, ... ] ) ]
[ TABLESPACE tablespace_name ]
AS query
[ WITH [ NO ] DATA ]
postgres=#
of course you may put this in a shell script, too. but this way it was more fun :)

