Skip to main content
The table viewer provides a spreadsheet-like interface for browsing and managing data in your PostgreSQL tables. It supports large datasets with virtualized rendering, inline editing, and flexible export options.

Opening tables

Access the table viewer from the schema explorer:
  1. Navigate to Table Viewer in the sidebar
  2. Expand your server and database in the tree
  3. Click any table name to open it
The currently selected table is highlighted in the tree, making it easy to see what you’re viewing.

Viewing data

The table viewer displays your data in a grid with:
  • Column headers: Clickable headers showing column names and data types
  • Row data: All column values for each row
  • Pagination controls: Navigate through large datasets
  • Row counter: Total number of rows in the table

Virtual rendering

For tables with thousands of rows, Poge uses virtual rendering (components/virtual-table.tsx) to:
  • Render only visible rows
  • Maintain smooth scrolling performance
  • Handle datasets of any size

Pagination

Tables are loaded in pages to optimize performance:
  • Default page size: 100 rows
  • Page size options: 50, 100, 200, 500 rows per page
  • Navigation: Previous, Next, First, Last page buttons
  • Page counter: Shows current page and total pages
Change the page size using the dropdown in the toolbar.

Table schema

View the table’s structure by clicking the Schema tab or button:

Column information

For each column, the schema shows:
  • Column name: The column identifier
  • Data type: PostgreSQL data type (varchar, integer, timestamp, etc.)
  • Nullable: Whether the column accepts NULL values
  • Default value: Default value for new rows
  • Primary key: Whether this column is part of the primary key

Indexes

View all indexes on the table:
  • Index name: Unique identifier for the index
  • Columns: Which columns are included
  • Type: Index type (btree, hash, gin, gist)
  • Unique: Whether the index enforces uniqueness

Constraints

See all table constraints:
  • Primary keys: Unique row identifiers
  • Foreign keys: References to other tables
  • Unique constraints: Enforce unique values
  • Check constraints: Validation rules

Editing data

Inline editing is available but requires careful use. Always ensure you’re editing the correct table and row before making changes.
To edit a cell:
  1. Click the cell to select it
  2. Type the new value
  3. Press Enter to confirm or Escape to cancel
Changes are saved automatically when you confirm the edit.

Adding rows

Add new rows to the table:
  1. Click the Add Row button in the toolbar
  2. Fill in values for each column
  3. Click Save to insert the row
Columns with default values or auto-increment (SERIAL) don’t need to be filled in.

Deleting rows

Delete one or more rows:
  1. Select rows using the checkboxes
  2. Click the Delete Selected button
  3. Confirm the deletion in the dialog
Row deletion is permanent and cannot be undone. Make sure you have backups before deleting important data.

Exporting data

Export table data in multiple formats:
Export as comma-separated values:
  1. Click ExportCSV
  2. Choose to include headers (recommended)
  3. File downloads automatically
id,name,email,created_at
1,John Doe,john@example.com,2024-01-15 10:30:00
2,Jane Smith,jane@example.com,2024-01-16 14:22:00
Large exports (>10,000 rows) may take a few seconds to generate. The browser will show a progress indicator.

Filtering and sorting

Sorting

Click any column header to sort by that column:
  • First click: Sort ascending
  • Second click: Sort descending
  • Third click: Remove sorting
The current sort is indicated by an arrow icon (↑ or ↓) next to the column name.

Filtering

Filter rows by column values:
  1. Click the Filter icon in the column header
  2. Enter your filter criteria
  3. Press Enter to apply
Filter operators:
  • Equals: Exact match
  • Contains: Partial match (case-insensitive)
  • Starts with: Value begins with text
  • Ends with: Value ends with text
  • Greater than / Less than: Numeric and date comparisons
Multiple filters can be combined. All conditions must be met for a row to be displayed (AND logic).

Table operations

Rename table

  1. Right-click the table name in the schema tree
  2. Select Rename
  3. Enter the new name
  4. Click Rename

Edit table structure

Open the table designer to modify:
  • Add/remove columns
  • Change column types
  • Add/remove indexes
  • Modify constraints
Click Edit Table in the toolbar to open the designer.

Drop table

Dropping a table permanently deletes it and all its data. This cannot be undone.
  1. Right-click the table name
  2. Select Drop Table
  3. Confirm by typing the table name
  4. Click Drop Table

Performance tips

Large tables

For tables with millions of rows:
  • Use pagination instead of loading all rows
  • Apply filters to reduce the result set
  • Create indexes on frequently queried columns
  • Export in smaller batches

Virtual scrolling

The virtual table component renders only visible rows, so:
  • Scrolling remains smooth even with large page sizes
  • Memory usage is optimized
  • Initial load time is fast

Keyboard navigation

Navigate the table using keyboard shortcuts:
ActionKey
Move right or Tab
Move left or Shift + Tab
Move down
Move up
Edit cellEnter or F2
Cancel editEscape
Save editEnter
Select allCtrl/Cmd + A

Next steps