Re: BUG #16176: NULL value returned by category_sql argument to crosstab() causes segmentation fault

Joe Conway <[email protected]> Mon, 23 Dec 2019 14:00:38 -0500
Newsgroups gmane.comp.db.postgresql.bugs
Message-ID <[email protected]>
On 12/23/19 1:49 PM, Tom Lane wrote:
> Joe Conway <[email protected]> writes:
>> Pushed that way to all supported branches.
> 
> Hmm, why'd you use ERRCODE_SYNTAX_ERROR, and not say
> ERRCODE_NULL_VALUE_NOT_ALLOWED?

To be consistent with the error just above:
--------------------
/*
 * The provided categories SQL query must always return one column:
 * category - the label or identifier for each column
 */
if (spi_tupdesc->natts != 1)
	ereport(ERROR,
	(errcode(ERRCODE_SYNTAX_ERROR),
	 errmsg("provided \"categories\" SQL must " \
	"return 1 column of at least one row")));
--------------------

Also, the argument itself is a SQL statement, and it isn't NULL, it just
produces a NULL value as one (or more) of its output rows. It seems like
ERRCODE_NULL_VALUE_NOT_ALLOWED might be confusing.

But I am not married to ERRCODE_SYNTAX_ERROR if you think it ought to be
changed.

Joe
-- 
Crunchy Data - http://crunchydata.com
PostgreSQL Support for Secure Enterprises
Consulting, Training, & Open Source Development
signature.asc (application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEg14x9eymXoJyHrH+N/L3QzX32GUFAl4BDtYACgkQN/L3QzX3
2GWNlQ/7BNdsh1za9mderhvBw+SsSKaUFWfDsOseFGDqAcFMS/G5YGZRCbDa26Xe
hdMlj91p89V7WnGbPSuBPWytxrvHtaZA17yRn0Ppi4oWhTfpWkWyN9v5hd63q+6s
KDh+4PxbM4FrPabVWxlknNilBPnD2UXKUeIQ1z4d0npNvdSgjGoO5w63DpRIkFYY
pZ/9QihpeRyzOIjXL9/vb832flTQQ/VQLciEiLnxD/+DJHZB391c2dUfjn769ogE
MVZOWK/StEGXd5svIwjFNOrYckNt8K3z8gKZpokUUfIu68kvljiCwi8zaKh9yZk/
SGX7j89WC4N4+Z010NDMtQ3qvJpjW8Wrx45a4TJ1mjS4feQVnof+gaBnLgTNwvmS
8yTqPOkH/bMB/Yus1d84RoUhg8Q2af+UR3bhdO2fa9kcbuKsuyJbe8nkTg+YrQ1B
1Fh0G1EeWQz6wFIkkc+EwZf5gI4b/1X6g3E7YzQXY1MqE/vKZby6Cvpof5bACm+n
0hGRM3R4Zi8gOwhLRIWRzdpx5Sn08nZllvmfyLCeA+d9pSxo59Q5Rxt6Yoa5hZaI
UjeQ3VUaEHMZPs90VeWlcIwcuI5mOto4LJJ3Z2RizD8iF+eYi17dUw7RsOZbo2yx
OzMvhgxP19uBhDmb5W7IQmCs106tLtiHpRKfJygh7wCQd7pTcHY=
=YQJc
-----END PGP SIGNATURE-----