Enroll in PostgreSQL Courses
Get Started
Use Code 'DBGRP30' for 30% OffCategory
-
Join 152 other subscribers
Top Posts & Pages
Archives
-
Recent Posts
- 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
- How to Connect to PostgreSQL Database Through AWS SSM Using pgAdmin or DBeaver. September 26, 2024
- Exploring PostgreSQL 17: A Developer’s Guide to New Features – Part 7: pg_maintain Predefined Role for Maintenance. September 23, 2024
- Exploring PostgreSQL 17: A Developer’s Guide to New Features – Part 6: Login Event Trigger August 31, 2024
- Exploring PostgreSQL 17: A Developer’s Guide to New Features – Part 5 : Correlated IN Clause Transformation August 27, 2024
- Exploring PostgreSQL 17: A Developer’s Guide to New Features – Part 4: Enhanced Merge Command. August 9, 2024
- Simplify PostgreSQL Execution Plan Analysis with pg_sqltxplain. August 2, 2024
-
Enhance your PostgreSQL skills! Master Database Development and Migration with my course. Click here to start!
Category Archives: postgresql
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
PostgreSQL Case-Insensitive Search: Handling LIKE with Nondeterministic Collations
Migrating from Oracle or SQL Server to PostgreSQL often brings challenges with case-insensitive searches, since PostgreSQL doesn’t support them natively. Workarounds include nondeterministic collations or custom operators, though the recommended approach is to use the built-in “C” collation with ILIKE. Notably, PostgreSQL 18 is set to improve case-insensitive matching, making migrations smoother. Continue reading
PostgreSQL 18 Beta Preview – Export or Amend Statistics with Ease
PostgreSQL 18 Beta introduces powerful enhancements to statistics management. For the first time, users can export, import, and modify planner statistics—making it easier to replicate production behavior in lower environments and fine-tune query performance without relying on actual data loads. Continue reading
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
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
Exploring PostgreSQL 17: A Developer’s Guide to New Features – Part 6: Login Event Trigger
The series explores new features in PostgreSQL 17, including the Login Event Trigger. This trigger allows users to execute code when a new connection is made to the database. Considerations for designing use cases around this trigger include DML actions, logging, and mitigating trigger failure. The feature helps enforce policies, enhance security, and streamline connection workflows. Continue reading
Posted in postgresql
Tagged event trigger, login, new, postgres 17, PostgreSQL 17, trigger
6 Comments
Exploring PostgreSQL 17: A Developer’s Guide to New Features – Part 5 : Correlated IN Clause Transformation
PostgreSQL 17 introduces impactful features, such as optimized IN Clause and Correlated Queries transformation, enhancing performance as compare to previous versions. Continue reading
Posted in postgresql
Tagged IN Clause, join, performance, postgresql, PostgreSQL 17, Transformation
5 Comments
Exploring PostgreSQL 17: A Developer’s Guide to New Features – Part 4: Enhanced Merge Command.
PostgreSQL 17 introduces the MERGE statement, which allows for single DML operations with varying conditions to INSERT, UPDATE, or DELETE based on a data source. This new functionality supports operations on rows that do not match conditions, alters the internal join strategy, and incorporates the RETURNING clause for greater flexibility. Additionally, the MERGE command now works with updatable views, expanding the possibilities for powerful and flexible data management. Continue reading
Posted in postgresql
Tagged merge, postgres, postgres 17, PostgreSQL 17, returning clause, WHEN NOT MATCHED BY SOURCE
7 Comments