--1. check success case admin can use this "COPY statement" feature. select count(*) from pgbench_accounts; copy pgbench_accounts TO PROGRAM '/home/kiran/installation/bin/compress.sh /home/kiran/installation/bin/pgbench_accounts1.txt'; delete from pgbench_accounts; copy pgbench_accounts FROM PROGRAM '/home/kiran/installation/bin/decompress.sh /home/kiran/installation/bin/pgbench_accounts1.txt.bz2'; select count(*) from pgbench_accounts; --2. check commands are running with relative path to database directory. copy pgbench_accounts TO PROGRAM '../compress.sh ../pgbench_accounts4.txt'; delete from pgbench_accounts; copy pgbench_accounts FROM PROGRAM '../decompress.sh ../pgbench_accounts4.txt.bz2'; select count(*) from pgbench_accounts; --3. invalid case; where command not found select count(*) from pgbench_accounts; copy pgbench_accounts TO PROGRAM 'compress.sh pgbench_accounts1.txt'; copy pgbench_accounts FROM PROGRAM 'decompress.sh pgbench_accounts1.txt.bz2'; --4. invalid case; where file / script having problem. select count(*) from pgbench_accounts; copy pgbench_accounts TO PROGRAM '../compress.sh abc/pgbench_accounts1.txt'; copy pgbench_accounts FROM PROGRAM '../decompress.sh abc/pgbench_accounts1.txt.bz2'; --repeat all above cases from psql command. --5. check success case admin can use this "\COPY" psql feature. select count(*) from pgbench_accounts; \copy pgbench_accounts TO PROGRAM '/home/kiran/installation/bin/compress.sh /home/kiran/installation/bin/pgbench_accounts1.txt'; delete from pgbench_accounts; \copy pgbench_accounts FROM PROGRAM '/home/kiran/installation/bin/decompress.sh /home/kiran/installation/bin/pgbench_accounts1.txt.bz2'; select count(*) from pgbench_accounts; --6. check commands are running with relative path to psql current working directory. \copy pgbench_accounts TO PROGRAM '../compress.sh ../pgbench_accounts4.txt'; delete from pgbench_accounts; \copy pgbench_accounts FROM PROGRAM '../decompress.sh ../pgbench_accounts4.txt.bz2'; select count(*) from pgbench_accounts; --7. invalid case; where command not found select count(*) from pgbench_accounts; \copy pgbench_accounts TO PROGRAM 'compress.sh pgbench_accounts1.txt'; \copy pgbench_accounts FROM PROGRAM 'decompress.sh pgbench_accounts1.txt.bz2'; --8. invalid case; where file / script having problem. select count(*) from pgbench_accounts; \copy pgbench_accounts TO PROGRAM '../compress.sh abc/pgbench_accounts1.txt'; \copy pgbench_accounts FROM PROGRAM '../decompress.sh abc/pgbench_accounts1.txt.bz2'; --9. Normal user can't execute "COPY statement" create user abc; \c abc select count(*) from pgbench_accounts; copy pgbench_accounts TO PROGRAM '/home/kiran/installation/bin/compress.sh /home/kiran/installation/bin/pgbench_accounts1.txt'; delete from pgbench_accounts; copy pgbench_accounts FROM PROGRAM '/home/kiran/installation/bin/decompress.sh /home/kiran/installation/bin/pgbench_accounts1.txt.bz2'; select count(*) from pgbench_accounts; --10. Normal user can execute "\COPY" psql command select count(*) from pgbench_accounts; \copy pgbench_accounts TO PROGRAM '/home/kiran/installation/bin/compress.sh /home/kiran/installation/bin/pgbench_accounts1.txt'; delete from pgbench_accounts; \copy pgbench_accounts FROM PROGRAM '/home/kiran/installation/bin/decompress.sh /home/kiran/installation/bin/pgbench_accounts1.txt.bz2'; select count(*) from pgbench_accounts;