Bruce Momjian

Postgres Feature Presentations

Nulls Make Things Easier?

Duration: 30 minutes, 45 minutes with questions
Nulls are a very useful but also very error-prone relational database feature. This talk is designed to help applications developers better manage their use of nulls. It covers the use of nulls in relational databases, with a focus on Postgres behaviour. It covers three-value logic, comparing nulls, mapping nulls to strings, indexing nulls, and aggregates.

Programming the SQL Way with Common Table Expressions

Duration: 30 minutes, 45 minutes with questions
SQL is a declarative language, meaning the user submits an SQL command and the database determines the optimal execution. Common Table Expressions (CTEs) allow queries to be more imperative, allowing looping and processing hierarchical structures that are normally associated only with imperative languages. This talk will help developers use implement CTE queries in their applications and allow operations that normally could only be done in application code to be done via SQL queries.

Rapid Upgrades With Pg_Upgrade

Duration: 30 minutes, 45 minutes with questions
Pg_Upgrade allows data to be transferred between major Postgres versions without a dump/restore. It does this by transferring the user data and version-dependent data separately. This talk explains the internal workings of pg_upgrade and includes a pg_upgrade demonstration.

The Magic of Hot Streaming Replication

Duration: 30 minutes, 45 minutes with questions
This talk explores the much-anticipated Postgres 9.0 features of hot standby and streaming replication. It explains how these features work, how to configure them, and their current limitations. It includes a hands-on demonstration that can be done either by the instructor or by students.

PostgreSQL Replication Solutions

Duration: 45 minutes, 75 minutes with questions
This talk is for people who need some kind of replication and want to learn more about the replication options available for PostgreSQL.  Replication is not a single technology but rather a group of needs and solutions that has to be tailored to each usage for optimal performance and functionality.  This talk outlines the major needs for replication and major solutions, including those currently implemented in PostgreSQL and those in development.

Securing PostgreSQL From External Attack

Duration: 30 minutes, 45 minutes with questions
This talk explores the ways attackers with no authorized database access can steal Postgres passwords, see database queries and results, and even intercept database sessions and return false data. Postgres supports features to eliminate all of these threats, but administrators must understand the attack vulnerabilities to protect against them. This talk covers all known Postgres external attack methods.

Flexible Indexing with Postgres

Duration: 45 minutes, 1 hour with questions
When considering database indexing, most people think of the trade-offs of different data structures, like btree and hash. However, with Postgres, there are a wide variety of indexing structures available, and many index lookup methods with specialized capabilities. For example, GiST allows for efficient retrieval of the closest matches for unordered data, like two-dimensional points or phonetic algorithms. Gin indexing specializes in rapid lookup of keys with potentially many matches — an area where traditional btree indexes perform poorly. Gin index compression and multi-key lookup optimizations make gin even more powerful. Jsonb indexing improvements also give Postgres new power to rapidly access unstructured data.