dbt2-shell script problem

From: Jonas J <autoramajj(at)gmail(dot)com>
To: pgsql-hackers(at)postgresql(dot)org
Subject: dbt2-shell script problem
Date: 2010-01-11 21:18:46
Message-ID: 68962a631001111318k7eb9628ek198951e1aff489f8@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi guys,

I get the dbt2 project from the git tree. And i'm trying to make it work
with postgres. The problem is in one of the dbt2 shell scripts. Since I dont
understand of Shell Script Programing, here is my problem: (I will post the
script on the end)

1 - I executed:
dbt2-pgsql-load-db -d /tmp/fodao
2 - I got the error:

dbt2-pgsql-load-db -d /tmp/fodao
[: 77: x: unexpected operator
[: 77: no: unexpected operator
Loading customer table...
COPY customer FROM '/tmp/fodao/.data' WITH NULL AS '';
ERROR: could not open file "/tmp/fodao/.data" for reading: No such file or
directory

3 - I think the correct place should be '/tmp/fodao/customer.data' instead
of "/tmp/fodao/.data"

Can anyone help me with this Bash Script ??

Mant thanks in advace,
Jonas

--- here comes the scrip:
#!/bin/sh

#
# This file is released under the terms of the Artistic License.
# Please see # the file LICENSE, included in this package, for details.
#
# Copyright (C) 2002-2008 Mark Wong & Open Source Development Labs, Inc.
#

if [ -z ${DBNAME} ]; then
echo "DBNAME not defined."
exit 1
fi

BACKGROUND="no"

usage()
{
echo "usage: `basename $0` -d <dir> [-b] [-l <port>] [-t]"
echo " <dir> is where the data files are."
}

while getopts "bd:l:t" OPT; do
case ${OPT} in
b)
BACKGROUND="yes"
;;
d)
DBDATA=${OPTARG}
;;
l)
PORT=${OPTARG}
;;
t)
TABLESPACES_FLAG="-t"
;;
esac
done

if [ "x${DBDATA}" = "x" ]; then
usage
exit 1
fi

if [ ! "x${PORT}" = "x" ]; then
PORTARG="-p ${PORT}"
fi

# Load tables
# This background stuff is honestly kinda ugly. IMO the right way to do this
# is to utilize make -j

load_table2() {
$1 "$2" || exit 1
$1 "$3" || exit 1
}

load_table() {
table=$1
if [ "x$2" == "x" ]; then
file=$table.data
else
file=$2.data
fi

local sql="COPY $table FROM '${DBDATA}/$file' WITH NULL AS '';"
local cmd="psql ${PORTARG} -e -d ${DBNAME} -c "
if [ "${BACKGROUND}" == "yes" ]; then
echo "Loading $table table in the background..."
load_table2 "${cmd}" "${sql}" "VACUUM ANALYZE $table;" &
else
echo "Loading $table table..."
${cmd} "${sql}" || exit 1
fi
}

load_table customer
load_table district
load_table history
load_table item
load_table new_order
load_table order_line
load_table orders order
load_table stock
load_table warehouse

wait

# load C or pl/pgsql implementation of the stored procedures
#if true; then
# ${DIR}/dbt2-pgsql-load-stored-procs -l ${PORT} -t c|| exit 1
#else
# ${DIR}/dbt2-pgsql-load-stored-procs -l ${PORT} -t plpgsql || exit 1
#fi

exit 0

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Dimitri Fontaine 2010-01-11 21:23:11 Re: Compression Library and Usages
Previous Message Kevin Grittner 2010-01-11 21:18:18 Re: Compression Library and Usages