---
layout: article
title: MPE_DATACATALOG_LIBS
description: The MPE_DATACATALOG_LIBS table catalogs library attributes such as engine, paths, permissions, owners & schemas
---

# MPE_DATACATALOG_LIBS

The `MPE_DATACATALOG_LIBS` table catalogs library attributes such as engine, paths, permissions, owners & schemas.

More frequently changing attributes (such as size and number of tables) are stored in [MPE_DATASTATUS_LIBS](/mpe_datastatus_libs).

To ignore additional librefs, or to trigger a scan, see the Refresh Data Catalog [instructions](/dcu-datacatalog/#refreshing-the-data-catalog).

## Columns

 - `TX_FROM num`: SCD2 open datetime
 - 🔑 `TX_TO num`: SCD2 close datetime
 - 🔑 `LIBREF char(8)`: SAS Libref (8 chars)
 - `ENGINE char(32)`: The engine used to connect to the library
 - `LIBNAME char(256)`: The Library Name (from metadata if SAS 9)
 - `PATHS char(8192)`: The directories used (BASE engine only)
 - `PERMS char(500)`: The directory permissions (BASE engine only)
 - `OWNERS char(500)`: The directory owners (BASE engine only)
 - `SCHEMAS char(500)`: The library schema (DB engines)
 - `LIBID char(17)`: The Library Id (from metadata if SAS 9)

## Refresh Process

The table is refreshed by the `mpe_refreshlibs` macro, which runs:

- When a user clicks the refresh icon next to a library in the VIEW menu (via the `refreshlibinfo` service)
- For ALL libraries when an administrator clicks REFRESH on the System page (via the `refreshlibs` service)

The refresh is driven primarily from `dictionary.libnames`, augmented with library name / id from metadata (SAS 9 only). Noteworthy behaviours:

- The `V9` engine is normalised to `BASE`
- Concatenated libraries produce multiple quoted entries in `PATHS`, with one comma-separated `PERMS` / `OWNERS` value per path
- `SCHEMAS` is populated for database engines
- On SAS 9 (metadata) deployments, invalid libraries are validated by attempting a META libname assignment and skipped on failure. If your environment has invalid libraries that cause exception errors, set the `DC_VIEWLIB_CHECK` config variable to `NO` in Data Controller Settings
- The following librefs are always excluded: `SASWORK`, `WORK`, `SASUSER`, `CASUSER`, `TEMP`, `STPSAMP`, `MAPSGFK`. Additional librefs can be ignored via `DC_IGNORELIBS` (see [Refreshing the Data Catalog](/dcu-datacatalog/#refreshing-the-data-catalog))

The load is TXTEMPORAL on the `LIBREF` key, so records are closed out (not deleted) when a library disappears.



