From b9cfc5d9a2574cf55ee57789181015213a6c0867 Mon Sep 17 00:00:00 2001 From: Sylvain Bellemare Date: Mon, 12 Dec 2016 11:54:08 +0100 Subject: [PATCH] Sync up with master --- bigchaindb/backend/query.py | 22 ---------------------- bigchaindb/backend/rethinkdb/query.py | 26 ++++++-------------------- bigchaindb/backend/rethinkdb/schema.py | 8 +------- tests/db/rethinkdb/test_schema.py | 2 -- 4 files changed, 7 insertions(+), 51 deletions(-) diff --git a/bigchaindb/backend/query.py b/bigchaindb/backend/query.py index 16f83488..75557051 100644 --- a/bigchaindb/backend/query.py +++ b/bigchaindb/backend/query.py @@ -107,28 +107,6 @@ def get_blocks_status_from_transaction(connection, transaction_id): raise NotImplementedError -@singledispatch -def get_txids_by_metadata_id(connection, metadata_id): - """Retrieves transaction ids related to a particular metadata. - - When creating a transaction one of the optional arguments is the - `metadata`. The metadata is a generic dict that contains extra - information that can be appended to the transaction. - - To make it easy to query the bigchain for that particular metadata as we - create a UUID for the metadata and store it with the transaction. - - Args: - metadata_id (str): the id for this particular metadata. - - Returns: - A list of transaction ids containing that metadata. If no - transaction exists with that metadata it returns an empty list `[]` - """ - - raise NotImplementedError - - @singledispatch def get_txids_by_asset_id(connection, asset_id): """Retrieves transactions ids related to a particular asset. diff --git a/bigchaindb/backend/rethinkdb/query.py b/bigchaindb/backend/rethinkdb/query.py index a9035646..18c88f82 100644 --- a/bigchaindb/backend/rethinkdb/query.py +++ b/bigchaindb/backend/rethinkdb/query.py @@ -73,18 +73,6 @@ def get_blocks_status_from_transaction(connection, transaction_id): .pluck('votes', 'id', {'block': ['voters']})) -@register_query(RethinkDBConnection) -def get_txids_by_metadata_id(connection, metadata_id): - return connection.run( - r.table('bigchain', read_mode=READ_MODE) - .get_all(metadata_id, index='metadata_id') - .concat_map(lambda block: block['block']['transactions']) - .filter(lambda transaction: - transaction['transaction']['metadata']['id'] == - metadata_id) - .get_field('id')) - - @register_query(RethinkDBConnection) def get_txids_by_asset_id(connection, asset_id): # here we only want to return the transaction ids since later on when @@ -93,7 +81,7 @@ def get_txids_by_asset_id(connection, asset_id): r.table('bigchain') .get_all(asset_id, index='asset_id') .concat_map(lambda block: block['block']['transactions']) - .filter(lambda transaction: transaction['transaction']['asset']['id'] == asset_id) + .filter(lambda transaction: transaction['asset']['id'] == asset_id) .get_field('id')) @@ -103,11 +91,9 @@ def get_asset_by_id(connection, asset_id): r.table('bigchain', read_mode=READ_MODE) .get_all(asset_id, index='asset_id') .concat_map(lambda block: block['block']['transactions']) - .filter(lambda transaction: - transaction['transaction']['asset']['id'] == asset_id) - .filter(lambda transaction: - transaction['transaction']['operation'] == 'CREATE') - .pluck({'transaction': 'asset'})) + .filter(lambda transaction: transaction['asset']['id'] == asset_id) + .filter(lambda transaction: transaction['operation'] == 'CREATE') + .pluck('asset')) @register_query(RethinkDBConnection) @@ -116,7 +102,7 @@ def get_spent(connection, transaction_id, condition_id): return connection.run( r.table('bigchain', read_mode=READ_MODE) .concat_map(lambda doc: doc['block']['transactions']) - .filter(lambda transaction: transaction['transaction']['fulfillments'].contains( + .filter(lambda transaction: transaction['fulfillments'].contains( lambda fulfillment: fulfillment['input'] == {'txid': transaction_id, 'cid': condition_id}))) @@ -126,7 +112,7 @@ def get_owned_ids(connection, owner): return connection.run( r.table('bigchain', read_mode=READ_MODE) .concat_map(lambda doc: doc['block']['transactions']) - .filter(lambda tx: tx['transaction']['conditions'].contains( + .filter(lambda tx: tx['conditions'].contains( lambda c: c['owners_after'].contains(owner)))) diff --git a/bigchaindb/backend/rethinkdb/schema.py b/bigchaindb/backend/rethinkdb/schema.py index dd648d41..49a1a8e8 100644 --- a/bigchaindb/backend/rethinkdb/schema.py +++ b/bigchaindb/backend/rethinkdb/schema.py @@ -62,17 +62,11 @@ def create_bigchain_secondary_index(connection, dbname): .table('bigchain') .index_create('transaction_id', r.row['block']['transactions']['id'], multi=True)) - # secondary index for payload data by UUID - connection.run( - r.db(dbname) - .table('bigchain') - .index_create('metadata_id', r.row['block']['transactions']['transaction']['metadata']['id'], multi=True)) - # secondary index for asset uuid connection.run( r.db(dbname) .table('bigchain') - .index_create('asset_id', r.row['block']['transactions']['transaction']['asset']['id'], multi=True)) + .index_create('asset_id', r.row['block']['transactions']['asset']['id'], multi=True)) # wait for rethinkdb to finish creating secondary indexes connection.run( diff --git a/tests/db/rethinkdb/test_schema.py b/tests/db/rethinkdb/test_schema.py index e7017cfd..20e2ad2f 100644 --- a/tests/db/rethinkdb/test_schema.py +++ b/tests/db/rethinkdb/test_schema.py @@ -92,8 +92,6 @@ def test_create_secondary_indexes(): 'block_timestamp')) is True assert conn.run(r.db(dbname).table('bigchain').index_list().contains( 'transaction_id')) is True - assert conn.run(r.db(dbname).table('bigchain').index_list().contains( - 'metadata_id')) is True assert conn.run(r.db(dbname).table('bigchain').index_list().contains( 'asset_id')) is True