> On Wed, Nov 6, 2024 at 12:17 AM Peter Eisentraut <pe...@eisentraut.org> 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.) >
RelationBuildPartitionKey if (!isnull) { char *exprString; Node *expr; exprString = TextDatumGetCString(datum); expr = stringToNode(exprString); pfree(exprString); expr = expand_generated_columns_in_expr(expr, relation); } no need expand_generated_columns_in_expr? in ComputePartitionAttrs, we already forbidden generated columns to be part of the partition key. check_modified_virtual_generated, we can replace fastgetattr to heap_attisnull? like: // bool isnull; // fastgetattr(tuple, i + 1, tupdesc, &isnull); // if (!isnull) // ereport(ERROR, // (errcode(ERRCODE_E_R_I_E_TRIGGER_PROTOCOL_VIOLATED), // errmsg("trigger modified virtual generated column value"))); if (!heap_attisnull(tuple, i+1, tupdesc)) ereport(ERROR, (errcode(ERRCODE_E_R_I_E_TRIGGER_PROTOCOL_VIOLATED), errmsg("trigger modified virtual generated column value")));