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.
| Type | Intent | Optional | 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 |