docs/en/sql-reference/functions/url-functions.md
:::note
The functions mentioned in this section are optimized for maximum performance and for the most part do not follow the RFC-3986 standard.
Functions which implement RFC-3986 have RFC appended to their function name and are generally slower.
:::
You can generally use the non-RFC function variants when working with publicly registered domains that contain neither user strings nor @ symbols.
The table below details which symbols in a URL can (✔) or cannot (✗) be parsed by the respective RFC and non-RFC variants:
| Symbol | non-RFC | RFC |
|---|---|---|
| ' ' | ✗ | ✗ |
| \t | ✗ | ✗ |
| < | ✗ | ✗ |
| > | ✗ | ✗ |
| % | ✗ | ✔* |
| { | ✗ | ✗ |
| } | ✗ | ✗ |
| | | ✗ | ✗ |
| \\ | ✗ | ✗ |
| ^ | ✗ | ✗ |
| ~ | ✗ | ✔* |
| [ | ✗ | ✗ |
| ] | ✗ | ✔ |
| ; | ✗ | ✔* |
| = | ✗ | ✔* |
| & | ✗ | ✔* |
symbols marked * are sub-delimiters in RFC 3986 and allowed for user info following the @ symbol.
There are two types of URL functions:
:::note
The functions below are generated from the system.functions system table.
:::