nsmcp::AccessRecordStoreSQLite method scopeDiagnostics (protected)

 <instance of nsmcp::AccessRecordStoreSQLite[i]> scopeDiagnostics

Defined in /usr/local/ns/tcl/nsmcp/log-traffic-record-store.tcl

Testcases:
No testcase defined.
Source code:
if {[:fullPartitionScope]} {
    set floor [:retentionFloor]
    if {![${:db} scalar {SELECT EXISTS(SELECT 1 FROM main.files WHERE active=0)}]} {
        set row [lindex [${:db} execute {
            SELECT coalesce(sum(n),0) AS examinedRecords,0 AS parseErrors,0 AS oversizedRecords,
                coalesce(min(first),'') AS earliestAt,coalesce(max(last),'') AS latestAt
            FROM main.partitions WHERE n>0
        }] 0]
        if {[dict get $row examinedRecords]==0 || [dict get $row earliestAt]>=$floor} {
            dict set :queryMetrics diagnosticsSource partition-metadata
            return $row
        }
    }
    # A partially retained partition or an inactive generation cannot use
    # partition counts. Ready minute rollups preserve the active-file and
    # retention filters; exact timestamp extrema come from two edge minutes.
    set end [${:db} scalar {
        SELECT coalesce(max(slot),0)+60 FROM main.minutes m
        JOIN temp.nsmcp_record_scope s ON m.fid=s.fid
    }]
    set source [:rollupSource [dict create from $floor to [expr {max($floor,$end)}] pathLiteral {}]]
    set row [lindex [${:db} execute "
        SELECT coalesce(sum(n),0) AS examinedRecords,0 AS parseErrors,0 AS oversizedRecords,
            coalesce(min(t),'') AS earliestAt,coalesce(max(t),'') AS latestAt FROM ($source)
    "] 0]
    set exact true
    if {[dict get $row examinedRecords]>0} {
        foreach {key func} {earliestAt min latestAt max} {
            set lo [expr {wide(floor([dict get $row $key]/60.0))*60}]
            set hi [expr {$lo+60}]
            set value [${:db} scalar "SELECT ${func}(t) FROM temp.nsmcp_record_window
                WHERE kind=0 AND t>=$lo AND t<$hi"]
            if {$value eq {}} {set exact false; break}
            dict set row $key $value
        }
    }
    if {$exact} {
        dict set :queryMetrics diagnosticsSource minute-rollups
        return $row
    }
}
dict set :queryMetrics diagnosticsSource detailed-rows
return [lindex [${:db} execute {
    SELECT count(*) AS examinedRecords,coalesce(sum(kind=1),0) AS parseErrors,
        coalesce(sum(kind=2),0) AS oversizedRecords,coalesce(min(t),'') AS earliestAt,
        coalesce(max(t),'') AS latestAt FROM temp.nsmcp_record_window
}] 0]
XQL Not present:
Generic, PostgreSQL, Oracle
[ hide source ] | [ make this the default ]
Show another procedure: