This document describes LIBPQ for OpenVMS Alpha (May 2019), a client API and embedded SQL pre-processor for PostgreSQL 11.0.
Key components and features:
- Provides the C/C++ application programmer's interface (API) to PostgreSQL.
- Includes the ECPG embedded SQL pre-processor for C/C++ applications.
- Features the PSQL interactive query tool.
- The kit supports all PostgreSQL C/C++ API functionality, including Oracle Pro*C compatibility.
System requirements:
- OpenVMS V8.4-2L1 Alpha (or higher).
- HP TCP/IP Services V5.7 ECO 2 (MultiNet TCP/IP is likely compatible).
- VSI C V7.4-002 (or similar) compiler.
- Assumes user familiarity with OpenVMS software development and PostgreSQL client APIs.
Installation and Usage:
- The software is provided as an OpenVMS PCSI kit (e.g.,
VSI-AXPVMS-LIBPQ-V1100-0A-1.PCSI) installed using $ PRODUCT INSTALL LIBPQ.
- Post-installation requires adding startup/shutdown scripts to
SYSTARTUP_VMS.COM and SYSHUTDWN.COM to define system-wide logical names like LIBPQ$ROOT and LIBPQ$SHR.
- Developers must compile applications with
/NAMES=(AS_IS) due to mixed-case symbols and include header files from LIBPQ$ROOT:[INCLUDE].
- Applications can be dynamically linked with the
LIBPQ$SHR.EXE shareable image or statically linked with object libraries (static linking is often preferred for production deployments but requires linking SSL).
- A higher BYTLM quota is recommended, especially for large data transfers.
- Sample applications are provided in
LIBPQ$ROOT:[EXAMPLES] to guide development.
- Alternative installation locations are supported but require manual copying of startup/shutdown scripts.
Important Notes:
- LIBPQ has been built using the
G_FLOAT floating-point format; all application code should consistently use G_FLOAT to avoid issues.
- For correct command-line parsing with ECPG and PSQL, users should set the process parse style to "extended" (
set process/parse_style=extended) or enclose arguments in double quotes.
- Future releases may include wrapper APIs for other languages like COBOL, FORTRAN, Pascal, and BASIC.