-
-
Notifications
You must be signed in to change notification settings - Fork 377
Standardize with points with points cost output columns #2911
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
Standardize with points with points cost output columns #2911
Conversation
- Currently works for pgr_dijkstra and pgr_withPoints
- _pgr_withpoints_v4 - _pgr_dijkstra_v4
- Removed the old internal signatures - Adusted code to use the new internal signatures
- Testing old connection still works during the life of v4 - Testing the new connection works
- `pgr_withPoints` - `pgr_withPointsCost` - `pgr_withPointsCostMatrix` - `pgr_findCloseEdges` which has a `pgr_withPoits` example - migration of `pgr_withPoints`
- pgr_withPoints - pgr_withPointsCost - pgr_withPointsCostMatrix - pgr_dijkstra
- Cleanup pgRouting concepts of concepts not used anymore
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
|
@coderabbitai summary |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain@cvvergara I'll examine the PR to provide both a summary and review. Let me gather information about the changes first. 🏁 Script executed: Length of output: 9381 🏁 Script executed: Length of output: 538 🏁 Script executed: Length of output: 35659 @cvvergara Here's the comprehensive summary and review for PR #2911: SummaryThis PR represents a major architectural refactoring for pgRouting 4.0, focusing on standardizing output columns for withPoints functions and introducing a unified shortest path processing framework. Key Objectives
Major Changes🔧 Core Architecture
📊 Output Standardization
🔄 Functions Updated
Review✅ Strengths1. Excellent Architectural Design // Clean, unified driver interface
void do_shortestPath(
const std::string&, const std::string&, const std::string&,
ArrayType*, ArrayType*,
int32_t, Path_rt**, size_t*,
bool*, char**, char**, char**);2. Consistent SQL Interface Improvements -- Before: Inconsistent column names
-- (seq, path_seq, start_pid, end_pid, node, edge, cost, agg_cost)
-- After: Standardized naming
-- (seq, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)3. Comprehensive Scope
4. Backward Compatibility
🎯 Technical ExcellenceCode Organization
SQL Function Design
Documentation Quality
📈 Impact AssessmentPositive Impacts:
Migration Considerations:
🔍 Code Quality ObservationsException Handling } catch (AssertFailedException &except) {
(*return_tuples) = pgr_free(*return_tuples);
err << except.what();
*err_msg = to_pg_msg(err);
*log_msg = to_pg_msg(log);
} catch (std::exception &except) {
// Proper cleanup and error propagationMemory Management
Recommendations✅ Ready for MergeThis PR demonstrates:
Future Considerations
This is an exemplary refactoring that significantly improves pgRouting's consistency and maintainability while providing a solid foundation for future development. The scope and quality are appropriate for the 4.0 major release. |
Fixes #2905
Changes proposed in this pull request:
shortestPath_processandshortestPath_driverthat works for_pgr_dijkstra_v4and_pgr_withPoints_v4used bypgr_dijkstrapgr_dijkstraCostpgr_dijkstraCostMatrixpgr_dijkstraNearpgr_dijkstraNearCostpgr_withPointspgr_withPointsCostpgr_withPointsCostMatrixrst_epilogpgr_withPointspgr_withPointsCostpgr_withPointsCostMatrixpgr_withPointsandpgr_withPointsCostpgr_findCloseEdgeswhich has apgr_withPoitsexample@pgRouting/admins