← Back to all posts

PipelineDB 0.9.8 - PostgreSQL Extension Refactor Nearing Completion


PipelineDB 0.9.8 has been released! Download it here.

Overview

PipelineDB 0.9.8 is a maintenance release, but a very important one because it includes the first major progress towards making PipelineDB a standard PostgreSQL extension. As we've previously announced, incremental progress towards PipelineDB becoming an extension will be the basis of each release leading up to the fast-approaching 1.0.0.

And with the release of 0.9.8, the effort is now well underway. PipelineDB as a PostgreSQL extension is finally going to happen relatively soon.

Since PipelineDB started out as a fork of PostgreSQL, our high-level strategy for refactoring it into an extension is roughly:

  • Standardize the existing code base as much as possible
  • Reorganize the standardized code as an extension

The majority of the extension refactor's complexity lies in the standardization stage, and 0.9.8 resolves a significant amount of it. And while most of the work thus far has been on internals, 0.9.8 introduces a few minor user-facing changes for relatively uncommon PipelineDB operations.

Interface Changes

PipelineDB 0.9.8 removes some PipelineDB-specific syntax:

ACTIVATE/DEACTIVATE syntax has been removed. The associated functionality is now available as functions:

SELECT deactivate('cv_name');
SELECT activate('cv_name');

TRUNCATE CONTINUOUS VIEW syntax as been removed. Continuous views can now be truncated via a function call:

SELECT truncate_continuous_view('cv_name');

EXPLAIN CONTINUOUS VIEW syntax has been removed. The associated functionality will be re-introduced in an upcoming release.

Upgrading

PipelineDB 0.9.8 does include a small catalog change, so you'll want to either import your existing data into a 0.9.8 database, or use the binary upgrade tool against your existing data directory, which is pretty easy:

$ pipeline-upgrade -b old_version/bin -d old_data_dir -B new_version/bin -D new_data_dir

Odds and Ends

  • Added an official Debian 9 (Stretch) release package
  • Fixed unexpected behavior with keyed_min/max when reading from output streams
  • Fixed minor issues with combine on delta streams
  • Fixed issue with planner being confused by certain stream-index JOIN plans
  • Fixed issue with planner being confused by certain non-aggregate continuous view plans
  • Fixed issue with projections on output stream rows
  • Fixed tidigest aggregate issue
  • Made ZMQ socket directory configurable

Remaining Work and Timeline

Some standardization work still remains and will mostly be completed with the upcoming 0.9.9 release. We're aiming for the 1.0.0 release to primarily involve restructuring a standardized code base into a PostgreSQL extension. 0.9.9 and 1.0.0 will be released in faster cycles than 0.9.8 was.

In terms of timeline, we're still aiming to release PipelineDB 1.0.0 as closely as possible to the upcoming PostgreSQL 10 release, which will happen this year.

Stay tuned for updates, we're getting close!