Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vM1DE-00GlLN-0A for pgsql-hackers@arkaria.postgresql.org; Thu, 20 Nov 2025 09:44:24 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vM1DC-000kjY-26 for pgsql-hackers@arkaria.postgresql.org; Thu, 20 Nov 2025 09:44:22 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vM1DC-000kjP-16 for pgsql-hackers@lists.postgresql.org; Thu, 20 Nov 2025 09:44:22 +0000 Received: from mail-qt1-x830.google.com ([2607:f8b0:4864:20::830]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vM1DA-000UaZ-0F for pgsql-hackers@lists.postgresql.org; Thu, 20 Nov 2025 09:44:21 +0000 Received: by mail-qt1-x830.google.com with SMTP id d75a77b69052e-4ed6882991aso4853681cf.1 for ; Thu, 20 Nov 2025 01:44:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763631860; x=1764236660; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=Xdf7azff7KOQIGFpTw57Ft8OecwoP5s3MkI4UV4hMzc=; b=D8OJ2RelH+CrSRMGxcBSTenYi7ZCo5UpHOMkB8UrQkfz+y0jIMag9jE8CKAJoNMf1M WQ4E+wjJ2U1/9oR8Tc1S5tOkrIKcKgTViZyHpM6EwkRL1y8MmypmYsjFqyWtPE2Nn8CB jL7NHuK/erRthu1PUZgfnxru2eI6iR2e8HV+jV3DEOLWxv0+b8Ol433Sr9e2w0LfqUIV DUpgrA4YQaB3SfVnBNwlq2nknhOpnO7UG6x/cikptkMkqhq+VON70pQsgBHWsGmv++gZ trMvahB14lWhiRlyo4kvr7LEFYrLLJZRBQq/HSUOe8L3n/6QmIs2P/Ubg1zCI1JoUs/P XoXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763631860; x=1764236660; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Xdf7azff7KOQIGFpTw57Ft8OecwoP5s3MkI4UV4hMzc=; b=sgPGY6UthqWPfCoed2abX09dLyG02dtGa2Z5hW6SzSG2pvYkbYQw38Wng83uxHAOZi JzP+eqTYCbeQH3H+oosiUCvIr+15Zm0Yef2UGWUY6KHXPaEHV2lSLp8N0AikA/6+R6em 0Y2zwyxhb7biyx4BWimC3kVaqG+RJqmbKT172jk07r8/ML3YqRiQwF4b0SK3lbCKKyi5 7Km4ZPAnAmmUE0VqxW3YmCYi1WTC9yxWOX//XllJqR8DDkOl9ntz17kgaDEFo5icVOp3 ND9Cv9o2i8Zw152S4FAUf7W2A3oFr1Ji0MGwPH0HWR7DCdNL4dd7IxEF0hif1d+Tilpl m3Sw== X-Gm-Message-State: AOJu0Yzbb8EP0N0kfuazUNSosoMPxvZvSmjQg+tGC2A2TJOEbyRaRoIp dF/BxhkW7rFCm+5ovWVkBh8rvzxL5yH+o3FFXJehOkVXpqwMPNe0LjMoibXaA7hCJIJ169Dkeuf aipPXArj2ov16KIj+aHnfuljP0QOBiNk= X-Gm-Gg: ASbGncvn85KWU1nHQfMeYzrA0vXJd8enfBuA/lMWDgg+lTnid3QFMGm3lQbqD2kJegf mq71CzZM4ahQImpOPWulqp/HYoLyWvbjO1N2bmdzW1oC7tLPDoIfX3cNclIcp6/p1Is5BRq5ZKx iURH3zZ7WqdLohslaj3yJWpAmtlaKyu98myVlaol7eP3IwKs5tSQf/SasVaR3/bDiimlLdVXGau Y4URrKKFgIqz2ckQMnT9NLjZRPdYwpnO0awlQIXtvYl3D8qj5gcQO0ZTPmOdtzANAv0O2kwXN6u LJJlMNPKCW+16xHE6i9awn6d2uSE8WMDRAz3 X-Google-Smtp-Source: AGHT+IGTPJYSav6vLAbsxY6vVEcz6JbTZlwEOKAN6pnNq7W3VNiUlsLvHl+jJSUqXgh0Q+5ZCIfgOcqTqLEwavU+tSE= X-Received: by 2002:ac8:57c8:0:b0:4d3:7e:d6ca with SMTP id d75a77b69052e-4ee4b54fb5fmr20182981cf.17.1763631859999; Thu, 20 Nov 2025 01:44:19 -0800 (PST) MIME-Version: 1.0 References: <6a131cc6-ab35-49d2-b9bf-e6ddae4cf3b1@gmail.com> In-Reply-To: <6a131cc6-ab35-49d2-b9bf-e6ddae4cf3b1@gmail.com> From: Neil Chen Date: Thu, 20 Nov 2025 17:44:07 +0800 X-Gm-Features: AWmQ_bnUjb829ItTSSyCt4155KtIpOhNvzLsVWPcWhk0IvFVJCJBy_5CMBva0po Message-ID: Subject: Re: [PATCH] pg_get_domain_ddl: DDL reconstruction function for CREATE DOMAIN statement To: Florin Irion Cc: pgsql-hackers@lists.postgresql.org Content-Type: multipart/alternative; boundary="00000000000087a8b20644038a70" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000087a8b20644038a70 Content-Type: text/plain; charset="UTF-8" Hi Florin, +pg_get_domain_ddl_ext(PG_FUNCTION_ARGS) > +{ > + Oid domain_oid = PG_GETARG_OID(0); > + bool pretty = PG_GETARG_BOOL(1); > + char *res; > + int prettyFlags; > + > + prettyFlags = pretty ? GET_PRETTY_FLAGS(pretty) : 0; Seems like we should directly use GET_PRETTY_FLAGS here, as it already checks the value of "pretty". For a "display-oriented" result, using PRETTYFLAG_INDENT looks more appropriate. + appendStringInfo(buf, "CREATE DOMAIN %s AS %s", > + generate_qualified_type_name(typForm->oid), > + generate_qualified_type_name(typForm->typbasetype)); It might be good to first call get_typtype to check if it is TYPTYPE_DOMAIN. --00000000000087a8b20644038a70 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Florin,

+pg_get_domain_ddl_ext(PG_FUNCTION_ARGS)
+{
+ Oid domain= _oid =3D PG_GETARG_OID(0);
+ bool pretty =3D PG_GETARG_BOOL(1);
+ ch= ar =C2=A0 *res;
+ int prettyFlags;
+
+ prettyFlags =3D pretty ?= GET_PRETTY_FLAGS(pretty) : 0;

Seems like we should directly use GET_PRETTY_FLAGS here, as it= already checks the value of "pretty". For a "display-orient= ed" result, using PRETTYFLAG_INDENT looks more appropriate.

+ appendStringInfo(bu= f, "CREATE DOMAIN %s AS %s",
+ generate_qualified_type_na= me(typForm->oid),
+ generate_qualified_type_name(typForm->typ= basetype));

= It might be good to first call get_typtype to check if it is TYPTYPE_DOMAIN= .
--00000000000087a8b20644038a70--