{"id":18635825,"url":"https://github.com/semtexzv/pg_url","last_synced_at":"2025-10-08T21:39:28.409Z","repository":{"id":64618768,"uuid":"576947447","full_name":"semtexzv/pg_url","owner":"semtexzv","description":"Implements URL handling methods as postgres extension","archived":false,"fork":false,"pushed_at":"2023-03-04T11:16:35.000Z","size":38,"stargazers_count":12,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-11T15:48:31.203Z","etag":null,"topics":["postgres","postgresql","postgresql-extension"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/semtexzv.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-11T14:04:15.000Z","updated_at":"2025-02-07T11:48:20.000Z","dependencies_parsed_at":"2024-11-07T05:28:35.724Z","dependency_job_id":"a7529965-f900-4d56-afcf-ef14a83c0af0","html_url":"https://github.com/semtexzv/pg_url","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/semtexzv/pg_url","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semtexzv%2Fpg_url","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semtexzv%2Fpg_url/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semtexzv%2Fpg_url/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semtexzv%2Fpg_url/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/semtexzv","download_url":"https://codeload.github.com/semtexzv/pg_url/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semtexzv%2Fpg_url/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279000707,"owners_count":26082837,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["postgres","postgresql","postgresql-extension"],"created_at":"2024-11-07T05:26:48.318Z","updated_at":"2025-10-08T21:39:28.380Z","avatar_url":"https://github.com/semtexzv.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PG_URL\n\nImplements URL manipulation methods as a postgres extension. Using this extension will allow you to work with URLS\ndirectly inside database. You could use it to create an index on a URL host\n\n```sql\nCREATE INDEX tbl_url_host on tbl (url_host(url));\n```\n\n### Installation\n\n1. Download the latest [Release](https://github.com/semtexzv/pg_url/releases).\n2. Install it using your favorite package manager:\n\n    ```bash\n    dpkg -i OR rpm -i \u003cDownloaded package\u003e  \n    ```\n\n3. Enable it in postgres:\n\n    ```sql\n    CREATE EXTENSION IF NOT EXISTS pg_url;\n    ```\n\n### Schema\nWhat functions does this extension define? This is the schema:\n\n```sql\n-- src/lib.rs:11\n-- pg_url::url_set_scheme\nCREATE FUNCTION \"url_set_scheme\"(\n    \"url\" TEXT, /* \u0026str */\n    \"scheme\" TEXT /* \u0026str */\n) RETURNS TEXT /* core::option::Option\u003calloc::string::String\u003e */\n    IMMUTABLE STRICT PARALLEL SAFE\n    LANGUAGE c /* Rust */\nAS\n'MODULE_PATHNAME',\n'url_set_scheme_wrapper';\n\n-- src/lib.rs:79\n-- pg_url::url_set_query_param\nCREATE FUNCTION \"url_set_query_param\"(\n    \"url\" TEXT, /* \u0026str */\n    \"name\" TEXT, /* \u0026str */\n    \"value\" TEXT /* \u0026str */\n) RETURNS TEXT /* core::option::Option\u003calloc::string::String\u003e */\n    IMMUTABLE STRICT PARALLEL SAFE\n    LANGUAGE c /* Rust */\nAS\n'MODULE_PATHNAME',\n'url_set_query_param_wrapper';\n\n-- src/lib.rs:54\n-- pg_url::url_set_query\nCREATE FUNCTION \"url_set_query\"(\n    \"url\" TEXT, /* \u0026str */\n    \"query\" TEXT /* \u0026str */\n) RETURNS TEXT /* core::option::Option\u003calloc::string::String\u003e */\n    IMMUTABLE STRICT PARALLEL SAFE\n    LANGUAGE c /* Rust */\nAS\n'MODULE_PATHNAME',\n'url_set_query_wrapper';\n\n-- src/lib.rs:42\n-- pg_url::url_set_path\nCREATE FUNCTION \"url_set_path\"(\n    \"url\" TEXT, /* \u0026str */\n    \"path\" TEXT /* \u0026str */\n) RETURNS TEXT /* core::option::Option\u003calloc::string::String\u003e */\n    IMMUTABLE STRICT PARALLEL SAFE\n    LANGUAGE c /* Rust */\nAS\n'MODULE_PATHNAME',\n'url_set_path_wrapper';\n\n-- src/lib.rs:23\n-- pg_url::url_set_host\nCREATE FUNCTION \"url_set_host\"(\n    \"url\" TEXT, /* \u0026str */\n    \"host\" TEXT /* \u0026str */\n) RETURNS TEXT /* core::option::Option\u003calloc::string::String\u003e */\n    IMMUTABLE STRICT PARALLEL SAFE\n    LANGUAGE c /* Rust */\nAS\n'MODULE_PATHNAME',\n'url_set_host_wrapper';\n\n-- src/lib.rs:66\n-- pg_url::url_set_fragment\nCREATE FUNCTION \"url_set_fragment\"(\n    \"url\" TEXT, /* \u0026str */\n    \"query\" TEXT /* \u0026str */\n) RETURNS TEXT /* core::option::Option\u003calloc::string::String\u003e */\n    IMMUTABLE STRICT PARALLEL SAFE\n    LANGUAGE c /* Rust */\nAS\n'MODULE_PATHNAME',\n'url_set_fragment_wrapper';\n\n-- src/lib.rs:6\n-- pg_url::url_scheme\nCREATE FUNCTION \"url_scheme\"(\n    \"url\" TEXT /* \u0026str */\n) RETURNS TEXT /* core::option::Option\u003calloc::string::String\u003e */\n    IMMUTABLE STRICT PARALLEL SAFE\n    LANGUAGE c /* Rust */\nAS\n'MODULE_PATHNAME',\n'url_scheme_wrapper';\n\n-- src/lib.rs:73\n-- pg_url::url_query_param\nCREATE FUNCTION \"url_query_param\"(\n    \"url\" TEXT, /* \u0026str */\n    \"name\" TEXT /* \u0026str */\n) RETURNS TEXT /* core::option::Option\u003calloc::string::String\u003e */\n    IMMUTABLE STRICT PARALLEL SAFE\n    LANGUAGE c /* Rust */\nAS\n'MODULE_PATHNAME',\n'url_query_param_wrapper';\n\n-- src/lib.rs:49\n-- pg_url::url_query\nCREATE FUNCTION \"url_query\"(\n    \"url\" TEXT /* \u0026str */\n) RETURNS TEXT /* core::option::Option\u003calloc::string::String\u003e */\n    IMMUTABLE STRICT PARALLEL SAFE\n    LANGUAGE c /* Rust */\nAS\n'MODULE_PATHNAME',\n'url_query_wrapper';\n\n-- src/lib.rs:37\n-- pg_url::url_path\nCREATE FUNCTION \"url_path\"(\n    \"url\" TEXT /* \u0026str */\n) RETURNS TEXT /* core::option::Option\u003calloc::string::String\u003e */\n    IMMUTABLE STRICT PARALLEL SAFE\n    LANGUAGE c /* Rust */\nAS\n'MODULE_PATHNAME',\n'url_path_wrapper';\n\n-- src/lib.rs:18\n-- pg_url::url_host\nCREATE FUNCTION \"url_host\"(\n    \"url\" TEXT /* \u0026str */\n) RETURNS TEXT /* core::option::Option\u003calloc::string::String\u003e */\n    IMMUTABLE STRICT PARALLEL SAFE\n    LANGUAGE c /* Rust */\nAS\n'MODULE_PATHNAME',\n'url_host_wrapper';\n\n-- src/lib.rs:61\n-- pg_url::url_fragment\nCREATE FUNCTION \"url_fragment\"(\n    \"url\" TEXT /* \u0026str */\n) RETURNS TEXT /* core::option::Option\u003calloc::string::String\u003e */\n    IMMUTABLE STRICT PARALLEL SAFE\n    LANGUAGE c /* Rust */\nAS\n'MODULE_PATHNAME',\n'url_fragment_wrapper';\n\n-- src/lib.rs:30\n-- pg_url::url_clear_host\nCREATE FUNCTION \"url_clear_host\"(\n    \"url\" TEXT /* \u0026str */\n) RETURNS TEXT /* core::option::Option\u003calloc::string::String\u003e */\n    IMMUTABLE STRICT PARALLEL SAFE\n    LANGUAGE c /* Rust */\nAS\n'MODULE_PATHNAME',\n'url_clear_host_wrapper';\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsemtexzv%2Fpg_url","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsemtexzv%2Fpg_url","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsemtexzv%2Fpg_url/lists"}