You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-08-05 16:15:50 +03:00
61 lines
1.3 KiB
Bash
Executable File
61 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
#
|
|
# Estimates the row count for a given table. Uses number of extents * 8M for the estimate.
|
|
#
|
|
|
|
#
|
|
# Initialize variables.
|
|
#
|
|
|
|
if [ -z "$MYSQLCMD" ]; then
|
|
MYSQLCMD="mysql -u root"
|
|
fi
|
|
|
|
#
|
|
# Validate that there are two parameters - schema and table.
|
|
#
|
|
if [ $# -ne 2 ]; then
|
|
echo ""
|
|
echo "Reports the approximate row count for the given table."
|
|
echo ""
|
|
echo "Parameters:"
|
|
echo " Schema"
|
|
echo " Table"
|
|
fi
|
|
db=$1
|
|
table=$2
|
|
|
|
#
|
|
# Validate that the table exists.
|
|
#
|
|
sql="select count(*) from systable where \`schema\`='$db' and tablename='$table';"
|
|
count=`$MYSQLCMD calpontsys --skip-column-names -e "$sql;"`
|
|
if [ $count -le 0 ]; then
|
|
echo ""
|
|
echo "$db.$table does not exist in Columnstore."
|
|
echo ""
|
|
exit 1
|
|
fi
|
|
|
|
#
|
|
# Grab the objectid and column width for a column in the table.
|
|
#
|
|
sql="select objectid from syscolumn where \`schema\`='$db' and tablename='$table' limit 1;"
|
|
objectid=`$MYSQLCMD calpontsys --skip-column-names -e "$sql"`
|
|
sql="select columnlength from syscolumn where objectid=$objectid;"
|
|
colWidth=`$MYSQLCMD calpontsys --skip-column-names -e "$sql"`
|
|
|
|
#
|
|
# Use editem to count the extents.
|
|
#
|
|
extentCount=`editem -o $objectid | wc -l`
|
|
let extentCount-=2 # Take out the 2 extra rows for header and blank line at end.
|
|
let approximateRowCount=$extentCount*8192*1024;
|
|
|
|
echo ""
|
|
echo "Approximate row count for $db.$table is $approximateRowCount."
|
|
echo ""
|
|
|
|
exit 0
|