scan_cb Interface

interface

Signature of a db_scan callback. Invoked once per live row; set stop to .true. to end the scan early. The scanning db is passed through so the callback can resolve DT_TEXT columns for the current row via db_get_text(db, table, row_id, ...) — the in-row buf holds only the blob descriptor, not the text. The callback must not make structural changes to db (create or drop a table) during the scan, as that would invalidate the scan in progress; reading rows / text and mutating row data are fine.


public subroutine scan_cb(db, row_id, buf, ctx, stop)

Arguments

Type IntentOptional Attributes Name
class(db_t), intent(inout) :: db

The database being scanned (for TEXT resolution)

integer(kind=int32), intent(in) :: row_id

Row id of the current row

character(len=*), intent(in) :: buf

The row's record buffer (read-only)

class(*), intent(inout) :: ctx

Opaque caller context, threaded through unchanged

logical, intent(out) :: stop

Set .true. to stop the scan