PostgreSQL GUI client
Find a file
2026-10-22 19:17:46 +02:00
.idea Add tests for loading the catalog 2026-10-18 12:32:16 +02:00
.junie/skills Add framework for executing tests against multiple postgresql versions using docker compose. 2026-10-18 12:09:54 +02:00
core The editor now has context aware completions 2026-10-22 17:52:37 +02:00
docs The editor now has context aware completions 2026-10-22 17:52:37 +02:00
pglab Fix several fonts. 2026-10-22 19:17:46 +02:00
pglablib The editor now has context aware completions 2026-10-22 17:52:37 +02:00
pgsql Fix memory management issues in Pgsql_Params leave sources of moves in a valid state. 2026-10-18 13:38:41 +02:00
releasenotes The editor now has context aware completions 2026-10-22 17:52:37 +02:00
tests The editor now has context aware completions 2026-10-22 17:52:37 +02:00
.gitignore ignore .junie folder 2026-10-20 18:06:03 +02:00
.gitlab-ci.yml the job for gitlab pages must be called pages 2022-09-20 19:23:25 +02:00
AGENTS.md Add framework for executing tests against multiple postgresql versions using docker compose. 2026-10-18 12:09:54 +02:00
CMakeLists.txt Switch to cmake + vcpkg, builds on linux, windows needs verification. 2026-10-17 16:21:22 +02:00
README.md Make builds on windows work. 2026-10-19 15:07:29 +02:00
vcpkg.json Switch to cmake + vcpkg, builds on linux, windows needs verification. 2026-10-17 16:21:22 +02:00

The program is build with Qt 6.8 using QtCreator and the Visual Studio 2022 C++ compiler. Only 64-bits builds are actively maintained.

Documentation is generated automatically when a commit is tagged. It also includes releasenotes. The release notes use collected from git using reno.

Dependencies

  • boost
  • botan
  • googletest
  • libpq

Boost, Botan, libpq and googletest are provided by vcpkg through the manifest in vcpkg.json, so you do not install them manually.

Required tools

  • CMake 3.21 or newer
  • A C++20 compiler (GCC or Clang on Linux, Visual Studio 2022 on Windows)
  • Qt 6 with the Core, Gui, Widgets, Sql and Concurrent components
  • vcpkg, with the VCPKG_ROOT environment variable pointing to its checkout
  • Ninja or make (optional, for faster builds)
  • A PostgreSQL server (only needed to run the application against a database)

Building

Configure with the vcpkg toolchain file. The first configure downloads and builds the dependencies, which takes a while:

cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake
cmake --build build

To skip the test executables, add -DBUILD_TESTS=OFF to the configure command.

Building on Windows

Tested with Visual Studio 2022 (Professional) and Qt 6.8.2 (MSVC 2022, 64-bit). Run these commands from a "x64 Native Tools Command Prompt for VS 2022", with VCPKG_ROOT set and Qt installed in C:\Qt\6.8.2\msvc2022_64:

cmake -S . -B build -G "Visual Studio 17 2022" -A x64 -DCMAKE_TOOLCHAIN_FILE=%VCPKG_ROOT%\scripts\buildsystems\vcpkg.cmake -DCMAKE_PREFIX_PATH=C:/Qt/6.8.2/msvc2022_64
cmake --build build --config Release
ctest --test-dir build -C Release --output-on-failure

The executables are placed in build\pglab\Release\pglab.exe and build\tests\*\Release\. They need the Qt and vcpkg DLLs next to them. Run windeployqt on pglab.exe and on each test executable, and copy the vcpkg runtime DLLs from build\vcpkg_installed\x64-windows\bin into the same folders. For the app:

C:\Qt\6.8.2\msvc2022_64\bin\windeployqt.exe --release build\pglab\Release\pglab.exe

If another Qt installation (for example one shipped with another program) is on your PATH, its Qt6Core.dll may be loaded instead, which causes "entry point not found" errors at startup. Deploying the DLLs next to the executables avoids this.

Running the tests

From the build directory, run:

ctest --output-on-failure

Running the application

The executable is built to build/pglab/pglab. On a machine without a display, set QT_QPA_PLATFORM=offscreen:

./build/pglab/pglab