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
CREATE INDEX tbl_url_host on tbl (url_host(url));
-
Download the latest Release.
-
Install it using your favorite package manager:
dpkg -i OR rpm -i <Downloaded package>
-
Enable it in postgres:
CREATE EXTENSION IF NOT EXISTS pg_url;
What functions does this extension define? This is the schema:
-- 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<alloc::string::String> */
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<alloc::string::String> */
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<alloc::string::String> */
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<alloc::string::String> */
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<alloc::string::String> */
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<alloc::string::String> */
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<alloc::string::String> */
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<alloc::string::String> */
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<alloc::string::String> */
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<alloc::string::String> */
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<alloc::string::String> */
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<alloc::string::String> */
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<alloc::string::String> */
IMMUTABLE STRICT PARALLEL SAFE
LANGUAGE c /* Rust */
AS
'MODULE_PATHNAME',
'url_clear_host_wrapper';