#!/bin/bash
#
# mkcgdb
# ------
# Utility script to build up a cego database with one tableset
#
# (C)opyright 2010 by Bjoern Lemke
#
# The database and tableset parameters defined below
# should be edited and customized to appropriate values
#
#

# path to the cego executable
CEGO=cego
# path to the database root path, where the database should be created
DBROOT=./db
# name of the database xml file
DBXML=${DBROOT}/mydb.xml
# name of the database
DBNAME=mydb
# several database parameters
PAGESIZE=16384
ADMPORT=2000
DBPORT=2200
LOGPORT=3000
PIDFILE=${DBROOT}/pid
ADMINUSER=cgadm
ADMINPWD=cgadm
LOGFILE=${DBROOT}/cego.log

# DEBUGLEVEL=DEBUG
DEBUGLEVEL=NOTICE

# tableset defs
TS=myts
TSROOT=${DBROOT}/myts
TSTICKET=${TSROOT}/tsticket.xml
SYSSIZE=100
TMPSIZE=3000
LOGFILESIZE=1000000
LOGFILENUM=3
SORTAREASIZE=10000000
APPFILE=${TSROOT}/${TS}data01.dbf
APPSIZE=5000
DBUSER=lemke
DBPWD=lemke

##########################
### end of customizing ###
##########################

rm -rf ${DBROOT}

mkdir ${DBROOT}
mkdir ${TSROOT}

echo "Creating xml ..."
cat > $DBXML <<EOF
<?xml version="1.0" ?>
<!DOCTYPE CEGO_DB_SPEC>
<DATABASE NAME="$DBNAME" PAGESIZE="$PAGESIZE" ADMINPORT="$ADMPORT" LOGPORT="$LOGPORT" DATAPORT="$DBPORT"
PIDFILE="$PIDFILE" MAXFID="1" MAXTSID="1"
NUMRECSEMA="1000" NUMSYSPAGESEMA="43" NUMDATAPAGESEMA="43" 
NUMIDXPAGESEMA="43" NUMRBPAGESEMA="43" NUMDATAFILESEMA="11" NUMBUFFERPOOLSEMA="11"
MAXFIXTRIES="30" 
 CSMODE="ON" QESCMODE="ON" LOGMNGPROG="./cglogmng">
<MODULE NAME="ALL" LEVEL="$DEBUGLEVEL"></MODULE>
</DATABASE> 
EOF

# <MODULE NAME="CegoTableManager" LEVEL="NOTICE"></MODULE>
# <MODULE NAME="CegoAdminThreadPool" LEVEL="NOTICE"></MODULE>
# <MODULE NAME="CegoSelect" LEVEL="NOTICE"></MODULE>

/bin/echo -n "Creating admin user ..."
${CEGO} --mode=setadminuser --dbxml=${DBXML} --user=${ADMINUSER}/${ADMINPWD} --logfile=${LOGFILE}
if [ $? -eq 0 ]
then
    echo "... operation ok"
else
    echo "... operation failed"
    exit 1
fi

/bin/echo -n "Defining tableset $TS1..."
${CEGO} --mode=define --tableset=${TS} -dbxml=${DBXML} --tsdef=tsroot:${TSROOT},tsticket:${TSTICKET},syssize:${SYSSIZE},tmpsize:${TMPSIZE},logfilesize:${LOGFILESIZE},logfilenum:${LOGFILENUM},appfile:${APPFILE},appsize:${APPSIZE},sortareasize=${SORTAREASIZE} --logfile=${LOGFILE}
if [ $? -eq 0 ]
then
    echo "... operation ok"
else
    echo "... operation failed"
    exit 1
fi

/bin/echo -n "Creating database user for $TS1 ..."
${CEGO} --mode=setdbuser --tableset=${TS} --dbxml=${DBXML} --user=${DBUSER}/${DBPWD} --role=ALL --logfile=${LOGFILE}
if [ $? -eq 0 ]
then
    echo "... operation ok"
else
    echo "... operation failed"
    exit 1
fi

/bin/echo -n "Creating tableset $TS1..."
${CEGO} --mode=create --dbxml=${DBXML} --tableset=${TS} --logfile=${LOGFILE}
if [ $? -eq 0 ]
then
    echo "... operation ok"
else
    echo "... operation failed"
    exit 1
fi

