#!/usr/bin/env bash
# RAISE NOTICE adalah "printf debugging" di dalam database: pesannya keluar
# lewat stderr, bukan hasil query. Jalankan psql dengan 2>&1 agar keduanya
# tampil berurutan di satu aliran.
psql -X 2>&1 <<'SQL'
DO $$
DECLARE
    r        record;
    v_total  integer := 0;
BEGIN
    FOR r IN SELECT id, kategori, harga FROM transaksi ORDER BY id LOOP
        v_total := v_total + r.harga;
        RAISE NOTICE 'transaksi % (kategori %): harga % -> total sementara %',
                     r.id, r.kategori, r.harga, v_total;
    END LOOP;
    RAISE NOTICE 'total semua transaksi: %', v_total;
END $$;

-- Silang-cek: hasil loop harus sama dengan agregat SQL.
SELECT SUM(harga) AS total_silang_cek FROM transaksi;
SQL
