diff --git a/apps/www/_blog/2020-07-09-postgresql-templates.mdx b/apps/www/_blog/2020-07-09-postgresql-templates.mdx index 5c9b89db869..a413c23cc50 100644 --- a/apps/www/_blog/2020-07-09-postgresql-templates.mdx +++ b/apps/www/_blog/2020-07-09-postgresql-templates.mdx @@ -87,3 +87,14 @@ CREATE DATABASE new_db_name ENCODING 'SQL_ASCII'; ## Conclusion To quickly sum things up, we found out that new databases are, by default, created from a template database called `template1`. `template1` can be modified in any way we please and the changes would be present in any database created afterward. We can also create custom template databases and base new databases from them instead. If things go awry, `template0` is always there to help. + +## More Postgres resources + +- [Implementing "seen by" functionality with Postgres](https://supabase.com/blog/2022/07/18/seen-by-in-postgresql) +- [Partial data dumps using Postgres Row Level Security](https://supabase.com/blog/2022/06/28/partial-postgresql-data-dumps-with-rls) +- [Postgres Views](https://supabase.com/blog/2020/11/18/postgresql-views) +- [Postgres Auditing in 150 lines of SQL](https://supabase.com/blog/2022/03/08/audit) +- [Cracking PostgreSQL Interview Questions](https://supabase.com/blog/2021/02/27/cracking-postgres-interview) +- [Realtime Postgres RLS on Supabase](https://supabase.com/blog/2021/12/01/realtime-row-level-security-in-postgresql) + + diff --git a/apps/www/_blog/2020-07-17-postgresql-physical-logical-backups.mdx b/apps/www/_blog/2020-07-17-postgresql-physical-logical-backups.mdx index fd1e42c2191..b4163af60fc 100644 --- a/apps/www/_blog/2020-07-17-postgresql-physical-logical-backups.mdx +++ b/apps/www/_blog/2020-07-17-postgresql-physical-logical-backups.mdx @@ -74,3 +74,14 @@ All in all, logical and physical backups are generated differently from one anot | Simpler way of getting started with backups. | Better way of handling backups for larger database clusters. | | Using it to migrate between different major versions of Postgres. | Using it for Point in Time Recovery. | | Having the option to back up a single database. | | + +## More Postgres resources + +- [Implementing "seen by" functionality with Postgres](https://supabase.com/blog/2022/07/18/seen-by-in-postgresql) +- [Partial data dumps using Postgres Row Level Security](https://supabase.com/blog/2022/06/28/partial-postgresql-data-dumps-with-rls) +- [Postgres Views](https://supabase.com/blog/2020/11/18/postgresql-views) +- [Postgres Auditing in 150 lines of SQL](https://supabase.com/blog/2022/03/08/audit) +- [Cracking PostgreSQL Interview Questions](https://supabase.com/blog/2021/02/27/cracking-postgres-interview) +- [What are PostgreSQL Templates?](https://supabase.com/blog/2020/07/09/postgresql-templates) +- [Realtime Postgres RLS on Supabase](https://supabase.com/blog/2021/12/01/realtime-row-level-security-in-postgresql) + diff --git a/apps/www/_blog/2020-08-02-continuous-postgresql-backup-walg.mdx b/apps/www/_blog/2020-08-02-continuous-postgresql-backup-walg.mdx index 78be2e20eaa..682dc875dba 100644 --- a/apps/www/_blog/2020-08-02-continuous-postgresql-backup-walg.mdx +++ b/apps/www/_blog/2020-08-02-continuous-postgresql-backup-walg.mdx @@ -185,3 +185,14 @@ $ sudo /etc/init.d/postgresql start ``` Once Postgres finishes starting up and completes recovery mode, all data or data up to the specified point in time would have been successfully restored on to the new instance. Disaster averted. + +## More Postgres resources + +- [Implementing "seen by" functionality with Postgres](https://supabase.com/blog/2022/07/18/seen-by-in-postgresql) +- [Partial data dumps using Postgres Row Level Security](https://supabase.com/blog/2022/06/28/partial-postgresql-data-dumps-with-rls) +- [Postgres Auditing in 150 lines of SQL](https://supabase.com/blog/2022/03/08/audit) +- [Postgres Views](https://supabase.com/blog/2020/11/18/postgresql-views) +- [Cracking PostgreSQL Interview Questions](https://supabase.com/blog/2021/02/27/cracking-postgres-interview) +- [What are PostgreSQL Templates?](https://supabase.com/blog/2020/07/09/postgresql-templates) +- [Realtime Postgres RLS on Supabase](https://supabase.com/blog/2021/12/01/realtime-row-level-security-in-postgresql) + diff --git a/apps/www/_blog/2020-11-18-postgresql-views.mdx b/apps/www/_blog/2020-11-18-postgresql-views.mdx index af57c6e40bb..b6cae8d55d8 100644 --- a/apps/www/_blog/2020-11-18-postgresql-views.mdx +++ b/apps/www/_blog/2020-11-18-postgresql-views.mdx @@ -182,3 +182,12 @@ Creating a materialized view is not a solution to inefficient queries. You shoul ### Conclusion Postgres views and materialized views are a great way to organize and view results from commonly used queries. Although similar to one another, each has its purpose. Views simplify the process of running queries. Materialized views are usually faster at returning results, with the trade-off of having stale data. + +## More Postgres resources + +- [Implementing "seen by" functionality with Postgres](https://supabase.com/blog/2022/07/18/seen-by-in-postgresql) +- [Partial data dumps using Postgres Row Level Security](https://supabase.com/blog/2022/06/28/partial-postgresql-data-dumps-with-rls) +- [Postgres Auditing in 150 lines of SQL](https://supabase.com/blog/2022/03/08/audit) +- [Cracking PostgreSQL Interview Questions](https://supabase.com/blog/2021/02/27/cracking-postgres-interview) +- [What are PostgreSQL Templates?](https://supabase.com/blog/2020/07/09/postgresql-templates) +- [Realtime Postgres RLS on Supabase](https://supabase.com/blog/2021/12/01/realtime-row-level-security-in-postgresql) diff --git a/apps/www/_blog/2021-02-27-cracking-postgres-interview.mdx b/apps/www/_blog/2021-02-27-cracking-postgres-interview.mdx index 2930922395e..f522c0b76a0 100644 --- a/apps/www/_blog/2021-02-27-cracking-postgres-interview.mdx +++ b/apps/www/_blog/2021-02-27-cracking-postgres-interview.mdx @@ -156,3 +156,13 @@ If you can reason about most of the topics in this post then you'll be in a very [Get started on Supabase for free here](https://app.supabase.com) Thanks Steve Chavez for providing all the good bits of this post :) + +## More Postgres resources + +- [Implementing "seen by" functionality with Postgres](https://supabase.com/blog/2022/07/18/seen-by-in-postgresql) +- [Partial data dumps using Postgres Row Level Security](https://supabase.com/blog/2022/06/28/partial-postgresql-data-dumps-with-rls) +- [Postgres Views](https://supabase.com/blog/2020/11/18/postgresql-views) +- [Postgres Auditing in 150 lines of SQL](https://supabase.com/blog/2022/03/08/audit) +- [What are PostgreSQL Templates?](https://supabase.com/blog/2020/07/09/postgresql-templates) +- [Realtime Postgres RLS on Supabase](https://supabase.com/blog/2021/12/01/realtime-row-level-security-in-postgresql) + diff --git a/apps/www/_blog/2021-03-05-postgres-as-a-cron-server.mdx b/apps/www/_blog/2021-03-05-postgres-as-a-cron-server.mdx index a5d342bda25..9f1848dddbb 100644 --- a/apps/www/_blog/2021-03-05-postgres-as-a-cron-server.mdx +++ b/apps/www/_blog/2021-03-05-postgres-as-a-cron-server.mdx @@ -212,3 +212,13 @@ If you're familiar with `C`, you could also help `@pramsey` to implement async f There are plenty of ways to run cron jobs these days. You can trigger them from your local machine. You can install them on a VPS. You can schedule Serverless functions. You can use a paid service. You can use GitHub Actions. Is Postgres the best place to put your cron jobs? `¯\_(ツ)_/¯`. Postgres databases are free on Supabase and since it takes only one minute to [get started](https://app.supabase.com/), why not make your next cron server a Postgres database? + +## More Postgres resources + +- [Implementing "seen by" functionality with Postgres](https://supabase.com/blog/2022/07/18/seen-by-in-postgresql) +- [Partial data dumps using Postgres Row Level Security](https://supabase.com/blog/2022/06/28/partial-postgresql-data-dumps-with-rls) +- [Postgres Views](https://supabase.com/blog/2020/11/18/postgresql-views) +- [Postgres Auditing in 150 lines of SQL](https://supabase.com/blog/2022/03/08/audit) +- [Cracking PostgreSQL Interview Questions](https://supabase.com/blog/2021/02/27/cracking-postgres-interview) +- [What are PostgreSQL Templates?](https://supabase.com/blog/2020/07/09/postgresql-templates) +- [Realtime Postgres RLS on Supabase](https://supabase.com/blog/2021/12/01/realtime-row-level-security-in-postgresql) diff --git a/apps/www/_blog/2021-07-01-roles-postgres-hooks.mdx b/apps/www/_blog/2021-07-01-roles-postgres-hooks.mdx index aef471ea730..69d275644c1 100644 --- a/apps/www/_blog/2021-07-01-roles-postgres-hooks.mdx +++ b/apps/www/_blog/2021-07-01-roles-postgres-hooks.mdx @@ -405,5 +405,15 @@ The full SupaUtils code is in our [GitHub repository](https://github.com/supaba By the way, if you like working on PostgreSQL tooling and extensions: we are hiring [PostgreSQL experts](/docs/careers/postgres-experts)! +## More Postgres resources + +- [Implementing "seen by" functionality with Postgres](https://supabase.com/blog/2022/07/18/seen-by-in-postgresql) +- [Partial data dumps using Postgres Row Level Security](https://supabase.com/blog/2022/06/28/partial-postgresql-data-dumps-with-rls) +- [Postgres Views](https://supabase.com/blog/2020/11/18/postgresql-views) +- [Postgres Auditing in 150 lines of SQL](https://supabase.com/blog/2022/03/08/audit) +- [Cracking PostgreSQL Interview Questions](https://supabase.com/blog/2021/02/27/cracking-postgres-interview) +- [What are PostgreSQL Templates?](https://supabase.com/blog/2020/07/09/postgresql-templates) +- [Realtime Postgres RLS on Supabase](https://supabase.com/blog/2021/12/01/realtime-row-level-security-in-postgresql) + [^1]: You can see the `ProcessUtility_hook` declaration [here](https://github.com/postgres/postgres/blob/11e9caff82bc7326e2bc9782937cb03875050cc4/src/backend/tcop/utility.c#L75-L76) and its usage [here](https://github.com/postgres/postgres/blob/11e9caff82bc7326e2bc9782937cb03875050cc4/src/backend/tcop/utility.c#L515-L527). [^2]: This is also done on [pg_stat_statements](https://github.com/postgres/postgres/blob/6991e774e0304f5ef488cf1ae4fa79578b6ae3d5/contrib/pg_stat_statements/pg_stat_statements.c#L1130-L1137) and [sepgsql](https://github.com/postgres/postgres/blob/6991e774e0304f5ef488cf1ae4fa79578b6ae3d5/contrib/sepgsql/hooks.c#L381-L388). diff --git a/apps/www/_blog/2021-07-26-supabase-postgres-13.mdx b/apps/www/_blog/2021-07-26-supabase-postgres-13.mdx index 1658ba6a00c..cbd2ad014f9 100644 --- a/apps/www/_blog/2021-07-26-supabase-postgres-13.mdx +++ b/apps/www/_blog/2021-07-26-supabase-postgres-13.mdx @@ -120,3 +120,15 @@ Each offering will be available for both the `x86` and `arm` architectures. ## Try PostgreSQL 13 Try the new features of PostgreSQL 13.3 today by creating a [new project](https://app.supabase.com/) on Supabase. + +## More Postgres resources + +- [Realtime Postgres RLS on Supabase](https://supabase.com/blog/2021/12/01/realtime-row-level-security-in-postgresql) +- [Implementing "seen by" functionality with Postgres](https://supabase.com/blog/2022/07/18/seen-by-in-postgresql) +- [Partial data dumps using Postgres Row Level Security](https://supabase.com/blog/2022/06/28/partial-postgresql-data-dumps-with-rls) +- [Postgres Views](https://supabase.com/blog/2020/11/18/postgresql-views) +- [Postgres Auditing in 150 lines of SQL](https://supabase.com/blog/2022/03/08/audit) +- [Cracking PostgreSQL Interview Questions](https://supabase.com/blog/2021/02/27/cracking-postgres-interview) +- [What are PostgreSQL Templates?](https://supabase.com/blog/2020/07/09/postgresql-templates) + + diff --git a/apps/www/_blog/2021-11-28-postgrest-9.mdx b/apps/www/_blog/2021-11-28-postgrest-9.mdx index 1fec332bb9e..de2df5fb694 100644 --- a/apps/www/_blog/2021-11-28-postgrest-9.mdx +++ b/apps/www/_blog/2021-11-28-postgrest-9.mdx @@ -107,3 +107,14 @@ There are a lot more improvements released in PostgREST 9, including [support fo [improved doc](https://postgrest.org/en/v9.0/releases/v9.0.0.html#documentation-improvements), and [bug fixes](https://postgrest.org/en/v9.0/releases/v9.0.0.html#bug-fixes). You can see the full updates on the [PostgREST 9 release notes](https://postgrest.org/en/v9.0/releases/v9.0.0.html). + +## More Postgres resources + +- [Implementing "seen by" functionality with Postgres](https://supabase.com/blog/2022/07/18/seen-by-in-postgresql) +- [Partial data dumps using Postgres Row Level Security](https://supabase.com/blog/2022/06/28/partial-postgresql-data-dumps-with-rls) +- [Postgres Views](https://supabase.com/blog/2020/11/18/postgresql-views) +- [Postgres Auditing in 150 lines of SQL](https://supabase.com/blog/2022/03/08/audit) +- [Cracking PostgreSQL Interview Questions](https://supabase.com/blog/2021/02/27/cracking-postgres-interview) +- [What are PostgreSQL Templates?](https://supabase.com/blog/2020/07/09/postgresql-templates) +- [Realtime Postgres RLS on Supabase](https://supabase.com/blog/2021/12/01/realtime-row-level-security-in-postgresql) + diff --git a/apps/www/_blog/2021-11-28-whats-new-in-postgres-14.mdx b/apps/www/_blog/2021-11-28-whats-new-in-postgres-14.mdx index 69ac8dc907a..40f75c79b2e 100644 --- a/apps/www/_blog/2021-11-28-whats-new-in-postgres-14.mdx +++ b/apps/www/_blog/2021-11-28-whats-new-in-postgres-14.mdx @@ -164,3 +164,13 @@ There's no better way to experience some of these features than by trying them o You can check out these new features within your Supabase project without having to perform a local installation. Explore the [Supabase dashboard now](https://app.supabase.com) and get started with your new project. + +## More Postgres resources + +- [Implementing "seen by" functionality with Postgres](https://supabase.com/blog/2022/07/18/seen-by-in-postgresql) +- [Partial data dumps using Postgres Row Level Security](https://supabase.com/blog/2022/06/28/partial-postgresql-data-dumps-with-rls) +- [Postgres Views](https://supabase.com/blog/2020/11/18/postgresql-views) +- [Postgres Auditing in 150 lines of SQL](https://supabase.com/blog/2022/03/08/audit) +- [Cracking PostgreSQL Interview Questions](https://supabase.com/blog/2021/02/27/cracking-postgres-interview) +- [What are PostgreSQL Templates?](https://supabase.com/blog/2020/07/09/postgresql-templates) +- [Realtime Postgres RLS on Supabase](https://supabase.com/blog/2021/12/01/realtime-row-level-security-in-postgresql) diff --git a/apps/www/_blog/2021-12-01-realtime-row-level-security-in-postgresql.mdx b/apps/www/_blog/2021-12-01-realtime-row-level-security-in-postgresql.mdx index 23a9549d971..d51507e29c8 100644 --- a/apps/www/_blog/2021-12-01-realtime-row-level-security-in-postgresql.mdx +++ b/apps/www/_blog/2021-12-01-realtime-row-level-security-in-postgresql.mdx @@ -178,9 +178,18 @@ Use single column primary keys with a fixed field size (integer, uuid, etc.) ove Realtime RLS is available today on all existing and new Supabase projects. To get started, upgrade your Supabase JavaScript client to version v1.23.0 and launch your new PostgreSQL database today: [database.new](https://database.new) +## More Postgres resources + +- [Implementing "seen by" functionality with Postgres](https://supabase.com/blog/2022/07/18/seen-by-in-postgresql) +- [Partial data dumps using Postgres Row Level Security](https://supabase.com/blog/2022/06/28/partial-postgresql-data-dumps-with-rls) +- [Postgres Views](https://supabase.com/blog/2020/11/18/postgresql-views) +- [Postgres Auditing in 150 lines of SQL](https://supabase.com/blog/2022/03/08/audit) +- [Cracking PostgreSQL Interview Questions](https://supabase.com/blog/2021/02/27/cracking-postgres-interview) +- [What are PostgreSQL Templates?](https://supabase.com/blog/2020/07/09/postgresql-templates) + ## Credits Authored by: - [Oliver Rice](https://github.com/olirice) -- [Wen Bo Xie](https://github.com/w3b6x9) \ No newline at end of file +- [Wen Bo Xie](https://github.com/w3b6x9) diff --git a/apps/www/_blog/2022-06-28-partial-postgresql-data-dumps-with-rls.mdx b/apps/www/_blog/2022-06-28-partial-postgresql-data-dumps-with-rls.mdx index f62e9b2cb0b..c23726c302e 100644 --- a/apps/www/_blog/2022-06-28-partial-postgresql-data-dumps-with-rls.mdx +++ b/apps/www/_blog/2022-06-28-partial-postgresql-data-dumps-with-rls.mdx @@ -178,3 +178,13 @@ a strategy used by [Database Lab Engine](https://postgres.ai/docs/database-lab). DLE uses the ZFS file system to achieve this, but it's within reach of the Postgres core once alternative storage strategies become easier to implement. If you want to try out the steps we described in this article, fire up a full PostgreSQL database: [database.new](https://database.new) + +## More Postgres resources + +- [Implementing "seen by" functionality with Postgres](https://supabase.com/blog/2022/07/18/seen-by-in-postgresql) +- [Postgres Views](https://supabase.com/blog/2020/11/18/postgresql-views) +- [Postgres Auditing in 150 lines of SQL](https://supabase.com/blog/2022/03/08/audit) +- [Cracking PostgreSQL Interview Questions](https://supabase.com/blog/2021/02/27/cracking-postgres-interview) +- [What are PostgreSQL Templates?](https://supabase.com/blog/2020/07/09/postgresql-templates) +- [Realtime Postgres RLS on Supabase](https://supabase.com/blog/2021/12/01/realtime-row-level-security-in-postgresql) +