* Construct the tuple descriptor for a CALL statement return */
| 2899 | * Construct the tuple descriptor for a CALL statement return |
| 2900 | */ |
| 2901 | TupleDesc |
| 2902 | CallStmtResultDesc(CallStmt *stmt) |
| 2903 | { |
| 2904 | FuncExpr *fexpr; |
| 2905 | HeapTuple tuple; |
| 2906 | TupleDesc tupdesc; |
| 2907 | |
| 2908 | fexpr = stmt->funcexpr; |
| 2909 | |
| 2910 | tuple = SearchSysCache1(PROCOID, ObjectIdGetDatum(fexpr->funcid)); |
| 2911 | if (!HeapTupleIsValid(tuple)) |
| 2912 | elog(ERROR, "cache lookup failed for procedure %u", fexpr->funcid); |
| 2913 | |
| 2914 | tupdesc = build_function_result_tupdesc_t(tuple); |
| 2915 | |
| 2916 | ReleaseSysCache(tuple); |
| 2917 | |
| 2918 | return tupdesc; |
| 2919 | } |
no test coverage detected