- ID de l'analyse :
- fe771224-b9cc-4430-b514-0fc36fa3c3b1Terminée
- URL soumise :
- https://t.co/6U4zCB9frq
- Fin du rapport :
Liens : 8 trouvé(s)
Liens sortants identifiés à partir de la page
Lien | texte |
---|---|
https://github.com/supabase/wrappers | supabase/wrappersv0.4.355553 |
https://clickhouse.com/ | ClickHouse |
https://supabase.com/docs/guides/database/vault | Vault |
https://github.com/suharev7/clickhouse-rs#dns | more connection string parameters |
https://clickhouse.com/docs/en/sql-reference/statements/create/view#parameterized-view | Parametrized view |
https://squidfunk.github.io/mkdocs-material/ | Material for MkDocs |
https://x.com/supabase | |
https://reddit.com/r/supabase |
Variables JavaScript : 20 trouvée(s)
Les variables JavaScript globales chargées dans l'objet fenêtre d'une page sont des variables déclarées en dehors des fonctions et accessibles depuis n'importe quel endroit du code au sein du champ d'application actuel
Nom | Type |
---|---|
onbeforetoggle | object |
documentPictureInPicture | object |
onscrollend | object |
__md_scope | object |
__md_hash | function |
__md_get | function |
__md_set | function |
target | object |
applyFocusVisiblePolyfill | function |
document$ | object |
Messages de journal de console : 0 trouvé(s)
Messages consignés dans la console web
HTML
Le corps HTML de la page en données brutes
<!DOCTYPE html><html lang="en" class="js-focus-visible js" data-js-focus-visible=""><head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="A PostgreSQL extension for connecting to external data sources">
<meta name="author" content="supabase">
<link rel="canonical" href="https://supabase.github.io/wrappers/catalog/clickhouse/">
<link rel="prev" href="../bigquery/">
<link rel="next" href="../firebase/">
<link rel="icon" href="../../assets/favicon.ico">
<meta name="generator" content="mkdocs-1.6.0, mkdocs-material-9.5.31">
<title>ClickHouse - Wrappers</title>
<link rel="stylesheet" href="../../assets/stylesheets/main.3cba04c6.min.css">
<link rel="stylesheet" href="../../assets/stylesheets/palette.06af60db.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<link rel="stylesheet" href="../../stylesheets/extra.css">
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body dir="ltr" data-md-color-scheme="slate" data-md-color-primary="green" data-md-color-accent="green">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#clickhouse" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header md-header--shadow md-header--lifted" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../.." title="Wrappers" class="md-header__button md-logo" aria-label="Wrappers" data-md-component="logo">
<img src="../../assets/wrappers.svg" alt="logo">
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"></path></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Wrappers
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
ClickHouse
</span>
</div>
</div>
</div>
<div class="md-header__source">
<a href="https://github.com/supabase/wrappers" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"></path></svg>
</div>
<div class="md-source__repository md-source__repository--active">
supabase/wrappers
<ul class="md-source__facts"><li class="md-source__fact md-source__fact--version">v0.4.3</li><li class="md-source__fact md-source__fact--stars">555</li><li class="md-source__fact md-source__fact--forks">53</li></ul></div>
</a>
</div>
</nav>
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
<div class="md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../.." class="md-tabs__link">
Home
</a>
</li>
<li class="md-tabs__item md-tabs__item--active">
<a href="../" class="md-tabs__link">
Catalog
</a>
</li>
<li class="md-tabs__item">
<a href="../../guides/native-wasm/" class="md-tabs__link">
Guides
</a>
</li>
<li class="md-tabs__item">
<a href="../../contributing/core/" class="md-tabs__link">
Contributing
</a>
</li>
</ul>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation">
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../.." title="Wrappers" class="md-nav__button md-logo" aria-label="Wrappers" data-md-component="logo">
<img src="../../assets/wrappers.svg" alt="logo">
</a>
Wrappers
</label>
<div class="md-nav__source">
<a href="https://github.com/supabase/wrappers" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"></path></svg>
</div>
<div class="md-source__repository md-source__repository--active">
supabase/wrappers
<ul class="md-source__facts"><li class="md-source__fact md-source__fact--version">v0.4.3</li><li class="md-source__fact md-source__fact--stars">555</li><li class="md-source__fact md-source__fact--forks">53</li></ul></div>
</a>
</div>
<ul class="md-nav__list">
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_1">
<div class="md-nav__link md-nav__container">
<a href="../.." class="md-nav__link ">
<span class="md-ellipsis">
Home
</span>
</a>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_1_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_1">
<span class="md-nav__icon md-icon"></span>
Home
</label>
<ul class="md-nav__list">
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" checked="">
<div class="md-nav__link md-nav__container">
<a href="../" class="md-nav__link ">
<span class="md-ellipsis">
Catalog
</span>
</a>
<label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
Catalog
</label>
<ul class="md-nav__list">
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_2" checked="">
<label class="md-nav__link" for="__nav_2_2" id="__nav_2_2_label" tabindex="">
<span class="md-ellipsis">
Native
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_2_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_2_2">
<span class="md-nav__icon md-icon"></span>
Native
</label>
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="../airtable/" class="md-nav__link">
<span class="md-ellipsis">
Airtable
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../auth0/" class="md-nav__link">
<span class="md-ellipsis">
Auth0
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../cognito/" class="md-nav__link">
<span class="md-ellipsis">
AWS Cognito
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../bigquery/" class="md-nav__link">
<span class="md-ellipsis">
BigQuery
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
<span class="md-ellipsis">
ClickHouse
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<a href="./" class="md-nav__link md-nav__link--active">
<span class="md-ellipsis">
ClickHouse
</span>
</a>
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc">
<li class="md-nav__item">
<a href="#supported-data-types" class="md-nav__link">
<span class="md-ellipsis">
Supported Data Types
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#preparation" class="md-nav__link">
<span class="md-ellipsis">
Preparation
</span>
</a>
<nav class="md-nav" aria-label="Preparation">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#secure-your-credentials-optional" class="md-nav__link">
<span class="md-ellipsis">
Secure your credentials (optional)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#connecting-to-clickhouse" class="md-nav__link">
<span class="md-ellipsis">
Connecting to ClickHouse
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#creating-foreign-tables" class="md-nav__link">
<span class="md-ellipsis">
Creating Foreign Tables
</span>
</a>
<nav class="md-nav" aria-label="Creating Foreign Tables">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#foreign-table-options" class="md-nav__link">
<span class="md-ellipsis">
Foreign table options
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#query-pushdown-support" class="md-nav__link">
<span class="md-ellipsis">
Query Pushdown Support
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#examples" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
<nav class="md-nav" aria-label="Examples">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#basic-example" class="md-nav__link">
<span class="md-ellipsis">
Basic example
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../firebase/" class="md-nav__link">
<span class="md-ellipsis">
Firebase
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../logflare/" class="md-nav__link">
<span class="md-ellipsis">
Logflare
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../notion/" class="md-nav__link">
<span class="md-ellipsis">
Notion
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../redis/" class="md-nav__link">
<span class="md-ellipsis">
Redis
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../s3/" class="md-nav__link">
<span class="md-ellipsis">
S3 (CSV, JSON, Parquet)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../stripe/" class="md-nav__link">
<span class="md-ellipsis">
Stripe
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../mssql/" class="md-nav__link">
<span class="md-ellipsis">
SQL Server
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_2_3">
<div class="md-nav__link md-nav__container">
<a href="../wasm/" class="md-nav__link ">
<span class="md-ellipsis">
Wasm
</span>
</a>
<label class="md-nav__link " for="__nav_2_3" id="__nav_2_3_label" tabindex="">
<span class="md-nav__icon md-icon"></span>
</label>
</div>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2_3">
<span class="md-nav__icon md-icon"></span>
Wasm
</label>
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="../paddle/" class="md-nav__link">
<span class="md-ellipsis">
Paddle
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../snowflake/" class="md-nav__link">
<span class="md-ellipsis">
Snowflake
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3">
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
<span class="md-ellipsis">
Guides
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
Guides
</label>
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="../../guides/native-wasm/" class="md-nav__link">
<span class="md-ellipsis">
Native vs Wasm Wrappers
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../guides/query-pushdown/" class="md-nav__link">
<span class="md-ellipsis">
Query Pushdown
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../guides/remote-subqueries/" class="md-nav__link">
<span class="md-ellipsis">
Remote Subqueries
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../guides/security/" class="md-nav__link">
<span class="md-ellipsis">
Security
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../guides/usage-statistics/" class="md-nav__link">
<span class="md-ellipsis">
FDW Statistics
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../guides/installation/" class="md-nav__link">
<span class="md-ellipsis">
Installing Wrappers in Postgres
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../guides/limitations/" class="md-nav__link">
<span class="md-ellipsis">
Limitations
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_3_8">
<label class="md-nav__link" for="__nav_3_8" id="__nav_3_8_label" tabindex="0">
<span class="md-ellipsis">
Developing a Wasm Wrapper
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_8_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_3_8">
<span class="md-nav__icon md-icon"></span>
Developing a Wasm Wrapper
</label>
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="../../guides/create-wasm-wrapper/" class="md-nav__link">
<span class="md-ellipsis">
Quick Start
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../guides/wasm-advanced/" class="md-nav__link">
<span class="md-ellipsis">
Advanced guide
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4">
<label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
<span class="md-ellipsis">
Contributing
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4">
<span class="md-nav__icon md-icon"></span>
Contributing
</label>
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="../../contributing/core/" class="md-nav__link">
<span class="md-ellipsis">
Core Development
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../contributing/native/" class="md-nav__link">
<span class="md-ellipsis">
Developing a Native Wrapper
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../contributing/documentation/" class="md-nav__link">
<span class="md-ellipsis">
Documentation
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc">
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc">
<li class="md-nav__item">
<a href="#supported-data-types" class="md-nav__link">
<span class="md-ellipsis">
Supported Data Types
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#preparation" class="md-nav__link">
<span class="md-ellipsis">
Preparation
</span>
</a>
<nav class="md-nav" aria-label="Preparation">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#secure-your-credentials-optional" class="md-nav__link">
<span class="md-ellipsis">
Secure your credentials (optional)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#connecting-to-clickhouse" class="md-nav__link">
<span class="md-ellipsis">
Connecting to ClickHouse
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#creating-foreign-tables" class="md-nav__link">
<span class="md-ellipsis">
Creating Foreign Tables
</span>
</a>
<nav class="md-nav" aria-label="Creating Foreign Tables">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#foreign-table-options" class="md-nav__link">
<span class="md-ellipsis">
Foreign table options
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#query-pushdown-support" class="md-nav__link">
<span class="md-ellipsis">
Query Pushdown Support
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#examples" class="md-nav__link">
<span class="md-ellipsis">
Examples
</span>
</a>
<nav class="md-nav" aria-label="Examples">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#basic-example" class="md-nav__link">
<span class="md-ellipsis">
Basic example
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<nav class="md-tags">
<a href="../../tags/#native" class="md-tag">native</a>
<a href="../../tags/#official" class="md-tag">official</a>
</nav>
<h1 id="clickhouse">ClickHouse</h1>
<p><a href="https://clickhouse.com/">ClickHouse</a> is a fast open-source column-oriented database management system that allows generating analytical data reports in real-time using SQL queries.</p>
<p>The ClickHouse Wrapper allows you to read and write data from ClickHouse within your Postgres database.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Restoring a logical backup of a database with a materialized view using a foreign table can fail. For this reason, either do not use foreign tables in materialized views or use them in databases with physical backups enabled.</p>
</div>
<h2 id="supported-data-types">Supported Data Types</h2>
<div class="md-typeset__scrollwrap"><div class="md-typeset__table"><table>
<thead>
<tr>
<th>Postgres Type</th>
<th>ClickHouse Type</th>
</tr>
</thead>
<tbody>
<tr>
<td>boolean</td>
<td>UInt8</td>
</tr>
<tr>
<td>smallint</td>
<td>Int16</td>
</tr>
<tr>
<td>integer</td>
<td>UInt16</td>
</tr>
<tr>
<td>integer</td>
<td>Int32</td>
</tr>
<tr>
<td>bigint</td>
<td>UInt32</td>
</tr>
<tr>
<td>bigint</td>
<td>Int64</td>
</tr>
<tr>
<td>bigint</td>
<td>UInt64</td>
</tr>
<tr>
<td>real</td>
<td>Float32</td>
</tr>
<tr>
<td>double precision</td>
<td>Float64</td>
</tr>
<tr>
<td>text</td>
<td>String</td>
</tr>
<tr>
<td>date</td>
<td>Date</td>
</tr>
<tr>
<td>timestamp</td>
<td>DateTime</td>
</tr>
</tbody>
</table></div></div>
<h2 id="preparation">Preparation</h2>
<p>Before you get started, make sure the <code>wrappers</code> extension is installed on your database:</p>
<div class="highlight"><table class="highlighttable"><tbody><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span></pre></div></td><td class="code"><div><pre id="__code_0"><span></span><button class="md-clipboard md-icon" title="Copy to clipboard" data-clipboard-target="#__code_0 > code"></button><code><span class="k">create</span><span class="w"> </span><span class="n">extension</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="k">not</span><span class="w"> </span><span class="k">exists</span><span class="w"> </span><span class="n">wrappers</span><span class="w"> </span><span class="k">with</span><span class="w"> </span><span class="k">schema</span><span class="w"> </span><span class="n">extensions</span><span class="p">;</span>
</code></pre></div></td></tr></tbody></table></div>
<p>and then create the foreign data wrapper:</p>
<div class="highlight"><table class="highlighttable"><tbody><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span></pre></div></td><td class="code"><div><pre id="__code_1"><span></span><button class="md-clipboard md-icon" title="Copy to clipboard" data-clipboard-target="#__code_1 > code"></button><code><span class="k">create</span><span class="w"> </span><span class="k">foreign</span><span class="w"> </span><span class="k">data</span><span class="w"> </span><span class="n">wrapper</span><span class="w"> </span><span class="n">clickhouse_wrapper</span>
<span class="w"> </span><span class="k">handler</span><span class="w"> </span><span class="n">click_house_fdw_handler</span>
<span class="w"> </span><span class="k">validator</span><span class="w"> </span><span class="n">click_house_fdw_validator</span><span class="p">;</span>
</code></pre></div></td></tr></tbody></table></div>
<h3 id="secure-your-credentials-optional">Secure your credentials (optional)</h3>
<p>By default, Postgres stores FDW credentials inide <code>pg_catalog.pg_foreign_server</code> in plain text. Anyone with access to this table will be able to view these credentials. Wrappers is designed to work with <a href="https://supabase.com/docs/guides/database/vault">Vault</a>, which provides an additional level of security for storing credentials. We recommend using Vault to store your credentials.</p>
<div class="highlight"><table class="highlighttable"><tbody><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span>
<span class="normal">6</span>
<span class="normal">7</span></pre></div></td><td class="code"><div><pre id="__code_2"><span></span><button class="md-clipboard md-icon" title="Copy to clipboard" data-clipboard-target="#__code_2 > code"></button><code><span class="c1">-- Save your ClickHouse credential in Vault and retrieve the `key_id`</span>
<span class="k">insert</span><span class="w"> </span><span class="k">into</span><span class="w"> </span><span class="n">vault</span><span class="p">.</span><span class="n">secrets</span><span class="w"> </span><span class="p">(</span><span class="n">name</span><span class="p">,</span><span class="w"> </span><span class="n">secret</span><span class="p">)</span>
<span class="k">values</span><span class="w"> </span><span class="p">(</span>
<span class="w"> </span><span class="s1">'clickhouse'</span><span class="p">,</span>
<span class="w"> </span><span class="s1">'tcp://default:@localhost:9000/default'</span>
<span class="p">)</span>
<span class="n">returning</span><span class="w"> </span><span class="n">key_id</span><span class="p">;</span>
</code></pre></div></td></tr></tbody></table></div>
<h3 id="connecting-to-clickhouse">Connecting to ClickHouse</h3>
<p>We need to provide Postgres with the credentials to connect to ClickHouse, and any additional options. We can do this using the <code>create server</code> command:</p>
<div class="tabbed-set tabbed-alternate" data-tabs="1:2" style="--md-indicator-x: 0px; --md-indicator-width: 95px;"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio"><input id="__tabbed_1_2" name="__tabbed_1" type="radio"><div class="tabbed-labels tabbed-labels--linked"><label for="__tabbed_1_1"><a href="#__tabbed_1_1" tabindex="-1">With Vault</a></label><label for="__tabbed_1_2"><a href="#__tabbed_1_2" tabindex="-1">Without Vault</a></label></div>
<div class="tabbed-content">
<div class="tabbed-block">
<div class="highlight"><table class="highlighttable"><tbody><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre id="__code_3"><span></span><button class="md-clipboard md-icon" title="Copy to clipboard" data-clipboard-target="#__code_3 > code"></button><code><span class="k">create</span><span class="w"> </span><span class="n">server</span><span class="w"> </span><span class="n">clickhouse_server</span>
<span class="w"> </span><span class="k">foreign</span><span class="w"> </span><span class="k">data</span><span class="w"> </span><span class="n">wrapper</span><span class="w"> </span><span class="n">clickhouse_wrapper</span>
<span class="w"> </span><span class="k">options</span><span class="w"> </span><span class="p">(</span>
<span class="w"> </span><span class="n">conn_string_id</span><span class="w"> </span><span class="s1">'<key_ID>'</span><span class="w"> </span><span class="c1">-- The Key ID from above.</span>
<span class="w"> </span><span class="p">);</span>
</code></pre></div></td></tr></tbody></table></div>
</div>
<div class="tabbed-block">
<div class="highlight"><table class="highlighttable"><tbody><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre id="__code_4"><span></span><button class="md-clipboard md-icon" title="Copy to clipboard" data-clipboard-target="#__code_4 > code"></button><code><span class="k">create</span><span class="w"> </span><span class="n">server</span><span class="w"> </span><span class="n">clickhouse_server</span>
<span class="w"> </span><span class="k">foreign</span><span class="w"> </span><span class="k">data</span><span class="w"> </span><span class="n">wrapper</span><span class="w"> </span><span class="n">clickhouse_wrapper</span>
<span class="w"> </span><span class="k">options</span><span class="w"> </span><span class="p">(</span>
<span class="w"> </span><span class="n">conn_string</span><span class="w"> </span><span class="s1">'tcp://default:@localhost:9000/default'</span>
<span class="w"> </span><span class="p">);</span>
</code></pre></div></td></tr></tbody></table></div>
</div>
</div>
<div class="tabbed-control tabbed-control--prev" hidden=""><button class="tabbed-button" tabindex="-1" aria-hidden="true"></button></div><div class="tabbed-control tabbed-control--next" hidden=""><button class="tabbed-button" tabindex="-1" aria-hidden="true"></button></div></div>
<p>Some connection string examples:</p>
<ul>
<li><code>tcp://user:password@host:9000/clicks?compression=lz4&ping_timeout=42ms</code></li>
<li><code>tcp://default:[email protected]:9440/default?connection_timeout=30s&ping_before_query=false&secure=true</code></li>
</ul>
<p>Check <a href="https://github.com/suharev7/clickhouse-rs#dns">more connection string parameters</a>.</p>
<h2 id="creating-foreign-tables">Creating Foreign Tables</h2>
<p>The ClickHouse Wrapper supports data reads and writes from ClickHouse.</p>
<div class="md-typeset__scrollwrap"><div class="md-typeset__table"><table>
<thead>
<tr>
<th>Integration</th>
<th style="text-align: center;">Select</th>
<th style="text-align: center;">Insert</th>
<th style="text-align: center;">Update</th>
<th style="text-align: center;">Delete</th>
<th style="text-align: center;">Truncate</th>
</tr>
</thead>
<tbody>
<tr>
<td>ClickHouse</td>
<td style="text-align: center;">✅</td>
<td style="text-align: center;">✅</td>
<td style="text-align: center;">✅</td>
<td style="text-align: center;">✅</td>
<td style="text-align: center;">❌</td>
</tr>
</tbody>
</table></div></div>
<p>For example:</p>
<div class="highlight"><table class="highlighttable"><tbody><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span>
<span class="normal">6</span>
<span class="normal">7</span>
<span class="normal">8</span></pre></div></td><td class="code"><div><pre id="__code_5"><span></span><button class="md-clipboard md-icon" title="Copy to clipboard" data-clipboard-target="#__code_5 > code"></button><code><span class="k">create</span><span class="w"> </span><span class="k">foreign</span><span class="w"> </span><span class="k">table</span><span class="w"> </span><span class="n">my_clickhouse_table</span><span class="w"> </span><span class="p">(</span>
<span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="nb">bigint</span><span class="p">,</span>
<span class="w"> </span><span class="n">name</span><span class="w"> </span><span class="nb">text</span>
<span class="p">)</span>
<span class="w"> </span><span class="n">server</span><span class="w"> </span><span class="n">clickhouse_server</span>
<span class="w"> </span><span class="k">options</span><span class="w"> </span><span class="p">(</span>
<span class="w"> </span><span class="k">table</span><span class="w"> </span><span class="s1">'people'</span>
<span class="w"> </span><span class="p">);</span>
</code></pre></div></td></tr></tbody></table></div>
<h3 id="foreign-table-options">Foreign table options</h3>
<p>The full list of foreign table options are below:</p>
<ul>
<li><code>table</code> - Source table name in ClickHouse, required.</li>
</ul>
<p>This can also be a subquery enclosed in parentheses, for example,</p>
<div class="highlight"><table class="highlighttable"><tbody><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span></pre></div></td><td class="code"><div><pre id="__code_6"><span></span><button class="md-clipboard md-icon" title="Copy to clipboard" data-clipboard-target="#__code_6 > code"></button><code><span class="k">table</span><span class="w"> </span><span class="s1">'(select * from my_table)'</span>
</code></pre></div></td></tr></tbody></table></div>
<p><a href="https://clickhouse.com/docs/en/sql-reference/statements/create/view#parameterized-view">Parametrized view</a> is also supported in the subquery. In this case, you need to define a column for each parameter and use <code>where</code> to pass values to them. For example,</p>
<div class="highlight"><table class="highlighttable"><tbody><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span>
<span class="normal">12</span>
<span class="normal">13</span></pre></div></td><td class="code"><div><pre id="__code_7"><span></span><button class="md-clipboard md-icon" title="Copy to clipboard" data-clipboard-target="#__code_7 > code"></button><code><span class="w"> </span><span class="k">create</span><span class="w"> </span><span class="k">foreign</span><span class="w"> </span><span class="k">table</span><span class="w"> </span><span class="n">test_vw</span><span class="w"> </span><span class="p">(</span>
<span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="nb">bigint</span><span class="p">,</span>
<span class="w"> </span><span class="n">col1</span><span class="w"> </span><span class="nb">text</span><span class="p">,</span>
<span class="w"> </span><span class="n">col2</span><span class="w"> </span><span class="nb">bigint</span><span class="p">,</span>
<span class="w"> </span><span class="n">_param1</span><span class="w"> </span><span class="nb">text</span><span class="p">,</span>
<span class="w"> </span><span class="n">_param2</span><span class="w"> </span><span class="nb">bigint</span>
<span class="w"> </span><span class="p">)</span>
<span class="w"> </span><span class="n">server</span><span class="w"> </span><span class="n">clickhouse_server</span>
<span class="w"> </span><span class="k">options</span><span class="w"> </span><span class="p">(</span>
<span class="w"> </span><span class="k">table</span><span class="w"> </span><span class="s1">'(select * from my_view(column1=${_param1}, column2=${_param2}))'</span>
<span class="w"> </span><span class="p">);</span>
<span class="w"> </span><span class="k">select</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">from</span><span class="w"> </span><span class="n">test_vw</span><span class="w"> </span><span class="k">where</span><span class="w"> </span><span class="n">_param1</span><span class="o">=</span><span class="s1">'aaa'</span><span class="w"> </span><span class="k">and</span><span class="w"> </span><span class="n">_param2</span><span class="o">=</span><span class="mi">32</span><span class="p">;</span>
</code></pre></div></td></tr></tbody></table></div>
<ul>
<li><code>rowid_column</code> - Primary key column name, optional for data scan, required for data modify</li>
</ul>
<h2 id="query-pushdown-support">Query Pushdown Support</h2>
<p>This FDW supports <code>where</code>, <code>order by</code> and <code>limit</code> clause pushdown, as well as parametrized view (see above).</p>
<h2 id="examples">Examples</h2>
<p>Some examples on how to use ClickHouse foreign tables.</p>
<h3 id="basic-example">Basic example</h3>
<p>This will create a "foreign table" inside your Postgres database called <code>people</code>:</p>
<div class="highlight"><table class="highlighttable"><tbody><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span></pre></div></td><td class="code"><div><pre id="__code_8"><span></span><button class="md-clipboard md-icon" title="Copy to clipboard" data-clipboard-target="#__code_8 > code"></button><code><span class="c1">-- Run below SQLs on ClickHouse to create source table</span>
<span class="k">drop</span><span class="w"> </span><span class="k">table</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="k">exists</span><span class="w"> </span><span class="n">people</span><span class="p">;</span>
<span class="k">create</span><span class="w"> </span><span class="k">table</span><span class="w"> </span><span class="n">people</span><span class="w"> </span><span class="p">(</span>
<span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="n">Int64</span><span class="p">,</span>
<span class="w"> </span><span class="n">name</span><span class="w"> </span><span class="n">String</span>
<span class="p">)</span>
<span class="n">engine</span><span class="o">=</span><span class="n">MergeTree</span><span class="p">()</span>
<span class="k">order</span><span class="w"> </span><span class="k">by</span><span class="w"> </span><span class="n">id</span><span class="p">;</span>
<span class="c1">-- Add some test data</span>
<span class="k">insert</span><span class="w"> </span><span class="k">into</span><span class="w"> </span><span class="n">people</span><span class="w"> </span><span class="k">values</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="s1">'Luke Skywalker'</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="s1">'Leia Organa'</span><span class="p">),</span><span class="w"> </span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="s1">'Han Solo'</span><span class="p">);</span>
</code></pre></div></td></tr></tbody></table></div>
<p>Create foreign table on Postgres database:</p>
<div class="highlight"><table class="highlighttable"><tbody><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span>
<span class="normal">12</span>
<span class="normal">13</span>
<span class="normal">14</span>
<span class="normal">15</span>
<span class="normal">16</span></pre></div></td><td class="code"><div><pre id="__code_9"><span></span><button class="md-clipboard md-icon" title="Copy to clipboard" data-clipboard-target="#__code_9 > code"></button><code><span class="k">create</span><span class="w"> </span><span class="k">foreign</span><span class="w"> </span><span class="k">table</span><span class="w"> </span><span class="n">people</span><span class="w"> </span><span class="p">(</span>
<span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="nb">bigint</span><span class="p">,</span>
<span class="w"> </span><span class="n">name</span><span class="w"> </span><span class="nb">text</span>
<span class="p">)</span>
<span class="w"> </span><span class="n">server</span><span class="w"> </span><span class="n">clickhouse_server</span>
<span class="w"> </span><span class="k">options</span><span class="w"> </span><span class="p">(</span>
<span class="w"> </span><span class="k">table</span><span class="w"> </span><span class="s1">'people'</span>
<span class="w"> </span><span class="p">);</span>
<span class="c1">-- data scan</span>
<span class="k">select</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">from</span><span class="w"> </span><span class="n">people</span><span class="p">;</span>
<span class="c1">-- data modify</span>
<span class="k">insert</span><span class="w"> </span><span class="k">into</span><span class="w"> </span><span class="n">people</span><span class="w"> </span><span class="k">values</span><span class="w"> </span><span class="p">(</span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="s1">'Yoda'</span><span class="p">);</span>
<span class="k">update</span><span class="w"> </span><span class="n">people</span><span class="w"> </span><span class="k">set</span><span class="w"> </span><span class="n">name</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'Princess Leia'</span><span class="w"> </span><span class="k">where</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span>
<span class="k">delete</span><span class="w"> </span><span class="k">from</span><span class="w"> </span><span class="n">people</span><span class="w"> </span><span class="k">where</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">3</span><span class="p">;</span>
</code></pre></div></td></tr></tbody></table></div>
</article>
</div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
</main>
<footer class="md-footer">
<nav class="md-footer__inner md-grid" aria-label="Footer">
<a href="../bigquery/" class="md-footer__link md-footer__link--prev" aria-label="Previous: BigQuery">
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"></path></svg>
</div>
<div class="md-footer__title">
<span class="md-footer__direction">
Previous
</span>
<div class="md-ellipsis">
BigQuery
</div>
</div>
</a>
<a href="../firebase/" class="md-footer__link md-footer__link--next" aria-label="Next: Firebase">
<div class="md-footer__title">
<span class="md-footer__direction">
Next
</span>
<div class="md-ellipsis">
Firebase
</div>
</div>
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4Z"></path></svg>
</div>
</a>
</nav>
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
<div class="md-copyright__highlight">
Copyright © Supabase
</div>
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
<div class="md-social">
<a href="https://x.com/supabase" target="_blank" rel="noopener" title="Supabase on Twitter" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"></path></svg>
</a>
<a href="https://reddit.com/r/supabase" target="_blank" rel="noopener" title="Supabase on Reddit" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M0 256C0 114.6 114.6 0 256 0s256 114.6 256 256-114.6 256-256 256H37.1c-13.7 0-20.5-16.5-10.9-26.2L75 437C28.7 390.7 0 326.7 0 256zm349.6-102.4c23.6 0 42.7-19.1 42.7-42.7s-19.1-42.7-42.7-42.7c-20.6 0-37.8 14.6-41.8 34-34.5 3.7-61.4 33-61.4 68.4v.2c-37.5 1.6-71.8 12.3-99 29.1-10.1-7.8-22.8-12.5-36.5-12.5-33 0-59.8 26.8-59.8 59.8 0 24 14.1 44.6 34.4 54.1 2 69.4 77.6 125.2 170.6 125.2s168.7-55.9 170.6-125.3c20.2-9.6 34.1-30.2 34.1-54 0-33-26.8-59.8-59.8-59.8-13.7 0-26.3 4.6-36.4 12.4-27.4-17-62.1-27.7-100-29.1v-.2c0-25.4 18.9-46.5 43.4-49.9 4.4 18.8 21.3 32.8 41.5 32.8zm-172.5 93.3c16.7 0 29.5 17.6 28.5 39.3s-13.5 29.6-30.3 29.6-31.4-8.8-30.4-30.5S160.3 247 177 247zm190.1 38.3c1 21.7-13.7 30.5-30.4 30.5s-29.3-7.9-30.3-29.6c-1-21.7 11.8-39.3 28.5-39.3s31.2 16.6 32.1 38.3zm-48.1 56.7c-10.3 24.6-34.6 41.9-63 41.9s-52.7-17.3-63-41.9c-1.2-2.9.8-6.2 3.9-6.5 18.4-1.9 38.3-2.9 59.1-2.9s40.7 1 59.1 2.9c3.1.3 5.1 3.6 3.9 6.5z"></path></svg>
</a>
<a href="https://github.com/supabase/wrappers" target="_blank" rel="noopener" title="Wrappers on GitHub" class="md-social__link">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!--! Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg>
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "../..", "features": ["content.code.annotate", "content.code.copy", "navigation.expand", "navigation.tabs", "navigation.tabs.sticky", "navigation.sections", "navigation.indexes", "navigation.footer"], "search": "../../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../../assets/javascripts/bundle.fe8b6f2b.min.js"></script>
</body></html>