Skip to content

chore(arrow-flight-sql): remove register_sql_info from FlightSqlService - #10904

Open
mnpw wants to merge 3 commits into
apache:mainfrom
mnpw:mnpw/remove-register-sql-info
Open

chore(arrow-flight-sql): remove register_sql_info from FlightSqlService#10904
mnpw wants to merge 3 commits into
apache:mainfrom
mnpw:mnpw/remove-register-sql-info

Conversation

@mnpw

@mnpw mnpw commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Which issue does this PR close?

N/A

Rationale for this change

FlightSqlService::register_sql_info appears to be stale artefact and it is effectively a no-op in the trait definition. It appears to be carried over from Go's BaseServer implementation.

Since FlightSqlService intends to represent Go's Server implementation instead it makes sense to remove this method from FlightSqlService.

Note: An alternative to removal of this method is change in its signature to FlightSqlService::register_sql_info(id: SqlInfo, result: SqlInfoValue). I can implement that instead as well but it deviates from what FlightSqlService trait should be doing.

What changes are included in this PR?

Remove register_sql_info from FlightSqlService

Are these changes tested?

Tested via -

cargo test -p arrow-flight --all-features

Are there any user-facing changes?

Yes. This removes a public trait method. Implementors that currently define register_sql_info as part of their FlightSqlService implementation must remove it.

@github-actions github-actions Bot added arrow Changes to the arrow crate arrow-flight Changes to the arrow-flight crate labels Aug 28, 2026
@Jefffrey Jefffrey added the api-change Changes to the arrow API label Aug 29, 2026

@Rich-T-kid Rich-T-kid left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What are the downsides to keeping it? Since this is would be a breaking API change we'd need to depreciate it first.

@mnpw

mnpw commented Sep 3, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for reviewing!

What are the downsides to keeping it?

Keeping the method just adds noise to the trait definition and it's required to implement as there is no trait level default impl. So every implementor ends up adding a mock implementation for this method that likely doesn't do anything.

Since this is would be a breaking API change we'd need to depreciate it first.

I've added this method for deprecation along with a default impl so that it doesn't add noise to newer implementations until we can remove this

@Rich-T-kid Rich-T-kid left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

makes sense to me, thanks @mnpw

@Rich-T-kid Rich-T-kid left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the next release is 60 I believe. I may be wrong.

Comment on lines +573 to +577
#[deprecated(
since = "59.4.0",
note = "takes no value to register and has no effect. Use `SqlInfoDataBuilder::append` instead"
)]
async fn register_sql_info(&self, _id: i32, _result: &SqlInfo) {}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this should actually be v60.0.0 right?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api-change Changes to the arrow API arrow Changes to the arrow crate arrow-flight Changes to the arrow-flight crate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants