---
title: "PostgreSQL Extensions: ltree"
description: "Postgres ltree is a PostgreSQL extension that introduces a data type for representing labels of data stored in a hierarchical tree-like structure."
section: "Postgres extensions"
---

> **TimescaleDB is now Tiger Data.**

# 

PostgreSQL is a powerful, open-source object-relational database system. One of its key strengths lies in its extensibility, with a wide range of extensions available to enhance its functionality. In this post, we will focus on one such extension, the Postgres `ltree`.

## ​What is Postgres ltree?

​Postgres `ltree` is a PostgreSQL extension that introduces a data type for representing labels of data stored in a hierarchical tree-like structure. It's particularly useful for developers working with data with a natural hierarchical relationship, such as file systems, biological classifications, organizational structures, etc.

The `ltree` extension provides several functions and operators for working with ltree data, including searching, comparison, and manipulation.

### Installing the Postgres ltree extension

​Before you can use the `ltree` extension, you need to install it. Here's how:

1. First, connect to your PostgreSQL database.

2. Next, run the following command:​

`CREATE EXTENSION ltree;

`This command installs the `ltree` extension in your current database. On [Timescale](https://console.cloud.timescale.com/signup), you can find available extensions by going to `Operations > Extensions` from your service overview, which will also give you installation instructions.

## Using the ltree Extension

​Once installed, you can use the `ltree` extension to create ltree columns, insert ltree data, and perform operations on ltree data.

Here's an example of how to create a table with an ltree column:

`CREATE TABLE test (path ltree);
`

You can insert data into the ltree column like this:

`​INSERT INTO test VALUES ('Top.Middle.Bottom');
`

The value actually represents a simple hierarchical value of three levels: Top -> Middle -> Bottom.

## ​Time-Series Use Cases for Postgres ltree

​The `ltree` extension can be particularly useful in time-series data scenarios. For example, you could use it to represent a hierarchy of time periods (e.g., year > quarter > month > day) and then use` ltree`'s functions and operators to query and manipulate this data. Another example would be the representation of topologies, such as buildings, to assign sensor locations.

### Using ltree with Timescale and time-series data

​Timescale is a time-series database fully compatible with PostgreSQL. You can use the `ltree` extension with Timescale to handle hierarchical time-series data.

​For example, you could use `ltree` to represent a hierarchy of time periods in a Timescale [hypertable](https://www.tigerdata.com/blog/database-indexes-in-postgresql-and-timescale-cloud-your-questions-answered), and then use `ltree`'s functions and operators to query and manipulate this data.

With the `ltree` extension, PostgreSQL and Timescale offer powerful tools for handling hierarchical and time-series data. Whether you're a developer or a data analyst, understanding and using these tools can greatly enhance your data manipulation capabilities.