From 8ce09d5d730f86136730d060a9b8c8fdde47fee2 Mon Sep 17 00:00:00 2001 From: Julien Rouhaud Date: Sun, 29 Jun 2025 16:05:03 +0800 Subject: [PATCH] Release 1.4.2 --- CHANGELOG.md | 9 ++++ debian/changelog | 6 +++ hypopg--1.4.1--1.4.2.sql | 7 +++ hypopg--1.4.2.sql | 105 +++++++++++++++++++++++++++++++++++++++ hypopg.control | 2 +- 5 files changed, 128 insertions(+), 1 deletion(-) create mode 100644 hypopg--1.4.1--1.4.2.sql create mode 100644 hypopg--1.4.2.sql diff --git a/CHANGELOG.md b/CHANGELOG.md index 6ba440f..ddba278 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,15 @@ Changelog ========= +2025-06-29 version 1.4.2: +------------------------- + + **Miscellaneous**: + + - Fix compatibility with PostgreSQL 18 (Georgy Shelkovy) + - Comment and adjust index size estimation (Stefan Halfpap) + - Documentation proofreading (Matthew D'Angelo) + 2024-04-28 version 1.4.1: ------------------------- diff --git a/debian/changelog b/debian/changelog index 0b617df..4b38bb0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +hypopg (1.4.2-1) unstable; urgency=medium + + * New upstream version. + + -- Julien Rouhaud Sun, 29 Jun 2025 16:09:43 +0800 + hypopg (1.4.1-1) unstable; urgency=medium * New upstream version. diff --git a/hypopg--1.4.1--1.4.2.sql b/hypopg--1.4.1--1.4.2.sql new file mode 100644 index 0000000..e220353 --- /dev/null +++ b/hypopg--1.4.1--1.4.2.sql @@ -0,0 +1,7 @@ +-- This program is open source, licensed under the PostgreSQL License. +-- For license terms, see the LICENSE file. +-- +-- Copyright (C) 2015-2024: Julien Rouhaud + +-- complain if script is sourced in psql, rather than via CREATE EXTENSION +\echo Use "ALTER EXTENSION hypopg" to load this file. \quit diff --git a/hypopg--1.4.2.sql b/hypopg--1.4.2.sql new file mode 100644 index 0000000..ad764f6 --- /dev/null +++ b/hypopg--1.4.2.sql @@ -0,0 +1,105 @@ +-- This program is open source, licensed under the PostgreSQL License. +-- For license terms, see the LICENSE file. +-- +-- Copyright (C) 2015-2024: Julien Rouhaud + +-- complain if script is sourced in psql, rather than via CREATE EXTENSION +\echo Use "CREATE EXTENSION hypopg" to load this file. \quit + +SET LOCAL client_encoding = 'UTF8'; + +CREATE FUNCTION hypopg_reset_index() + RETURNS void + LANGUAGE C VOLATILE COST 100 +AS '$libdir/hypopg', 'hypopg_reset_index'; + +CREATE FUNCTION hypopg_reset() + RETURNS void + LANGUAGE C VOLATILE COST 100 +AS '$libdir/hypopg', 'hypopg_reset'; + +CREATE FUNCTION +hypopg_create_index(IN sql_order text, OUT indexrelid oid, OUT indexname text) + RETURNS SETOF record + LANGUAGE C STRICT VOLATILE COST 100 +AS '$libdir/hypopg', 'hypopg_create_index'; + +CREATE FUNCTION +hypopg_drop_index(IN indexid oid) + RETURNS bool + LANGUAGE C STRICT VOLATILE COST 100 +AS '$libdir/hypopg', 'hypopg_drop_index'; + +CREATE FUNCTION hypopg(OUT indexname text, OUT indexrelid oid, + OUT indrelid oid, OUT innatts integer, + OUT indisunique boolean, OUT indkey int2vector, + OUT indcollation oidvector, OUT indclass oidvector, + OUT indoption oidvector, OUT indexprs pg_node_tree, + OUT indpred pg_node_tree, OUT amid oid) + RETURNS SETOF record + LANGUAGE c COST 100 +AS '$libdir/hypopg', 'hypopg'; + +CREATE VIEW hypopg_list_indexes +AS + SELECT h.indexrelid, h.indexname AS index_name, n.nspname AS schema_name, + coalesce(c.relname, '') AS table_name, am.amname AS am_name + FROM hypopg() h + LEFT JOIN pg_catalog.pg_class c ON c.oid = h.indrelid + LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace + LEFT JOIN pg_catalog.pg_am am ON am.oid = h.amid; + +CREATE FUNCTION +hypopg_relation_size(IN indexid oid) + RETURNS bigint +LANGUAGE C STRICT VOLATILE COST 100 +AS '$libdir/hypopg', 'hypopg_relation_size'; + +CREATE FUNCTION +hypopg_get_indexdef(IN indexid oid) + RETURNS text +LANGUAGE C STRICT VOLATILE COST 100 +AS '$libdir/hypopg', 'hypopg_get_indexdef'; + +CREATE FUNCTION +hypopg_hide_index(IN indexid oid) + RETURNS bool + LANGUAGE C STRICT VOLATILE COST 100 +AS '$libdir/hypopg', 'hypopg_hide_index'; + +CREATE FUNCTION +hypopg_unhide_index(IN indexid oid) + RETURNS bool + LANGUAGE C STRICT VOLATILE COST 100 +AS '$libdir/hypopg', 'hypopg_unhide_index'; + +CREATE FUNCTION +hypopg_unhide_all_indexes() + RETURNS void + LANGUAGE C VOLATILE COST 100 +AS '$libdir/hypopg', 'hypopg_unhide_all_indexes'; + +CREATE FUNCTION hypopg_hidden_indexes() + RETURNS TABLE (indexid oid) + LANGUAGE C STRICT VOLATILE +AS '$libdir/hypopg', 'hypopg_hidden_indexes'; + +CREATE VIEW hypopg_hidden_indexes +AS + SELECT h.indexid AS indexrelid, + i.relname AS index_name, + n.nspname AS schema_name, + t.relname AS table_name, + m.amname AS am_name, + false AS is_hypo + FROM hypopg_hidden_indexes() h + JOIN pg_index x ON x.indexrelid = h.indexid + JOIN pg_class i ON i.oid = h.indexid + JOIN pg_namespace n ON n.oid = i.relnamespace + JOIN pg_class t ON t.oid = x.indrelid + JOIN pg_am m ON m.oid = i.relam + UNION ALL + SELECT hl.*, true AS is_hypo + FROM hypopg_hidden_indexes() hi + JOIN hypopg_list_indexes hl on hl.indexrelid = hi.indexid + ORDER BY index_name; diff --git a/hypopg.control b/hypopg.control index cc2e586..ccdd60e 100644 --- a/hypopg.control +++ b/hypopg.control @@ -1,6 +1,6 @@ # hypopg extension comment = 'Hypothetical indexes for PostgreSQL' -default_version = '1.4.1' +default_version = '1.4.2' module_pathname = '$libdir/hypopg' relocatable = true