> [!NOTE] Custom & Foreign Scans
> <table>
> <tr>
> <td width="25%"><img src="assets/ex_customscanforeignscan.png"></td>
> <td>Scans external data sources (Foreign Data Wrappers) or executes custom extension logic.</td>
> </tr>
> </table>
>
> ```sql
> -- Conceptual plan for a Foreign Scan (e.g., file_fdw)
> EXPLAIN SELECT * FROM external_logs;
> ```
>
> ```text
> Foreign Scan on external_logs (cost=1.00..2.10 rows=10 width=32)
> Foreign File: /var/lib/postgres/data/logs.csv
> Foreign File Size: 1024
> ```
>
> <table>
> <tr>
> <td rowspan="5" width="25%"><img src="assets/ex_foreign_scan.svg"></td>
> <td><b>Performance</b></td><td>Entirely dependent on the external source's latency and the efficiency of the Foreign Data Wrapper (FDW) or custom extension.</td>
> </tr>
> <tr><td><b>Factors</b></td><td>Network latency (for remote DBs), disk I/O (for local files), and implementation-specific overhead.</td></tr>
> <tr><td><b>Cost</b></td><td>Defined by the FDW's custom cost model.</td></tr>
> <tr><td><b>Operates on</b></td><td><a href="Structures/Result Set">Result Set</a></td></tr>
> <tr><td><b>Workloads</b></td><td><a href="Workloads/Client/Activity/ClientRead">Client: ClientRead</a>, <a href="Workloads/Client/Activity/ClientWrite">Client: ClientWrite</a>, <a href="Workloads/IO/DataFile/DataFileRead">IO: DataFileRead</a>, <a href="Workloads/LWLock/Buffers/BufferContent">LWLock: BufferContent</a></td></tr>
> <tr><td colspan="3"><b>Description</b>: Scans foreign tables or data sources.</td></tr>
> </table>