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 1riE5N-00FqAM-By for pgsql-hackers@arkaria.postgresql.org; Thu, 07 Mar 2024 13:47:01 +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 1riE5L-005WvI-3B for pgsql-hackers@arkaria.postgresql.org; Thu, 07 Mar 2024 13:46:59 +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 1riE5K-005WvA-OJ for pgsql-hackers@lists.postgresql.org; Thu, 07 Mar 2024 13:46:59 +0000 Received: from mail-ua1-x92f.google.com ([2607:f8b0:4864:20::92f]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1riE5F-003GkG-EA for pgsql-hackers@postgresql.org; Thu, 07 Mar 2024 13:46:58 +0000 Received: by mail-ua1-x92f.google.com with SMTP id a1e0cc1a2514c-7dad8437347so356221241.3 for ; Thu, 07 Mar 2024 05:46:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1709819212; x=1710424012; darn=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=6P/aOj3TQ+R2yAGcOC7P5ycTz+OdvXnzZjBlJ1iBGd4=; b=KqJWh0xmOod9qX+J2+pgi4PLpvr9p7rho/8GBOmEW3lrM9EMN0ABhraeQuimLWRoGA Tn5d7JpAYqaBqsABW5L9uDDXcUwDea1MGszVeSZt4cUhgneLBnRqjISNZ4OhHamyLGzk ZU4OKTVv9cyXBntLyjMNe7F3QWZLPoqrdD7YfQokXEgsdUs6vfKL2YYkIvF8k80t6g+A duQjC6ITSOmVypi5by77tFYtCOurzEmhJ2kuYYhRsJJqTeoYh6MxoOKisZUGyw8bmuAk I3TU9mRM2XcdaygR6dQQyPjiV58Uz7B+Xe7uOyglAlIy4aO6lgtjgA8tGgGCQD7ZTHLA Kq8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709819212; x=1710424012; 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=6P/aOj3TQ+R2yAGcOC7P5ycTz+OdvXnzZjBlJ1iBGd4=; b=pfeP8JkBBqA13F6tKWyeAM0XrRDICUg2NQRrGkTYniLnOPjTkDKpmz3zCtsSJJdHwh U4EPgXfRQQ2mL+5sASMQA/V9yNzL9YTRh4Ee5sr7srioGPB8z7M5xk2O/aqMcnvVuCQI kVSCWXKs88Y1FcmEgizlTwPA/GUUGoH4C6rOlnSDKw+YCUbQxoycqVCfEXKUBjVPaXUR BhNe+yHqDA4w/Ake3TErmf7aMSFy+d8C4QGwiW6pzkDvUBvfsq6+sOpbEFQMkiHZGOh/ FSIg0CHAAPaCcHuIo4SqP0fVKyYAycZCNlBBuNQCa7Fir0G9kiju3eGX4Sj4w33+Bdix B2LQ== X-Forwarded-Encrypted: i=1; AJvYcCWCkmik/oIlB2MSaiGYNuJOs3qwmJCU1QwnoADOB8aKT4QA3hb7IQSXcnWqZLwNTvTcYSVrH9vj156yNBvXnlulaZN7YLyqtTMHzA5V X-Gm-Message-State: AOJu0YwdVdadh+V65xDPqDSFSiGWdrTcZwAA7yww/tSmu0JN+x7iAhNs 2Phv442U2IfhCWeRbqOq5eEDjoqSm1sxUrFcWP10J0k1Z5Rs7F6Dkl9HSRlRahDlrQ1zuMb1wZ8 74jlmDfrzB2W6zQZQ/HlpJwmcHZ0= X-Google-Smtp-Source: AGHT+IG4z0HpqtVHscHsyKbV0QlYm8BbsOoNWzYNUUYjimjTBfqmpGGh+u6h1J0g2zlOcDUB6IKoHATrmDlrVda2q9k= X-Received: by 2002:a67:ba1a:0:b0:472:fcf4:d411 with SMTP id l26-20020a67ba1a000000b00472fcf4d411mr2179842vsn.27.1709819211558; Thu, 07 Mar 2024 05:46:51 -0800 (PST) MIME-Version: 1.0 References: <1cee81f3-312f-30e3-0282-c4df7ee72f93@xs4all.nl> <202403041503.5momp6knupgo@alvherre.pgsql> <562e5ad9-1357-4752-ad28-7e56740f74f8@enterprisedb.com> In-Reply-To: From: jian he Date: Thu, 7 Mar 2024 21:46:40 +0800 Message-ID: Subject: Re: remaining sql/json patches To: Amit Langote Cc: Tomas Vondra , Himanshu Upadhyaya , Alvaro Herrera , Erik Rijkers , Andres Freund , Andrew Dunstan , PostgreSQL-development Content-Type: multipart/mixed; boundary="000000000000bcc68d0613124efc" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000bcc68d0613124efc Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Mar 7, 2024 at 8:06=E2=80=AFPM Amit Langote wrote: > > > Indeed. > > This boils down to the difference in the cast expression chosen to > convert the source value to int in the two cases. > > The case where the source value has no quotes, the chosen cast > expression is a FuncExpr for function numeric_int4(), which has no way > to suppress errors. When the source value has quotes, the cast > expression is a CoerceViaIO expression, which can suppress the error. > The default behavior is to suppress the error and return NULL, so the > correct behavior is when the source value has quotes. > > I think we'll need either: > > * fix the code in 0001 to avoid getting numeric_int4() in this case, > and generally cast functions that don't have soft-error handling > support, in favor of using IO coercion. > * fix FuncExpr (like CoerceViaIO) to respect SQL/JSON's request to > suppress errors and fix downstream functions like numeric_int4() to > comply by handling errors softly. > > I'm inclined to go with the 1st option as we already have the > infrastructure in place -- input functions can all handle errors > softly. not sure this is the right way. but attached patches solved this problem. Also, can you share the previous memory-hogging bug issue when you are free, I want to know which part I am missing..... --000000000000bcc68d0613124efc Content-Type: application/octet-stream; name="v42-0001-minor-refactor-SQL-JSON-query-functions-based.no-cfbot" Content-Disposition: attachment; filename="v42-0001-minor-refactor-SQL-JSON-query-functions-based.no-cfbot" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ltha0lfa1 RnJvbSA5NDcyNWUzNWQwYzM2YzE5YzNkNzI5Mjk0ZTI2NGI0MTAyMzJhYjA4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgNyBNYXIgMjAyNCAyMTozODozMCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjQy IDEvMl0gbWlub3IgcmVmYWN0b3IgU1FML0pTT04gcXVlcnkgZnVuY3Rpb25zIGJhc2VkIG9uIHYy NC4KCi0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYyAgICAgICAgIHwg MjUgKysrKysrKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyAg ICAgICAgICAgICAgIHwgMTkgKysrKysrKysrKysrKysKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nx bGpzb25fcXVlcnlmdW5jcy5vdXQgICB8ICAyICstCiAzIGZpbGVzIGNoYW5nZWQsIDQ1IGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRv ci9leGVjRXhwckludGVycC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAu YwppbmRleCBkYWQ0MjRiYS4uZmMzNmIwODYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNFeHBySW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJ bnRlcnAuYwpAQCAtNDMyNSw2ICs0MzI1LDMxIEBAIEV4ZWNFdmFsSnNvbkV4cHJQYXRoKEV4cHJT dGF0ZSAqc3RhdGUsIEV4cHJFdmFsU3RlcCAqb3AsCiAJCQkJCQkqb3AtPnJlc3ZhbHVlID0gSnNv bmJQR2V0RGF0dW0oSnNvbmJWYWx1ZVRvSnNvbmIoamJ2KSk7CiAJCQkJCQkqb3AtPnJlc251bGwg PSBmYWxzZTsKIAkJCQkJfQorCQkJCQllbHNlIGlmIChqYnYtPnR5cGUgPT0gamJ2TnVtZXJpYykK KwkJCQkJeworCQkJCQkJc3dpdGNoIChqZXhwci0+cmV0dXJuaW5nLT50eXBpZCkKKwkJCQkJCXsK KwkJCQkJCQkvKgorCQkJCQkJCSogd2UgbmVlZCB0byBoYW5kbGUgdGhlc2UgY2FzZXMgc2VwZXJh dGVseS4KKwkJCQkJCQkqIGJlY2F1c2UgY2FzdCBmcm9tIG51bWVyaWMgdG8gaW50MiwgaW50NCwK KwkJCQkJCQkqIGludDgsIGZsb2F0NCwgZmxvYXQ4IGNhbm5vdCBoYW5kbGUgZXJyb3IKKwkJCQkJ CQkqIHNvZnRseS4gU2VlIGNvZXJjZUpzb25GdW5jRXhwck91dHB1dC4KKwkJCQkJCQkqLworCQkJ CQkJCWNhc2UgIElOVDJPSUQ6CisJCQkJCQkJY2FzZSAgSU5UNE9JRDoKKwkJCQkJCQljYXNlICBJ TlQ4T0lEOgorCQkJCQkJCWNhc2UgIEZMT0FUNE9JRDoKKwkJCQkJCQljYXNlICBGTE9BVDhPSUQ6 CisJCQkJCQkJCSpvcC0+cmVzdmFsdWUgPSBKc29uYlBHZXREYXR1bShKc29uYlZhbHVlVG9Kc29u YihqYnYpKTsKKwkJCQkJCQkJKm9wLT5yZXNudWxsID0gZmFsc2U7CisJCQkJCQkJCWJyZWFrOwor CQkJCQkJCWRlZmF1bHQ6CisJCQkJCQkJCUV4ZWNQcmVwYXJlSnNvbkl0ZW1Db2VyY2lvbihqYnYs IGpzZXN0YXRlLCB0aHJvd19lcnJvciwKKwkJCQkJCQkJCQkJCQkJCSZqdW1wX2V2YWxfY29lcmNp b24sCisJCQkJCQkJCQkJCQkJCQlvcC0+cmVzdmFsdWUsIG9wLT5yZXNudWxsKTsKKwkJCQkJCQkJ YnJlYWs7CisJCQkJCQl9CisJCQkJCX0KIAkJCQkJZWxzZQogCQkJCQl7CiAJCQkJCQkvKgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9leHByLmMKaW5kZXggNjU1N2IwN2YuLmY0ZDVlZjUzIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9leHByLmMKQEAgLTQ1MzUsNiArNDUzNSwyNSBAQCBjb2VyY2VKc29uRnVuY0V4cHJPdXRw dXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBKc29uRXhwciAqanNleHByKQogCQkJCWJyZWFrOwogCQl9 CiAJfQorCS8qCisJICogdGhlIEpzb25iVmFsdWUgcmV0dXJuZWQgYnkgSnNvblBhdGhWYWx1ZSBt YXliZSBhIGpidlR5cGUgaXMgamJ2TnVtZXJpYworCSAqIGluIHRoYXQgY2FzZSwgd2UgbmVlZCB0 byB1c2UgSnNvbkNvZXJjaW9uIG5vZGUgdG8gaGFuZGxlIGVycm9yIHNvZnRseS4KKwkgKgorCSov CisJaWYgKGpzZXhwci0+b3AgPT0gSlNPTl9WQUxVRV9PUCkKKwl7CisJCXN3aXRjaCAocmV0dXJu aW5nLT50eXBpZCkKKwkJeworCQkJY2FzZSBJTlQyT0lEOgorCQkJY2FzZSBJTlQ0T0lEOgorCQkJ Y2FzZSBJTlQ4T0lEOgorCQkJY2FzZSBGTE9BVDRPSUQ6CisJCQljYXNlIEZMT0FUOE9JRDoKKwkJ CQlyZXR1cm4gKE5vZGUgKikgbWFrZUpzb25Db2VyY2lvbihyZXR1cm5pbmcsIG9taXRfcXVvdGVz LCBOVUxMKTsKKwkJCWRlZmF1bHQ6CisJCQkJYnJlYWs7CisJCX0KKwl9CiAKIAlkZWZhdWx0X3R5 cGlkID0gSnNvbkZ1bmNFeHByRGVmYXVsdFJldHVyblR5cGUoanNleHByKTsKIAlkZWZhdWx0X3R5 cG1vZCA9IC0xOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zcWxqc29u X3F1ZXJ5ZnVuY3Mub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zcWxqc29uX3F1ZXJ5 ZnVuY3Mub3V0CmluZGV4IGY1YjU3NDY1Li4yMzA1NGQ5YSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9zcWxqc29uX3F1ZXJ5ZnVuY3Mub3V0CisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc3FsanNvbl9xdWVyeWZ1bmNzLm91dApAQCAtMjEzLDcgKzIxMyw3IEBA IFNFTEVDVCBKU09OX1ZBTFVFKGpzb25iICcxLjIzJywgJyQnKTsKIFNFTEVDVCBKU09OX1ZBTFVF KGpzb25iICcxLjIzJywgJyQnIFJFVFVSTklORyBpbnQpOwogIGpzb25fdmFsdWUgCiAtLS0tLS0t LS0tLS0KLSAgICAgICAgICAxCisgICAgICAgICAgIAogKDEgcm93KQogCiBTRUxFQ1QgSlNPTl9W QUxVRShqc29uYiAnIjEuMjMiJywgJyQnIFJFVFVSTklORyBudW1lcmljKTsKLS0gCjIuMzQuMQoK --000000000000bcc68d0613124efc Content-Type: application/octet-stream; name="v42-0002-minor-refactor-JOSN_TABLE-functions-based-on-.no-cfbot" Content-Disposition: attachment; filename="v42-0002-minor-refactor-JOSN_TABLE-functions-based-on-.no-cfbot" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ltha0lf10 RnJvbSA3NjljMzQxYzAyNGFiY2FjMTQ5NWYzMzM5MjE5NGM0NTc3MDk5MzFkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgNyBNYXIgMjAyNCAyMTozODo1OSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjQy IDIvMl0gbWlub3IgcmVmYWN0b3IgSk9TTl9UQUJMRSBmdW5jdGlvbnMgYmFzZWQgb24gdjI0LgoK LS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3NxbGpzb25fanNvbnRhYmxlLm91dCB8IDIg Ky0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3FsanNvbl9qc29udGFibGUub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zcWxqc29uX2pzb250YWJsZS5vdXQKaW5kZXggZjdh ZTcwYTAuLjcwOTNhOTg5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nx bGpzb25fanNvbnRhYmxlLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3NxbGpz b25fanNvbnRhYmxlLm91dApAQCAtNjUsNyArNjUsNyBAQCBGUk9NIGpzb25fdGFibGVfdGVzdCB2 YWxzCiAgW10gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIHwgICAgIHwgICAgICAgICB8 ICAgICAgICAgfCAgICAgIHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgfCAKICB7 fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgfCAgICAgfCAgICAgICAgIHwgICAgICAg ICB8ICAgICAgfCAgICAgICAgIHwgICAgICAgICB8IHt9ICAgICAgICAgICB8IHt9CiAgWzEsIDEu MjMsICIyIiwgImFhYWFhYWEiLCAiZm9vIiwgbnVsbCwgZmFsc2UsIHRydWUsIHsiYWFhIjogMTIz fSwgIlsxLDJdIiwgIlwic3RyXCIiXSB8ICAxIHwgICAxIHwgMSAgICAgICB8IDEgICAgICAgfCAg ICAgIHwgICAgICAgMSB8IDEgICAgICAgfCAxICAgICAgICAgICAgfCAxCi0gWzEsIDEuMjMsICIy IiwgImFhYWFhYWEiLCAiZm9vIiwgbnVsbCwgZmFsc2UsIHRydWUsIHsiYWFhIjogMTIzfSwgIlsx LDJdIiwgIlwic3RyXCIiXSB8ICAyIHwgICAxIHwgMS4yMyAgICB8IDEuMjMgICAgfCAgICAgIHwg ICAgMS4yMyB8IDEuMjMgICAgfCAxLjIzICAgICAgICAgfCAxLjIzCisgWzEsIDEuMjMsICIyIiwg ImFhYWFhYWEiLCAiZm9vIiwgbnVsbCwgZmFsc2UsIHRydWUsIHsiYWFhIjogMTIzfSwgIlsxLDJd IiwgIlwic3RyXCIiXSB8ICAyIHwgICAgIHwgMS4yMyAgICB8IDEuMjMgICAgfCAgICAgIHwgICAg MS4yMyB8IDEuMjMgICAgfCAxLjIzICAgICAgICAgfCAxLjIzCiAgWzEsIDEuMjMsICIyIiwgImFh YWFhYWEiLCAiZm9vIiwgbnVsbCwgZmFsc2UsIHRydWUsIHsiYWFhIjogMTIzfSwgIlsxLDJdIiwg Ilwic3RyXCIiXSB8ICAzIHwgICAyIHwgMiAgICAgICB8IDIgICAgICAgfCAgICAgIHwgICAgICAg MiB8IDIgICAgICAgfCAiMiIgICAgICAgICAgfCAiMiIKICBbMSwgMS4yMywgIjIiLCAiYWFhYWFh YSIsICJmb28iLCBudWxsLCBmYWxzZSwgdHJ1ZSwgeyJhYWEiOiAxMjN9LCAiWzEsMl0iLCAiXCJz dHJcIiJdIHwgIDQgfCAgICAgfCBhYWFhYWFhIHwgYWFhYSAgICB8ICAgICAgfCAgICAgICAgIHwg YWFhYWFhYSB8ICJhYWFhYWFhIiAgICB8ICJhYWFhYWFhIgogIFsxLCAxLjIzLCAiMiIsICJhYWFh YWFhIiwgImZvbyIsIG51bGwsIGZhbHNlLCB0cnVlLCB7ImFhYSI6IDEyM30sICJbMSwyXSIsICJc InN0clwiIl0gfCAgNSB8ICAgICB8IGZvbyAgICAgfCBmb28gICAgIHwgICAgICB8ICAgICAgICAg fCAgICAgICAgIHwgImZvbyIgICAgICAgIHwgImZvbyIKLS0gCjIuMzQuMQoK --000000000000bcc68d0613124efc--