Search code examples
postgresqlherokuheroku-postgres

Does Heroku currently support the postgresql temporal tables extension?


Cannot find any mention of it in heroku docs. Am considering creating a history table and would like to know. As outlined here: https://github.com/arkhipov/temporal_tables and here http://clarkdave.net/2015/02/historical-records-with-postgresql-and-temporal-tables-and-sql-2011/


Solution

  • From what I can see, Heroku's Postgres service doesn't include that specific extension:

    SELECT * FROM pg_available_extensions WHERE name LIKE '%temporal%';
    ...
    (0 rows)
    

    For posterity, here's the full list of available extensions (as of 2015/07/20):

    SELECT * FROM pg_available_extensions;
    
             name          | default_version | installed_version |                               comment
    ------------------------+-----------------+-------------------+----------------------------------------------------------------------
     dblink                 | 1.1             | [null]            | connect to other PostgreSQL databases from within a database
     tablefunc              | 1.0             | [null]            | functions that manipulate whole tables, including crosstab
     hstore                 | 1.3             | [null]            | data type for storing sets of (key, value) pairs
     intarray               | 1.0             | [null]            | functions, operators, and index support for 1-D arrays of integers
     pg_trgm                | 1.1             | [null]            | text similarity measurement and index searching based on trigrams
     postgis                | 2.1.7           | [null]            | PostGIS geometry, geography, and raster spatial types and functions
     pg_stat_statements     | 1.2             | [null]            | track execution statistics of all SQL statements executed
     test_parser            | 1.0             | [null]            | example of a custom parser for full-text search
     dict_xsyn              | 1.0             | [null]            | text search dictionary template for extended synonym processing
     insert_username        | 1.0             | [null]            | functions for tracking who changed a table
     pg_freespacemap        | 1.0             | [null]            | examine the free space map (FSM)
     ltree                  | 1.0             | [null]            | data type for hierarchical tree-like structures
     test_shm_mq            | 1.0             | [null]            | Test code for shared memory message queues
     adminpack              | 1.0             | [null]            | administrative functions for PostgreSQL
     plpgsql                | 1.0             | 1.0               | PL/pgSQL procedural language
     plv8                   | 1.4.2           | [null]            | PL/JavaScript (v8) trusted procedural language
     dict_int               | 1.0             | [null]            | text search dictionary template for integers
     fuzzystrmatch          | 1.0             | [null]            | determine similarities and distance between strings
     tcn                    | 1.0             | [null]            | Triggered change notifications
     sslinfo                | 1.0             | [null]            | information about SSL certificates
     lo                     | 1.0             | [null]            | Large Object maintenance
     cube                   | 1.0             | [null]            | data type for multidimensional cubes
     tsearch2               | 1.0             | [null]            | compatibility package for pre-8.3 text search functions
     timetravel             | 1.0             | [null]            | functions for implementing time travel
     redis_fdw              | 1.0             | [null]            | Foreign data wrapper for querying a Redis server
     pgstattuple            | 1.2             | [null]            | show tuple-level statistics
     earthdistance          | 1.0             | [null]            | calculate great-circle distances on the surface of the Earth
     chkpass                | 1.0             | [null]            | data type for auto-encrypted passwords
     refint                 | 1.0             | [null]            | functions for implementing referential integrity (obsolete)
     moddatetime            | 1.0             | [null]            | functions for tracking last modification time
     seg                    | 1.0             | [null]            | data type for representing line segments or floating-point intervals
     pageinspect            | 1.2             | [null]            | inspect the contents of database pages at a low level
     citext                 | 1.0             | [null]            | data type for case-insensitive character strings
     autoinc                | 1.0             | [null]            | functions for autoincrementing fields
     pg_prewarm             | 1.0             | [null]            | prewarm relation data
     isn                    | 1.0             | [null]            | data types for international product numbering standards
     postgis_topology       | 2.1.7           | [null]            | PostGIS topology spatial types and functions
     xml2                   | 1.0             | [null]            | XPath querying and XSLT
     postgres_fdw           | 1.0             | [null]            | foreign-data wrapper for remote PostgreSQL servers
     postgis_tiger_geocoder | 2.1.7           | [null]            | PostGIS tiger geocoder and reverse geocoder
     unaccent               | 1.0             | [null]            | text search dictionary that removes accents
     pg_buffercache         | 1.0             | [null]            | examine the shared buffer cache
     uuid-ossp              | 1.0             | 1.0               | generate universally unique identifiers (UUIDs)
     file_fdw               | 1.0             | [null]            | foreign-data wrapper for flat file access
     pg_logfebe             | 1.0             | [null]            | log via febe framing protocol to a unix socket
     btree_gist             | 1.0             | [null]            | support for indexing common datatypes in GiST
     pgcrypto               | 1.1             | [null]            | cryptographic functions
     intagg                 | 1.0             | [null]            | integer aggregator and enumerator (obsolete)
     pgrowlocks             | 1.1             | [null]            | show row-level locking information
     btree_gin              | 1.0             | [null]            | support for indexing common datatypes in GIN
     worker_spi             | 1.0             | [null]            | Sample background worker
    

    Amazon's RDS also doesn't appear to include it.

    Not wholly surprising though: it's an interesting extension but unlikely to be requested often (since the functionality can be replicated indirectly).