Enroll in PostgreSQL Courses
Get Started
Use Code 'DBGRP30' for 30% OffCategory
-
Join 160 other subscribers
Top Posts & Pages
Archives
-
Recent Posts
- Why Ora2Pg Should Be Your First Stop for PostgreSQL Conversion March 31, 2026
- Oracle & SQL Server to PostgreSQL – Migration Tooling Gotchas No One Warns You About! March 27, 2026
- PostgreSQL Sequence Reset: START WITH vs RESTART WITH vs SETVAL Explained March 21, 2026
- PGConf India 2026: PostgreSQL Query Tuning: A Foundation Every Database Developer Should Build March 13, 2026
- Same SQL, Different Results: A Subtle Oracle vs PostgreSQL Migration Bug January 30, 2026
- PostgreSQL Table Rename and Views – An OID Story January 5, 2026
- PostgreSQL Partition Pruning: The Role of Function Volatility November 4, 2025
- Exploring PostgreSQL 18: A Developer’s Guide to New Features – Part 1: The COPY Command Gets More User-Friendly September 28, 2025
- PostgreSQL Case-Insensitive Search: Handling LIKE with Nondeterministic Collations September 6, 2025
- PostgreSQL 18 Beta Preview – Export or Amend Statistics with Ease May 10, 2025
- Understanding Volatility in PL/pgSQL Functions: A Real-World Lesson November 10, 2024
- PL/pgSQL Secrets: How Conditional Expressions Are Parsed and Evaluated Under the Hood. November 2, 2024
-
Enhance your PostgreSQL skills! Master Database Development and Migration with my course. Click here to start!
Tag Archives: SQL
PGConf India 2026: PostgreSQL Query Tuning: A Foundation Every Database Developer Should Build
PostgreSQL tuning should not rely on quick fixes like adding indexes or rewriting queries but instead focus on understanding the root issues affecting query performance. A slow query highlights underlying problems such as inaccurate statistics or schema inefficiencies. A five-question framework guides effective SQL tuning, as discussed at PGConf India 2026. Continue reading
PostgreSQL Table Rename and Views – An OID Story
In a recent post-migration activity, a large table required a UUID column addition. Instead of using ALTER TABLE, which locks the table, a new table was created to improve performance. However, renaming can create dependency issues with views, as PostgreSQL uses OIDs for tracking. Properly managing dependencies is crucial to avoid operational risks. Continue reading
Posted in Oracle to PG migration, postgresql
Tagged database, oracle, postgres, postgresql, SQL
1 Comment
Exploring PostgreSQL 18: A Developer’s Guide to New Features – Part 1: The COPY Command Gets More User-Friendly
PostgreSQL 18, released on September 25, 2024, enhances the COPY command with improved error handling through the REJECT_LIMIT option, allowing data loading to be controlled by limiting errors. This version also introduces additional logging options, aiding database developers in maintaining data integrity during file imports and improving overall data quality. Continue reading
Posted in postgresql
Tagged copy, data loading, database, postgres, postgresql, PostgreSQL 18, reject_limit, SQL, verbosity
Leave a comment
Understanding Volatility in PL/pgSQL Functions: A Real-World Lesson
The PL/pgSQL language in PostgreSQL allows developers to create complex database functions with prescribed volatility categories: IMMUTABLE, STABLE, and VOLATILE. Selecting the right volatility is crucial for maintaining performance and data consistency, especially during migrations from other databases. Careful consideration prevents unexpected results and enhances application reliability. Continue reading
Posted in postgresql
Tagged database, function, immutable, performance, PL/pgSQL, plpgsql, postgres, postgresql, SQL, stable
2 Comments
PL/pgSQL Secrets: How Conditional Expressions Are Parsed and Evaluated Under the Hood.
In a recent discussion on PostgreSQL Slack, a user noted that a seemingly incomplete PL/pgSQL IF statement did not cause a syntax error. The condition is processed using a SELECT statement, allowing flexibility in evaluation. This insight enables developers to creatively incorporate SELECT elements into conditional statements without triggering errors. Continue reading
Posted in postgresql
Tagged course, database, plpgsql, postgres, postgresql, Procedural Development, SQL
1 Comment
How to Connect to PostgreSQL Database Through AWS SSM Using pgAdmin or DBeaver.
Based on my extensive experience working with customers across domains and regions, especially in cloud databases, one of the most time-consuming processes is establishing a secure connection to a managed database instance. I fully understand the steps involved and why … Continue reading
Posted in AWS - Database
Tagged amazon aurora, aws, aws ssm, connection, database, dbeaver, pgadmin, postgresql, rds, SQL
Leave a comment
Exploring PostgreSQL 17: A Developer’s Guide to New Features – Part 7: pg_maintain Predefined Role for Maintenance.
PostgreSQL 17 introduces the pg_maintain role, enhancing access control over maintenance activities like VACUUM, ANALYZE, and REINDEX. This predefined role allows granular permission management, ensuring that only authorized users can perform critical maintainence operations. Continue reading
Posted in postgresql
Tagged database, maintain, pg_maintain, postgres, postgresql, PostgreSQL 17, SQL
2 Comments
Simplify PostgreSQL Execution Plan Analysis with pg_sqltxplain.
SQL performance tuning requires understanding execution plans and object statistics. StatsViaExplainAnalyze simplifies plan analysis for PostgreSQL by curating execution plans and object statistics in a single report. This tool automates the curation of object statistics by fetching them using the psql command line and creating an HTML output. It’s available on GitHub. Continue reading
Posted in postgresql
Tagged analyze, buffers, database, explain, html report, postgres, postgresql, report, SQL, sql tuning, tuning
Leave a comment
Exploring PostgreSQL 17: A Developer’s Guide to New Features – Part 3: The COPY Command Gets More User-Friendly
PostgreSQL 17 Beta, released on May 23, 2024, brings new features for database developers and migration engineers. Notable enhancements include improved handling of data type incompatibilities, better logging, and observability while loading data from flat files. The COPY command now allows for more user-friendly data loading directly into target tables, minimizing the need for staging tables. Continue reading
Posted in postgresql
Tagged copy, data loading, database, on_error, postgres, postgres 17, postgresql, PostgreSQL 17, SQL, verbosity
3 Comments