supabase-postgres.git / summary / log / commit / refs
commit 44df10ea54e28c60439b44353f6ede0b7fd12cae
Author: samrose <samuel@supabase.io>
Commit: GitHub <noreply@github.com>
Date: Thu Feb 27 21:37:12 2025 +0000
move orioledb to extensions schema (#1448)
* chore: move orioledb to extensions scehama
* ore: update schemas
* chore: create testing AMI images
* chore: bump version for release
This change targets orioledb
moving installed orioledb extension from "public" schema to "extensions" schema
ansible/vars.yml | 4 +-
migrations/README.md | 7 +-
...05144616_move_orioledb_to_extensions_schema.sql | 26 +++++
migrations/schema-orioledb-17.sql | 2 +-
nix/tests/expected/z_17_ext_interface.out | 110 ++++++++++-----------
5 files changed, 89 insertions(+), 60 deletions(-)
diff --git a/ansible/vars.yml b/ansible/vars.yml
index 4d30bc23..b49b27e8 100644
--- a/ansible/vars.yml
+++ b/ansible/vars.yml
@@ -8,8 +8,8 @@ postgres_major:
# Full version strings for each major version
postgres_release:
- postgresorioledb-17: "17.0.1.039-orioledb"
- postgres15: "15.8.1.045"
+ postgresorioledb-17: "17.0.1.040-orioledb"
+ postgres15: "15.8.1.046"
# Non Postgres Extensions
pgbouncer_release: "1.19.0"
diff --git a/migrations/README.md b/migrations/README.md
index 19d2bf4b..ef3c7215 100644
--- a/migrations/README.md
+++ b/migrations/README.md
@@ -78,15 +78,18 @@ Additionally, [supabase/postgres](https://github.com/supabase/postgres/blob/deve
### Add a Migration
+First, start a local postgres server and apply the migrations
+
```shell
# Start the database server
-docker-compose up
+nix run .#dbmate-tool -- --version 15 --flake-url "."
# create a new migration
+nix develop
dbmate new '<some message>'
```
-Then, populate the migration at `./db/migrations/xxxxxxxxx_<some_message>` and make sure it execute sucessfully with
+Then, execute the migration at `./db/migrations/xxxxxxxxx_<some_message>` and make sure it runs sucessfully with
```shell
dbmate up
diff --git a/migrations/db/migrations/20250205144616_move_orioledb_to_extensions_schema.sql b/migrations/db/migrations/20250205144616_move_orioledb_to_extensions_schema.sql
new file mode 100644
index 00000000..259a6b0e
--- /dev/null
+++ b/migrations/db/migrations/20250205144616_move_orioledb_to_extensions_schema.sql
@@ -0,0 +1,26 @@
+-- migrate:up
+do $$
+declare
+ ext_schema text;
+ extensions_schema_exists boolean;
+begin
+ -- check if the "extensions" schema exists
+ select exists (
+ select 1 from pg_namespace where nspname = 'extensions'
+ ) into extensions_schema_exists;
+
+ if extensions_schema_exists then
+ -- check if the "orioledb" extension is in the "public" schema
+ select nspname into ext_schema
+ from pg_extension e
+ join pg_namespace n on e.extnamespace = n.oid
+ where extname = 'orioledb';
+
+ if ext_schema = 'public' then
+ execute 'alter extension orioledb set schema extensions';
+ end if;
+ end if;
+end $$;
+
+-- migrate:down
+
diff --git a/migrations/schema-orioledb-17.sql b/migrations/schema-orioledb-17.sql
index 28e756fc..ed5627c7 100644
--- a/migrations/schema-orioledb-17.sql
+++ b/migrations/schema-orioledb-17.sql
@@ -91,7 +91,7 @@ CREATE SCHEMA vault;
-- Name: orioledb; Type: EXTENSION; Schema: -; Owner: -
--
-CREATE EXTENSION IF NOT EXISTS orioledb WITH SCHEMA public;
+CREATE EXTENSION IF NOT EXISTS orioledb WITH SCHEMA extensions;
--
diff --git a/nix/tests/expected/z_17_ext_interface.out b/nix/tests/expected/z_17_ext_interface.out
index 37f417f8..45090f6e 100644
--- a/nix/tests/expected/z_17_ext_interface.out
+++ b/nix/tests/expected/z_17_ext_interface.out
@@ -1078,41 +1078,41 @@ order by
ltree | public | subpath | ltree, integer, integer | ltree
ltree | public | text2ltree | text | ltree
moddatetime | public | moddatetime | | trigger
- orioledb | public | orioledb_commit_hash | | text
- orioledb | public | orioledb_compression_max_level | | bigint
- orioledb | public | orioledb_evict_pages | relid oid, maxlevel integer | void
- orioledb | public | orioledb_get_evicted_trees | OUT datoid oid, OUT relnode oid, OUT root_downlink bigint, OUT file_length bigint | SETOF record
- orioledb | public | orioledb_get_index_descrs | OUT datoid oid, OUT reloid oid, OUT relnode oid, OUT refcnt oid | SETOF record
- orioledb | public | orioledb_get_table_descrs | OUT datoid oid, OUT reloid oid, OUT relnode oid, OUT refcnt oid | SETOF record
- orioledb | public | orioledb_has_retained_undo | | boolean
- orioledb | public | orioledb_idx_structure | relid oid, tree_name text, options character varying, depth integer | text
- orioledb | public | orioledb_index_description | datoid oid, relid oid, relnode oid, index_type text, OUT name text, OUT description text | record
- orioledb | public | orioledb_index_oids | OUT datoid oid, OUT table_reloid oid, OUT table_relnode oid, OUT index_reloid oid, OUT index_relnode oid, OUT index_type text | SETOF record
- orioledb | public | orioledb_index_rows | relid oid, OUT total integer, OUT dead integer | record
- orioledb | public | orioledb_page_stats | OUT pool_name text, OUT busy_pages bigint, OUT free_pages bigint, OUT dirty_pages bigint, OUT all_pages bigint | SETOF record
- orioledb | public | orioledb_recovery_synchronized | | boolean
- orioledb | public | orioledb_relation_size | relid oid | bigint
- orioledb | public | orioledb_sys_tree_check | num integer, force_map_check boolean | boolean
- orioledb | public | orioledb_sys_tree_rows | num integer | SETOF jsonb
- orioledb | public | orioledb_sys_tree_structure | num integer, options character varying, depth integer | text
- orioledb | public | orioledb_table_description | datoid oid, relid oid, relnode oid | text
- orioledb | public | orioledb_table_description | relid oid | text
- orioledb | public | orioledb_table_oids | OUT datoid oid, OUT reloid oid, OUT relnode oid | SETOF record
- orioledb | public | orioledb_table_pages | relid oid, OUT blkno bigint, OUT level integer, OUT rightlink bigint, OUT hikey jsonb | SETOF record
- orioledb | public | orioledb_tableam_handler | internal | table_am_handler
- orioledb | public | orioledb_tbl_are_indices_equal | idx_oid1 regclass, idx_oid2 regclass | boolean
- orioledb | public | orioledb_tbl_bin_structure | relid oid, print_bytes boolean, depth integer | text
- orioledb | public | orioledb_tbl_check | relid oid, force_map_check boolean | boolean
- orioledb | public | orioledb_tbl_compression_check | level bigint, relid oid, ranges integer[] | text
- orioledb | public | orioledb_tbl_indices | relid oid | text
- orioledb | public | orioledb_tbl_structure | relid oid, options character varying, depth integer | text
- orioledb | public | orioledb_tree_stat | relid regclass, OUT level integer, OUT count bigint, OUT avgoccupied double precision, OUT avgvacated double precision | SETOF record
- orioledb | public | orioledb_ucm_check | | boolean
- orioledb | public | orioledb_version | | text
- orioledb | public | orioledb_write_pages | relid oid | void
- orioledb | public | pg_stopevent_reset | eventname text | boolean
- orioledb | public | pg_stopevent_set | eventname text, condition jsonpath | void
- orioledb | public | pg_stopevents | OUT stopevent text, OUT condition jsonpath, OUT waiter_pids integer[] | SETOF record
+ orioledb | extensions | orioledb_commit_hash | | text
+ orioledb | extensions | orioledb_compression_max_level | | bigint
+ orioledb | extensions | orioledb_evict_pages | relid oid, maxlevel integer | void
+ orioledb | extensions | orioledb_get_evicted_trees | OUT datoid oid, OUT relnode oid, OUT root_downlink bigint, OUT file_length bigint | SETOF record
+ orioledb | extensions | orioledb_get_index_descrs | OUT datoid oid, OUT reloid oid, OUT relnode oid, OUT refcnt oid | SETOF record
+ orioledb | extensions | orioledb_get_table_descrs | OUT datoid oid, OUT reloid oid, OUT relnode oid, OUT refcnt oid | SETOF record
+ orioledb | extensions | orioledb_has_retained_undo | | boolean
+ orioledb | extensions | orioledb_idx_structure | relid oid, tree_name text, options character varying, depth integer | text
+ orioledb | extensions | orioledb_index_description | datoid oid, relid oid, relnode oid, index_type text, OUT name text, OUT description text | record
+ orioledb | extensions | orioledb_index_oids | OUT datoid oid, OUT table_reloid oid, OUT table_relnode oid, OUT index_reloid oid, OUT index_relnode oid, OUT index_type text | SETOF record
+ orioledb | extensions | orioledb_index_rows | relid oid, OUT total integer, OUT dead integer | record
+ orioledb | extensions | orioledb_page_stats | OUT pool_name text, OUT busy_pages bigint, OUT free_pages bigint, OUT dirty_pages bigint, OUT all_pages bigint | SETOF record
+ orioledb | extensions | orioledb_recovery_synchronized | | boolean
+ orioledb | extensions | orioledb_relation_size | relid oid | bigint
+ orioledb | extensions | orioledb_sys_tree_check | num integer, force_map_check boolean | boolean
+ orioledb | extensions | orioledb_sys_tree_rows | num integer | SETOF jsonb
+ orioledb | extensions | orioledb_sys_tree_structure | num integer, options character varying, depth integer | text
+ orioledb | extensions | orioledb_table_description | datoid oid, relid oid, relnode oid | text
+ orioledb | extensions | orioledb_table_description | relid oid | text
+ orioledb | extensions | orioledb_table_oids | OUT datoid oid, OUT reloid oid, OUT relnode oid | SETOF record
+ orioledb | extensions | orioledb_table_pages | relid oid, OUT blkno bigint, OUT level integer, OUT rightlink bigint, OUT hikey jsonb | SETOF record
+ orioledb | extensions | orioledb_tableam_handler | internal | table_am_handler
+ orioledb | extensions | orioledb_tbl_are_indices_equal | idx_oid1 regclass, idx_oid2 regclass | boolean
+ orioledb | extensions | orioledb_tbl_bin_structure | relid oid, print_bytes boolean, depth integer | text
+ orioledb | extensions | orioledb_tbl_check | relid oid, force_map_check boolean | boolean
+ orioledb | extensions | orioledb_tbl_compression_check | level bigint, relid oid, ranges integer[] | text
+ orioledb | extensions | orioledb_tbl_indices | relid oid | text
+ orioledb | extensions | orioledb_tbl_structure | relid oid, options character varying, depth integer | text
+ orioledb | extensions | orioledb_tree_stat | relid regclass, OUT level integer, OUT count bigint, OUT avgoccupied double precision, OUT avgvacated double precision | SETOF record
+ orioledb | extensions | orioledb_ucm_check | | boolean
+ orioledb | extensions | orioledb_version | | text
+ orioledb | extensions | orioledb_write_pages | relid oid | void
+ orioledb | extensions | pg_stopevent_reset | eventname text | boolean
+ orioledb | extensions | pg_stopevent_set | eventname text, condition jsonpath | void
+ orioledb | extensions | pg_stopevents | OUT stopevent text, OUT condition jsonpath, OUT waiter_pids integer[] | SETOF record
pageinspect | public | brin_metapage_info | page bytea, OUT magic text, OUT version integer, OUT pagesperrange integer, OUT lastrevmappage bigint | record
pageinspect | public | brin_page_type | page bytea | text
pageinspect | public | brin_revmap_data | page bytea, OUT pages tid | SETOF tid
@@ -4966,26 +4966,26 @@ order by
hypopg | public | hypopg_list_indexes | indexrelid
hypopg | public | hypopg_list_indexes | schema_name
hypopg | public | hypopg_list_indexes | table_name
- orioledb | public | orioledb_index | datoid
- orioledb | public | orioledb_index | description
- orioledb | public | orioledb_index | index_relnode
- orioledb | public | orioledb_index | index_reloid
- orioledb | public | orioledb_index | index_type
- orioledb | public | orioledb_index | name
- orioledb | public | orioledb_index | table_relnode
- orioledb | public | orioledb_index | table_reloid
- orioledb | public | orioledb_index_descr | datoid
- orioledb | public | orioledb_index_descr | refcnt
- orioledb | public | orioledb_index_descr | relnode
- orioledb | public | orioledb_index_descr | reloid
- orioledb | public | orioledb_table | datoid
- orioledb | public | orioledb_table | description
- orioledb | public | orioledb_table | relnode
- orioledb | public | orioledb_table | reloid
- orioledb | public | orioledb_table_descr | datoid
- orioledb | public | orioledb_table_descr | refcnt
- orioledb | public | orioledb_table_descr | relnode
- orioledb | public | orioledb_table_descr | reloid
+ orioledb | extensions | orioledb_index | datoid
+ orioledb | extensions | orioledb_index | description
+ orioledb | extensions | orioledb_index | index_relnode
+ orioledb | extensions | orioledb_index | index_reloid
+ orioledb | extensions | orioledb_index | index_type
+ orioledb | extensions | orioledb_index | name
+ orioledb | extensions | orioledb_index | table_relnode
+ orioledb | extensions | orioledb_index | table_reloid
+ orioledb | extensions | orioledb_index_descr | datoid
+ orioledb | extensions | orioledb_index_descr | refcnt
+ orioledb | extensions | orioledb_index_descr | relnode
+ orioledb | extensions | orioledb_index_descr | reloid
+ orioledb | extensions | orioledb_table | datoid
+ orioledb | extensions | orioledb_table | description
+ orioledb | extensions | orioledb_table | relnode
+ orioledb | extensions | orioledb_table | reloid
+ orioledb | extensions | orioledb_table_descr | datoid
+ orioledb | extensions | orioledb_table_descr | refcnt
+ orioledb | extensions | orioledb_table_descr | relnode
+ orioledb | extensions | orioledb_table_descr | reloid
pg_buffercache | public | pg_buffercache | bufferid
pg_buffercache | public | pg_buffercache | isdirty
pg_buffercache | public | pg_buffercache | pinning_backends
[parent: 084b9146addd]