https://github.com/semtexzv/pg_url
Implements URL handling methods as postgres extension
https://github.com/semtexzv/pg_url
postgres postgresql postgresql-extension
Last synced: 8 months ago
JSON representation
Implements URL handling methods as postgres extension
- Host: GitHub
- URL: https://github.com/semtexzv/pg_url
- Owner: semtexzv
- License: mit
- Created: 2022-12-11T14:04:15.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2023-03-04T11:16:35.000Z (over 3 years ago)
- Last Synced: 2025-04-11T15:48:31.203Z (about 1 year ago)
- Topics: postgres, postgresql, postgresql-extension
- Language: Dockerfile
- Homepage:
- Size: 37.1 KB
- Stars: 12
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# PG_URL
Implements URL manipulation methods as a postgres extension. Using this extension will allow you to work with URLS
directly inside database. You could use it to create an index on a URL host
```sql
CREATE INDEX tbl_url_host on tbl (url_host(url));
```
### Installation
1. Download the latest [Release](https://github.com/semtexzv/pg_url/releases).
2. Install it using your favorite package manager:
```bash
dpkg -i OR rpm -i
```
3. Enable it in postgres:
```sql
CREATE EXTENSION IF NOT EXISTS pg_url;
```
### Schema
What functions does this extension define? This is the schema:
```sql
-- src/lib.rs:11
-- pg_url::url_set_scheme
CREATE FUNCTION "url_set_scheme"(
"url" TEXT, /* &str */
"scheme" TEXT /* &str */
) RETURNS TEXT /* core::option::Option */
IMMUTABLE STRICT PARALLEL SAFE
LANGUAGE c /* Rust */
AS
'MODULE_PATHNAME',
'url_set_scheme_wrapper';
-- src/lib.rs:79
-- pg_url::url_set_query_param
CREATE FUNCTION "url_set_query_param"(
"url" TEXT, /* &str */
"name" TEXT, /* &str */
"value" TEXT /* &str */
) RETURNS TEXT /* core::option::Option */
IMMUTABLE STRICT PARALLEL SAFE
LANGUAGE c /* Rust */
AS
'MODULE_PATHNAME',
'url_set_query_param_wrapper';
-- src/lib.rs:54
-- pg_url::url_set_query
CREATE FUNCTION "url_set_query"(
"url" TEXT, /* &str */
"query" TEXT /* &str */
) RETURNS TEXT /* core::option::Option */
IMMUTABLE STRICT PARALLEL SAFE
LANGUAGE c /* Rust */
AS
'MODULE_PATHNAME',
'url_set_query_wrapper';
-- src/lib.rs:42
-- pg_url::url_set_path
CREATE FUNCTION "url_set_path"(
"url" TEXT, /* &str */
"path" TEXT /* &str */
) RETURNS TEXT /* core::option::Option */
IMMUTABLE STRICT PARALLEL SAFE
LANGUAGE c /* Rust */
AS
'MODULE_PATHNAME',
'url_set_path_wrapper';
-- src/lib.rs:23
-- pg_url::url_set_host
CREATE FUNCTION "url_set_host"(
"url" TEXT, /* &str */
"host" TEXT /* &str */
) RETURNS TEXT /* core::option::Option */
IMMUTABLE STRICT PARALLEL SAFE
LANGUAGE c /* Rust */
AS
'MODULE_PATHNAME',
'url_set_host_wrapper';
-- src/lib.rs:66
-- pg_url::url_set_fragment
CREATE FUNCTION "url_set_fragment"(
"url" TEXT, /* &str */
"query" TEXT /* &str */
) RETURNS TEXT /* core::option::Option */
IMMUTABLE STRICT PARALLEL SAFE
LANGUAGE c /* Rust */
AS
'MODULE_PATHNAME',
'url_set_fragment_wrapper';
-- src/lib.rs:6
-- pg_url::url_scheme
CREATE FUNCTION "url_scheme"(
"url" TEXT /* &str */
) RETURNS TEXT /* core::option::Option */
IMMUTABLE STRICT PARALLEL SAFE
LANGUAGE c /* Rust */
AS
'MODULE_PATHNAME',
'url_scheme_wrapper';
-- src/lib.rs:73
-- pg_url::url_query_param
CREATE FUNCTION "url_query_param"(
"url" TEXT, /* &str */
"name" TEXT /* &str */
) RETURNS TEXT /* core::option::Option */
IMMUTABLE STRICT PARALLEL SAFE
LANGUAGE c /* Rust */
AS
'MODULE_PATHNAME',
'url_query_param_wrapper';
-- src/lib.rs:49
-- pg_url::url_query
CREATE FUNCTION "url_query"(
"url" TEXT /* &str */
) RETURNS TEXT /* core::option::Option */
IMMUTABLE STRICT PARALLEL SAFE
LANGUAGE c /* Rust */
AS
'MODULE_PATHNAME',
'url_query_wrapper';
-- src/lib.rs:37
-- pg_url::url_path
CREATE FUNCTION "url_path"(
"url" TEXT /* &str */
) RETURNS TEXT /* core::option::Option */
IMMUTABLE STRICT PARALLEL SAFE
LANGUAGE c /* Rust */
AS
'MODULE_PATHNAME',
'url_path_wrapper';
-- src/lib.rs:18
-- pg_url::url_host
CREATE FUNCTION "url_host"(
"url" TEXT /* &str */
) RETURNS TEXT /* core::option::Option */
IMMUTABLE STRICT PARALLEL SAFE
LANGUAGE c /* Rust */
AS
'MODULE_PATHNAME',
'url_host_wrapper';
-- src/lib.rs:61
-- pg_url::url_fragment
CREATE FUNCTION "url_fragment"(
"url" TEXT /* &str */
) RETURNS TEXT /* core::option::Option */
IMMUTABLE STRICT PARALLEL SAFE
LANGUAGE c /* Rust */
AS
'MODULE_PATHNAME',
'url_fragment_wrapper';
-- src/lib.rs:30
-- pg_url::url_clear_host
CREATE FUNCTION "url_clear_host"(
"url" TEXT /* &str */
) RETURNS TEXT /* core::option::Option */
IMMUTABLE STRICT PARALLEL SAFE
LANGUAGE c /* Rust */
AS
'MODULE_PATHNAME',
'url_clear_host_wrapper';
```