GSoC 2026 Week 3 Report: Implementation of Planar Face Extraction and K-Core Decomposition Algorithms to pgRouting

Md Sakir Ahmed
Github id: sakirr05
Mentors: @cvvergara, @robe
Organization: OSGeo / pgRouting
OSGeo Profile: OSGeo Profile Link
Project Wiki: Github Wiki Link
Repository: Repo Link

Hello everyone,

This is my third weekly report of Official coding period for GSoC 2026

Week 3 Report (8 June ~ 14 June)

What did I get done this week?

Attended Monday meeting where mentor Vicky demonstrated the 3-layer process/driver architecture using a demo PR and reviewed both students’ file structures.

pgr_planarFaces (PR #563):

  • Restructured the algorithm to follow the 3-layer process/driver architecture used by Dijkstra, A*, spanning tree, coloring, and ordering modules

  • Created algorithm-specific planarFaces_process.cpp and planarFaces_driver.cpp that handle SPI connection, timing, error reporting, edge fetching, and graph construction

  • Updated planarFaces.c to call pgr_process_planarFaces() instead of directly calling the driver

  • Created RST documentation (pgr_planarFaces.rst) and added it to the experimental toctree

  • Created docquery files (planarFaces.pg and planarFaces.result) with correct BEGIN/ROLLBACK wrapper format

  • Fixed cpplint errors (include ordering, missing <utility> header)

  • Refactored from shared planar_process/planar_driver to algorithm-specific files to avoid return type conflicts (PlanarFace_rt vs II_t_rt) with other planar algorithms

pgr_coreNumbers (PR #564):

  • Fixed _coreNumbers.sql LANGUAGE property from IMMUTABLE to VOLATILE to match the betweennessCentrality pattern

  • Corrected copyright years in coreNumbers.hpp and coreNumbers.cpp

  • All CI checks passing

Am I blocked on anything?

No

References:

1] Link to wiki page:
wiki page

2] Link to github repository:
github repository

3] Link to pull requests:
- PR #568 planarFaces
- PR #567 coreNumbers