| #!/bin/bash |
| |
| PATH=$PATH:..:../../deps/shunit2-2.1.6/src |
| export PATH |
| |
| export PGDATABASE=testdb |
| |
| function setUp() |
| { |
| # echo "PATH=$PATH" |
| # echo "PGHOME=$PGHOME" |
| # echo "PGDATA=$PGDATA" |
| ps auxx > setUp.log |
| |
| pgbench -i >> setUp.log 2>&1 |
| |
| psql<<EOF >> setUp.log |
| CREATE SCHEMA nsp1; |
| CREATE TABLESPACE spc1 LOCATION '/tmp/spc1'; |
| SELECT * FROM pg_tablespace; |
| |
| ALTER INDEX pgbench_accounts_pkey SET TABLESPACE spc1; |
| EOF |
| } |
| |
| function tearDown() |
| { |
| psql<<EOF >> tearDown.log |
| ALTER INDEX pgbench_accounts_pkey SET TABLESPACE pg_default; |
| |
| DROP TABLESPACE spc1; |
| DROP SCHEMA nsp1; |
| EOF |
| |
| rm -rf /tmp/spc1/* |
| } |
| |
| function testIndexUsage001() |
| { |
| cat<<EOF >${_SHUNIT_TEST_}.expected |
| |
| Usage: pt-index-usage [option...] |
| |
| Options: |
| -h, --host=HOSTNAME Host name of the postgres server |
| -p, --port=PORT Port number of the postgres server |
| -U, --username=USERNAME User name to connect |
| -d, --dbname=DBNAME Database name to connect |
| |
| -o, --owner=STRING Owner name |
| -n, --schema=STRING Schema name |
| -t, --table=STRING Table name |
| -i, --index=STRING Index name |
| |
| --help Print this help. |
| |
| EOF |
| |
| pt-index-usage --help > ${_SHUNIT_TEST_}.out |
| |
| diff -rc ${_SHUNIT_TEST_}.expected ${_SHUNIT_TEST_}.out |
| assertEquals 0 $? |
| } |
| |
| function testIndexUsage002() |
| { |
| OUT=${_SHUNIT_TEST_}.out |
| |
| # To avoid following error. |
| # ERROR: index "pgbench_accounts_pkey" contains unexpected zero page at block 0 |
| # HINT: Please REINDEX it. |
| reindexdb > $OUT 2>&1 |
| |
| pt-index-usage -h localhost > $OUT 2>&1 |
| |
| COUNT=`grep -c pgbench_accounts_pkey $OUT` |
| assertEquals 1 $COUNT |
| |
| COUNT=`grep -c pgbench_branches_pkey $OUT` |
| assertEquals 1 $COUNT |
| |
| COUNT=`grep -c pgbench_tellers_pkey $OUT` |
| assertEquals 1 $COUNT |
| |
| SCAN=`grep pgbench_accounts_pkey $OUT | awk '{ print $14 }'` |
| T_READ=`grep pgbench_accounts_pkey $OUT | awk '{ print $16 }'` |
| T_FTCH=`grep pgbench_accounts_pkey $OUT | awk '{ print $18 }'` |
| |
| psql -c 'select * from pgbench_accounts where aid = 1' > /dev/null |
| sleep 1 |
| |
| pt-index-usage --host localhost >> $OUT 2>&1 |
| |
| SCAN2=`grep pgbench_accounts_pkey $OUT | tail -1 | awk '{ print $14 }'` |
| T_READ2=`grep pgbench_accounts_pkey $OUT | tail -1 | awk '{ print $16 }'` |
| T_FTCH2=`grep pgbench_accounts_pkey $OUT | tail -1 | awk '{ print $18 }'` |
| |
| assertTrue "[ $SCAN2 -gt $SCAN ]" |
| assertTrue "[ $T_READ2 -gt $T_READ ]" |
| assertTrue "[ $T_FTCH2 -gt $T_FTCH ]" |
| } |
| |
| |
| function testIndexUsage003() |
| { |
| OUT=${_SHUNIT_TEST_}.out |
| |
| pt-index-usage -p $PGPORT > $OUT 2>&1 |
| pt-index-usage --port $PGPORT >> $OUT 2>&1 |
| |
| COUNT=`wc -l $OUT | awk '{ print $1 }'` |
| assertEquals 14 $COUNT |
| } |
| |
| function testIndexUsage004() |
| { |
| OUT=${_SHUNIT_TEST_}.out |
| |
| pt-index-usage -U $USER > $OUT 2>&1 |
| pt-index-usage --username $USER >> $OUT 2>&1 |
| |
| COUNT=`wc -l $OUT | awk '{ print $1 }'` |
| assertEquals 14 $COUNT |
| } |
| |
| function testIndexUsage005() |
| { |
| OUT=${_SHUNIT_TEST_}.out |
| |
| pt-index-usage -d testdb > $OUT 2>&1 |
| pt-index-usage --dbname testdb >> $OUT 2>&1 |
| |
| COUNT=`wc -l $OUT | awk '{ print $1 }'` |
| assertEquals 14 $COUNT |
| } |
| |
| function testIndexUsage006() |
| { |
| OUT=${_SHUNIT_TEST_}.out |
| |
| pt-index-usage -o $USER > $OUT 2>&1 |
| pt-index-usage --owner $USER >> $OUT 2>&1 |
| |
| COUNT=`wc -l $OUT | awk '{ print $1 }'` |
| assertEquals 14 $COUNT |
| } |
| |
| function testIndexUsage007() |
| { |
| OUT=${_SHUNIT_TEST_}.out |
| |
| pt-index-usage -n public > $OUT 2>&1 |
| pt-index-usage --schema public >> $OUT 2>&1 |
| |
| COUNT=`wc -l $OUT | awk '{ print $1 }'` |
| assertEquals 14 $COUNT |
| } |
| |
| function testIndexUsage008() |
| { |
| OUT=${_SHUNIT_TEST_}.out |
| |
| pt-index-usage -t pgbench_accounts > $OUT 2>&1 |
| pt-index-usage --table pgbench_accounts >> $OUT 2>&1 |
| |
| COUNT=`wc -l $OUT | awk '{ print $1 }'` |
| assertEquals 10 $COUNT |
| } |
| |
| function testIndexUsage009() |
| { |
| OUT=${_SHUNIT_TEST_}.out |
| |
| pt-index-usage -i pgbench_branches_pkey > $OUT 2>&1 |
| pt-index-usage --index pgbench_branches_pkey >> $OUT 2>&1 |
| |
| COUNT=`wc -l $OUT | awk '{ print $1 }'` |
| assertEquals 10 $COUNT |
| } |
| |
| function testIndexUsage010() |
| { |
| OUT=${_SHUNIT_TEST_}.out |
| |
| pt-index-usage -u > $OUT 2>&1 |
| pt-index-usage --unused >> $OUT 2>&1 |
| |
| COUNT=`wc -l $OUT | awk '{ print $1 }'` |
| assertEquals 14 $COUNT |
| } |
| |
| . shunit2 |