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: postgresql
Why Ora2Pg Should Be Your First Stop for PostgreSQL Conversion
The author emphasizes the importance of using Ora2pg for Oracle-to-PostgreSQL migrations, particularly for table DDL conversion. With over a decade of experience, they highlight Ora2pg’s robust configuration options that provide precise control. The post outlines specific features and transformation directives that enhance migration efficiency and accuracy, making complex migrations manageable. Continue reading
Posted in Oracle to, Oracle to PG migration, postgresql
Tagged conversion, database, migration, ora2pg, oracle, postgresql, sql server
Leave a comment
Oracle & SQL Server to PostgreSQL – Migration Tooling Gotchas No One Warns You About!
Migrations from Oracle and SQL Server to PostgreSQL often encounter overlooked challenges. The tools, while capable, can produce flawed code that compromises performance and functionality. Issues like improper data type mapping, silent errors from implicit casting, incomplete code, and extension lock-in require careful attention. Understanding these pitfalls is crucial for a successful migration. Continue reading
Posted in Oracle to, Oracle to PG migration, postgresql
Tagged aws sct, google dms, ispirer, migration, number data type, ora2pg, oracle, performance, postgresql, sql server
2 Comments
PostgreSQL Sequence Reset: START WITH vs RESTART WITH vs SETVAL Explained
During an Oracle to PostgreSQL migration, a critical issue arose regarding sequence value resets. The tool ora2pg generated inadequate commands causing sequence values to mismatch post-cutover. A fix was implemented to replace the incorrect ALTER SEQUENCE START WITH command with RESTART WITH or setval() for accurate sequence resetting, crucial for successful migrations. Continue reading
Posted in Oracle to, Oracle to PG migration, postgresql
Tagged nextval, oracle, postgresql, reset, restart with, Sequence, setval, start with
Leave a comment
Same SQL, Different Results: A Subtle Oracle vs PostgreSQL Migration Bug
The article examines issues encountered when migrating an Oracle application to PostgreSQL, particularly differences in operator precedence and implicit casting. A case study reveals how similar SQL expressions yield different results due to inherent database behaviors. The piece emphasizes the need for explicit intent in SQL to avoid silent data corruption and bugs post-migration. Continue reading
Posted in Oracle Internal, Oracle to, Oracle to PG migration, postgresql
Tagged Concat, implicit conversion, oracle, plpgsql, PLSQL, postgresql
2 Comments
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
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