Skip to content

fix(query): fix bind internal column #17463

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Feb 17, 2025

Conversation

b41sh
Copy link
Member

@b41sh b41sh commented Feb 16, 2025

I hereby agree to the terms of the CLA available at: https://docs.databend.com/dev/policies/cla/

Summary

The bind internal column looks up the table_index from the columns in bind_context instead of looking up the table_index from the metadata because the table name stored in the metadata is duplicated and contains the table_index from the cte or subquery, resulting in the wrong table_index being found.
By the way, the bound_internal_columns in bind_context has been modified, the key contains table_index and column_id, which supports the case of join query where multiple tables query the same internal column.

Tests

  • Unit Test
  • Logic Test
  • Benchmark Test
  • No Test - Explain why

Type of change

  • Bug Fix (non-breaking change which fixes an issue)
  • New Feature (non-breaking change which adds functionality)
  • Breaking Change (fix or feature that could cause existing functionality not to work as expected)
  • Documentation Update
  • Refactoring
  • Performance Improvement
  • Other (please describe):

This change is Reviewable

@b41sh b41sh requested a review from sundy-li February 16, 2025 05:02
@github-actions github-actions bot added the pr-bugfix this PR patches a bug in codebase label Feb 16, 2025
Copy link

what-the-diff bot commented Feb 16, 2025

PR Summary

  • Enhanced Imports: A new import BTreeSet has been added to bind_context.rs.
  • Improved Internal Columns Mapping: The mapping of bound_internal_columns in BindContext has been updated, making it easier to manage.
  • Refined get_internal_column_table_index Function: This function has been revised, simplifying the table searching process and improving error handling for issues with tables.
  • Updated Internal Column Management: We've revamped how internal columns are stored and retrieved, which should streamline existing processes.
  • Optimized Iteration over Bound Internal Columns: The iteration process over bound_internal_columns has been revised for increased efficiency.
  • Expanded SQL Tests: New SQL queries have been added to our test suite, augmenting our coverage for different cases and scenarios.
  • Flexibility in SQL Table Creation: The statement for creating a table t_11126 has been updated to create or replace table, providing flexibility in managing database tables.

@b41sh b41sh marked this pull request as draft February 16, 2025 14:15
@b41sh b41sh marked this pull request as ready for review February 16, 2025 16:07
@BohuTANG BohuTANG merged commit e6d4adc into databendlabs:main Feb 17, 2025
73 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pr-bugfix this PR patches a bug in codebase
Projects
None yet
Development

Successfully merging this pull request may close these issues.

bug: join unable to get field named
3 participants