> [!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>