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