Rowan User Guide

Chapter 4

Browse data

Open any table or view to see its rows in the grid. Rowan pages through tables of any size smoothly, so you can scroll, sort and filter millions of rows without waiting.

The grid and paging#

To open a table, click it in the sidebar, or press CtrlP and type its name. Its rows appear in the grid, one page at a time; as you scroll, Rowan fetches the next page in the background.

The orders table in the grid, with columns for id, status, total, paid, note, customer_id, created_at and shipped_on
The orders table. Numbers are right-aligned, NULL is a gray pill, and booleans are checkboxes.
  • CtrlUp and CtrlDown jump to the first and last row; CtrlLeft and CtrlRight move a page back or forward.
  • The bottom bar shows the number of rows and which ones are in view. For a large table the count is an estimate, shown with a ~; click it and choose Count to count exactly. Small tables are always counted exactly.
  • To start at a particular row, click the gear in the bottom bar (or press CtrlG), set Limit and Offset, and choose Go.
  • Drag a column's edge to resize it; double-click the edge to fit its contents.
The Limit and Offset popup above the bottom bar's gear, with Limit 1,000 and Offset 0
Limit and Offset, from the gear in the bottom bar.

The number of rows Rowan fetches at a time is set in Settings > Table (Rows per page).

Note

Rowan pages by primary key whenever it can, so jumping to row four million of a table is as quick as row one.

Sort rows#

Click a column's header to sort by it: once for descending, again for ascending, a third time to stop sorting. A chevron beside the name shows the direction. You can also right-click a header and choose Sort Ascending, Sort Descending or Remove Sort.

Sort by several columns#

  1. Press CtrlAltS, or right-click a header and choose Sort Multiple Columns > Edit….
  2. Add each column in the order it should sort, and choose Ascending or Descending for each.
  3. Choose Apply.
The Sort Multiple Columns sheet listing columns with a direction for each
Sort by as many columns as you like, each with its own direction.

A table you haven't sorted is shown in primary key order. You can change that default in Settings > Table. Each tab remembers its sort, even after Rowan restarts.

Filter rows#

The filter bar finds rows without writing SQL. Press CtrlF, or click the funnel in the bottom bar.

The filter bar with two rows: status equals shipped, applied, and total between 10 and 50
Two filters. The first is applied; the second is ready but not checked.
  1. Choose a column, or Any column to search them all, or Raw SQL to write your own condition.
  2. Choose an operator, such as =, Contains or BETWEEN.
  3. Type a value and press Enter, or click Apply.

The operators are =, <>, <, >, <=, >=, IN, NOT IN, IS NULL, IS NOT NULL, BETWEEN, NOT BETWEEN, LIKE, NOT LIKE, ILIKE, NOT ILIKE, Contains, Not contains, Has prefix and Has suffix, and the last four again in an any case version. BETWEEN takes two values; IN takes values separated by commas.

Several filters at once#

  • Press CtrlI in the bar, or click +, to add a filter row; CtrlShiftI or − removes one.
  • The checkbox at the start of each row decides whether it's used. CtrlB checks or unchecks the current row.
  • Apply All (CtrlEnter) applies every checked filter, joined with AND. To join them with OR, click the arrow beside it and choose Apply All Checked Filters with OR.
  • SQL shows the query the filters make, to copy or open in an SQL editor. Export… exports the filtered rows. Clear removes every filter.
  • Esc clears the value you're typing; press it again to hide the bar.

Values are sent to the server as parameters, never pasted into the SQL, so a quote or a semicolon in a value is just a character. The Filters button in the bottom bar lights up while a filter is on, and each table keeps its filters, even across restarts.

Tip

The gear in the filter bar sets where new filters start: the default column and operator, and whether the bar stays open for each table. The same options are in Settings > Table.

Quick filters#

To filter by a value you can see, right-click its cell and choose Quick Filter, then one of: = that value, Contains, Has prefix, IS NULL or IS NOT NULL. Select several cells first to filter with IN their values. To start a filter on a column, right-click its header and choose Filter With Column.

The grid's right-click menu with Quick Filter open, offering status = shipped, Contains, Has prefix and IS NOT NULL
Quick Filter on a status of shipped. The same menu copies, pastes, sets values and adds rows.

Show and hide columns#

Press CtrlAltF, or click Columns, to choose which columns to show. Type names separated by commas, or check and uncheck them in the list, then choose Apply. Right-click a header for Hide This Column and Show All Columns. Each table remembers which columns are hidden.

The Columns popup with a field for column names, a search field and a checkbox for each column of orders
The Columns popup. Uncheck a column to hide it.

Pinned columns#

A pinned column stays at the left edge while you scroll across a wide table. The primary key is pinned for you; to pin any other column, right-click its header and choose Pin Column.

The grid scrolled to the right with the id and status columns pinned at the left, casting a soft shadow
With id and status pinned, the other columns slide under them as you scroll.

Pinned columns keep the order you pinned them in, and each table remembers them. Choose Unpin Column or Unpin All from the header's menu to let them scroll again. If pinned columns would take up most of the grid, Rowan lets them scroll until there's room. To stop pinning primary keys, turn off Pin primary key in Settings > Table.

Follow foreign keys#

A cell in a foreign key column has a small arrow at its right edge. Click the arrow, or right-click the cell and choose Open Referenced Row, to open the row it points to in a new tab, already filtered to that row.

The customer_id column with an arrow beside each value
Each customer_id has an arrow that opens the customer it refers to.

Keys over several columns work too: the new tab filters on every column of the key. Use AltLeft to go back.

Row detail#

The right sidebar shows the selected row as a form, one field per line with its type. Press Space in the grid to show or hide it.

  • Type in Search for field… to find a field in a wide table.
  • Edit a field and press Enter; the change is staged like an edit in the grid.
  • The ⋯ beside a field sets it to NULL, DEFAULT, EMPTY or now(), formats JSON with PRETTY or MINIFY, or loads a file into it.
The right sidebar with three rows selected, showing Multiple values in fields that differ
With several rows selected, an edit changes all of them. Fields that differ read Multiple values.

Quick Look#

Quick Look opens a cell in a larger editor, right beside it. Select a cell and press CtrlEnter, middle-click it, or right-click and choose Quick Look Editor.

Quick Look showing a JSON value from the products table, indented, with Raw and Tree views
Quick Look on a JSON value. Choose Raw or Tree, and PRETTY or MINIFY.
  • Long text, JSON and XML get room to read and edit. JSON can be shown as Raw text or as a Tree.
  • Binary (bytea) values preview as images or PDFs where they are one, with their hex below. Save As… saves the value to a file, and Add a File… replaces it with one.
  • Save stages the change; Cancel or Esc closes without changing anything.
  • Open in Window (CtrlShiftO) moves Quick Look into a window you can resize and keep open while you work.

Copy rows and cells#

  • CtrlC copies the rows your selection touches, as tab-separated text that pastes neatly into a spreadsheet or back into Rowan.
  • CtrlShiftC copies only the selected cells.
  • Right-click and choose Copy Rows As or Copy Selected Cells As for another format: Plain Text, JSON, HTML, Markdown Table, CSV, CSV include fields name or SQL Insert Statement.
  • Right-click a header for Copy Column Name, or Copy All Column Values to copy the whole column, as filtered and sorted, not just the rows loaded.

To export rows to a file instead, see Export.

Special values#

Rowan draws some values in a way that's quick to read:

The products table showing booleans as checkboxes, JSON in a column and NULL pills
The products table: prices right-aligned, booleans as checkboxes, JSON on one line, and NULL as a pill.
NULL
A small gray pill reading NULL, so it can't be mistaken for the text "NULL" or an empty string.
Booleans
Checkboxes. Click one, or press Space, to toggle it. Settings can show them as true and false instead.
Numbers
Right-aligned with tabular figures, so digits line up. Thousands separators are a setting; copying and exporting always give the plain number.
Dates and times
One consistent format. Full timestamps adds fractions of a second and the time zone offset; Time zone shows them as the server sends them, or in your local time.
JSON
On one line in the grid, indented in the right sidebar and Quick Look.
Long text
Shown in full, or cut after a number of characters if you prefer. The right sidebar, tooltips and copying always give the whole value.
PostGIS
Geometry and geography values read as text, such as POINT(1 2), and you can edit them the same way.

All of these are in Settings > Table.