Features of PostgreSQL
Architectures support:
- Hardware: PC, Alpha, SPARC/UltraSPARC, PowerPC, MIPS, VAX, S/390...
- Software: All major UNIX-variants: AIX, BeOS, *BSD, Digital UNIX/Tru64, IRIX, HP UX, Linux, SCO, SunOS/Solaris, NT+Cygwin
Query Language
- Support for much of SQL/92 AND SQL/99, including:
- SQL99 joins
- Transactions
- Foreign Keys
- SQL92 & SQL99 data types.
- Sub-selects
- Unions and intersections
- Aggregates
- Views
- Cursors
- PostgreSQL specific SQL Extensions:
- Triggers
- Rules
- User permission sub-system
- Sequences
- Query explanation
- Procedural language support
- User-defined functions: SQL, C, Tcl, Ruby, Perl, PL/PgSQL, Python
- Much more...
Transactions & Multi-version Concurrency Control
- Transactions:
- Allow work on a database to be encapsulated (BEGIN/COMMIT)
- Work can be undone to the beginning to the transaction (ROLLBACK/ABORT)
- Upon error, all work in the transaction is invalidated
- Increased reliability
- Multi-version Concurrency Control (MVCC)
- Each database connection sees a snapshot of the database
- Backends synchronised upon updates/transaction committal
- Write-ahead logging (WAL): increased reliability
- Performance of MVCC
Indexing
- B-tree, R-tree, hash and GiST index algorithm support
- Single and multi-column (B-tree only) indexes
- Functional indexes
Extensibility
- User defined functions/procedures, aggregates, types
- Extend PostgreSQL in your language of choice: SQL, C, Perl, PL/PgSQL, Python, Ruby, Tcl
Administration
- Postgres database super-user
- Basic set of administration command line tools: pg_ctl, pg_dump...
- Interactive SQL Console: psql
Licensing