nsmcp::AccessRecordStoreSQLite method prepareSelected (protected)

 <instance of nsmcp::AccessRecordStoreSQLite[i]> prepareSelected \
    selected count estimatedBytes

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

Parameters:
selected (required)
count (required)
estimatedBytes (required)

Testcases:
No testcase defined.
Source code:
set :selectedSource temp.nsmcp_record_window
set :selectedPredicate {}
dict set :queryMetrics selectedRecords $count
dict set :queryMetrics selectedEstimatedBytes $estimatedBytes
dict set :queryMetrics selectedRowLimit 10000
dict set :queryMetrics selectedEstimatedByteLimit 16777216
dict set :queryMetrics selectionSource detailed-rows
# Bound both row count and estimated copied payload. The estimate includes
# text representations and per-row overhead; it is not an allocator limit.
set reuse [expr {$count<=10000 && $estimatedBytes<=16777216}]
set queryOnly [${:db} scalar {PRAGMA query_only}]
try {
    ${:db} execute {PRAGMA query_only=OFF}
    ${:db} execute {DROP TABLE IF EXISTS temp.nsmcp_record_selected}
    if {$reuse} {
        set where [expr {$count==0 ? "0" : $selected}]
        ${:db} execute "CREATE TEMP TABLE nsmcp_record_selected AS
            SELECT * FROM temp.nsmcp_record_window WHERE $where"
        set :selectedSource temp.nsmcp_record_selected
        set :selectedPredicate $selected
        dict set :queryMetrics selectionSource temporary-selection
    }
} finally {
    ${:db} execute "PRAGMA query_only=$queryOnly"
}
XQL Not present:
Generic, PostgreSQL, Oracle
[ hide source ] | [ make this the default ]
Show another procedure: