Postgres 14

pgindent의 정의 및 사용법

개요PostgreSQL 개발에서 중요한 역할을 담당하는 pgindent는 코드 포맷팅 도구로, PostgreSQL 소스 코드의 일관된 스타일을 유지하기 위해 사용된다. 이 도구는 PostgreSQL 개발자들이 코드베이스의 통일성을 보장하고 가독성을 높이는 데 필수적인 요소이다.설명pgindent는 PostgreSQL 프로젝트에서 C 언어로 작성된 소스 코드의 형식을 일관되게 유지하기 위한 도구이다. 이 도구는 기본적으로 BSD indent를 기반으로 하며, PostgreSQL 프로젝트의 코드 스타일 가이드라인에 맞게 수정된 버전이다. PostgreSQL 소스 트리의 src/tools/pgindent 디렉토리에 위치하며, 코드 들여쓰기, 괄호 배치, 줄 바꿈 등의 포맷팅 규칙을 적용한다.PostgreSQL..

Postgres/Features 2025.05.03

PL/SQL

개요PL/SQL(Procedural Language extension to SQL)은 Oracle 데이터베이스 시스템에서 사용되는 프로시저 언어로, 표준 SQL에 절차적 프로그래밍 기능을 확장한 것이다. 1991년 Oracle 6에서 처음 도입되었으며, 현재 Oracle 데이터베이스 환경에서 주요 프로그래밍 언어로 사용되고 있다.설명PL/SQL은 SQL의 기능을 확장하여 변수 선언, 조건문, 반복문과 같은 프로그래밍 구조를 제공한다. SQL만으로는 구현하기 어려운 복잡한 비즈니스 로직을 데이터베이스 내에서 직접 처리할 수 있게 해 준다. PL/SQL은 블록 구조로 되어 있으며, 각 블록은 선언부(DECLARE), 실행부(BEGIN), 예외 처리부(EXCEPTION)로 구성된다.데이터베이스 서버 내에서 실..

Postgres/Features 2025.05.02

PostgreSQL 쿼리문의 작은따옴표와 큰따옴표 차이

개요PostgreSQL에서 작은따옴표(')와 큰따옴표(")는 서로 다른 목적으로 사용된다. 이 글에서는 두 따옴표의 차이점과 각각의 올바른 사용법을 살펴본다. 쿼리 작성 시 발생할 수 있는 오류를 방지하고 효율적인 데이터베이스 관리를 위해 이 차이점을 이해하는 것이 중요하다.설명PostgreSQL에서 작은따옴표(Single Quotation, ')와 큰따옴표(Double Quotation, ")는 명확히 구분된 용도로 사용된다. 작은따옴표는 문자열 값(string values)을 나타내는 데 사용되며, 큰따옴표는 식별자(identifiers)를 나타내는 데 사용된다. 이러한 구분은 SQL 표준을 따르는 것이며, PostgreSQL의 문법 규칙에 따라 정확히 적용되어야 한다.특징작은따옴표(Single Qu..

Postgres/Features 2025.04.30

PostGraphile: PostgreSQL과 GraphQL의 완벽한 조화

개요PostGraphile은 PostgreSQL 데이터베이스를 기반으로 한 GraphQL API를 자동으로 생성해주는 도구이다. 이 도구는 개발자들이 데이터베이스 스키마를 기반으로 빠르게 GraphQL API를 구축할 수 있도록 도와준다. PostGraphile은 특히 데이터 중심의 애플리케이션을 개발할 때 유용하다.PostGraphile의 주요 기능PostGraphile은 여러 가지 유용한 기능을 제공한다. 첫째, 데이터베이스의 테이블, 뷰, 함수 등을 자동으로 GraphQL 스키마로 변환해준다. 둘째, GraphQL 쿼리와 뮤테이션을 통해 데이터베이스와 상호작용할 수 있는 API를 제공한다. 셋째, 인증 및 권한 관리 기능을 통해 보안성을 높일 수 있다. 마지막으로, GraphQL의 실시간 기능을 지..

Postgres/Features 2025.03.14

Flex와 Bison을 이용한 쿼리문 파싱 예제 만들기

개요Postgres에는 쿼리 파싱을 위해 사용되는 두 가지 주요 툴체인이 존재한다: flex와 bison이다. 이들은 각각 문자열 파싱을 위한 문법을 제공하며, 그에 맞게 특정 문자열을 파싱 하는 데 사용된다. 본 문서에서는 flex와 bison을 활용하여 SQL의 SELECT 문을 파싱하는 예제를 제시함으로써 PG 내부 쿼리 파서를 보다 쉽게 이해할 수 있도록 한다.gram.y 파일 생성쿼리 파싱을 위한 토큰을 정의하고, 각 토큰에 올 수 있는 다른 토큰들을 규정한다.// C code block between '%{' and '%}'%{#include #include #include // prototype of creating token functionint yylex();// prototype of ..

pgpool 4.5 빌드 변경사항

개요pgpool 4.5 버전부터 pgpool의 빌드방식이 변경되었다. 기존과 가장 달라진 점은 configure 파일이 사라진 것이다. configure 파일을 직접 사용하는 대신 autoconf/autoreconf 와 같은 커맨드 툴을 사용하여 configure 파일을 생성하여 빌드를 진행해야 한다.빌드 방법기존의 빌드 방식에서 autoconf/autoreconf 를 사용한 configure 파일 생성 과정이 선행되어야 한다.결국 pgpool 4.5 빌드를 위해서는 아래와 같은 tool chain이 필요하다.autoconf 2.69automake 1.14.1libtool 2.4.2위 tool chain이 없다면 이를 반드시 설치해야 한다.1. autoconf(또는 autoreconf)로 configur..

Postgres/Features 2025.02.18

pgvector Extension의 설치 및 환경구성

개요PostgreSQL에서는 pgvector라는 PostgreSQL 확장(Extension)을 사용하여 벡터 데이터를 쉽게 저장하고 쿼리할 수 있게 해준다.pgvector는 PostgreSQL에서 벡터 데이터를 저장하고 검색하는 데 유용한 확장이다. 이 확장을 사용하면 머신러닝 모델의 출력을 데이터베이스에 저장하고, 나중에 이 데이터를 기반으로 다양한 분석을 할 수 있다. 또한, 아래 그림처럼 Langchain과 pgvector를 사용하여 RAG 시스템을 구축할 수도 있다. 이렇듯, 데이터베이스에서 벡터 데이터를 다루는 게 점점 중요해지고 있다. 이 글에서는 이러한 벡터 데이터를 저장할 수 있는 여러가지 방법중에 pgvector를 사용하여 PostgreSQL 데이터베이스에서 활용하기 위한 pgvecor의..

Postgres/Extension 2025.02.16

VSCode의 Remote - SSH를 활용한 postgres 코드 디버깅

개요지난번에 리서치했던 MacOS의 VSCode 환경에서 PostgreSQL 디버깅에 이어서, Windows OS의 VSCode에서 SSH를 통해 MacOS의 PostgreSQL 소스코드를 접속 후, lldb를 사용하여 PostgreSQL을 디버깅하는 환경을 만들어 보자. 이 작업을 통해, 소스코드가 없는 환경에서도 구동 중인 Postgres서버와 소스코드가 존재하는 노드의 접속정보만 있다면, OS에 상관없이 소스코드를 디버깅해볼 수 있다.사전작업Remote(MacOS)에 테스트를 위한 아래의 사전 작업을 진행한다.[Remote] 사전작업1 - 테이블 생성create table my_table (key numeric(2), name varchar(14), age numeric(3));[Remote] 사..

Windows 전용 Postgres 빌드하기

개요본 글에서는 PostgreSQL 소스코드를 Windows 환경에서 빌드하는 과정에 대해 설명한다. 필요한 소프트웨어의 설치 및 설정 방법을 자세히 다루며, 최종적으로 PostgreSQL을 성공적으로 빌드할 수 있는 절차를 제시한다.설치Visual Studio 설치PostgreSQL을 빌드하기 위해 Visual Studio 2022를 설치해야 한다. 설치 방법은 다음과 같다:다운로드: Visual Studio 공식 웹사이트에서 Visual Studio 2022를 다운로드한다.설치 과정: 설치 마법사를 통해 필요한 구성 요소를 선택하고 설치를 진행한다.더보기Active Perl 설치PostgreSQL의 빌드 과정에서 Perl이 필요하다. Active Perl을 설치하는 방법은 다음과 같다:다운로드: Ac..

PostgreSQL가 다른 RDB와 차별화 되는 점

개요PostgreSQL은 다양한 관계형 데이터베이스 관리 시스템(RDBMS) 중에서 독특한 위치를 점하고 있으며, 여러 측면에서 타 시스템과의 차별성을 보인다. 본 논문에서는 PostgreSQL이 다른 RDB와 차별화되는 점을 사용자 측면, 비즈니스 측면, 기능적 측면으로 나누어 설명하고자 한다.1. 사용자 측면높은 보안성사용자 인증: PostgreSQL은 다양한 인증 방법을 제공하여 사용자 인증을 보장하고, 이를 통해 데이터베이스에 접근할 수 있는 사용자를 제한할 수 있다.권한 관리: PostgreSQL은 사용자별로 권한을 관리할 수 있는 기능을 제공하고, 이를 통해 사용자가 데이터베이스에서 수행할 수 있는 작업을 제한할 수 있다.암호화: PostgreSQL은 데이터를 암호화하여 보안성을 높여 중요한 ..

Postgres/Features 2025.02.08
728x90
반응형