|
| 1 | +# ✅ VERIFIED C++ Deprecations Ready for Removal |
| 2 | + |
| 3 | +**Current Date**: February 8, 2026 |
| 4 | +**Cutoff (1 year ago)**: February 2025 |
| 5 | +**Only removing deprecations from v17.0.0 (July 2024) and earlier** |
| 6 | + |
| 7 | +--- |
| 8 | + |
| 9 | +## Summary |
| 10 | + |
| 11 | +**Total Symbols to Remove**: 3 |
| 12 | +**Releases**: v13.0.0 and v17.0.0 |
| 13 | +**All verified**: Dates, PR links, and usages checked manually |
| 14 | + |
| 15 | +--- |
| 16 | + |
| 17 | +## ✅ Symbol 1: HasValidityBitmap() |
| 18 | + |
| 19 | +**Location**: `cpp/src/arrow/type.h` line 2588-2589 |
| 20 | + |
| 21 | +**Deprecated**: April 23, 2024 |
| 22 | +**PR**: https://github.com/apache/arrow/pull/41115 |
| 23 | +**Release**: 17.0.0 (July 16, 2024) |
| 24 | +**Age**: ~19 months old ✅ |
| 25 | + |
| 26 | +**What to remove**: |
| 27 | +```cpp |
| 28 | +ARROW_DEPRECATED("Deprecated in 17.0.0. Use may_have_validity_bitmap() instead.") |
| 29 | +constexpr bool HasValidityBitmap(Type::type id) { return may_have_validity_bitmap(id); } |
| 30 | +``` |
| 31 | +
|
| 32 | +**Replacement**: `may_have_validity_bitmap(Type::type id)` |
| 33 | +
|
| 34 | +**Usage**: Need to check for callers and replace them |
| 35 | +
|
| 36 | +--- |
| 37 | +
|
| 38 | +## ✅ Symbol 2: ServerAuthHandler::IsValid() (old signature) |
| 39 | +
|
| 40 | +**Location**: `cpp/src/arrow/flight/server_auth.h` lines 88-93 |
| 41 | +
|
| 42 | +**Deprecated**: May 2, 2023 |
| 43 | +**PR**: https://github.com/apache/arrow/pull/35378 |
| 44 | +**Release**: 13.0.0 (August 23, 2023) |
| 45 | +**Age**: ~2 years, 9 months old ✅ |
| 46 | +
|
| 47 | +**What to remove**: |
| 48 | +```cpp |
| 49 | +/// \deprecated Deprecated in 13.0.0. Implement the IsValid() |
| 50 | +/// with ServerCallContext version instead. |
| 51 | +ARROW_DEPRECATED("Deprecated in 13.0.0. Use ServerCallContext overload instead.") |
| 52 | +virtual Status IsValid(const std::string& token, std::string* peer_identity) { |
| 53 | + return Status::NotImplemented(typeid(this).name(), "::IsValid() isn't implemented"); |
| 54 | +} |
| 55 | +``` |
| 56 | + |
| 57 | +**Replacement**: `IsValid(const ServerCallContext& context, const std::string& token, std::string* peer_identity)` |
| 58 | + |
| 59 | +--- |
| 60 | + |
| 61 | +## ✅ Symbol 3: FlightSqlServerBase::CancelQuery() |
| 62 | + |
| 63 | +**Location**: `cpp/src/arrow/flight/sql/server.h` lines 654-660 |
| 64 | + |
| 65 | +**Deprecated**: Same as Symbol 2 |
| 66 | +**PR**: Part of Flight SQL API updates in v13.0.0 |
| 67 | +**Release**: 13.0.0 (August 23, 2023) |
| 68 | +**Age**: ~2 years, 9 months old ✅ |
| 69 | + |
| 70 | +**What to remove**: |
| 71 | +```cpp |
| 72 | +/// \deprecated Deprecated in 13.0.0. You just need to implement |
| 73 | +/// CancelFlightInfo() to support both the CancelFlightInfo action |
| 74 | +/// (for newer clients) and the CancelQuery action (for older |
| 75 | +/// clients). |
| 76 | +ARROW_DEPRECATED("Deprecated in 13.0.0. Implement CancelFlightInfo() instead.") |
| 77 | +virtual arrow::Result<CancelResult> CancelQuery( |
| 78 | + const ServerCallContext& context, const ActionCancelQueryRequest& request); |
| 79 | +``` |
| 80 | +
|
| 81 | +**Replacement**: `CancelFlightInfo(const ServerCallContext& context, const CancelFlightInfoRequest& request)` |
| 82 | +
|
| 83 | +--- |
| 84 | +
|
| 85 | +## Release Timeline (for reference) |
| 86 | +
|
| 87 | +- 13.0.0: August 23, 2023 ✅ (~2.5 years old) |
| 88 | +- 14.0.0: November 1, 2023 ✅ |
| 89 | +- 15.0.0: January 21, 2024 ✅ |
| 90 | +- 16.0.0: April 20, 2024 ✅ |
| 91 | +- **17.0.0: July 16, 2024** ✅ (~19 months old - **CUTOFF**) |
| 92 | +- 18.1.0: November 2024 ❌ (too recent) |
| 93 | +
|
| 94 | +--- |
| 95 | +
|
| 96 | +## Next Steps |
| 97 | +
|
| 98 | +1. ✅ Close current decimal() PR (too recent) |
| 99 | +2. ✅ Revert decimal() changes on branch |
| 100 | +3. ✅ Remove these 3 symbols instead |
| 101 | +4. ✅ Check for usages of HasValidityBitmap() and replace |
| 102 | +5. ✅ Create new PR: "GH-49153: [C++] Remove APIs deprecated in v13.0.0 and v17.0.0" |
| 103 | +6. ✅ Include this document in PR description |
0 commit comments