Skip to content

Refactor sys.columns_internal for improved performance#4653

Open
rohit01010 wants to merge 2 commits intobabelfish-for-postgresql:BABEL_5_X_DEVfrom
rohit01010:BABEL-6233
Open

Refactor sys.columns_internal for improved performance#4653
rohit01010 wants to merge 2 commits intobabelfish-for-postgresql:BABEL_5_X_DEVfrom
rohit01010:BABEL-6233

Conversation

@rohit01010
Copy link
Copy Markdown
Contributor

Description

The sys.columns_internal was originally implemented as a function, which caused significant performance bottleneck when used by dependent system views like sys.columns, sys.computed_columns, sys.identity_columns, and sys.syscolumns. Function scans prevent filter pushdown and force the query planner to materialize all function results before applying WHERE conditions, resulting in inefficient execution plans and poor performance for metadata queries that are frequently used by applications and tools.

In this change, we converts sys.columns_internal from a function to a view that directly queries PostgreSQL system catalogs using optimized joins and filtering conditions. The refactored view enables the PostgreSQL query optimizer to create better execution plans, allows for predicate pushdown, and eliminates the function scan bottleneck while maintaining full backward compatibility and providing the same column metadata with significantly improved performance for all dependent system views.

Authored-by: Rohit Bhagat rohitbgt@amazon.com
Signed-off-by: Rohit Bhagat rohitbgt@amazon.com

Issues Resolved

BABEL-6233

Test Scenarios Covered

  • Use case based -

  • Boundary conditions -

  • Arbitrary inputs -

  • Negative test cases -

  • Minor version upgrade tests -

  • Major version upgrade tests -

  • Performance tests -

  • Tooling impact -

  • Client tests -

Check List

  • Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is under the terms of the Apache 2.0 and PostgreSQL licenses, and grant any person obtaining a copy of the contribution permission to relicense all or a portion of my contribution to the PostgreSQL License solely to contribute all or a portion of my contribution to the PostgreSQL open source project.

For more information on following Developer Certificate of Origin and signing off your commits, please check here.

…sys.computed_columns, sys.identity_columns and sys.syscolumns

Signed-off-by: Rohit Bhagat <rohitbgt@amazon.com>
Signed-off-by: Rohit Bhagat <rohitbgt@amazon.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant