mirror of
https://github.com/postgres/postgres.git
synced 2026-04-04 16:55:45 -04:00
Bitmapset has a complex set of APIs, defined in bitmapset.h, and it can be hard to test edge cases with the backend core code only. This test module is aimed at closing the gap, and implements a set of SQL functions that act as wrappers of the low-level C functions of the same names. These functions rely on text as data type for the input and the output as Bitmapset as a node has support for these. An extra function, named test_random_operations(), can be used to stress bitmaps with random member values and a defined number of operations potentially useful for other purposes than only tests. The coverage increases from 85.2% to 93.4%. It should be possible to cover more code paths, but at least it's a beginning. Author: Greg Burd <greg@burd.me> Reviewed-by: Nathan Bossart <nathandbossart@gmail.com> Reviewed-by: Michael Paquier <michael@paquier.xyz> Discussion: https://postgr.es/m/7BD1ABDB-B03A-464A-9BA9-A73B55AD8A1F@getmailspring.com
136 lines
3.4 KiB
SQL
136 lines
3.4 KiB
SQL
/* src/test/modules/test_bitmapset/test_bitmapset--1.0.sql */
|
|
|
|
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
|
|
\echo Use "CREATE EXTENSION test_bitmapset" to load this file. \quit
|
|
|
|
-- Bitmapset API functions
|
|
CREATE FUNCTION test_bms_make_singleton(integer)
|
|
RETURNS text STRICT
|
|
AS 'MODULE_PATHNAME' LANGUAGE C;
|
|
|
|
CREATE FUNCTION test_bms_add_member(text, integer)
|
|
RETURNS text
|
|
AS 'MODULE_PATHNAME' LANGUAGE C;
|
|
|
|
CREATE FUNCTION test_bms_del_member(text, integer)
|
|
RETURNS text
|
|
AS 'MODULE_PATHNAME' LANGUAGE C;
|
|
|
|
CREATE FUNCTION test_bms_is_member(text, integer)
|
|
RETURNS boolean
|
|
AS 'MODULE_PATHNAME' LANGUAGE C;
|
|
|
|
CREATE FUNCTION test_bms_num_members(text)
|
|
RETURNS integer
|
|
AS 'MODULE_PATHNAME' LANGUAGE C;
|
|
|
|
CREATE FUNCTION test_bms_copy(text)
|
|
RETURNS text
|
|
AS 'MODULE_PATHNAME' LANGUAGE C;
|
|
|
|
CREATE FUNCTION test_bms_equal(text, text)
|
|
RETURNS boolean
|
|
AS 'MODULE_PATHNAME' LANGUAGE C;
|
|
|
|
CREATE FUNCTION test_bms_compare(text, text)
|
|
RETURNS integer
|
|
AS 'MODULE_PATHNAME' LANGUAGE C;
|
|
|
|
CREATE FUNCTION test_bms_is_subset(text, text)
|
|
RETURNS boolean
|
|
AS 'MODULE_PATHNAME' LANGUAGE C;
|
|
|
|
CREATE FUNCTION test_bms_subset_compare(text, text)
|
|
RETURNS integer
|
|
AS 'MODULE_PATHNAME' LANGUAGE C;
|
|
|
|
CREATE FUNCTION test_bms_union(text, text)
|
|
RETURNS text
|
|
AS 'MODULE_PATHNAME' LANGUAGE C;
|
|
|
|
CREATE FUNCTION test_bms_intersect(text, text)
|
|
RETURNS text
|
|
AS 'MODULE_PATHNAME' LANGUAGE C;
|
|
|
|
CREATE FUNCTION test_bms_difference(text, text)
|
|
RETURNS text
|
|
AS 'MODULE_PATHNAME' LANGUAGE C;
|
|
|
|
CREATE FUNCTION test_bms_is_empty(text)
|
|
RETURNS boolean
|
|
AS 'MODULE_PATHNAME' LANGUAGE C;
|
|
|
|
CREATE FUNCTION test_bms_membership(text)
|
|
RETURNS integer
|
|
AS 'MODULE_PATHNAME' LANGUAGE C;
|
|
|
|
CREATE FUNCTION test_bms_singleton_member(text)
|
|
RETURNS integer STRICT
|
|
AS 'MODULE_PATHNAME' LANGUAGE C;
|
|
|
|
CREATE FUNCTION test_bms_get_singleton_member(text, integer)
|
|
RETURNS integer
|
|
AS 'MODULE_PATHNAME' LANGUAGE C;
|
|
|
|
CREATE FUNCTION test_bms_next_member(text, integer)
|
|
RETURNS integer
|
|
AS 'MODULE_PATHNAME' LANGUAGE C;
|
|
|
|
CREATE FUNCTION test_bms_prev_member(text, integer)
|
|
RETURNS integer
|
|
AS 'MODULE_PATHNAME' LANGUAGE C;
|
|
|
|
CREATE FUNCTION test_bms_hash_value(text)
|
|
RETURNS integer
|
|
AS 'MODULE_PATHNAME' LANGUAGE C;
|
|
|
|
CREATE FUNCTION test_bms_overlap(text, text)
|
|
RETURNS boolean
|
|
AS 'MODULE_PATHNAME' LANGUAGE C;
|
|
|
|
CREATE FUNCTION test_bms_overlap_list(text, int4[])
|
|
RETURNS boolean
|
|
AS 'MODULE_PATHNAME' LANGUAGE C;
|
|
|
|
CREATE FUNCTION test_bms_nonempty_difference(text, text)
|
|
RETURNS boolean
|
|
AS 'MODULE_PATHNAME' LANGUAGE C;
|
|
|
|
CREATE FUNCTION test_bms_member_index(text, integer)
|
|
RETURNS integer
|
|
AS 'MODULE_PATHNAME' LANGUAGE C;
|
|
|
|
CREATE FUNCTION test_bms_add_range(text, integer, integer)
|
|
RETURNS text
|
|
AS 'MODULE_PATHNAME' LANGUAGE C;
|
|
|
|
CREATE FUNCTION test_bms_add_members(text, text)
|
|
RETURNS text
|
|
AS 'MODULE_PATHNAME' LANGUAGE C;
|
|
|
|
CREATE FUNCTION test_bms_int_members(text, text)
|
|
RETURNS text
|
|
AS 'MODULE_PATHNAME' LANGUAGE C;
|
|
|
|
CREATE FUNCTION test_bms_replace_members(text, text)
|
|
RETURNS text
|
|
AS 'MODULE_PATHNAME' LANGUAGE C;
|
|
|
|
CREATE FUNCTION test_bms_join(text, text)
|
|
RETURNS text
|
|
AS 'MODULE_PATHNAME' LANGUAGE C;
|
|
|
|
CREATE FUNCTION test_bitmap_hash(text)
|
|
RETURNS integer
|
|
AS 'MODULE_PATHNAME' LANGUAGE C;
|
|
|
|
CREATE FUNCTION test_bitmap_match(text, text)
|
|
RETURNS int
|
|
AS 'MODULE_PATHNAME' LANGUAGE C;
|
|
|
|
-- Test utility functions
|
|
CREATE FUNCTION test_random_operations(integer, integer, integer, integer)
|
|
RETURNS integer STRICT
|
|
AS 'MODULE_PATHNAME' LANGUAGE C;
|
|
|
|
COMMENT ON EXTENSION test_bitmapset IS 'Test code for Bitmapset';
|