# PL/Lua

> implementation of the Lua programming language for PostgreSQL database systems

**Wikidata**: [Q114269866](https://www.wikidata.org/wiki/Q114269866)  
**Source**: https://4ort.xyz/entity/pl-lua

## Summary
PL/Lua is an implementation of the Lua programming language for PostgreSQL database systems that provides a stored-procedure language and plugin integration. It is a domain-specific, procedural-language extension that allows Lua code to run inside PostgreSQL as stored procedures.

## Key Facts
- PL/Lua implements the Lua programming language as a stored-procedure language for PostgreSQL database systems.
- It is classified as a domain-specific language, a procedural programming language, and a plug-in.
- The project is available under the MIT License (referenced 2022-09-28).
- The primary source code repository is https://github.com/pllua/pllua (preferred; start time noted 2018-03-09).
- An alternate source repository is https://github.com/RhodiumToad/pllua-ng (start time noted 2017-11-26).
- The project publishes a user manual at https://pllua.github.io/pllua/ (English).
- The project has an AUR package named "pllua".
- The GitHub username associated with the project is "pllua" (start time noted 2014-10-23).
- The releases include: 0.1 (2017-12-15), 0.2 (2017-12-17), 0.9 (2018-03-11), 2.0 (2018-08-16), 2.0.1 (2018-12-03), 2.0.2 (2019-04-02), 2.0.3 (2019-04-24), 2.0.4 (2019-05-20), 2.0.5 (2020-04-29), and 2.0.6 (2020-09-14).
- Programming paradigm: procedural programming; dialect of computer language: Lua.

## FAQs
### Q: What is PL/Lua?
A: PL/Lua is an implementation of the Lua programming language for PostgreSQL that functions as a stored-procedure language and plugin, enabling Lua code to run inside PostgreSQL.

### Q: Where is the PL/Lua source code hosted?
A: The preferred source repository is https://github.com/pllua/pllua (noted from 2018-03-09). An alternate repository is https://github.com/RhodiumToad/pllua-ng (noted from 2017-11-26).

### Q: What license does PL/Lua use?
A: PL/Lua is distributed under the MIT License (reference date 2022-09-28).

## Why It Matters
PL/Lua matters because it brings the Lua programming language into the PostgreSQL environment as a domain-specific, procedural extension. By providing Lua as a stored-procedure language, PL/Lua enables developers who prefer Lua to write server-side database logic, user-defined functions, and procedural code that runs inside PostgreSQL. The combination of Lua's lightweight scripting capabilities with PostgreSQL's database engine creates an option for developers seeking a procedural language alternative inside the database. The project is maintained with public source repositories on GitHub and documented with a user manual, and it is distributed under the permissive MIT License, which can simplify adoption and redistribution. Multiple releases between 2017 and 2020 show active versioning and maintenance of the implementation.

## Notable For
- Integrating the Lua language specifically as a stored-procedure language for PostgreSQL.
- Being released under the MIT License (referenced 2022-09-28).
- Public source code hosting on GitHub (primary repo https://github.com/pllua/pllua).
- A series of official releases from 2017 through 2020, with version 2.0.6 released on 2020-09-14.
- Availability as an AUR package named "pllua".

## Body
### Overview
- PL/Lua is an implementation of Lua for PostgreSQL database systems.
- It is used to write stored procedures and other server-side database logic in Lua.
- The project is described as a domain-specific language and a plug-in for PostgreSQL.

### Classification
- Instance of: domain-specific language.
- Instance of: procedural programming language.
- Instance of: plug-in.
- Programming paradigm: procedural programming.
- Dialect of computer language: Lua.

### Releases and Version History
- Release 0.1 — publication date 2017-12-15.
- Release 0.2 — publication date 2017-12-17.
- Release 0.9 — publication date 2018-03-11.
- Release 2.0 — publication date 2018-08-16.
- Release 2.0.1 — publication date 2018-12-03.
- Release 2.0.2 — publication date 2019-04-02.
- Release 2.0.3 — publication date 2019-04-24.
- Release 2.0.4 — publication date 2019-05-20.
- Release 2.0.5 — publication date 2020-04-29.
- Release 2.0.6 — publication date 2020-09-14.

### Source and Distribution
- Preferred source code repository: https://github.com/pllua/pllua (metadata indicates "most recent value" with a start time of 2018-03-09).
- Alternate repository: https://github.com/RhodiumToad/pllua-ng (start time 2017-11-26).
- Project GitHub username: "pllua" (start time 2014-10-23).
- AUR package name: pllua.

### Documentation and User Resources
- User manual URL: https://pllua.github.io/pllua/ (English).
- Documentation and project footer reference the licensing and copyright status.

### License and Copyright
- License: MIT License (referenced 2022-09-28).
- Copyright status: copyrighted (reference dated 2022-09-28).

### Technical Attributes
- Primary use: stored procedure language for PostgreSQL.
- Implements: the Lua programming language (dialect_of_computer_language: Lua).
- Programming language used by project (metadata): Q15777 (represents Lua in the provided properties).

### Identifiers and Metadata
- Wikidata description: "implementation of the Lua programming language for PostgreSQL database systems".
- Source code repository values and timestamps are provided in project metadata.

## References

1. [Source](https://pllua.github.io/pllua/#footer)
2. [Release 0.1. 2017](https://github.com/pllua/pllua/releases/tag/REL_0_1)
3. [Release 0.2. 2017](https://github.com/pllua/pllua/releases/tag/REL_0_2)
4. [Release 0.9. 2018](https://github.com/pllua/pllua/releases/tag/REL_0_9)
5. [Release 2.0. 2018](https://github.com/pllua/pllua/releases/tag/REL_2_0)
6. [Release 2.0.1. 2018](https://github.com/pllua/pllua/releases/tag/REL_2_0_1)
7. [Release 2.0.2. 2019](https://github.com/pllua/pllua/releases/tag/REL_2_0_2)
8. [Release 2.0.3. 2019](https://github.com/pllua/pllua/releases/tag/REL_2_0_3)
9. [Release 2.0.4. 2019](https://github.com/pllua/pllua/releases/tag/REL_2_0_4)
10. [Release 2.0.5. 2020](https://github.com/pllua/pllua/releases/tag/REL_2_0_5)
11. [Release 2.0.6. 2020](https://github.com/pllua/pllua/releases/tag/REL_2_0_6)
12. [Release 2.0.7. 2021](https://github.com/pllua/pllua/releases/tag/REL_2_0_7)
13. [Release 2.0.8. 2021](https://github.com/pllua/pllua/releases/tag/REL_2_0_8)
14. [Release 2.0.9. 2021](https://github.com/pllua/pllua/releases/tag/REL_2_0_9)
15. [Release 2.0.10. 2021](https://github.com/pllua/pllua/releases/tag/REL_2_0_10)
16. [Release 2.0.11. 2023](https://github.com/pllua/pllua/releases/tag/REL_2_0_11)
17. [Release 2.0.12. 2023](https://github.com/pllua/pllua/releases/tag/REL_2_0_12)