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 1tGcX1-003jW3-CG for pgsql-hackers@arkaria.postgresql.org; Thu, 28 Nov 2024 11:17:59 +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 1tGawM-003xGz-SB for pgsql-hackers@arkaria.postgresql.org; Thu, 28 Nov 2024 09:36:02 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tGawL-003xGp-6y for pgsql-hackers@lists.postgresql.org; Thu, 28 Nov 2024 09:36:02 +0000 Received: from fhigh-b1-smtp.messagingengine.com ([202.12.124.152]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tGawG-004TF1-Sa for pgsql-hackers@postgresql.org; Thu, 28 Nov 2024 09:36:00 +0000 Received: from phl-compute-10.internal (phl-compute-10.phl.internal [10.202.2.50]) by mailfhigh.stl.internal (Postfix) with ESMTP id 89EE725401D5; Thu, 28 Nov 2024 04:35:54 -0500 (EST) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-10.internal (MEProxy); Thu, 28 Nov 2024 04:35:54 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=eisentraut.org; h=cc:cc:content-type:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=fm3; t=1732786554; x= 1732872954; bh=2qv/D5bxFmt5UZpmkoHupK5jW1W2JiQrPNHuU97yFEA=; b=W m4gH06XgglY3Fk+lVEkzZf5rFFb3udmzeeRX+qKzRBVm2ipRpH7XNKv3Z09z+jqC SoNeetWMDW9y8+AVrm59Wyq/ZigG6FIhzWBqxcAY4I5S+mcv58V1E8BUJdFZy8kc 94wrZw1Ifl0pDDp5hIyyEdKiN2pw4SGkV9uF8VltoOtd4P1UBhs2MP7e6kHS2s/3 tBS13yuVZ/q0V733EbNUVO1OLfeh7HcW2pmSebiLEiO7IOVvaelATq+0MPdbh2Ia XqFbVcVDb4FKw6UhwYmO8jdrcg0YFEnBkF1bUGfIWt7GF45YtIjIpDrHcOMwHbzC 2fvGpuqXFKKUwMcRgkMNw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t= 1732786554; x=1732872954; bh=2qv/D5bxFmt5UZpmkoHupK5jW1W2JiQrPNH uU97yFEA=; b=0vlDGJ6NCp487LJtVoi459c7I4ZcShUyA1FsffXBxkenN2VFpGV EIG1IIZYxWQOBQDrP5dYHOG1qXWhRD2dHH8SWxo4DdIdbVMn+iPXhmkJtRe3PrH2 bIPSHFUFoeFHMCvag7njYWZhtHsdK5Q9OxgKW2FtvvmBEMGbgeGo4x2dziCQ47A4 0K0I+vgMLxsQdRF4ZpVn4mHpvcFLRjni4MlUql6rpbCacD5VMbTpG5STQVPva2cZ LA0Pb+cPGq8NiOccy2xI29CnDVAB70gUuWR7FuyHlNuUzMH+I8NyVXJ/Gm4AINEe s41SfC5031lO2ruMbQ1Oq4lpoFaDYqsWfYg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefuddrhedugddtgecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdpuffr tefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnth hsucdlqddutddtmdenucfjughrpegtkfffgggfuffhvfevfhgjsehmtderredtvdejnecu hfhrohhmpefrvghtvghrucfgihhsvghnthhrrghuthcuoehpvghtvghrsegvihhsvghnth hrrghuthdrohhrgheqnecuggftrfgrthhtvghrnhepledtheekleffieevfedtkeelveev feekkeevheehvdejfefgveethfetiedtuedvnecuvehluhhsthgvrhfuihiivgeptdenuc frrghrrghmpehmrghilhhfrhhomhepphgvthgvrhesvghishgvnhhtrhgruhhtrdhorhhg pdhnsggprhgtphhtthhopeefpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehjih grnhdruhhnihhvvghrshgrlhhithihsehgmhgrihhlrdgtohhmpdhrtghpthhtohepphhg shhqlhdqhhgrtghkvghrshesphhoshhtghhrvghsqhhlrdhorhhgpdhrtghpthhtohepug gvrghnrdgrrdhrrghshhgvvggusehgmhgrihhlrdgtohhm X-ME-Proxy: Feedback-ID: ie0a040ee:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 28 Nov 2024 04:35:53 -0500 (EST) Content-Type: multipart/mixed; boundary="------------Dc97Sw0Tbk93cHiLyBc9Udst" Message-ID: Date: Thu, 28 Nov 2024 10:35:51 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Virtual generated columns From: Peter Eisentraut To: jian he Cc: pgsql-hackers , Dean Rasheed References: <732a9543-0312-4f0c-a471-857b507a3546@eisentraut.org> <0f811f71-8c86-4e1b-b3bb-6a535674a440@eisentraut.org> <09800cb1-43aa-4239-8918-46b71ede4900@eisentraut.org> <536b281b-2cb3-4477-971f-c64838bc6263@eisentraut.org> <41f64e3c-db80-43b2-9a21-7ecc515f889f@eisentraut.org> Content-Language: en-US In-Reply-To: <41f64e3c-db80-43b2-9a21-7ecc515f889f@eisentraut.org> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------Dc97Sw0Tbk93cHiLyBc9Udst Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 12.11.24 17:08, Peter Eisentraut wrote: > On 11.11.24 12:37, jian he wrote: >> On Wed, Nov 6, 2024 at 12:17 AM Peter Eisentraut >> wrote: >>> >>> New patch version.  I've gone through the whole thread again and looked >>> at all the feedback and various bug reports and test cases and made sure >>> they are all addressed in the latest patch version.  (I'll send some >>> separate messages to respond to some individual messages, but I'm >>> keeping the latest patch here.) >> >> just quickly note the not good error message before you rebase. >> >> src7=# create domain d_fail as int4 constraint cc GENERATED ALWAYS AS >> (2) ; >> ERROR:  unrecognized constraint subtype: 4 >> src7=# create domain d_fail as int4 constraint cc GENERATED ALWAYS AS >> (2) stored; >> ERROR:  unrecognized constraint subtype: 4 >> src7=# create domain d_fail as int4 constraint cc GENERATED ALWAYS AS >> (2) virtual; >> ERROR:  unrecognized constraint subtype: 4 >> >> reading gram.y, typedef struct Constraint seems cannot distinguish, we >> are creating a domain or create table. >> I cannot found a way to error out in gram.y. >> >> so we have to error out at DefineDomain. > > This appears to be a very old problem independent of this patch.  I'll > take a look at fixing it. Here is a patch. I'm on the fence about taking out the default case. It does catch the missing enum values, and I suppose if the struct arrives in DefineDomain() with a corrupted contype value that is none of the enum values, then we'd just do nothing with it. Maybe go ahead with this, but for backpatching leave the default case in place? --------------Dc97Sw0Tbk93cHiLyBc9Udst Content-Type: text/plain; charset=UTF-8; name="0001-Fix-handling-of-CREATE-DOMAIN-with-GENERATED-constra.patch" Content-Disposition: attachment; filename*0="0001-Fix-handling-of-CREATE-DOMAIN-with-GENERATED-constra.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAwOWY5NDg0ZjBkMjk5MGI0YjliZThkMmE4YjkwN2MxMzRkNmQ1ZWU3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVGh1LCAyOCBOb3YgMjAyNCAxMDoyMzoyNiArMDEwMApTdWJqZWN0 OiBbUEFUQ0hdIEZpeCBoYW5kbGluZyBvZiBDUkVBVEUgRE9NQUlOIHdpdGggR0VORVJBVEVE IGNvbnN0cmFpbnQKIHN5bnRheAoKU3R1ZmYgbGlrZQoKICAgIENSRUFURSBET01BSU4gZm9v IEFTIGludCBDT05TVFJBSU5UIGNjIEdFTkVSQVRFRCBBTFdBWVMgQVMgKDIpIFNUT1JFRAoK aXMgbm90IHN1cHBvcnRlZCBmb3IgZG9tYWlucywgYnV0IHRoZSBwYXJzZXIgYWxsb3dzIGl0 LCBiZWNhdXNlIGl0J3MKdGhlIHNhbWUgc3ludGF4IGFzIGZvciB0YWJsZSBjb25zdHJhaW50 cy4gIEJ1dCBDcmVhdGVEb21haW4oKSBkaWQgbm90CmV4cGxpY2l0bHkgaGFuZGxlIGFsbCBD b25zdHJUeXBlIHZhbHVlcywgc28gdGhlIGFib3ZlIHdvdWxkIGdldCBhbgppbnRlcm5hbCBl cnJvciBsaWtlCgogICAgRVJST1I6ICB1bnJlY29nbml6ZWQgY29uc3RyYWludCBzdWJ0eXBl OiA0CgpGaXggdGhhdCBieSBwcm92aWRpbmcgYSB1c2VyLWZhY2luZyBlcnJvciBtZXNzYWdl IGZvciBhbGwgQ29uc3RyVHlwZQp2YWx1ZXMuICBBbHNvLCByZW1vdmUgdGhlIHN3aXRjaCBk ZWZhdWx0IGNhc2UsIHNvIGZ1dHVyZSBhZGRpdGlvbnMgdG8KQ29uc3RyVHlwZSBhcmUgY2F1 Z2h0LgoKUmVwb3J0ZWQtYnk6IEppYW4gSGUgPGppYW4udW5pdmVyc2FsaXR5QGdtYWlsLmNv bT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvbWVzc2FnZS1pZC9D QUNKdWZ4RjhmbU09RGJtNHBERnVWX25LR3oyLU5vMGs0WWlmaHJGMy1yalhUV0pNM3dAbWFp bC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jIHwgMTAg KysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYwppbmRleCA4NTllMjE5MWYwOC4uMTMw NzQxZTc3N2UgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMK KysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYwpAQCAtMTAxMSwxMCArMTAx MSwxNCBAQCBEZWZpbmVEb21haW4oQ3JlYXRlRG9tYWluU3RtdCAqc3RtdCkKIAkJCQkJCSBl cnJtc2coInNwZWNpZnlpbmcgY29uc3RyYWludCBkZWZlcnJhYmlsaXR5IG5vdCBzdXBwb3J0 ZWQgZm9yIGRvbWFpbnMiKSkpOwogCQkJCWJyZWFrOwogCi0JCQlkZWZhdWx0OgotCQkJCWVs b2coRVJST1IsICJ1bnJlY29nbml6ZWQgY29uc3RyYWludCBzdWJ0eXBlOiAlZCIsCi0JCQkJ CSAoaW50KSBjb25zdHItPmNvbnR5cGUpOworCQkJY2FzZSBDT05TVFJfR0VORVJBVEVEOgor CQkJY2FzZSBDT05TVFJfSURFTlRJVFk6CisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShl cnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCSBlcnJtc2co InNwZWNpZnlpbmcgR0VORVJBVEVEIG5vdCBzdXBwb3J0ZWQgZm9yIGRvbWFpbnMiKSkpOwog CQkJCWJyZWFrOworCisJCQkJLyogbm8gZGVmYXVsdCwgdG8gbGV0IGNvbXBpbGVyIHdhcm4g YWJvdXQgbWlzc2luZyBjYXNlICovCiAJCX0KIAl9CiAKLS0gCjIuNDcuMAoK --------------Dc97Sw0Tbk93cHiLyBc9Udst--