def batch_delete(self, table_name, row_keys, column_names=[]): """Remove a set of keys Args: table_name: Table to delete rows from row_keys: A list of keys to remove column_names: Not used Raises: AppScaleDBConnectionError when unable to execute deletes TypeError: Bad argument types Returns: Nothing """ if not isinstance(table_name, str): raise TypeError("Expected str") if not isinstance(row_keys, list): raise TypeError("Expected list") row_keys = [self.__encode(row) for row in row_keys] __DELETE_ROW = 0 cell_list = [] mutator = self.conn.mutator_open(self.ns, table_name, 0, 0) for key in row_keys: cell = ttypes.Cell() ttypekey = ttypes.Key(row=key, flag=__DELETE_ROW) cell.key = ttypekey cell_list.append(cell) self.conn.mutator_set_cells(mutator, cell_list) self.conn.mutator_close(mutator)
def batch_put_entity(self, table_name, row_keys, column_names, cell_values): """Allows callers to store multiple rows with a single call. Args: table_name: A str, the table to mutate. row_keys: A list of keys to store on. column_names: A list of columns to mutate. cell_values: A dict of key/value pairs. Raises: TypeError: Bad argument types. """ if not isinstance(table_name, str): raise TypeError("Expected str") if not isinstance(column_names, list): raise TypeError("Expected list") if not isinstance(row_keys, list): raise TypeError("Expected list") if not isinstance(cell_values, dict): raise TypeError("Expected dict") __INSERT = 255 cell_list = [] mutator = self.conn.mutator_open(self.ns, table_name, 0, 0) for key in row_keys: for col in column_names: cell = ttypes.Cell() ttypekey = ttypes.Key(row=self.__encode(key), column_family=col, flag=__INSERT) cell.key = ttypekey cell.value = cell_values[key][col] cell_list.append(cell) self.conn.mutator_set_cells(mutator, cell_list) self.conn.mutator_close(mutator)
client = self.__initConnection() if not self.__table_exist(table_name, client): table_schema = self.__constructSchemaXml(column_names) try: ret = client.create_table(self.ns, table_name, table_schema) except Exception, e: file = open("/tmp/hyper_exception_log", "a") file.write(str(e)) file.write("at put entity create table\n") file.close() try: mutator = client.mutator_open(self.ns, table_name, 0, 0) cell_list = [] for ii in range(0, len(column_names)): cell = ttypes.Cell() keyflag = ttypes.KeyFlag() #255 is insert key = ttypes.Key(row=row_key, column_family=column_names[ii], flag=255) cell.key = key cell.value = cell_values[ii] cell_list.append(cell) client.mutator_set_cells(mutator, cell_list) client.mutator_close(mutator) except Exception, e: file = open("/tmp/hyper_exception_log", "a") file.write(str(e)) file.write("at trying to put the object\n")