Exasol Virtual Schema (Lua)

August 20, 2026 · View on GitHub

Build Status

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)
  • TIMESTAMP nano-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.

DependencyPurposeLicense
Lua CJSONJSON parsing and writingMIT License
remotelogLogging through a TCP socketMIT 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.

DependencyPurposeLicense
bustedUnit testing frameworkBSD License
MockagneMocking frameworkMIT 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.

DependencyPurposeLicense
AmalgBundling Lua modules (and scripts)MIT License
LuaRocksPackage managementMIT License

See also: Java Dependencies.