Search code examples
postgresqlcachingforeign-data-wrapper

foreign data wrapper caching mechanism support


I want to use FDWs to access data from different data sources (CSV, SQL Server, Web Server) . I want to know if caching mechanism is supported for Foreign tables, so that when the connection is lost the data is still available?

Thanks.


Solution

  • example using MATERIALIZED VIEW

    t=# create foreign table ft1 (pid int,state text) server past options (schema_name 'pg_catalog',table_name 'pg_stat_activity');
    CREATE FOREIGN TABLE
    Time: 1.771 ms
    t=# create materialized view mv1 as select * FROM ft1 where state = 'active';
    SELECT 8
    Time: 275.935 ms
    t=# select * from mv1;
      pid  | state
    -------+--------
     15103 | active
     17699 | active
       795 | active
     17211 | active
      3434 | active
     20671 | active
     20888 | active
     27827 | active
    (8 rows)
    
    Time: 0.289 ms
    t=# refresh materialized view mv1;
    REFRESH MATERIALIZED VIEW
    Time: 329.095 ms
    t=# select * from mv1;
      pid  | state
    -------+--------
     15103 | active
     17699 | active
       795 | active
     17211 | active
      3434 | active
     27396 | active
     27780 | active
     27803 | active
    (8 rows)
    
    Time: 0.401 ms