def main(): conn = socket.socket(socket.AF_UNIX) conn.connect(str(SOCKET_ADDR)) table = JSONRpc(conn).get_peer_proxy() response = table.connect(where='salary>5000 OR name="Mike"') fields = response['fields'] version = response['version'] print(*fields, sep='\t') response = table.query(withdata=True) rows = set(response['rows']) data = response['data'] for row in rows: print(*data[row], sep='\t') print() print('', *fields, sep='\t') while True: response = table.wait(withdata=True) insert = response['insert'] remove = response['remove'] data.update(response['data']) for row in insert: print('+', *data[row], sep='\t') rows.add(row) for row in remove: print('-', *data[row], sep='\t') rows.remove(row)
def main(): name = input('relation > ') query = input(name + ' > ') conn = socket.socket(socket.AF_UNIX) conn.connect(str(SOCKET_DIR / name)) table = JSONRpc(conn).get_peer_proxy() fields = table.connect(query=query, protocol=0)['fields'] while True: print('#', *fields, sep='\t| ') print('-' * 80) response = table.query() rows = response['add'] data = response['data'] for row in rows: print(row, *data[row], sep='\t| ') print() method = input('c/u/d > ') if method == 'c': data = input('c > ').split() table.commit(time(), [data], []) elif method == 'u': row = input('# > ') data = input('u > ').split() table.commit(time(), [data], [row]) elif method == 'd': row = input('# > ') table.commit(time(), [], [row]) else: print('error') print()
def main(): conn = socket.socket(socket.AF_UNIX) conn.connect(str(SOCKET_ADDR)) table = JSONRpc(conn).get_peer_proxy() response = table.connect(where='salary>5000 OR name="Mike"') fields = response['fields'] version = response['version'] while True: print('#', *fields, sep='\t') response = table.query(withdata=True) rows = set(response['rows']) data = response['data'] for row in rows: print(row, *data[row], sep='\t') print() method = input('c/u/d > ') if method == 'c': data = { 'id': int(input(' id > ')), 'name': input(' name > '), 'salary': int(input(' salary > ')) } table.modify(data=data, version=time()) elif method == 'u': row = input(' # > ') data = { 'id': int(input(' id > ')), 'name': input(' name > '), 'salary': int(input(' salary > ')) } table.modify(row=row, data=data, version=time()) elif method == 'd': row = input(' # > ') table.modify(row=row, version=time()) else: print('error') print()