示例#1
0
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)
示例#2
0
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()
示例#3
0
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()