Home
Blogs
General
Postgres
Comment
Events
FAQ
Favorites
Articles
Books
Children
Documents
Hobbies
Movies
Music
Periodicals
Quotes
Sayings
Television
Videos
Artistic
Humorous
Serious
News
Presentations
PG Admin.
PG Book
PG Extended
PG Internals
PG Perform.
PG Project
PG SQL
Open Source
Security
Sermons
General
Selecting
Press
Résumé
Search
Travel Map
Contact
Private Area
⇽
⇽
Postgres Blog Index: Ordered Chronologically
View Detail
View Category Index
Postgres 17 Presentation
More Release Note Details
Postgres 17 Release Notes
Specialized
Cpu
Instructions
In Praise of PostgreSQL
Multiply Time
Indexing
timestamp
s
Is
Sql
Good?
Transaction Block Isolation Levels
Lateral
Usage
Combining Queries into
Cte
s
All About
All
Scram
Is Here to Stay
Explaining the Postgres Query Optimizer
Improvements
Presentations from
Sql
Queries
Sharding Status
last_seq_scan and last_idx_scan
Query_id and pg_stat_statements
Postgres Music
Power-Loss Protection
Tde
Status Report
Peanut Butter and Chocolate
Data Gravity
The Relational Future Is Bright
Null
Presentation Updates
Railroad Diagrams
Oracle Supports Postgres
Transaction Processing Chapter
Setting Per-User Server Variables
Postgres 16 Features Presentation
Selecting Conferences
Leadership Abuse
Who's in Charge?
Email Etiquette
Supermarket Chicken
PostgreSQL Benefits and Challenges: A Snapshot
Community Edition
Open Source Bait and Switch: Licensing and Beyond
The Postgres Trajectory
Postgres 16 Release Notes
Dissecting Partitioning
Beyond Joins and Indexes
Researching Upgrade Changes
Postgres 15 Release Notes
Postgres in the Microservices World
Abuse of Open Source?
Enterprise Postgres Growth in Japan
Four New Presentations
Why Vacuum?
The Hard Quadrant
Reducing Planned Downtime Can Increase Unplanned Downtime
Features Move into the Database as they Mature
Looking Back at Postgres
Time Zone Abbreviations
Storing Signatures in Databases
Pgsodium
Encrypting
pgpass
Encrypting Logical Backups
Postgres 14 Release Notes
Postgres Pulse
Optimization Aggressiveness
Hash Aggregation
Clustering a Table
Postgres on Big Iron
Set of Record
Jsonb
Multi-Column Type Casting
Separating Cluster and Database Attributes
Release Size Analysis, The 2021 Edition
Roads and Bridges: The Unseen Labor Behind Our Digital Infrastructure
Database Software Bundles
Oracle vs. PostgreSQL
Challenging Assumptions
Rerouting Server Log Entries
The Power of
Synchronous_commit
Shared Memory Sizing
Replica Scaling by the Numbers
Operating System Choice
Many Upgrade Methods
Thirty Years of Continuous PostgreSQL Development
Community Impact of 2nd Quadrant Purchase
The Economics of Open Source Contributions
Three Postgres Adoption Groups in Enterprises
Cloud Vendor Monetization of Open Source
Cloud Vendors as a Barrier
Developers in Front
The Berkeley 39
Postgres and the Artificial Intelligence Landscape
Why Not to Choose Postgres
Migrating Away from Hacks
Postgres in the Cloud: The Hard Way
Changing Cars, Changing Databases
The Inner Workings of Oracle Development
Development Methods
Why Database Software Is Unique
Standard Deviation
Keyset Pagination in Action
Keyset Pagination
Pagination Tips
Invalid Times
Differences Between Dates
Computing
Interval
Values
pgFormatter
Writing Style
Encryption at Rest
Passwords in Log files
Force Password Changes
Credential Rotation Using Certificates
Grouping Set
s and
Null
Values
Jsonb
: A Container of Types
Two Interviews
Postgres Marketing
Boolean Indexes
Global Indexes
Hardware Acceleration for Databases
Can Case Comparison Be Controlled?
Force One Row
Storing Binary Data in the Database
Dinner Q&A
Controlling Server Variables at Connection Time
Connect Parameter Specification Options
Controlling Connection Parameters Using Environment Variables
Safety Systems Can Reduce Safety
When Does a Commit Happen?
Lessons from the Online Conference Trenches
Visualizing Collations
What is an
Lsn
?
Taking Snapshots of Clusters Which Use Tablespaces
Moving Tables, Indexes, and Tablespaces Between Clusters
Why
Pgdata
Should Not Be at the Top of a Mount Point
Percona Live Online
Using Non-Login Roles
Draft of Postgres 13 Release Notes
Avoiding Cache Wipe, Synchronized Scans
Why Do We Freeze?
Postgres Internals Website
Portability's Surprising Win
With ... Materialized
and Optimizer Control
Background Writes
Optimal Use of
Ssd
s
Does Postgres Support Compression?
Multi-Host Technologies
Performance Limitations
Fast Enough?
No Travel
Database Interoperability at Risk
Databases, Containers, and the Cloud
Las Vegas Event at re:Invent
Implementing Transparent Data Encryption in Postgres
Release of pgcryptokey
Ibiza: A Different Type of Conference
The Democratization of Databases
Postgres 12 Features Presentation
Exploring Postgres Tips and Tricks
Updated Sharding Presentation
Draft of Postgres 12 Release Notes
The High Value of Data
Tool Vendor/Support Options
SQL Replay for Replication?
Lock-In Is Not a Binary Decision
Corporate Backing
Breaking Backward Compatibility
The Maze of Postgres Options
Trusted and Untrusted Languages
Order of
Select
Clause Execution
Imperative to Declarative to Imperative
Composite Values
At Time Zone
Confusion
PgLife for Familiarization
Expanding Permission Letters
Permission Letters
Limiting Superuser Activity
Postgres Encryption Maze
Pooler Authentication
Synchronizing Authentication
Insufficient Passwords
Removable Certificate Authentication
Three Factors of Authentication
Fourteen Authentication Methods
The Future of Major Version Upgrades
Zero Downtime Pg_upgrade
Threaded Postgres
Why Use Multi-Master?
Compiled PL/pgSQL?
Wal
Directory Location
Windows and Shared Buffers
Micro-Optimizations
Optimizer Hints
Allocating
work_mem
The Memory Resource Triad
The Meaning of
Wal
Views vs. Materialized Views
Extensibility
Data Storage Options
First Wins, Last Wins, Huh?
Submitting Talks to Conferences
Users vs. Developers
Long-Haul Behavior
"Get Off My Lawn"
Three-Year Cycle
Installing PL/v8
Multi-Host Libpq
Trigger Me Writable
Moving Tablespaces
Switchover/Failover and Session Migration
Postgres 11 Features Presentation
Multi-Host Pg_dump
Monitoring Complexity
Signing Rows
Client Row Access Control
Cryptographically Authenticated Rows
Foreign Data Wrappers and Passwords
Certificate Revocation Lists
Oracle Real Application Clusters (
Rac
)
Query Planner Interview
Will Postgres Live Forever?
Draft of Postgres 11 Release Notes
Intermediate Certificates
Four New Security Talks
Video of Russian Interview
Web Forums?
Wal
and Xlog
Sharding Update from Asia
Postgres vs PostgreSQL
Huge Pages
Getting Object Creation Time
Interview in China
Data in the Database vs the File System
Why Attend Conferences?
Blocking
Ddl
Speaking in China
Using
Xmin
in Queries
Percent_rank
vs.
Cumm_dist
Storing the Original Time Zone
PL/pgSQL's Good
Sql
Alignment
Identifier Case Sensitivity
Vectorize Surprise
Index Everything
Future Optimizer Enhancements
Partitioning in Postgres 10 and Beyond
A Hierarchical Read-Scaling Architecture
Materialized Views and Foreign Data Wrappers
A New Pgindent
PG-C
Tuning Autovacuum
Limiting Memory to Avoid the
Oom
Compressed Tablespaces
Using Docker with Postgres
Session State Failover
Logical Replication
Wal
Archive: Local or Remote?
The Hot Standby Tradeoff
Sent, Write, Flush, Replay?
Recent Interview
The Decline of Hstore
Postgres Party
Playing With IPv6
Odd Month Arithmetic
Use
With Time Zone
PL/Java Adoption
When To Use Server-Side Logic
Which NoSQL Database For New Project?
You Don't Need Every Feature of Your Previous Database
Raw Device Optimization
Double Buffering Blues
Tablespaces on Transient Storage
Ssd
s and
effective_io_concurrency
Reorganized Presentations
Raid
Controllers and
Ssd
s
Postgres Window Magic
Postgres 10 Features Presentation
Draft of Postgres 10 Release Notes
Das
vs
San
vs
Nas
External Poolers
Switchover vs. Failover
Incremental File System Backup
What Are Checkpoints?
Wal
Archive Management
Inside the
Wal
Postgres Keywords
Casting to Data Types
Allowing Only One Null
Use All Your Constraints
Referencing
Select
Column Aliases in
Where
Clauses
Characters Sets, Encodings, and Collations
Outer Joins and
Where
Clauses
'You need to set a tone where everyone in the community feels valued'
Column Storage Internals
Getting the Most Out of
application_name
Dynamic Logging Control
Postgres Alerts
Wait Event Reporting
Creating Descending Indexes
Index Order Does Matter
Expression Index Statistics and Joins
Statistics on Expression Indexes
Still No Query Hints?
Going Deep on Stats
Performance Goalposts
Postgres Gives Developers More Options with NoSQL
Creating Extensions in Schemas
Beware of Antivirus Software with Postgres
Updated Blog Categories, Images
Two More Interviews
Moscow Interview
Using
Ssl
Certificates
Creating
Ssl
Certificates
Ssl
Certificates and Certificate Authorities
Use Kill -9 Only in Emergencies
Controlling Autovacuum
Built-In Sharding Wiki Page
Thirteen Conferences in Four Months
Postgres Videos
Analyzing Postgres Adoption
Yandex Mail Completes Three-Year Migration from Oracle to Postgres
Postgres 9.6 Features
Be Prepared for
Prepare
Lots-O-Travel
Non-Relational Postgres
Layers of Security
Cpu
s Are Slowing Us Down
Oracle Attacks Postgres in Russia
The Plan for FDW-Based Sharding
2016 Conferences
A Business Card History of Postgres
Postgres Going in Multiple Directions
My Daughter Speaks
Tom Lane Changes His Employer
Michael Stonebraker's Turing Award Lecture
Postgres 9.5 Features Presentation
PgCon 2015 Developer Meeting Photo
Postgres 9.5 Draft Release Notes
Pg_Upgrading Streaming Standbys
The Purpose of the Core Team
YeSQL: Battling the NoSQL Hype Cycle with Postgres
Sharding Presentation
Postgres Rising in Russia
2015 Postgres Conferences
Two New Presentations
Postgres Pool Party
Postgres Gets the Business
Integrated Cache Invalidation for Better Hit Rates
Visualizing Postgres Feature Growth
PgPool Improves Reliability
PgLife Is Six Months Old
New Presentations
Explain
Output Generates Enthusiastic Applause
Five Events
Postgres 9.3 Release Notes Updated
What Are Timelines?
Salesforce Abandoning Postgres Migration?
How Managers View Postgres
Upcoming Conferences
Done Studying Perl
PGCon Conference Report
New Presentation Online
PgCon Developer Meeting Concluded
Video Interview
PgLife Averages Thirty Active Users
PgLife Is Now Live
9.3 Release Notes Ready for Beta
Starting on 9.3 Release Notes
Matching Client and Server Constraints
Dynamic Columns
Pg_Upgrade Now Handles Invalid Indexes
Twenty-One Hours to Exploit
Partial Indexes
Expression Indexes
All Operators Call Functions
Passing Arguments to Functions
Creating Virtual Columns
Good Enough?
Postgres Is Good Enough
Postgres as a Data Platform
Conference Report
Table Partitioning Needs Improvement
The Middleware Porting Challenge
The Future of Relational Databases
Parallelism Roadmap
Null
Summary (Part 11/11)
Null
s in Arrays and
Row
Expressions (Part 10/11)
Handling Growth with Postgres: 5 Tips From Instagram
Mapping
Null
s to Strings (Part 9/11)
Null
s and Aggregates (Part 8/11)
Ordering and Indexing
Null
s (Part 7/11)
Comparing
Null
s (Part 6/11)
Pg_Upgrade Now Supports Parallel Copy/Link
The
Not In
Null
Trap (Part 5/11)
The Three-Valued Logic of
Null
s (Part 4/11)
The Non-Value of
Null
s (Part 3/11)
Pg_Upgrade Faster, Again!
Explicit and Implicit
Null
Generation (Part 2/11)
Null
s Make Things Easier? (Part 1/11)
Postgres: The B-52 of Databases
"You Lock Your Data in Postgres — We Cannot Fail"
Pg_Upgrade Bug with Invalid Concurrently-Created Indexes
Programatic Control of postgresql.conf Settings
My Blog Changes
Pg_Upgrade Performance Improvements
Conference Report
You Added What
Json
Features in Postgres 9.2?
The 9.2 Sleeper Feature
Video of Postgres 9.2 Features
The Backend Flowchart Is Back
Lots O' Conferences
Reload Is Powerful
Upcoming Conferences
Unix Domain Socket Location
Centralizing Connection Parameters
Monitoring Postgres from the Command Line
Turn off the drive write cache! Turn on the cache! Huh?
250
Tps
99.9% Useful
Memory Overcommit
I Don't Need Swap Space
Generating Random Data Via
Sql
Want a Free Remote Database?
PostgreSQL's Place in the New World Order
Recruiters A'Callin
The Externality of Index Creation
Dud, Flood, & Bud
Matching Client and Server Languages
Celko Speaking in Prague
I Feel Sorry for Closed-Source Developers
Teaching Again at Drexel
Postgres Developer Meetings
Vacation, What Vacation?
Postgres Pool Party
So You Want to Be a Committer?
What Are
Oids
The Double Quote Trap
What Makes a Great Conference Site
Speaking in the Dominican Republic
Timing Query Internals
Timing a Query
Cluster, Cluster, Schema, Schema
Transactional
Ddl
I Don't Need Backups, I Use
Raid1
!
Speeding Up by Condensing
Automatic Upgrades?
The Evolution of Pg_Upgrade
Report from PGCon
Parallel Query Report from the PGCon Developer Meeting
Template1 Me!
Postgres 9.2 Draft Release Notes Published
Postgres Drinking Game
The Effectiveness of
effective_cache_size
Starting on 9.2 Release Notes
Measuring Free Memory and Kernel Cache Size on Linux
Caching Levels
Upcoming Events
Why Use Multiple Schemas?
Take a Dip in the Pooler
When to Use Multiple Clusters, Databases, or Schemas?
Avoiding Logical Dump Pitfalls
Multiple Databases and Global Objects
Selecting All Columns and TOAST
Don't Ignore
shared_preload_libraries
Three Ways to Install Postgres
The New Postgres Era
Software Patents: Why the Status Quo Continues?
Report from PGDay Austin
The Importance of High-Quality Documentation
Postgres Documentation
Why You Should Care About Libpq
Open Source Leadership
Pg_Upgrade and Optimizer Statistics
Pg_Upgrade Improvements Coming in Postgres 9.2
Postgres Getting Increased Attention
Report from Montreal's ConFoo Conference
CTE Presentation at ConFoo; Slides Now Online
Limiting Postgres Connections
Staying Close to Home
Part 1 of
Virtualizing Postgres
Now Online
The USA Is Planning a Triple Play
Sorting Performance Improvement for Postgres 9.2
Virtualizing Postgres
Let's See
work_mem
Postgres Memory Surprises
Revisiting Memory Reporting
NoSQL Databases as the New Scripting Language
Scalability What?
Increasing Database Reliability
The Most Important Postgres CPU Instruction
More Lessons From My Server Migration
New Server
Toast
Queries
Toast
-y Goodness
Coming to Boston
Presentations Updated
Growing Postgres User Groups
Parallelism Is Coming
The Travel Faucet
What Is a GUC Variable?
External Monitoring Tools
Scalability Improvements Are Coming
I'm Back
Unlocking the Postgres Lock Manager
Slides Now Online
The Marathon Begins
Bug Fix for Pg_Upgrade from Postgres 8.3
Intel Pushes Out Firmware Update For 320 Series SSDs
No RSVPs, No Party
Email Snippets: Entertaining Links
Email Snippets: Community Management
Email Snippets: Reliability
Email Snippets: Philosophy
The Postgres Fall Conference Lineup
EnterpriseDB Looking for Beta Testers
Email Snippets: SQL Craziness
What Every Data Programmer Needs to Know about Disks
Postgres Now the Default Database for Mac OS X Server
Email Snippets: Self-deprecation
Need a Conference Welcome Video?
No Postgres Booth at
Oscon
New Optimizer Presentation Now Online
Video Presentation from Brazil Now Online
Postgres Pool Party
Surrogate Keys Can Become Natural Keys
Pg_Upgrade Will Always Be a Hack
Changes to Pg_Upgrade In Postgres 9.1
A Cautionary Lesson from Perl 6
MVCC Webcast this Wednesday
A Postgres Song?
Postgres 9.1 in the News
Do We Have a Plan?
Release Size Analysis
One Million Strong
Radical But Useful Source Code Reformatting
Pg_Upgrade Fix Now Released in Postgres 9.0.4
Important Postgres 9.1 Features
MySQLCon Keynote Video Now Online
Yeah, I'm at MySQLCon
Critical Fix for Pg_upgrade/Pg_migrator Users
A Conference A Month
Postgres 9.1 Draft Release Notes
Postgres 9.1 Is Coming
PgEast at the Hotel Pennsylvania
Report from SCALE
An Event Every Month
Conference Report
Postgres Wisdom
PG West Selectivity Talk
MVCC Unmasked
Now Online
Back from Moscow
Why Postgres Switched To Git
Two New Presentations
Pretty Docs
MySQL Is a Database
Video
Reliable Writes
Baltimore, Bolivia, Boston, Moscow, San Francisco
Postgres 9.0 Feedback on Slashdot
Mirror, Mirror On The Wall, Which Is The Best Open Source DB Of Them All?
Why People Contribute to Postgres and Open Source
Security Meeting in Maryland
Why Is
standard_conforming_strings
Enabled in Postgres 9.1?
Speaking in New York City
Finding Xmax
Reliability Humor
Database Reliability
Development Process Article
Form Follows Failure
ORMs and Their Discontents
The Pain of Software Development
Completed User Testimonial Videos from PG East
Surge
Conference
Oscon
2010 Report
One Week to the Postgres Pool Party
Postgres Coming to the International Space Station
PostgreSQL 9.0 Illustrated
Another Drexel University Course
Postgres Pool Party
Updated Presentation: The Magic of Hot Streaming Replication
Postgres on Amazon's EC2
Financial Disincentive
Pg_Migrator Included in Postgres 9.0, Renamed to Pg_Upgrade
New Replication Option
Creeping to Beta
VM Me
SSDs for Your Database?
Learning from NoSQL
Settling for NoSQL
MVCC For Programming Languages
Speaking in New York City
PG East: Slides
PG East: Hotel
9.0 Release Notes Ready
PG East: What to Expect
9.0 Release Notes Creation
User Testimonial Video at PG East
9.0 Status Report
More Philadelphia Action
Why Blog?
Python Driver Confusion
Removal of Personal Copyrights
Postgres University Course Material
Where Did My Error Come From?
Caring for Your (PG) Introvert
Wanted: New Project Slogan
Postgres Is Hot In Philadelphia
Threats to Postgres
Oops, Confusing Press Release
The Next Postgres Adoption Wave
Postgres 9.0 Coming
European Union Recognizes PostgreSQL
Seeking Documentation Proofreading Assistance
Don't Confuse Companies with Community
Security-Enhanced Postgres
The
International
MySQL Soap Opera
Growing Patch Committers
New Security Talk
Lists and Recursion and Trees (Oh, my!)
Elephant Roads: PostgreSQL Patches and Variants
Pg_Migrator Done for 8.4, New Video
Coding Simplicity
Presentation License
School Is Out
Community Communication
Reaching Out to Middleware Users
Ccache Usage
JPUG Tenth Anniversary
Development Developments
Award
Busy Week
Pg_Migrator 8.4.1 Released
Setback for Pg_Migrator
Pg_Migrator 8.4 Final Released Last Week
Partial Progress in Proofreading the Postgres Manual
Pg_Migrator Release Candidate 1
Professor Momjian
Challenges of Pg_Migrator
Pg_Migrator Beta 1 Released
Back to Email
Professionalism at PGCon
Reflections on PGCon
Pg_Migrator Progress
Pg_Migrator Alpha Released
Old School
Pg_Migrator Status
Release Date Poll
My Goals for the Next Two Months
Postgres 8.4 Beta1
Oracle to Buy Sun Microsystems
The Great Netbook Giveaway Redux
Philadelphia Tour After PG East
What Have We Forgotten About Growing?
8.4 Release Notes
Working on 8.4 Release Notes
Online Training
Query Source Code Flow Diagram Completed
Query Source Code Flow
Preparation for 8.4, Travel
Pet Peeves
Final Feature Decisions for 8.4
Considering Security-Enhanced Postgres
Webcast Series
Quixotic?
The Optimal Number of Database Performance Settings
Slogging Toward 8.4
Postgres Globe
Postgres News Activity
Webcasts
Approaching 8.4 Beta
Spacewalk to Postgres
Less Travel
Processing Email
Reading Email During Trips
Postgres Email Activity
OpenSQL Camp Report
Attending OpenSQL Camp
Back From PG West
Perl For Development Scripts
Conference Schedule Resumed
Back to Work
Event Attendance Cancellations
Elephants Can Count Too
Report from Brasilia
The Kitchen Sink Has Arrived?
TODO TO-Gone
What Do You Do?
Oscon
Grand Prize
Linuxworld Wrapup, Swag
Appointed to PgUS Board
Oscon
Wrapup
Russian Chat Session
The MySQL Soap Opera
Oscon
Report
Attending
Oscon
pgpool PG Pool Party
Upcoming Presentations
Database House Of Cards
Postgres Development Visualized
Postgres Is Hot
Traveling Every Month
Master/Slave Replication
Coverity Security Scan
PGCon Impressions
The Photo Reply
Big Joke
Commit Fest Done
PGCon Developer's Meeting
Porting from Oracle to Postgres
May Commit-Fest Going Well
First 8.4 Commit-Fest Done
First Commit-Fest
Postgres 8.4 Development Started
Back From London
Attending
Fosdem
in Brussels
Reading Through the Manual
Benchmark Comparison
8.3RC2 Needed
Start