diff --git a/src/bin/initdb/initdb.cpp b/src/bin/initdb/initdb.cpp index 8592eef95..0c9be650b 100644 --- a/src/bin/initdb/initdb.cpp +++ b/src/bin/initdb/initdb.cpp @@ -228,7 +228,7 @@ static const char* backend_options = "--single " #define FREE_AND_RESET(ptr) \ do { \ - if (NULL != (ptr)) { \ + if (NULL != (ptr) && (char*)(ptr) != (char*)"") { \ free(ptr); \ (ptr) = NULL; \ } \ diff --git a/src/test/regress/input/gs_initdb.source b/src/test/regress/input/gs_initdb.source index fe5ef6503..c33d47bee 100644 --- a/src/test/regress/input/gs_initdb.source +++ b/src/test/regress/input/gs_initdb.source @@ -25,3 +25,9 @@ \! rm -rf @testtablespace@/passwd.txt \! rm -rf @testtablespace@/test8 +-- use env PGDATA +\! mkdir -p @testtablespace@/test9 +\! export PGDATA=@testtablespace@/test9 && ( @abs_bindir@/gs_initdb -w test@123 --nodename coorn9 >> @abs_bindir@/test_initdb9.log 2>&1 ) +\! cat @abs_bindir@/test_initdb9.log | grep Success +\! rm -f @abs_bindir@/test_initdb9.log +\! rm -rf @testtablespace@/test9 diff --git a/src/test/regress/output/gs_initdb.source b/src/test/regress/output/gs_initdb.source index 6b62f9726..5019ee37b 100644 --- a/src/test/regress/output/gs_initdb.source +++ b/src/test/regress/output/gs_initdb.source @@ -102,3 +102,10 @@ freezing database postgres ... ok \! @abs_bindir@/gs_initdb -S -A trust --auth-host='ident' --auth-local='peer' --auth-host='ident' --auth-local='peer' -D @testtablespace@/test8 --nodename coorn8 -U test_initdb --pwfile=@testtablespace@/passwd.txt >> /dev/null 2>&1 \! rm -rf @testtablespace@/passwd.txt \! rm -rf @testtablespace@/test8 +-- use env PGDATA +\! mkdir -p @testtablespace@/test9 +\! export PGDATA=@testtablespace@/test9 && ( @abs_bindir@/gs_initdb -w test@123 --nodename coorn9 >> @abs_bindir@/test_initdb9.log 2>&1 ) +\! cat @abs_bindir@/test_initdb9.log | grep Success +Success. You can now start the database server of single node using: +\! rm -f @abs_bindir@/test_initdb9.log +\! rm -rf @testtablespace@/test9