it = self.stub.StreamUpdate(req, timeout) for response in it: stream_event = response.stream_event fields = [] rows = [] if stream_event.primary_key_fields: conversions = [] for field in stream_event.primary_key_fields: fields.append(field.name) conversions.append(field_types_proto3.conversions.get(field.type)) for r in stream_event.primary_key_values: row = tuple(_make_row(r, conversions)) rows.append(row) yield update_stream.StreamEvent( category=int(stream_event.category), table_name=stream_event.table_name, fields=fields, rows=rows, sql=stream_event.sql, timestamp=stream_event.timestamp, transaction_id=stream_event.transaction_id) except face.AbortionError as e: # FIXME(alainjobart) These exceptions don't print well, so raise # one that will. The real fix is to define a set of exceptions # for this library and raise that, but it's more work. raise dbexceptions.OperationalError(e.details, e) update_stream.register_conn_class('grpc', GRPCUpdateStreamConnection)
fields = [] rows = [] if reply['PrimaryKeyFields']: conversions = [] for field in reply['PrimaryKeyFields']: fields.append(field['Name']) conversions.append(field_types_proto3.conversions.get( field['Type'])) for pk_list in reply['PrimaryKeyValues']: if not pk_list: continue decoded_row = tuple(_make_row(pk_list, conversions)) rows.append(decoded_row) yield update_stream.StreamEvent(category=reply['Category'], table_name=reply['TableName'], fields=fields, rows=rows, sql=reply['Sql'], timestamp=reply['Timestamp'], transaction_id=reply['TransactionId']) except gorpc.AppError as e: raise dbexceptions.DatabaseError(*e.args) except gorpc.GoRpcError as e: raise dbexceptions.OperationalError(*e.args) except: raise update_stream.register_conn_class('gorpc', GoRpcUpdateStreamConnection)
stream_event = response.stream_event fields = [] rows = [] if stream_event.primary_key_fields: conversions = [] for field in stream_event.primary_key_fields: fields.append(field.name) conversions.append( field_types_proto3.conversions.get(field.type)) for r in stream_event.primary_key_values: row = tuple(_make_row(r, conversions)) rows.append(row) yield update_stream.StreamEvent( category=int(stream_event.category), table_name=stream_event.table_name, fields=fields, rows=rows, sql=stream_event.sql, timestamp=stream_event.timestamp, transaction_id=stream_event.transaction_id) except face.AbortionError as e: # FIXME(alainjobart) These exceptions don't print well, so raise # one that will. The real fix is to define a set of exceptions # for this library and raise that, but it's more work. raise dbexceptions.OperationalError(e.details, e) update_stream.register_conn_class('grpc', GRPCUpdateStreamConnection)