From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Kirill Reshke <reshkekirill(at)gmail(dot)com> |
Cc: | jian he <jian(dot)universality(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: CREATE SCHEMA ... CREATE DOMAIN support |
Date: | 2024-11-27 18:39:40 |
Message-ID: | 1898722.1732732780@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Kirill Reshke <reshkekirill(at)gmail(dot)com> writes:
> On Wed, 27 Nov 2024 at 08:42, jian he <jian(dot)universality(at)gmail(dot)com> 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(at)entry=0x0, typeName=0x25d6b58,
typmod_p=typmod_p(at)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
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2024-11-27 19:09:17 | Re: Statistics Import and Export |
Previous Message | Andres Freund | 2024-11-27 18:35:59 | Re: ci: Macos failures due to MacPorts behaviour change |