@ -290,6 +290,8 @@ plpgsql_stmt_typename(PLpgSQL_stmt *stmt)
return " COMMIT " ;
return " COMMIT " ;
case PLPGSQL_STMT_ROLLBACK :
case PLPGSQL_STMT_ROLLBACK :
return " ROLLBACK " ;
return " ROLLBACK " ;
case PLPGSQL_STMT_SET :
return " SET " ;
}
}
return " unknown " ;
return " unknown " ;
@ -372,6 +374,7 @@ static void free_perform(PLpgSQL_stmt_perform *stmt);
static void free_call ( PLpgSQL_stmt_call * stmt ) ;
static void free_call ( PLpgSQL_stmt_call * stmt ) ;
static void free_commit ( PLpgSQL_stmt_commit * stmt ) ;
static void free_commit ( PLpgSQL_stmt_commit * stmt ) ;
static void free_rollback ( PLpgSQL_stmt_rollback * stmt ) ;
static void free_rollback ( PLpgSQL_stmt_rollback * stmt ) ;
static void free_set ( PLpgSQL_stmt_set * stmt ) ;
static void free_expr ( PLpgSQL_expr * expr ) ;
static void free_expr ( PLpgSQL_expr * expr ) ;
@ -461,6 +464,9 @@ free_stmt(PLpgSQL_stmt *stmt)
case PLPGSQL_STMT_ROLLBACK :
case PLPGSQL_STMT_ROLLBACK :
free_rollback ( ( PLpgSQL_stmt_rollback * ) stmt ) ;
free_rollback ( ( PLpgSQL_stmt_rollback * ) stmt ) ;
break ;
break ;
case PLPGSQL_STMT_SET :
free_set ( ( PLpgSQL_stmt_set * ) stmt ) ;
break ;
default :
default :
elog ( ERROR , " unrecognized cmd_type: %d " , stmt - > cmd_type ) ;
elog ( ERROR , " unrecognized cmd_type: %d " , stmt - > cmd_type ) ;
break ;
break ;
@ -624,6 +630,12 @@ free_rollback(PLpgSQL_stmt_rollback *stmt)
{
{
}
}
static void
free_set ( PLpgSQL_stmt_set * stmt )
{
free_expr ( stmt - > expr ) ;
}
static void
static void
free_exit ( PLpgSQL_stmt_exit * stmt )
free_exit ( PLpgSQL_stmt_exit * stmt )
{
{
@ -820,6 +832,7 @@ static void dump_perform(PLpgSQL_stmt_perform *stmt);
static void dump_call ( PLpgSQL_stmt_call * stmt ) ;
static void dump_call ( PLpgSQL_stmt_call * stmt ) ;
static void dump_commit ( PLpgSQL_stmt_commit * stmt ) ;
static void dump_commit ( PLpgSQL_stmt_commit * stmt ) ;
static void dump_rollback ( PLpgSQL_stmt_rollback * stmt ) ;
static void dump_rollback ( PLpgSQL_stmt_rollback * stmt ) ;
static void dump_set ( PLpgSQL_stmt_set * stmt ) ;
static void dump_expr ( PLpgSQL_expr * expr ) ;
static void dump_expr ( PLpgSQL_expr * expr ) ;
@ -919,6 +932,9 @@ dump_stmt(PLpgSQL_stmt *stmt)
case PLPGSQL_STMT_ROLLBACK :
case PLPGSQL_STMT_ROLLBACK :
dump_rollback ( ( PLpgSQL_stmt_rollback * ) stmt ) ;
dump_rollback ( ( PLpgSQL_stmt_rollback * ) stmt ) ;
break ;
break ;
case PLPGSQL_STMT_SET :
dump_set ( ( PLpgSQL_stmt_set * ) stmt ) ;
break ;
default :
default :
elog ( ERROR , " unrecognized cmd_type: %d " , stmt - > cmd_type ) ;
elog ( ERROR , " unrecognized cmd_type: %d " , stmt - > cmd_type ) ;
break ;
break ;
@ -1314,6 +1330,13 @@ dump_rollback(PLpgSQL_stmt_rollback *stmt)
printf ( " ROLLBACK \n " ) ;
printf ( " ROLLBACK \n " ) ;
}
}
static void
dump_set ( PLpgSQL_stmt_set * stmt )
{
dump_ind ( ) ;
printf ( " %s \n " , stmt - > expr - > query ) ;
}
static void
static void
dump_exit ( PLpgSQL_stmt_exit * stmt )
dump_exit ( PLpgSQL_stmt_exit * stmt )
{
{