Closed
Description
Trying to write a single column value to cloud spanner raises an error saying mismatched number of columns and values:
def run_txn():
from google.cloud import spanner
spanner_client = spanner.Client()
instance_id = 'your-instance'
instance = spanner_client.instance(instance_id)
database_id = 'example-db'
database = instance.database(database_id)
def f(t):
t.insert_or_update(
table="Singers",
columns=('SingerId'),
values = [[6]])
database.run_in_transaction(f)
if __name__ == '__main__':
run_txn()
This raises the error:
/usr/local/google/home/vikask/venvs/pythonq/local/lib/python2.7/site-packages/requests/packages/urllib3/util/ssl_.py:335: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
SNIMissingWarning
/usr/local/google/home/vikask/venvs/pythonq/local/lib/python2.7/site-packages/requests/packages/urllib3/util/ssl_.py:133: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
InsecurePlatformWarning
Traceback (most recent call last):
File "txn.py", line 16, in <module>
run_txn()
File "txn.py", line 13, in run_txn
database.run_in_transaction(f)
File "/usr/local/google/home/vikask/venvs/pythonq/local/lib/python2.7/site-packages/google/cloud/spanner/database.py", line 379, in run_in_transaction
return session.run_in_transaction(func, *args, **kw)
File "/usr/local/google/home/vikask/venvs/pythonq/local/lib/python2.7/site-packages/google/cloud/spanner/session.py", line 311, in run_in_transaction
_delay_until_retry(exc, deadline)
File "/usr/local/google/home/vikask/venvs/pythonq/local/lib/python2.7/site-packages/google/cloud/spanner/session.py", line 309, in run_in_transaction
txn.commit()
File "/usr/local/google/home/vikask/venvs/pythonq/local/lib/python2.7/site-packages/google/cloud/spanner/transaction.py", line 114, in commit
transaction_id=self._id, options=options)
File "/usr/local/google/home/vikask/venvs/pythonq/local/lib/python2.7/site-packages/google/cloud/gapic/spanner/v1/spanner_client.py", line 832, in commit
return self._commit(request, options)
File "/usr/local/google/home/vikask/venvs/pythonq/local/lib/python2.7/site-packages/google/gax/api_callable.py", line 428, in inner
return api_caller(api_call, this_settings, request)
File "/usr/local/google/home/vikask/venvs/pythonq/local/lib/python2.7/site-packages/google/gax/api_callable.py", line 416, in base_caller
return api_call(*args)
File "/usr/local/google/home/vikask/venvs/pythonq/local/lib/python2.7/site-packages/google/gax/api_callable.py", line 376, in inner
return a_func(*args, **kwargs)
File "/usr/local/google/home/vikask/venvs/pythonq/local/lib/python2.7/site-packages/google/gax/retry.py", line 127, in inner
' classified as transient', exception)
google.gax.errors.RetryError: GaxError(Exception occurred in retry method that was not classified as transient, caused by <_Rendezvous of RPC that terminated with (StatusCode.INVALID_ARGUMENT, Mutation has mismatched number of columns and values.)>)