Exasol Virtual Schema (Lua)
August 20, 2026 · View on GitHub
Abstract read access from Exasol to Exasol via a Virtual Schema.
Features
- Access a local Exasol schema through a Virtual Schema
- Access a remote Exasol schema (since version 0.4.0)
TIMESTAMPnano-second precision (since version 1.0.0)- Selective source table filter (optional)
- Excluded push-down capabilities (optional)
- Remote log via socket listener (optional)
Repository Layout
The repository contains the runnable Exasol-to-Exasol adapter (evsl) and two reusable Lua libraries: the generic Virtual Schema core (vscl) and shared Exasol-specific functionality (evscl). Each module has matching documentation, implementation, and unit-test directories.
exasol-virtual-schema-lua/
├── doc/
│ ├── evsl/ # Adapter requirements, guides, and models
│ ├── evscl/ # Shared Exasol-library requirements and models
│ └── vscl/ # Virtual Schema core-library requirements and models
├── src/main/lua/exasol/
│ ├── evsl/ # Runnable Exasol-to-Exasol Virtual Schema adapter
│ ├── evscl/ # Shared Exasol access and metadata support
│ └── vscl/ # Generic Virtual Schema request and query handling
├── src/test/java # Integration tests for the Adapter (and underlying libraries)
└── spec/exasol/
├── evsl/ # Adapter unit tests
├── evscl/ # Shared Exasol-library unit tests
└── vscl/ # Core-library unit tests
Table of Contents
EVSL — Exasol Virtual Schema Lua
EVSCL — Exasol Virtual Schema Common Library
VSCL — Virtual Schema Common Library
Common Parts
Requirement, design documents and coverage tags are written in OpenFastTrace format.
Runtime Dependencies
Lua Dependencies
Running the Exasol Virtual Schema (Lua) requires an Exasol database with built-in Lua 5.4 or later.
| Dependency | Purpose | License |
|---|---|---|
| Lua CJSON | JSON parsing and writing | MIT License |
| remotelog | Logging through a TCP socket | MIT License |
remotelog has a transitive dependency to LuaSocket (MIT License). Note that Lua CSON and LuaSocket are pre-installed on an Exasol database.
For local unit testing you need to install them on the test machine though.
Test Dependencies
Unit Test Dependencies
Unit tests are written in Lua.
| Dependency | Purpose | License |
|---|---|---|
| busted | Unit testing framework | BSD License |
| Mockagne | Mocking framework | MIT License |
Integration Test Dependencies
The integration tests require exasol-testcontainers to provide an Exasol instance. They are written in Java and require version 17 or later.
See also: Java Dependencies.
Build Dependencies
This project has a complex build setup due to the mixture of Lua and Java. Apache Maven serves as the main build tool.
Lua build steps are also encapsulated by Maven.
| Dependency | Purpose | License |
|---|---|---|
| Amalg | Bundling Lua modules (and scripts) | MIT License |
| LuaRocks | Package management | MIT License |
See also: Java Dependencies.