ns::stats::SQLiteHistory method historySchema (protected)
<instance of ns::stats::SQLiteHistory> historySchema db
Defined in /usr/local/ns/lib/nsf2.5.0/lib/nx-traits.tcl
- Parameters:
- db (required)
- Testcases:
- No testcase defined.
Source code: foreach query { {CREATE TABLE IF NOT EXISTS ns_stats_meta (key TEXT PRIMARY KEY,value TEXT NOT NULL)} {CREATE TABLE IF NOT EXISTS ns_stats_topology (id TEXT PRIMARY KEY,payload TEXT NOT NULL)} {CREATE TABLE IF NOT EXISTS ns_stats_samples (at INTEGER PRIMARY KEY,instance TEXT NOT NULL,topology TEXT NOT NULL,payload TEXT NOT NULL)} {CREATE TABLE IF NOT EXISTS ns_stats_events (id INTEGER PRIMARY KEY,at INTEGER NOT NULL,first INTEGER NOT NULL,last INTEGER NOT NULL,n INTEGER NOT NULL,reason TEXT NOT NULL)} } { :sql $db $query } # Additive migration: existing compressed snapshots remain readable. set columns [lmap row [:sql $db {SELECT name FROM pragma_table_info('ns_stats_samples')}] {dict get $row name}] if {"allocator" ni $columns} { :sql $db {ALTER TABLE ns_stats_samples ADD COLUMN allocator TEXT} } set version [:scalar $db {SELECT value FROM ns_stats_meta WHERE key='schemaVersion'}] if {$version ne "" && $version ne "1"} { error "unsupported diagnostics history schema" } set source [ns_dbquotevalue [list [ns_info hostname] [ns_info home]]] set stored [:scalar $db {SELECT value FROM ns_stats_meta WHERE key='source'}] if {$stored ne "" && [ns_dbquotevalue $stored] ne $source} { error "history database belongs to another process installation" } :sql $db {INSERT OR IGNORE INTO ns_stats_meta VALUES('schemaVersion','1')} :sql $db {INSERT OR IGNORE INTO ns_stats_meta VALUES('encoding','tcl-zlib-hex-v1')} :sql $db "INSERT OR IGNORE INTO ns_stats_meta VALUES('source',$source)"XQL Not present: Generic, PostgreSQL, Oracle
![[i]](/resources/acs-subsite/ZoomIn16.gif)