github.com/square/finch@v0.0.0-20240412205204-6530c03e2b96/benchmarks/xfer/trx/xfer.sql (about)

     1  
     2  BEGIN
     3  
     4  -- save-columns: @sender_token, @country
     5  SELECT c_token, country FROM customers WHERE id=@sender_id -- 2
     6  
     7  -- save-columns: @sender_balance_token
     8  SELECT b_token FROM balances WHERE c_token=@sender_token LIMIT 1 -- 3
     9  
    10  -- save-columns: @receiver_token
    11  SELECT c_token FROM customers WHERE id BETWEEN @receiver_id AND @receiver_id+100 AND country=@country LIMIT 1 -- 4
    12  
    13  -- save-columns: @receiver_balance_token
    14  SELECT b_token FROM balances WHERE c_token=@receiver_token LIMIT 1 -- 5
    15  
    16  -- save-insert-id: @xfer_id
    17  INSERT INTO xfers VALUES (NULL, @x_token, 100, 'USD', @sender_balance_token, @receiver_balance_token, 1, @c1, @c2, @c3, NOW(), NULL, NULL, 1, 0, NOW(), NOW()) -- 6
    18  
    19  -- save-columns: @sender_balance_id, _
    20  SELECT id, version FROM balances WHERE b_token=@sender_balance_token FOR UPDATE -- 7
    21  
    22  UPDATE balances SET cents=cents-100, version=version+1 WHERE id=@sender_balance_id -- 8
    23  
    24  -- save-columns: @receiver_balance_id, _
    25  SELECT id, version FROM balances WHERE b_token=@receiver_balance_token FOR UPDATE -- 9
    26  
    27  UPDATE balances SET cents=cents+100, version=version+1 WHERE id=@receiver_balance_id -- 10
    28  
    29  UPDATE xfers SET t2=NOW(), c3='DONE' WHERE id=@xfer_id -- 11
    30  
    31  COMMIT