Skip to content

Latest commit

 

History

History
217 lines (160 loc) · 7.19 KB

sqltab.rst

File metadata and controls

217 lines (160 loc) · 7.19 KB

SQLite Tables Reference

In addition to the tables generated for each log format, lnav includes the following tables/views:

These extra tables provide useful information and can let you manipulate lnav's internal state. You can get a dump of the entire database schema by executing the '.schema' SQL command, like so:

;.schema

environ

The environ table gives you access to the lnav process' environment variables. You can SELECT, INSERT, and UPDATE environment variables, like so:

;SELECT * FROM environ WHERE name = 'SHELL'
 name   value
SHELL /bin/tcsh

;UPDATE environ SET value = '/bin/sh' WHERE name = 'SHELL'

Environment variables can be used to store simple values or pass values from lnav's SQL environment to lnav's commands. For example, the "open" command will do variable substitution, so you can insert a variable named "FILENAME" and then open it in lnav by referencing it with "$FILENAME":

;INSERT INTO environ VALUES ('FILENAME', '/path/to/file')
:open $FILENAME

lnav_events

The lnav_events table allows you to react to events that occur while lnav is running using SQLite triggers. For example, when a file is opened, a row is inserted into the lnav_events table that contains a timestamp and a JSON object with the event ID and the path of the file. The following columns are available in this table:

ts

The timestamp of the event.

content

A JSON object that contains the event information. See the event_reference for more information about the types of events that are available.

lnav_file

The lnav_file table allows you to examine and perform limited updates to the metadata for the files that are currently loaded into lnav. The following columns are available in this table:

device

The device the file is stored on.

inode

The inode for the file on the device.

filepath

If this is a real file, it will be the absolute path. Otherwise, it is a symbolic name. If it is a symbolic name, it can be UPDATEd so that this file will be considered when saving and loading session information.

format

The log file format for the file.

lines

The number of lines in the file.

time_offset

The millisecond offset for timestamps. This column can be UPDATEd to change the offset of timestamps in the file.

lnav_user_notifications

The lnav_user_notifications table allows you to display a custom message in the top-right corner of the UI. For example, to display "Hello, World!", you can enter:

;REPLACE INTO lnav_user_notifications (message) VALUES ('Hello, World!')

There are additional columns to have finer control of what is displayed and when:

id

The unique ID for the message, defaults to "org.lnav.user". This is the primary key for the table, so more than one type of message is not allowed.

priority

The priority of the message. Higher priority messages will be displayed until they are cleared or are expired.

created

The time the message was created.

expiration

The time when the message should expire or NULL if it should not automatically expire.

views

A JSON array of view names where the message is applicable or NULL if the message should be shown in all views.

message

The message itself.

This table will most likely be used in combination with Events and the lnav_views_echo table.

lnav_views

The lnav_views table allows you to SELECT and UPDATE information related to lnav's "views" (e.g. log, text, ...). The following columns are available in this table:

name

The name of the view.

top

The line number at the top of the view. This value can be UPDATEd to move the view to the given line.

left

The left-most column number to display. This value can be UPDATEd to move the view left or right.

height

The number of lines that are displayed on the screen.

inner_height

The number of lines of content being displayed.

top_time

The timestamp of the top line in the view or NULL if the view is not time-based. This value can be UPDATEd to move the view to the given time.

paused

Indicates if the view is paused and will not load new data.

search

The search string for this view. This value can be UPDATEd to initiate a text search in this view.

lnav_views_echo

The lnav_views_echo table is a real SQLite table that you can create TRIGGERs on in order to react to users moving around in a view.

Note

The table is periodically updated to reflect the current state of the views. The changes are not performed immediately after the user action.

lnav_view_stack

The lnav_view_stack table allows you to SELECT and DELETE from the stack of lnav "views" (e.g. log, text, ...). The following columns are available in this table:

name

The name of the view.

lnav_view_filters

The lnav_view_filters table allows you to manipulate the filters in the lnav views. The following columns are available in this table:

view_name

The name of the view the filter is applied to.

filter_id

The filter identifier. This will be assigned on insertion.

enabled

Indicates whether this filter is enabled or disabled.

type

The type of filter, either 'in' or 'out'.

pattern

The regular expression to filter on.

This table supports SELECT, INSERT, UPDATE, and DELETE on the table rows to read, create, update, and delete filters for the views.

lnav_view_filter_stats

The lnav_view_filter_stats table allows you to get information about how many lines matched a given filter. The following columns are available in this table:

view_name

The name of the view.

filter_id

The filter identifier.

hits

The number of lines that matched this filter.

This table is read-only.

lnav_view_filters_and_stats

The lnav_view_filters_and_stats view joins the lnav_view_filters table with the lnav_view_filter_stats table into a single view for ease of use.

all_logs

The all_logs table lets you query the format derived from the lnav log message parser that is used to automatically extract data, see data-ext for more details.

http_status_codes

The http_status_codes table is a handy reference that can be used to turn HTTP status codes into human-readable messages.

regexp_capture(<string>, <regex>)

The regexp_capture() table-valued function applies the regular expression to the given string and returns detailed results for the captured portions of the string.