@@ -459,6 +459,13 @@ void
459459create_script_for_cluster_analyze (char * * analyze_script_file_name )
460460{
461461FILE * script = NULL ;
462+ char * user_specification = "" ;
463+
464+ if (os_info .user_specified )
465+ {
466+ user_specification = pg_malloc (strlen (os_info .user )+ 7 );
467+ sprintf (user_specification ,"-U \"%s\" " ,os_info .user );
468+ }
462469
463470* analyze_script_file_name = pg_malloc (MAXPGPATH );
464471
@@ -501,7 +508,8 @@ create_script_for_cluster_analyze(char **analyze_script_file_name)
501508ECHO_QUOTE ,ECHO_QUOTE );
502509fprintf (script ,"echo %sthis script and run:%s\n" ,
503510ECHO_QUOTE ,ECHO_QUOTE );
504- fprintf (script ,"echo %s \"%s/vacuumdb\" --all %s%s\n" ,ECHO_QUOTE ,new_cluster .bindir ,
511+ fprintf (script ,"echo %s \"%s/vacuumdb\" %s--all %s%s\n" ,ECHO_QUOTE ,
512+ new_cluster .bindir ,user_specification ,
505513/* Did we copy the free space files? */
506514(GET_MAJOR_VERSION (old_cluster .major_version ) >=804 ) ?
507515"--analyze-only" :"--analyze" ,ECHO_QUOTE );
@@ -522,7 +530,8 @@ create_script_for_cluster_analyze(char **analyze_script_file_name)
522530ECHO_QUOTE ,ECHO_QUOTE );
523531fprintf (script ,"echo %s--------------------------------------------------%s\n" ,
524532ECHO_QUOTE ,ECHO_QUOTE );
525- fprintf (script ,"\"%s/vacuumdb\" --all --analyze-only\n" ,new_cluster .bindir );
533+ fprintf (script ,"\"%s/vacuumdb\" %s--all --analyze-only\n" ,
534+ new_cluster .bindir ,user_specification );
526535fprintf (script ,"echo%s\n" ,ECHO_BLANK );
527536fprintf (script ,"echo %sThe server is now available with minimal optimizer statistics.%s\n" ,
528537ECHO_QUOTE ,ECHO_QUOTE );
@@ -543,7 +552,8 @@ create_script_for_cluster_analyze(char **analyze_script_file_name)
543552ECHO_QUOTE ,ECHO_QUOTE );
544553fprintf (script ,"echo %s---------------------------------------------------%s\n" ,
545554ECHO_QUOTE ,ECHO_QUOTE );
546- fprintf (script ,"\"%s/vacuumdb\" --all --analyze-only\n" ,new_cluster .bindir );
555+ fprintf (script ,"\"%s/vacuumdb\" %s--all --analyze-only\n" ,
556+ new_cluster .bindir ,user_specification );
547557fprintf (script ,"echo%s\n\n" ,ECHO_BLANK );
548558
549559#ifndef WIN32
@@ -556,7 +566,8 @@ create_script_for_cluster_analyze(char **analyze_script_file_name)
556566ECHO_QUOTE ,ECHO_QUOTE );
557567fprintf (script ,"echo %s-------------------------------------------------------------%s\n" ,
558568ECHO_QUOTE ,ECHO_QUOTE );
559- fprintf (script ,"\"%s/vacuumdb\" --all %s\n" ,new_cluster .bindir ,
569+ fprintf (script ,"\"%s/vacuumdb\" %s--all %s\n" ,new_cluster .bindir ,
570+ user_specification ,
560571/* Did we copy the free space files? */
561572(GET_MAJOR_VERSION (old_cluster .major_version ) >=804 ) ?
562573"--analyze-only" :"--analyze" );
@@ -573,6 +584,9 @@ create_script_for_cluster_analyze(char **analyze_script_file_name)
573584* analyze_script_file_name ,getErrorText (errno ));
574585#endif
575586
587+ if (os_info .user_specified )
588+ pg_free (user_specification );
589+
576590check_ok ();
577591}
578592