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 :)