When you use window functions in SQL, you can't filter their results directly in a WHERE or HAVING clause — that's a well‑known limitation across many databases. GBase 8a, the China‑domestically developed MPP database from GBASE, solves this elegantly with the QUALIFY clause. Let's break down how it works, what it can do, and where you need to be careful. DROP TABLE IF EXISTS emp; CREATE TABLE emp
The Problem If you're like me, you live in your terminal. You've got Docker containers running for databases, Redis instances for caching, microservices doing their thing — and you're constantly context-switching to check on them. # The old way: docker ps docker logs my-app -n 50 docker stats docker inspect some_container # ... back and forth, breaking your flow Now imagine you're working with
As data grows, you'll likely need to add nodes to your existing GBase 8a MPP cluster without downtime. This hands‑on guide walks through the full process of adding a composite GNode to a running GBASE cluster. Existing cluster: A healthy GBase 8a cluster New node: A server with a static IP address configured Network: All nodes must be able to communicate with each other Stop services on all existi
By default, identifiers in GBase 8s are case‑insensitive: uppercase letters are silently treated as lowercase. Setting the environment variable DELIMIDENT=Y changes how double‑quoted identifiers behave, enabling case‑sensitive table and column names. Here's a demonstration and a deep dive into the option, as used in a gbase database. With DELIMIDENT=y exported, execute the following statements: ex
This section is the map for the rest of the book. The five stages introduced in the 1.1 chapter overview (parse, analyze/rewrite, plan, portal, execute) are traced here through the actual code: which functions implement each stage, and in what order they get called. The mechanics of each of the five stages are unpacked in later chapters. Here, only the skeleton matters: how a backend starts up, ho
PostgreSQL Internals · Chapter 1 Query Processing Suppose a client sends SELECT * FROM users WHERE id = 1. The path that single line travels before coming back as a result row is longer than you might expect. Inside the PostgreSQL backend, that SQL goes through a five-stage pipeline. Backend entry and dispatch. The backend receives the message from the client and decides which processing path it s
If your team works with geospatial data, sooner or later you need a place where maps, layers, users, and edits live together. There are many capable SaaS platforms and proprietary solutions you can deploy on your own infrastructure, but there is another path: self-hosting an open-source Web GIS server. In this tutorial, we will deploy NextGIS Web on a low-cost VPS using Docker, and then configure
Exemplo mínimo de uso com Bun (baseado na documentação oficial) Aviso: Este exemplo é puramente acadêmico, baseado na documentação oficial do Next.js. Para um ambiente de produção real, ajustes adicionais de segurança, performance e monitoramento são necessários. 1 - Ajustar o next.config.ts para "Standalone": import type { NextConfig } from "next"; const nextConfig: NextConfig = { output: "