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.94.2) (envelope-from ) id 1tGX3j-003ZRk-Su for pgsql-hackers@arkaria.postgresql.org; Thu, 28 Nov 2024 05:27:24 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tGX3i-002jDn-1x for pgsql-hackers@arkaria.postgresql.org; Thu, 28 Nov 2024 05:27: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.94.2) (envelope-from ) id 1tGX3h-002jDY-IH for pgsql-hackers@lists.postgresql.org; Thu, 28 Nov 2024 05:27:21 +0000 Received: from mail-lj1-x233.google.com ([2a00:1450:4864:20::233]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1tGX3a-004HP8-GU for pgsql-hackers@lists.postgresql.org; Thu, 28 Nov 2024 05:27:19 +0000 Received: by mail-lj1-x233.google.com with SMTP id 38308e7fff4ca-2ffc76368c6so6652491fa.0 for ; Wed, 27 Nov 2024 21:27:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1732771633; x=1733376433; 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=BTFNV4oOS2kykRSLECKFP2RLcd8k/f00XrwRRxPAiFU=; b=He6nsO1duMZsYUxhfRwA0QsI25//9eZfp2OCrqL6eGAxaBHpRQ8iCE2Danc+ZiDmsf 4KYAg40uY8F+nVyEv8kQJSrx1zzmybL5e0ySDyxWKxNYxYymzxzkjYq1xFXVPN01NDl9 h39Ifo3oLaqsJkxrpANlNXOaTa8yoMAmHNM6t+OeU5m89+i0/y2BY75BmuRIyXm32zFC IvF0nLsMtFrrc2BNgikhnqET0Mq+DwZyWJD24rQk9AYBRkoVNj/ClySYvp/7kHkzeGlQ BTW9TPcjHI8ois9/SijVTV9JHukywTA7cwqXCk0LfHN4Vc2pvIYQrr/80TZ28HuRwnOA 4zEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1732771633; x=1733376433; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=BTFNV4oOS2kykRSLECKFP2RLcd8k/f00XrwRRxPAiFU=; b=VsTYG3CfMCTAeLBHG/x0SYVa3mTzViaR81rRetXzFfhJKlzkP78v9FqXhruj29lHiR 7517BtVj6MBVfMvwv4b2kXpAWpaoCzAv51kayOJ22+fVAM3un03yKgJL0nOB+EMn/L8o FhZKrv5MLGsaKgOA784qkxsiCOYT9cHQC+Yu5MTHmz0x4NJ8pAoXdw7Q4Bh3wIS29QnD S3kJp5H7nJ8HZMMaQeq/gsZZVjMtIksMeSM3uJvXbH/JgtYnj4+hzBGROzWRSI7ajtr9 q4aczrUI5ggEOtERMv4OtrXlfbOcx/66bVyDeI/n3AQPdaFnL9rdHpCOiTe0OT8xr6J0 dNOw== X-Forwarded-Encrypted: i=1; AJvYcCXU9yymGTWi4cuiTyOiTbkx4ttzWGHc2rC8lgm5B5SSkgU356F53edI3rxTPFwkfa2HncEytZ4jRdPHd/PX@lists.postgresql.org X-Gm-Message-State: AOJu0Yx/NmF9MdYlM4UXBkfSDxuEZFVP94rY9sFPwkMZvtBmiBKsVLAL /pHlcGRvWiN7e3T/K+4Ja1z+CGI9W2k6F3xviQdADwJzvyk66DrSEftj61Q5x3gCeuBot9Q/XIw 3fYspxOGRvsv2As8cQufcfG8HFL4= X-Gm-Gg: ASbGncuXxFhZ+R2gWm0k4Fir/T89NWcjnnwYQS0yOyGQRKhIrqiZzqcLuLRdRkf3VXs PP2b5ebX+poWTj61DbQupy/ITE1zDXV7Bf9lmQOPAQEFstQ== X-Google-Smtp-Source: AGHT+IHOo9wE9TsKFIpHfU9/UmAvO9XLRo0XuJFAIVppg2jgoOkJjl62DCWLokhZxlbiZHs3hM6dTAZeLKchCxQnbj4= X-Received: by 2002:a2e:9a04:0:b0:2ff:d412:30da with SMTP id 38308e7fff4ca-2ffd60a9dc5mr52159741fa.29.1732771632439; Wed, 27 Nov 2024 21:27:12 -0800 (PST) MIME-Version: 1.0 References: <1898722.1732732780@sss.pgh.pa.us> In-Reply-To: <1898722.1732732780@sss.pgh.pa.us> From: Kirill Reshke Date: Thu, 28 Nov 2024 10:27:00 +0500 Message-ID: Subject: Re: CREATE SCHEMA ... CREATE DOMAIN support To: Tom Lane Cc: jian he , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000a103930627f255d6" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000a103930627f255d6 Content-Type: text/plain; charset="UTF-8" On Wed, 27 Nov 2024 at 23:39, Tom Lane wrote: > > Kirill Reshke writes: > > On Wed, 27 Nov 2024 at 08:42, jian he wrote: > >> CREATE SCHEMA regress_schema_2 AUTHORIZATION CURRENT_ROLE > >> create domain ss1 as ss > >> create domain ss as text; > >> ERROR: type "ss" does not exist > >> > >> the error message seems not that OK, > >> if we can point out the error position, that would be great. > > > To implement this, we need to include `ParseLoc location` to the > > `CreateDomainStmt` struct, which is doubtful, because I don't see any > > other type of create *something* that does this. > > No, that error is thrown from typenameType(), which has a perfectly > good location in the TypeName. What it's lacking is a ParseState > containing the source query string. > > Breakpoint 1, typenameType (pstate=pstate@entry=0x0, typeName=0x25d6b58, > typmod_p=typmod_p@entry=0x7ffe7dcd641c) at parse_type.c:268 > 268 tup = LookupTypeName(pstate, typeName, typmod_p, false); > (gdb) p pstate > $2 = (ParseState *) 0x0 > (gdb) p typeName->location > $3 = 21 > > We've fixed a few utility statements so that they can receive > a passed-down ParseState, but not DefineDomain. > > regards, tom lane Indeed, my analysis is wrong. Turns out passing parsestate to DefineDomain is itself enhancement. Before this patch: ``` db1=# create domain ss1 as ss; ERROR: type "ss" does not exist ``` after: ``` db1=# create domain ss1 as ss; ERROR: type "ss" does not exist LINE 1: create domain ss1 as ss; ^ ``` PFA as an independent patch then. Or should we combine these two into one? -- Best regards, Kirill Reshke --000000000000a103930627f255d6 Content-Type: application/octet-stream; name="v1-0001-Pass-ParseState-as-first-param-to-DefineRelation.patch" Content-Disposition: attachment; filename="v1-0001-Pass-ParseState-as-first-param-to-DefineRelation.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m40vczg50 RnJvbSBlOWEwOTA4Njk3ZmY4OWU3MzE5N2IyYTM2NmI0YzFjNDFhNDE2OTc1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiByZXNoa2Uga2lyaWxsIDxyZXNoa2VAZG91YmxlLmNsb3VkPgpE YXRlOiBUaHUsIDI4IE5vdiAyMDI0IDA1OjE5OjU4ICswMDAwClN1YmplY3Q6IFtQQVRDSCB2MV0g UGFzcyBQYXJzZVN0YXRlIGFzIGZpcnN0IHBhcmFtIHRvIERlZmluZVJlbGF0aW9uCgpQYXJzZVN0 YXRlIHdhcyBsYWNraW5nIGluIHR5cGVuYW1lVHlwZSBjYWxsIGluc2lkZSBEZWZpbmVEb21haW4u ClRoaXMgcGF0Y2ggZml4ZXMgdGhhdC4gTm93IGVycm9yLW1lc3NhZ2UgZm9yIGNyZWF0ZSBkb21h aW4KYWxzbyBzaG93IGVycm9yIGxvY2F0aW9uLgotLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3R5 cGVjbWRzLmMgfCA4ICsrLS0tLS0tCiBzcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyAgICAgIHwg MiArLQogc3JjL2luY2x1ZGUvY29tbWFuZHMvdHlwZWNtZHMuaCB8IDIgKy0KIDMgZmlsZXMgY2hh bmdlZCwgNCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21k cy5jCmluZGV4IDg1OWUyMTkxZjA4Li40MjQwN2RmODlhNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvdHlwZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21k cy5jCkBAIC02OTQsNyArNjk0LDcgQEAgUmVtb3ZlVHlwZUJ5SWQoT2lkIHR5cGVPaWQpCiAgKgkJ UmVnaXN0ZXJzIGEgbmV3IGRvbWFpbi4KICAqLwogT2JqZWN0QWRkcmVzcwotRGVmaW5lRG9tYWlu KENyZWF0ZURvbWFpblN0bXQgKnN0bXQpCitEZWZpbmVEb21haW4oUGFyc2VTdGF0ZSAqcHN0YXRl LCBDcmVhdGVEb21haW5TdG10ICpzdG10KQogewogCWNoYXIJICAgKmRvbWFpbk5hbWU7CiAJY2hh cgkgICAqZG9tYWluQXJyYXlOYW1lOwpAQCAtNzYxLDcgKzc2MSw3IEBAIERlZmluZURvbWFpbihD cmVhdGVEb21haW5TdG10ICpzdG10KQogCS8qCiAJICogTG9vayB1cCB0aGUgYmFzZSB0eXBlLgog CSAqLwotCXR5cGVUdXAgPSB0eXBlbmFtZVR5cGUoTlVMTCwgc3RtdC0+dHlwZU5hbWUsICZiYXNl dHlwZU1vZCk7CisJdHlwZVR1cCA9IHR5cGVuYW1lVHlwZShwc3RhdGUsIHN0bXQtPnR5cGVOYW1l LCAmYmFzZXR5cGVNb2QpOwogCWJhc2VUeXBlID0gKEZvcm1fcGdfdHlwZSkgR0VUU1RSVUNUKHR5 cGVUdXApOwogCWJhc2V0eXBlb2lkID0gYmFzZVR5cGUtPm9pZDsKIApAQCAtODg1LDEyICs4ODUs OCBAQCBEZWZpbmVEb21haW4oQ3JlYXRlRG9tYWluU3RtdCAqc3RtdCkKIAogCQkJCWlmIChjb25z dHItPnJhd19leHByKQogCQkJCXsKLQkJCQkJUGFyc2VTdGF0ZSAqcHN0YXRlOwogCQkJCQlOb2Rl CSAgICpkZWZhdWx0RXhwcjsKIAotCQkJCQkvKiBDcmVhdGUgYSBkdW1teSBQYXJzZVN0YXRlIGZv ciB0cmFuc2Zvcm1FeHByICovCi0JCQkJCXBzdGF0ZSA9IG1ha2VfcGFyc2VzdGF0ZShOVUxMKTsK LQogCQkJCQkvKgogCQkJCQkgKiBDb29rIHRoZSBjb25zdHItPnJhd19leHByIGludG8gYW4gZXhw cmVzc2lvbi4gTm90ZToKIAkJCQkJICogbmFtZSBpcyBzdHJpY3RseSBmb3IgZXJyb3IgbWVzc2Fn ZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgYi9zcmMvYmFja2VuZC90 Y29wL3V0aWxpdHkuYwppbmRleCBmMjhiZjM3MTA1OS4uMzNkZWE1YTc4MWMgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0 eS5jCkBAIC0xNzEyLDcgKzE3MTIsNyBAQCBQcm9jZXNzVXRpbGl0eVNsb3coUGFyc2VTdGF0ZSAq cHN0YXRlLAogCQkJCWJyZWFrOwogCiAJCQljYXNlIFRfQ3JlYXRlRG9tYWluU3RtdDoKLQkJCQlh ZGRyZXNzID0gRGVmaW5lRG9tYWluKChDcmVhdGVEb21haW5TdG10ICopIHBhcnNldHJlZSk7CisJ CQkJYWRkcmVzcyA9IERlZmluZURvbWFpbihwc3RhdGUsIChDcmVhdGVEb21haW5TdG10ICopIHBh cnNldHJlZSk7CiAJCQkJYnJlYWs7CiAKIAkJCWNhc2UgVF9DcmVhdGVDb252ZXJzaW9uU3RtdDoK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3R5cGVjbWRzLmggYi9zcmMvaW5jbHVk ZS9jb21tYW5kcy90eXBlY21kcy5oCmluZGV4IGUxYjAyOTI3YzRiLi5jYjMwZDFhMjU4MyAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvdHlwZWNtZHMuaAorKysgYi9zcmMvaW5jbHVk ZS9jb21tYW5kcy90eXBlY21kcy5oCkBAIC0yMyw3ICsyMyw3IEBACiAKIGV4dGVybiBPYmplY3RB ZGRyZXNzIERlZmluZVR5cGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpuYW1lcywgTGlzdCAq cGFyYW1ldGVycyk7CiBleHRlcm4gdm9pZCBSZW1vdmVUeXBlQnlJZChPaWQgdHlwZU9pZCk7Ci1l eHRlcm4gT2JqZWN0QWRkcmVzcyBEZWZpbmVEb21haW4oQ3JlYXRlRG9tYWluU3RtdCAqc3RtdCk7 CitleHRlcm4gT2JqZWN0QWRkcmVzcyBEZWZpbmVEb21haW4oUGFyc2VTdGF0ZSAqcHN0YXRlLCBD cmVhdGVEb21haW5TdG10ICpzdG10KTsKIGV4dGVybiBPYmplY3RBZGRyZXNzIERlZmluZUVudW0o Q3JlYXRlRW51bVN0bXQgKnN0bXQpOwogZXh0ZXJuIE9iamVjdEFkZHJlc3MgRGVmaW5lUmFuZ2Uo UGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVSYW5nZVN0bXQgKnN0bXQpOwogZXh0ZXJuIE9iamVj dEFkZHJlc3MgQWx0ZXJFbnVtKEFsdGVyRW51bVN0bXQgKnN0bXQpOwotLSAKMi4zNC4xCgo= --000000000000a103930627f255d6--