forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commite524cbd
committed
Track typmods in plpgsql expression evaluation and assignment.
The main value of this change is to avoid expensive I/O conversions whenassigning to a variable that has a typmod specification, if the valueto be assigned is already known to have the right typmod. This isparticularly valuable for arrays with typmod specifications; formerly,in an assignment to an array element the entire array would invariablyget put through double I/O conversion to check the typmod, to absolutelyno purpose since we'd already properly coerced the new element value.Extracted from my "expanded arrays" patch; this seems worth committingseparately, whatever becomes of that patch, since it's really anindependent issue.As long as we're changing the function signatures, take the opportunityto rationalize the argument lists of exec_assign_value, exec_cast_value,and exec_simple_cast_value; that is, put the arguments into a saner order,and get rid of the bizarre choice to pass exec_assign_value's isNull flagby reference.1 parentb514a74 commite524cbd