Skip to content

Commit 9ed9489

Browse files
committed
Use MODULE_PATHNAME and CREATE EXTENSION
Use `MODULE_PATHNAME` in the SQL files to refer to the static library to build. This allows for the library to be renamed --- e.g., by a packaging system --- without having to change the source code, just the control file. Also use `CREATE EXTENSION` in the tests instead of loading the `sql/semver.sql` file directly. The latter was required before extension support was added to Postgres in 9.1, and 9.2 has been required since v0.20.0 back in 2018. Also note the change to the module directory in the previous commit (88b3abd), ignore generated `*.bin` files, and update the copyright year.
1 parent 88b3abd commit 9ed9489

13 files changed

+42
-36
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ regression.out
1111
/src/*.bc
1212
/semver_binary_copy.bin
1313
/.vscode
14+
/*.bin

Changes

+5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
Revision history for PostgreSQL extension semver.
22

33
0.32.2
4+
- Updated the installation configuration to install the SQL and
5+
documentation files into `semver` subdirectories.
6+
- Changed the tests to use `CREATE EXTENSION` instead of loading the
7+
SQL source file directory. The latter was required for Postgres 9.0
8+
and lower, which have not been supported since v0.20.0 back in 2018.
49

510
0.32.1 2023-08-01T23:20:31Z
611
- Fixed compilation issue on Postgres 16.

LICENSE

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Copyright (c) 2010-2023 The pg-semver Maintainers: David E. Wheeler, Sam
1+
Copyright (c) 2010-2024 The pg-semver Maintainers: David E. Wheeler, Sam
22
Vilain, Tom Davis, and Xavier Caron.
33

44
This module is free software; you can redistribute it and/or modify it under

Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ EXTVERSION = $(shell grep -m 1 '[[:space:]]\{8\}"version":' META.json | \
55
DISTVERSION = $(shell grep -m 1 '[[:space:]]\{3\}"version":' META.json | \
66
sed -e 's/[[:space:]]*"version":[[:space:]]*"\([^"]*\)",\{0,1\}/\1/')
77

8-
MODULEDIR = semver
8+
MODULEDIR = $(EXTENSION)
99
DATA = $(wildcard sql/*.sql)
1010
DOCS = $(wildcard doc/*.mmd)
1111
TESTS = $(wildcard test/sql/*.sql)

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ for testing, PL/pgSQL.
7878
Copyright and License
7979
---------------------
8080

81-
Copyright (c) 2010-2023 The pg-semver Maintainers: David E. Wheeler, Sam
81+
Copyright (c) 2010-2024 The pg-semver Maintainers: David E. Wheeler, Sam
8282
Vilain, Tom Davis, and Xavier Caron.
8383

8484
This module is free software; you can redistribute it and/or modify it under

doc/semver.mmd

+1-1
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,7 @@ Authors
342342
Copyright and License
343343
---------------------
344344

345-
Copyright (c) 2010-2023 The pg-semver Maintainers: David E. Wheeler, Sam
345+
Copyright (c) 2010-2024 The pg-semver Maintainers: David E. Wheeler, Sam
346346
Vilain, Tom Davis, and Xavier Caron.
347347

348348
This module is free software; you can redistribute it and/or modify it under

sql/semver--0.10.0--0.11.0.sql

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
CREATE OR REPLACE FUNCTION is_semver(text)
22
RETURNS bool
3-
AS 'semver'
3+
AS 'MODULE_PATHNAME'
44
LANGUAGE C STRICT IMMUTABLE;

sql/semver--0.15.0--0.16.0.sql

+4-4
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,20 @@
44

55
CREATE OR REPLACE FUNCTION get_semver_major(semver)
66
RETURNS int4
7-
AS 'semver'
7+
AS 'MODULE_PATHNAME'
88
LANGUAGE C STRICT IMMUTABLE;
99

1010
CREATE OR REPLACE FUNCTION get_semver_minor(semver)
1111
RETURNS int4
12-
AS 'semver'
12+
AS 'MODULE_PATHNAME'
1313
LANGUAGE C STRICT IMMUTABLE;
1414

1515
CREATE OR REPLACE FUNCTION get_semver_patch(semver)
1616
RETURNS int4
17-
AS 'semver'
17+
AS 'MODULE_PATHNAME'
1818
LANGUAGE C STRICT IMMUTABLE;
1919

2020
CREATE OR REPLACE FUNCTION get_semver_prerelease(semver)
2121
RETURNS text
22-
AS 'semver'
22+
AS 'MODULE_PATHNAME'
2323
LANGUAGE C STRICT IMMUTABLE;

sql/semver--0.31.2--0.32.0.sql

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
CREATE OR REPLACE FUNCTION semver_recv(internal)
22
RETURNS semver
3-
AS 'semver'
3+
AS 'MODULE_PATHNAME'
44
LANGUAGE C STRICT IMMUTABLE;
55

66
CREATE OR REPLACE FUNCTION semver_send(semver)
77
RETURNS bytea
8-
AS 'semver'
8+
AS 'MODULE_PATHNAME'
99
LANGUAGE C STRICT IMMUTABLE;
1010

1111
ALTER TYPE semver SET

sql/semver.sql

+22-22
Original file line numberDiff line numberDiff line change
@@ -26,22 +26,22 @@ CREATE TYPE semver;
2626
--
2727
CREATE OR REPLACE FUNCTION semver_in(cstring)
2828
RETURNS semver
29-
AS 'semver'
29+
AS 'MODULE_PATHNAME'
3030
LANGUAGE C STRICT IMMUTABLE;
3131

3232
CREATE OR REPLACE FUNCTION semver_out(semver)
3333
RETURNS cstring
34-
AS 'semver'
34+
AS 'MODULE_PATHNAME'
3535
LANGUAGE C STRICT IMMUTABLE;
3636

3737
CREATE OR REPLACE FUNCTION semver_recv(internal)
3838
RETURNS semver
39-
AS 'semver'
39+
AS 'MODULE_PATHNAME'
4040
LANGUAGE C STRICT IMMUTABLE;
4141

4242
CREATE OR REPLACE FUNCTION semver_send(semver)
4343
RETURNS bytea
44-
AS 'semver'
44+
AS 'MODULE_PATHNAME'
4545
LANGUAGE C STRICT IMMUTABLE;
4646

4747
--
@@ -67,7 +67,7 @@ CREATE TYPE semver (
6767

6868
CREATE OR REPLACE FUNCTION to_semver(text)
6969
RETURNS semver
70-
AS 'semver'
70+
AS 'MODULE_PATHNAME'
7171
LANGUAGE C STRICT IMMUTABLE;
7272

7373
--
@@ -76,12 +76,12 @@ CREATE OR REPLACE FUNCTION to_semver(text)
7676

7777
CREATE OR REPLACE FUNCTION semver(text)
7878
RETURNS semver
79-
AS 'semver', 'text_to_semver'
79+
AS 'MODULE_PATHNAME', 'text_to_semver'
8080
LANGUAGE C STRICT IMMUTABLE;
8181

8282
CREATE OR REPLACE FUNCTION text(semver)
8383
RETURNS text
84-
AS 'semver', 'semver_to_text'
84+
AS 'MODULE_PATHNAME', 'semver_to_text'
8585
LANGUAGE C STRICT IMMUTABLE;
8686

8787
CREATE OR REPLACE FUNCTION semver(numeric)
@@ -127,7 +127,7 @@ CREATE CAST (bigint AS semver) WITH FUNCTION semver(bigint);
127127

128128
CREATE OR REPLACE FUNCTION semver_eq(semver, semver)
129129
RETURNS bool
130-
AS 'semver'
130+
AS 'MODULE_PATHNAME'
131131
LANGUAGE C STRICT IMMUTABLE;
132132

133133
CREATE OPERATOR = (
@@ -143,7 +143,7 @@ CREATE OPERATOR = (
143143

144144
CREATE OR REPLACE FUNCTION semver_ne(semver, semver)
145145
RETURNS bool
146-
AS 'semver'
146+
AS 'MODULE_PATHNAME'
147147
LANGUAGE C STRICT IMMUTABLE;
148148

149149
CREATE OPERATOR <> (
@@ -157,7 +157,7 @@ CREATE OPERATOR <> (
157157

158158
CREATE OR REPLACE FUNCTION semver_le(semver, semver)
159159
RETURNS bool
160-
AS 'semver'
160+
AS 'MODULE_PATHNAME'
161161
LANGUAGE C STRICT IMMUTABLE;
162162

163163
CREATE OPERATOR <= (
@@ -169,7 +169,7 @@ CREATE OPERATOR <= (
169169

170170
CREATE OR REPLACE FUNCTION semver_lt(semver, semver)
171171
RETURNS bool
172-
AS 'semver'
172+
AS 'MODULE_PATHNAME'
173173
LANGUAGE C STRICT IMMUTABLE;
174174

175175
CREATE OPERATOR < (
@@ -181,7 +181,7 @@ CREATE OPERATOR < (
181181

182182
CREATE OR REPLACE FUNCTION semver_ge(semver, semver)
183183
RETURNS bool
184-
AS 'semver'
184+
AS 'MODULE_PATHNAME'
185185
LANGUAGE C STRICT IMMUTABLE;
186186

187187
CREATE OPERATOR >= (
@@ -193,7 +193,7 @@ CREATE OPERATOR >= (
193193

194194
CREATE OR REPLACE FUNCTION semver_gt(semver, semver)
195195
RETURNS bool
196-
AS 'semver'
196+
AS 'MODULE_PATHNAME'
197197
LANGUAGE C STRICT IMMUTABLE;
198198

199199
CREATE OPERATOR > (
@@ -209,12 +209,12 @@ CREATE OPERATOR > (
209209

210210
CREATE OR REPLACE FUNCTION semver_cmp(semver, semver)
211211
RETURNS int4
212-
AS 'semver'
212+
AS 'MODULE_PATHNAME'
213213
LANGUAGE C STRICT IMMUTABLE;
214214

215215
CREATE OR REPLACE FUNCTION hash_semver(semver)
216216
RETURNS int4
217-
AS 'semver'
217+
AS 'MODULE_PATHNAME'
218218
LANGUAGE C STRICT IMMUTABLE;
219219

220220
--
@@ -245,7 +245,7 @@ DEFAULT FOR TYPE semver USING hash AS
245245

246246
CREATE OR REPLACE FUNCTION semver_smaller(semver, semver)
247247
RETURNS semver
248-
AS 'semver'
248+
AS 'MODULE_PATHNAME'
249249
LANGUAGE C STRICT IMMUTABLE;
250250

251251
CREATE AGGREGATE min(semver) (
@@ -256,7 +256,7 @@ CREATE AGGREGATE min(semver) (
256256

257257
CREATE OR REPLACE FUNCTION semver_larger(semver, semver)
258258
RETURNS semver
259-
AS 'semver'
259+
AS 'MODULE_PATHNAME'
260260
LANGUAGE C STRICT IMMUTABLE;
261261

262262
CREATE AGGREGATE max(semver) (
@@ -271,7 +271,7 @@ CREATE AGGREGATE max(semver) (
271271

272272
CREATE OR REPLACE FUNCTION is_semver(text)
273273
RETURNS bool
274-
AS 'semver'
274+
AS 'MODULE_PATHNAME'
275275
LANGUAGE C STRICT IMMUTABLE;
276276

277277
--
@@ -280,22 +280,22 @@ CREATE OR REPLACE FUNCTION is_semver(text)
280280

281281
CREATE OR REPLACE FUNCTION get_semver_major(semver)
282282
RETURNS int4
283-
AS 'semver'
283+
AS 'MODULE_PATHNAME'
284284
LANGUAGE C STRICT IMMUTABLE;
285285

286286
CREATE OR REPLACE FUNCTION get_semver_minor(semver)
287287
RETURNS int4
288-
AS 'semver'
288+
AS 'MODULE_PATHNAME'
289289
LANGUAGE C STRICT IMMUTABLE;
290290

291291
CREATE OR REPLACE FUNCTION get_semver_patch(semver)
292292
RETURNS int4
293-
AS 'semver'
293+
AS 'MODULE_PATHNAME'
294294
LANGUAGE C STRICT IMMUTABLE;
295295

296296
CREATE OR REPLACE FUNCTION get_semver_prerelease(semver)
297297
RETURNS text
298-
AS 'semver'
298+
AS 'MODULE_PATHNAME'
299299
LANGUAGE C STRICT IMMUTABLE;
300300

301301
CREATE TYPE semverrange AS RANGE (SUBTYPE = semver);

src/semver.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* + Tom Davis <[email protected]>
77
* + Xavier Caron <[email protected]>
88
*
9-
* Copyright 2010-2023 The pg-semver Maintainers. This program is Free
9+
* Copyright 2010-2024 The pg-semver Maintainers. This program is Free
1010
* Software; see the LICENSE file for the license conditions.
1111
*/
1212

test/sql/base.sql

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
BEGIN;
33

44
\i test/pgtap-core.sql
5-
\i sql/semver.sql
5+
CREATE EXTENSION semver;
66

77
SELECT plan(334);
88
--SELECT * FROM no_plan();

test/sql/corpus.sql

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ BEGIN;
44
-- Test the SemVer corpus from https://regex101.com/r/Ly7O1x/3/.
55

66
\i test/pgtap-core.sql
7-
\i sql/semver.sql
7+
CREATE EXTENSION semver;
88

99
SELECT plan(71);
1010
--SELECT * FROM no_plan();

0 commit comments

Comments
 (0)