The Distributed SQL Blog

Thoughts on distributed databases, open source and cloud native

Follow-up: Postgres Conference Webinar – Introduction to YugabyteDB

I delivered the webinar “YugabyteDB: a distributed PostgreSQL database” last week. It was hosted by Postgres Conference in a series that they’d arranged so that the speakers who’d been selected to speak at their big annual conference in New York City in March could reach their audience. COVID-19 brought that event’s cancellation. This brief post tells you where you can find the edited videorecording and the PDF version of the slides that I used.

Read More

Document Data Modeling in YugabyteDB with the JSON Data Types

YugabyteDB has two JSON data types, json and jsonb, to let you store documents in a column in a YSQL table and to do content-based queries with index support. YSQL is PostgreSQL compatible and it therefore supports every one of the rich set of about thirty five JSON-specific operators and functions that users of PostgreSQL’s JSON functionality might already know,

Read More

Four Compelling Use Cases for PostgreSQL Table Functions

Welcome to part three of a three-part series of posts on PostgreSQL’s table functions. These functions can be easily leveraged in a distributed SQL database like YugabyteDB, which is PostgreSQL compatible.

In this final post, I’ll discuss four realistic use cases that call for user-defined table functions and I’ll explain how each case is met using complete,

Read More

Implementing PostgreSQL User-Defined Table Functions in YugabyteDB

Welcome to part two of a three-part series of posts on PostgreSQL’s table functions. These functions can be easily leveraged in a distributed SQL database like YugabyteDB, which is PostgreSQL compatible.

In part one I gave a brief introduction to PostgreSQL’s table functions. Part three will cover some realistic use cases. I’ll introduce this second post by quoting that paragraph:

A regular language plpgsql user-defined function is implemented using the plain return statement.

Read More

An Introduction to PostgreSQL Table Functions in YugabyteDB

Welcome to the first of a three-part series of posts on PostgreSQL’s table functions. These functions can be easily leveraged in a distributed SQL database like YugabyteDB, which is PostgreSQL compatible.

This series follows on from my “Using Stored Procedures in Distributed SQL Databases” post. In this series of posts we’ll cover:

  • What table functions are and why they’re useful
  • Demonstrate the use of some built-in SQL table functions
  • Introduce how you can implement a user-defined table function,

Read More

Using Stored Procedures in Distributed SQL Databases

These days, most monolithic SQL databases support stored procedures. This support first emerged in commercially available offerings in the late nineteen eighties. However, stored procedure support is not yet standard in distributed SQL databases. In fact, YugabyteDB is just one of two in this category—supporting stored procedures written in PostgreSQL’s PL/pgSQL. (Aurora also supports stored procedures.) This post recaps the case for stored procedures that motivated their introduction all those years ago.

Read More

The Benefit of Partial Indexes in Distributed SQL Databases

If a partial index is used, instead of a regular one, on a nullable column—where only a small fraction of the rows have not null values for this column—then the response time for inserts, updates, and deletes can be shortened significantly. As a bonus, the response times for single row selects shorten a little bit too. This post explains what a partial index is,

Read More

Relational Data Modeling with Foreign Keys in a Distributed SQL Database

Note added on October 31, 2019

A lot has happened since this post was published in July 2019. Back then, the current YugabyteDB version was 1.2.10. And now, it’s 2.0.3. My original text included some caveats and comments like “Until this support is added in a future release…”. Now, no caveats are needed. I therefore revised my text and the companion downloadable code to remove all reference to those earlier,

Read More