
    m                         S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJ	r	  SSK
Jr  \R                   " S	 S
\R                  5      5       rg)z Command for spanner rows update.    )database_sessions)	databases)arg_parsers)base)resource_args)
write_util)	resourcesc                   .    \ rS rSrSr\S 5       rS rSrg)Update   ax  Update a row in a Cloud Spanner database.

## EXAMPLES

To update a row with SingerId=1,SingName=abc in table Singers under
my-database and my-instance, run:

  $ {command} --table=Singers --database=my-database --instance=my-instance --data=SingerId=1,SingerName=abc

  $ {command} --table=Singers --database=my-database --instance=my-instance --flags-file=path/to/file.yaml
c                     [         R                  " U SS5        U R                  SS[        SS9  U R                  SSS[        R
                  " 5       S	S
9  g)zSee base class.zin which to update a rowFz--tableTzThe Cloud Spanner table name.)requiredtypehelpz--datazCOLUMN_NAME=VALUEzThe column names and values for the row being updated. For complicated input values, such as arrays, use the `--flags-file` flag. See $ gcloud topic flags-file for more information.)r   metavarr   r   N)r   AddDatabaseResourceArgadd_argumentstrr   ArgDict)parsers    "lib/surface/spanner/rows/update.pyArgsUpdate.Args*   sj     ((1K).0
,	  .
 #  "D  E    c                 T   UR                   R                  R                  5       n[        R                  " U5      n[
        R                  R                  X1R                  5      n[
        R                  " XAR                  5      n[        R                  R                  XE5      n[        R                  " U5      n[        R                   R#                  UR$                  SS9n [        R&                  " X/5      [        R(                  " U5        $ ! [        R(                  " U5        f = f)z9This is what gets called when the user runs this command.z-spanner.projects.instances.databases.sessions)relative_name
collection)CONCEPTSdatabaseParser   GetDdlr   TableFromDdltableValidateArrayInputdatar   MutationFactoryr   Creater	   REGISTRYParseRelativeNamenameCommitDelete)	selfargsdatabase_refddlr$   r&   mutationsession_namesessions	            r   Run
Update.Run>   s     ==))//1L 

<
(C$$S**5E((		:D 0077DH %++L9L  22"''B 3 DG(%%gz:w'w's   "D D' N)	__name__
__module____qualname____firstlineno____doc__staticmethodr   r5   __static_attributes__r7   r   r   r   r      s"    
 E E&(r   r   N)r<   googlecloudsdk.api_lib.spannerr   r   googlecloudsdk.callioper   r   "googlecloudsdk.command_lib.spannerr   r   googlecloudsdk.corer	   UniverseCompatibleCommandr   r7   r   r   <module>rE      sF    ' = 4 / ( < 9 ) 8(T\\ 8( 8(r   