@@ -1764,40 +1764,41 @@ static char*
17641764expand_shared_preload_libraries_string ()
17651765{
17661766 List * elemlist = NIL ;
1767+ List * pg_elemlist = NIL ;
17671768 List * deduplicate_elemlist = NIL ;
17681769 ListCell * l ;
17691770 char * rawstring ;
17701771 char * libraries = shared_preload_libraries_string ;
17711772
1773+ /* load process_shared_preload_libraries.h libraries */
1774+ int shared_preload_libraries_num = sizeof (process_shared_preload_libraries_array ) / sizeof (char * );
1775+ if (shared_preload_libraries_num > 0 )
1776+ {
1777+ for (int i = 0 ; i < shared_preload_libraries_num ; i ++ )
1778+ {
1779+ elemlist = lappend (elemlist , pstrdup ((char * )process_shared_preload_libraries_array [i ]));
1780+ }
1781+ }
1782+
17721783 /* Need a modifiable copy of string */
17731784 rawstring = pstrdup (libraries );
17741785 if (libraries != NULL && libraries [0 ] != '\0' )
17751786 {
17761787 /* Parse string into list of filename paths */
1777- if (!SplitDirectoriesString (rawstring , ',' , & elemlist ))
1788+ if (!SplitDirectoriesString (rawstring , ',' , & pg_elemlist ))
17781789 {
17791790 /* syntax error in list */
1780- list_free_deep (elemlist );
1791+ list_free_deep (pg_elemlist );
17811792 pfree (rawstring );
17821793 ereport (LOG ,
17831794 (errcode (ERRCODE_SYNTAX_ERROR ),
17841795 errmsg ("invalid list syntax in parameter \"%s\"" ,
17851796 libraries )));
17861797 return NULL ;
17871798 }
1788-
17891799 }
17901800
1791- /* load expand libraries */
1792- int shared_preload_libraries_num = sizeof (process_shared_preload_libraries_array ) / sizeof (char * );
1793- if (shared_preload_libraries_num > 0 )
1794- {
1795- for (int i = 0 ; i < shared_preload_libraries_num ; i ++ )
1796- {
1797- elemlist = lappend (elemlist , pstrdup ((char * )process_shared_preload_libraries_array [i ]));
1798- }
1799-
1800- }
1801+ elemlist = list_concat (elemlist , pg_elemlist );
18011802
18021803 if (list_length (elemlist ) == 0 )
18031804 {
@@ -1806,7 +1807,6 @@ expand_shared_preload_libraries_string()
18061807 return NULL ;
18071808 }
18081809
1809-
18101810 /* deduplicate list string */
18111811 deduplicate_elemlist = removeDuplicates (elemlist );
18121812
0 commit comments