diff -pruN 1.1.0-2/debian/changelog 1.1.1-1/debian/changelog
--- 1.1.0-2/debian/changelog	2022-06-13 07:20:48.000000000 +0000
+++ 1.1.1-1/debian/changelog	2022-08-04 15:13:31.000000000 +0000
@@ -1,3 +1,11 @@
+python-vertica (1.1.1-1) unstable; urgency=medium
+
+  * Improve CI keeping only relevant bits
+  * Update d/salsa-ci.yml to remove allowed failure for reprotest
+  * New upstream version 1.1.1
+
+ -- Jean Baptiste Favre <debian@jbfavre.org>  Thu, 04 Aug 2022 17:13:31 +0200
+
 python-vertica (1.1.0-2) unstable; urgency=medium
 
   * Disable autopkgtest-pkg-python in d/control. Only rely on custom one
diff -pruN 1.1.0-2/debian/salsa-ci.yml 1.1.1-1/debian/salsa-ci.yml
--- 1.1.0-2/debian/salsa-ci.yml	2022-05-30 09:07:13.000000000 +0000
+++ 1.1.1-1/debian/salsa-ci.yml	2022-06-29 07:54:02.000000000 +0000
@@ -4,7 +4,8 @@ include:
   - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml
 
 variables:
+  SALSA_CI_DISABLE_BUILD_PACKAGE_ALL: 0
+  SALSA_CI_DISABLE_BUILD_PACKAGE_ANY: 1
+  SALSA_CI_DISABLE_BUILD_PACKAGE_I386: 1
+  SALSA_CI_DISABLE_CROSSBUILD_ARM64: 1
   SALSA_CI_DISABLE_APTLY: 1
-
-reprotest:
-  allow_failure: true
diff -pruN 1.1.0-2/.github/workflows/ci.yaml 1.1.1-1/.github/workflows/ci.yaml
--- 1.1.0-2/.github/workflows/ci.yaml	2022-06-08 10:46:23.000000000 +0000
+++ 1.1.1-1/.github/workflows/ci.yaml	2022-07-08 09:18:48.000000000 +0000
@@ -19,7 +19,7 @@ jobs:
           python-version: ${{ matrix.python-version }}
       - name: Set up a Vertica server
         env:
-          VERTICA_CE_URL: "https://vertica-community-edition-for-testing.s3.amazonaws.com/XCz9cp7m/vertica-11.1.1-0.x86_64.RHEL6.rpm"
+          VERTICA_CE_URL: "https://vertica-community-edition-for-testing.s3.amazonaws.com/XCz9cp7m/vertica-12.0.0-0.x86_64.RHEL6.rpm"
         run: |
           git clone https://github.com/jbfavre/docker-vertica.git
           curl $VERTICA_CE_URL --create-dirs -o docker-vertica/packages/vertica-ce.latest.rpm
diff -pruN 1.1.0-2/README.md 1.1.1-1/README.md
--- 1.1.0-2/README.md	2022-06-08 10:46:23.000000000 +0000
+++ 1.1.1-1/README.md	2022-07-08 09:18:48.000000000 +0000
@@ -11,7 +11,7 @@
 
 Please check out [release notes](https://github.com/vertica/vertica-python/releases) to learn about the latest improvements.
 
-vertica-python has been tested with Vertica 11.1.1 and Python 2.7/3.7/3.8/3.9/3.10. Feel free to submit issues and/or pull requests (Read up on our [contributing guidelines](#contributing-guidelines)).
+vertica-python has been tested with Vertica 12.0.0 and Python 2.7/3.7/3.8/3.9/3.10. Feel free to submit issues and/or pull requests (Read up on our [contributing guidelines](#contributing-guidelines)).
 
 
 ## Installation
@@ -85,8 +85,58 @@ with vertica_python.connect(**conn_info)
     # do things
 ```
 
+| Connection Option  |  Description |
+| ------------- | ------------- |
+| host     | The server host of the connection. This can be a host name or an IP address. <br>**_Default_**: "localhost" |
+| port     | The port of the connection. <br>**_Default_**: 5433 |
+| user     | The database user name to use to connect to the database. <br>**_Default_**: OS login user name |
+| password | The password to use to log into the database. <br>**_Default_**: "" |
+| database | The database name. <br>**_Default_**: "" |
+| autocommit | See [Autocommit](#autocommit). <br>**_Default_**: False |
+| backup_server_node | See [Connection Failover](#connection-failover). <br>**_Default_**: [] |
+| binary_transfer | See [Data Transfer Format](#data-transfer-format). <br>**_Default_**: False (use text format transfer) |
+| connection_load_balance | See [Connection Load Balancing](#connection-load-balancing). <br>**_Default_**: False (disabled) |
+| connection_timeout | The number of seconds (can be a nonnegative floating point number) the client waits for a socket operation (Establishing a TCP connection or read/write operation). <br>**_Default_**: None (no timeout) |
+| disable_copy_local | See [COPY FROM LOCAL](#method-2-copy-from-local-sql-with-cursorexecute). <br>**_Default_**: False |
+| kerberos_host_name | See [Kerberos Authentication](#kerberos-authentication). <br>**_Default_**: the value of connection option `host` |
+| kerberos_service_name | See [Kerberos Authentication](#kerberos-authentication). <br>**_Default_**: "vertica" |
+| log_level | See [Logging](#logging). |
+| log_path | See [Logging](#logging). |
+| session_label | Sets a label for the connection on the server. This value appears in the client_label column of the _v_monitor.sessions_ system table. <br>**_Default_**: an auto-generated label with format of `vertica-python-{version}-{random_uuid}` |
+| ssl | See [TLS/SSL](#tlsssl). <br>**_Default_**: False (disabled) |
+| unicode_error | See [UTF-8 encoding issues](#utf-8-encoding-issues). <br>**_Default_**: 'strict' (throw error on invalid UTF-8 results) |
+| use_prepared_statements | See [Passing parameters to SQL queries](#passing-parameters-to-sql-queries). <br>**_Default_**: False |
+| dsn | See [Set Properties with Connection String](#set-properties-with-connection-string). |
+
+
+
 Below are a few important connection topics you may deal with, or you can skip and jump to the next section: [Send Queries and Retrieve Results](#send-queries-and-retrieve-results)
 
+#### Set Properties with Connection String
+Another way to set connection properties is passing a connection string to the keyword parameter `dsn` of `vertica_python.connect(dsn='...', **kwargs)`. The connection string is of the form:
+```
+vertica://(user):(password)@(host):(port)/(database)?(arg1=val1&arg2=val2&...)
+```
+The connection string would be parsed by `vertica_python.parse_dsn(connection_str)`, and the parsing result (a dictionary of keywords and values) would be merged with _kwargs_. If the same keyword is specified in both the sources, the _kwargs_ value overrides the parsed _dsn_ value. The `(arg1=val1&arg2=val2&...)` section can handle string/numeric/boolean values, blank and invalid value would be ignored.
+
+```python
+import vertica_python
+
+connection_str = ('vertica://admin@localhost:5433/db1?connection_load_balance=True&connection_timeout=1.5&'
+                  'session_label=vpclient+123%7E456')
+print(vertica_python.parse_dsn(connection_str))
+# {'user': 'admin', 'host': 'localhost', 'port': 5433, 'database': 'db1',
+#  'connection_load_balance': True, 'connection_timeout': 1.5, 'session_label': 'vpclient 123~456'}
+
+additional_info = {
+    'password': 'some_password', 
+    'backup_server_node': ['10.6.7.123', ('10.20.82.77', 6000)]  # invalid value to be set in a connection string
+    }
+
+with vertica_python.connect(dsn=connection_str, **additional_info) as conn:
+   # do things
+```
+
 #### TLS/SSL
 You can pass an `ssl.SSLContext` to `ssl` to customize the SSL connection options. For example,
 
@@ -132,7 +182,9 @@ with vertica_python.connect(**conn_info)
 ```
 
 #### Logging
-Logging is disabled by default if you do not pass values to both ```log_level``` and ```log_path```.  The default value of ```log_level``` is logging.WARNING. You can find all levels [here](https://docs.python.org/3/library/logging.html#logging-levels). The default value of ```log_path``` is 'vertica_python.log', the log file will be in the current execution directory. If ```log_path``` is set to ```''``` (empty string) or ```None```, no file handler is set, logs will be processed by root handlers. For example,
+Logging is disabled by default if neither ```log_level``` or ```log_path``` are set. Passing value to at least one of those options to enable logging.
+
+When logging is enabled, the default value of ```log_level``` is _logging.WARNING_. You can find all levels [here](https://docs.python.org/3/library/logging.html#logging-levels). And the default value of ```log_path``` is 'vertica_python.log', the log file will be in the current execution directory. If ```log_path``` is set to ```''``` (empty string) or ```None```, no file handler is set, logs will be processed by root handlers. For example,
 
 ```python
 import vertica_python
@@ -255,30 +307,6 @@ Ideally, the [output data](#sql-data-con
 - TIMESTAMPTZ data: text format always use the session timezone, but binary format might fail to get session timezone and use local timezone.
 - NUMERIC data: In old server versions, the precision and scale is incorrect when querying a NUMERIC column that is not from a specific table with prepared statement in binary format. E.g. `select ?::NUMERIC` or `select node_id, ?/50 from nodes`. In newer server versions, binary transfer is forcibly disabled for NUMERIC data by the server, regardless of client-side values of ```binary_transfer``` and ```use_prepared_statements```.
 
-#### Set Properties with Connection String
-Another way to set connection properties is passing a connection string to the keyword parameter `dsn` of `vertica_python.connect(dsn='...', **kwargs)`. The connection string is of the form:
-```
-vertica://(user):(password)@(host):(port)/(database)?(arg1=val1&arg2=val2&...)
-```
-The connection string would be parsed by `vertica_python.parse_dsn(connection_str)`, and the parsing result (a dictionary of keywords and values) would be merged with _kwargs_. If the same keyword is specified in both the sources, the _kwargs_ value overrides the parsed _dsn_ value. The `(arg1=val1&arg2=val2&...)` section can handle string/numeric/boolean values, blank and invalid value would be ignored.
-
-```python
-import vertica_python
-
-connection_str = ('vertica://admin@localhost:5433/db1?connection_load_balance=True&connection_timeout=1.5&'
-                  'session_label=vpclient+123%7E456')
-print(vertica_python.parse_dsn(connection_str))
-# {'user': 'admin', 'host': 'localhost', 'port': 5433, 'database': 'db1',
-#  'connection_load_balance': True, 'connection_timeout': 1.5, 'session_label': 'vpclient 123~456'}
-
-additional_info = {
-    'password': 'some_password', 
-    'backup_server_node': ['10.6.7.123', ('10.20.82.77', 6000)]  # invalid value to be set in a connection string
-    }
-
-with vertica_python.connect(dsn=connection_str, **additional_info) as conn:
-   # do things
-```
 
 
 ### Send Queries and Retrieve Results
@@ -847,7 +875,7 @@ cur.fetchone()[0] == 3
 
 ## UTF-8 encoding issues
 
-While Vertica expects varchars stored to be UTF-8 encoded, sometimes invalid strings get into the database. You can specify how to handle reading these characters using the unicode_error connection option. This uses the same values as the unicode type (https://docs.python.org/2/library/functions.html#unicode)
+While Vertica expects varchars stored to be UTF-8 encoded, sometimes invalid strings get into the database. You can specify how to handle reading these characters using the unicode_error connection option. This uses the same values as the unicode type (https://docs.python.org/3/library/codecs.html#error-handlers)
 
 ```python
 cur = vertica_python.Connection({..., 'unicode_error': 'strict'}).cursor()
diff -pruN 1.1.0-2/setup.py 1.1.1-1/setup.py
--- 1.1.0-2/setup.py	2022-06-08 10:46:23.000000000 +0000
+++ 1.1.1-1/setup.py	2022-07-08 09:18:48.000000000 +0000
@@ -45,7 +45,7 @@ opts = ReqOpts(None, 'git')
 # version should use the format 'x.x.x' (instead of 'vx.x.x')
 setup(
     name='vertica-python',
-    version='1.1.0',
+    version='1.1.1',
     description='Official native Python client for the Vertica database.',
     long_description="vertica-python is the official Vertica database client for the Python programming language. Please check the [project homepage](https://github.com/vertica/vertica-python) for the details.",
     long_description_content_type='text/markdown',
diff -pruN 1.1.0-2/vertica_python/__init__.py 1.1.1-1/vertica_python/__init__.py
--- 1.1.0-2/vertica_python/__init__.py	2022-06-08 10:46:23.000000000 +0000
+++ 1.1.1-1/vertica_python/__init__.py	2022-07-08 09:18:48.000000000 +0000
@@ -56,7 +56,7 @@ __all__ = ['Connection', 'PROTOCOL_VERSI
            'OperationalError', 'ProgrammingError']
 
 # The version number of this library.
-version_info = (1, 1, 0)
+version_info = (1, 1, 1)
 __version__ = '.'.join(map(str, version_info))
 
 # The protocol version (3.9) implemented in this library.
diff -pruN 1.1.0-2/vertica_python/vertica/connection.py 1.1.1-1/vertica_python/vertica/connection.py
--- 1.1.0-2/vertica_python/vertica/connection.py	2022-06-08 10:46:23.000000000 +0000
+++ 1.1.1-1/vertica_python/vertica/connection.py	2022-07-08 09:18:48.000000000 +0000
@@ -70,6 +70,7 @@ from ..vertica.log import VerticaLogging
 DEFAULT_HOST = 'localhost'
 DEFAULT_PORT = 5433
 DEFAULT_PASSWORD = ''
+DEFAULT_DATABASE = ''
 DEFAULT_AUTOCOMMIT = False
 DEFAULT_BACKUP_SERVER_NODE = []
 DEFAULT_KRB_SERVICE_NAME = 'vertica'
@@ -288,7 +289,7 @@ class Connection(object):
                 msg = 'Connection option "user" is required'
                 self._logger.error(msg)
                 raise KeyError(msg)
-        self.options.setdefault('database', self.options['user'])
+        self.options.setdefault('database', DEFAULT_DATABASE)
         self.options.setdefault('password', DEFAULT_PASSWORD)
         self.options.setdefault('autocommit', DEFAULT_AUTOCOMMIT)
         self.options.setdefault('session_label', _generate_session_label())
diff -pruN 1.1.0-2/vertica_python/vertica/messages/backend_messages/notice_response.py 1.1.1-1/vertica_python/vertica/messages/backend_messages/notice_response.py
--- 1.1.0-2/vertica_python/vertica/messages/backend_messages/notice_response.py	2022-06-08 10:46:23.000000000 +0000
+++ 1.1.1-1/vertica_python/vertica/messages/backend_messages/notice_response.py	2022-07-08 09:18:48.000000000 +0000
@@ -100,7 +100,7 @@ class NoticeResponse(_NoticeResponseAttr
             unpacked = unpack_from('c{0}sx'.format(null_byte - 1 - pos), data, pos)
             key = unpacked[0]
             value = unpacked[1]
-            data_mapping[key] = value.decode('utf-8')
+            data_mapping[key] = value.decode('utf-8', 'replace')
 
             pos += (len(value) + 2)
 
