<commit_before>===========
JDBC Driver
===========

Presto can be accessed from Java using the JDBC driver.
Download :maven_download:`jdbc` and add it to the class path of your Java application.
The following JDBC URL formats are supported:

.. code-block:: none

    jdbc:presto://host:port
    jdbc:presto://host:port/catalog
    jdbc:presto://host:port/catalog/schema

For example, use the following URL to connect to Presto
running on ``example.net`` port ``8080`` with the catalog ``hive``
and the schema ``sales``:

.. code-block:: none

    jdbc:presto://example.net:8080/hive/sales
<commit_msg>Add documentation for new JDBC driver features<commit_after>===========
JDBC Driver
===========

Presto can be accessed from Java using the JDBC driver.
Download :maven_download:`jdbc` and add it to the class path of your Java application.

Connecting
----------

The following JDBC URL formats are supported:

.. code-block:: none

    jdbc:presto://host:port
    jdbc:presto://host:port/catalog
    jdbc:presto://host:port/catalog/schema

For example, use the following URL to connect to Presto
running on ``example.net`` port ``8080`` with the catalog ``hive``
and the schema ``sales``:

.. code-block:: none

    jdbc:presto://example.net:8080/hive/sales

Connection Parameters
---------------------

The driver supports various parameters that may be set as URL parameters
or as properties passed to ``DriverManager``. Both of the following
examples are equivalent:

.. code-block:: java

    // URL parameters
    String url = "jdbc:presto://example.net:8080/hive/sales";
    Properties properties = new Properties();
    properties.setProperty("user", "test");
    properties.setProperty("password", "<PASSWORD>");
    Connection connection = DriverManager.getConnection(url, properties);

    // properties
    String url = "jdbc:presto://example.net:8080/hive/sales?user=test&password=<PASSWORD>";
    Connection connection = DriverManager.getConnection(url);

These methods may be mixed; some parameters may be specified in the URL
while others are specified using properties. However, the same parameter
may not be specified using both methods.

Parameter Reference
-------------------

================================= =======================================================================
Name                              Description
================================= =======================================================================
``user``                          Username to use for authentication and authorization.
``password``                      Password to use for LDAP authentication.
``socksProxy``                    SOCKS proxy host and port. Example: ``localhost:1080``
``httpProxy``                     HTTP proxy host and port. Example: ``localhost:8888``
``SSL``                           Use HTTPS for connections
``SSLTrustStorePath``             The location of the Java TrustStore file that will be used
                                  to validate HTTPS server certificates.
``SSLTrustStorePassword``         The password for the TrustStore.
``KerberosRemoteServiceName``     Presto coordinator Kerberos service name. This parameter is
                                  required for Kerberos authentiation.
``KerberosPrincipal``             The principal to use when authenticating to the Presto coordinator.
``KerberosUseCanonicalHostname``  Use the canonical hostname of the Presto coordinator for the Kerberos
                                  service principal by first resolving the hostname to an IP address
                                  and then doing a reverse DNS lookup for that IP address.
                                  This is enabled by default.
``KerberosConfigPath``            Kerberos configuration file.
``KerberosKeytabPath``            Kerberos keytab file.
``KerberosCredentialCachePath``   Kerberos credential cache.
================================= =======================================================================

{'fraction_non_alphanumeric': 0.1744127936031984, 'fraction_numerical': 0.0079960019990005, 'mean_word_length': 3.1056410256410256, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 10, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5318855', 'n_tokens_mistral': 1000, 'n_tokens_neox': 904, 'n_words': 356}