array_agg is an aggregate function 에러는 pg_get_functiondef가 aggregate 함수나 window 함수에 대해서 동작하지 않을 때 발생할 수 있습니다. 이 문제를 해결하려면 함수 정의를 얻는 다른 방법을 사용하거나, pg_proc에서 특정 조건을 추가로 설정해줘야 할 수 있습니다.

아래는 이 문제를 해결할 수 있는 개선된 쿼리입니다:

1. Aggregate 및 Window 함수 제외:

PostgreSQL에서는 집계 함수와 일반 함수가 모두 pg_proc에 저장되지만, 집계 함수와 window 함수는 pg_get_functiondef로 정의를 조회할 수 없습니다. 이를 필터링하려면 proisaggproiswindow 컬럼을 활용할 수 있습니다.

SELECT
    n.nspname AS schema_name,
    p.proname AS function_name,
    pg_get_functiondef(p.oid) AS function_definition
FROM
    pg_proc p
JOIN
    pg_namespace n ON p.pronamespace = n.oid
WHERE
    NOT p.proisagg -- 집계 함수가 아닌 것
    AND NOT p.proiswindow -- 윈도우 함수가 아닌 것
    AND pg_get_functiondef(p.oid) LIKE '%검색할_문자열%';

2. PostgreSQL 11 이상 (prokind 사용):

PostgreSQL 11 이상에서는 pg_procprokind 컬럼이 추가되어, 함수 유형을 더 쉽게 필터링할 수 있습니다. prokind = 'f'는 일반 함수를 의미합니다.

SELECT
    n.nspname AS schema_name,
    p.proname AS function_name,
    pg_get_functiondef(p.oid) AS function_definition
FROM
    pg_proc p
JOIN
    pg_namespace n ON p.pronamespace = n.oid
WHERE
    p.prokind = 'f' -- 일반 함수만 선택
    AND pg_get_functiondef(p.oid) LIKE '%검색할_문자열%';

3. 특정 스키마에 대해서만 검색 (옵션):

SELECT
    n.nspname AS schema_name,
    p.proname AS function_name,
    pg_get_functiondef(p.oid) AS function_definition
FROM
    pg_proc p
JOIN
    pg_namespace n ON p.pronamespace = n.oid
WHERE
    p.prokind = 'f'
    AND n.nspname = '특정_스키마명'
    AND pg_get_functiondef(p.oid) LIKE '%검색할_문자열%';

위 쿼리 중 하나를 사용하면 pg_get_functiondef에서 발생하는 문제를 방지하고, 함수 정의를 성공적으로 검색할 수 있을 것입니다.

728x90
반응형

netstat 확인하기

    netstat -an

Local Addrress 는 현재 내 PC의 IP와 Port, Foreing Address는 외부 사이트의 IP와 Port 다

아이피 다음에 있는 : 으로 아이피주소와 포트번호가 구분이 된다


netstat 으로 특정 포트 확인하기

    netstat -an | findstr ":80"

Linux의 grep 명령어는 windows에서는 findstr로 볼 수 있다.

 

 


그렇지만

더 이상 윈도우를 서버로 쓰는 일은 없었으면 좋겠다

728x90
반응형

Linux에서 라인 수 카운트 하기.

  wc -l

해당 명령을 |와 함께 사용하면 됨.

EX

localhost_access_log.2021-06-22.txt 파일의 총 라인 수 카운트

  $ cat localhost_access_log.2021-06-22.txt |  wc -l
  90916

localhost_access_log.2021-06-22.txt 파일에서 특정 문자열이 포함된 라인 수 카운트

  # cat localhost_access_log.2021-06-22.txt | grep contractList.do | wc -l
  82
728x90
반응형

'OS > Linux' 카테고리의 다른 글

2025년 리눅스 마스터 자격증 시험일정과 준비 방법  (0) 2025.01.18
[Raspberry PI] 초기 셋팅  (0) 2022.03.07
[Linux] There are stopped jobs  (0) 2021.05.28
[Linux] 인터넷 속도 확인  (0) 2021.05.28
[Linux] top  (0) 2021.05.06

+ Recent posts