tx detail -> account relation
- fix relation between tx - slot - account
This commit is contained in:
parent
e0159d0601
commit
d87710a25d
|
@ -0,0 +1,30 @@
|
|||
## Collection of useful(tm) queries
|
||||
|
||||
### List accounts referenced in the relevant slots for respective transaction
|
||||
This is intended for testing or finding examples.
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
amt.transaction_id,
|
||||
acc.account_key,
|
||||
amb.*
|
||||
FROM banking_stage_results_2.accounts_map_blocks amb
|
||||
INNER JOIN banking_stage_results_2.accounts_map_transaction amt ON amt.acc_id=amb.acc_id
|
||||
INNER JOIN banking_stage_results_2.accounts acc ON acc.acc_id=amb.acc_id
|
||||
INNER JOIN banking_stage_results_2.transaction_slot tx_slot ON tx_slot.slot=amb.slot AND tx_slot.transaction_id=amt.transaction_id
|
||||
```
|
||||
|
||||
|
||||
### Transactions with more than one relevant slot
|
||||
|
||||
```sql
|
||||
SELECT
|
||||
tx_slot.transaction_id,signature,
|
||||
count(distinct slot)
|
||||
FROM banking_stage_results_2.transaction_slot tx_slot
|
||||
INNER JOIN banking_stage_results_2.transactions txs ON txs.transaction_id=tx_slot.transaction_id
|
||||
INNER JOIN banking_stage_results_2.errors err ON err.error_code=tx_slot.error_code
|
||||
WHERE true
|
||||
GROUP BY tx_slot.transaction_id, signature
|
||||
HAVING count(distinct slot) > 1
|
||||
```
|
|
@ -6,28 +6,28 @@ def run_query(transaction_row_limit=None, filter_txsig=None, filter_account_addr
|
|||
"""
|
||||
SELECT * FROM (
|
||||
SELECT
|
||||
signature,
|
||||
( SELECT count(distinct slot) FROM banking_stage_results_2.transaction_slot WHERE transaction_id=tx_slot.transaction_id ) AS num_relative_slots,
|
||||
(
|
||||
SELECT ARRAY_AGG(json_build_object('error', err.error_text, 'count', count)::text)
|
||||
FROM banking_stage_results_2.errors err
|
||||
WHERE err.error_code=tx_slot.error_code
|
||||
) AS all_errors,
|
||||
( txi is not null ) AS was_included_in_block,
|
||||
txi.cu_requested,
|
||||
txi.prioritization_fees,
|
||||
utc_timestamp
|
||||
signature,
|
||||
( SELECT count(distinct slot) FROM banking_stage_results_2.transaction_slot WHERE transaction_id=tx_slot.transaction_id ) AS num_relative_slots,
|
||||
(
|
||||
SELECT ARRAY_AGG(json_build_object('error', err.error_text, 'count', count)::text)
|
||||
FROM banking_stage_results_2.errors err
|
||||
WHERE err.error_code=tx_slot.error_code
|
||||
) AS all_errors,
|
||||
( txi is not null ) AS was_included_in_block,
|
||||
txi.cu_requested,
|
||||
txi.prioritization_fees,
|
||||
utc_timestamp
|
||||
FROM banking_stage_results_2.transaction_slot tx_slot
|
||||
INNER JOIN banking_stage_results_2.transactions txs ON txs.transaction_id=tx_slot.transaction_id
|
||||
LEFT JOIN banking_stage_results_2.transaction_infos txi ON txi.transaction_id=tx_slot.transaction_id
|
||||
LEFT JOIN banking_stage_results_2.transaction_infos txi ON txi.transaction_id=tx_slot.transaction_id
|
||||
WHERE true
|
||||
AND (%s or signature = %s)
|
||||
AND (%s or txi.transaction_id in (
|
||||
SELECT transaction_id
|
||||
FROM banking_stage_results_2.accounts_map_transaction amt
|
||||
INNER JOIN banking_stage_results_2.accounts acc ON acc.acc_id=amt.acc_id
|
||||
WHERE account_key = %s
|
||||
))
|
||||
SELECT transaction_id
|
||||
FROM banking_stage_results_2.accounts_map_transaction amt
|
||||
INNER JOIN banking_stage_results_2.accounts acc ON acc.acc_id=amt.acc_id
|
||||
WHERE account_key = %s
|
||||
))
|
||||
) AS data
|
||||
ORDER BY utc_timestamp DESC
|
||||
LIMIT %s
|
||||
|
|
|
@ -72,9 +72,11 @@ def find_transaction_details_by_sig(tx_sig: str):
|
|||
amb.*,
|
||||
acc.account_key
|
||||
FROM banking_stage_results_2.accounts_map_blocks amb
|
||||
INNER JOIN banking_stage_results_2.accounts_map_transaction amt ON amt.acc_id=amb.acc_id
|
||||
INNER JOIN banking_stage_results_2.accounts acc ON acc.acc_id=amb.acc_id
|
||||
WHERE slot IN (SELECT unnest(CAST(%s as bigint[])))
|
||||
""", args=[list(relevant_slots)]))
|
||||
WHERE amb.slot IN (SELECT unnest(CAST(%s as bigint[])))
|
||||
AND amt.transaction_id = %s
|
||||
""", args=[list(relevant_slots), transaction_id]))
|
||||
)
|
||||
|
||||
write_lock_info = dict()
|
||||
|
|
Loading…
Reference in New Issue