@@ -1139,18 +1139,19 @@ void MtmHandleApplyError(void)
11391139{
11401140 ErrorData * edata = CopyErrorData ();
11411141 switch (edata -> sqlerrcode ) {
1142- case ERRCODE_DISK_FULL :
1143- case ERRCODE_INSUFFICIENT_RESOURCES :
1144- case ERRCODE_IO_ERROR :
1145- case ERRCODE_DATA_CORRUPTED :
1146- case ERRCODE_INDEX_CORRUPTED :
1147- case ERRCODE_SYSTEM_ERROR :
1148- case ERRCODE_INTERNAL_ERROR :
1149- case ERRCODE_OUT_OF_MEMORY :
1150- elog (WARNING , "Node is excluded from cluster because of non-recoverable error %d" , edata -> sqlerrcode );
1151- MtmSwitchClusterMode (MTM_OUT_OF_SERVICE );
1152- kill (PostmasterPid , SIGQUIT );
1153- break ;
1142+ case ERRCODE_DISK_FULL :
1143+ case ERRCODE_INSUFFICIENT_RESOURCES :
1144+ case ERRCODE_IO_ERROR :
1145+ case ERRCODE_DATA_CORRUPTED :
1146+ case ERRCODE_INDEX_CORRUPTED :
1147+ case ERRCODE_SYSTEM_ERROR :
1148+ case ERRCODE_INTERNAL_ERROR :
1149+ case ERRCODE_OUT_OF_MEMORY :
1150+ elog (WARNING , "Node is excluded from cluster because of non-recoverable error %d, %s, pid=%u" ,
1151+ edata -> sqlerrcode , edata -> message , getpid ());
1152+ MtmSwitchClusterMode (MTM_OUT_OF_SERVICE );
1153+ kill (PostmasterPid , SIGQUIT );
1154+ break ;
11541155 }
11551156 FreeErrorData (edata );
11561157}
@@ -3158,7 +3159,8 @@ static void MtmProcessUtility(Node *parsetree, const char *queryString,
31583159 {
31593160 /* Do not replicate temp tables */
31603161 CreateStmt * stmt = (CreateStmt * ) parsetree ;
3161- skipCommand = stmt -> relation -> relpersistence == RELPERSISTENCE_TEMP ;
3162+ skipCommand = stmt -> relation -> relpersistence == RELPERSISTENCE_TEMP ||
3163+ (stmt -> relation -> schemaname && strcmp (stmt -> relation -> schemaname , "pg_temp" ) == 0 );
31623164 }
31633165 break ;
31643166 case T_IndexStmt :
0 commit comments