@@ -77,6 +77,7 @@ def __init__(self):
7777 self .skew = False
7878 self .skew_pc = self .default_skew_pc
7979 self .drop_table = False
80+ self .danger = False
8081 self .timeout_default = 6 * 3600
8182 autoflush ()
8283
@@ -97,6 +98,8 @@ def add_options(self):
9798 help = 'Skew percentage (default: {0})' .format (self .default_skew_pc ))
9899 self .add_opt ('-d' , '--drop-table' , action = 'store_true' , default = False ,
99100 help = 'Drop test data table (only allowed if keeping the default table name for safety)' )
101+ self .add_opt ('-X' , '--danger' , action = 'store_true' , help = 'Allows sending data to an existing table. ' +
102+ 'Dangerous but useful to test pre-splitting schemes on test tables' )
100103
101104 def process_args (self ):
102105 log .setLevel (logging .INFO )
@@ -123,6 +126,7 @@ def process_args(self):
123126 validate_int (self .skew_pc , 'skew percentage' , 0 , 100 )
124127 self .skew_pc = int (self .skew_pc )
125128 self .drop_table = self .get_opt ('drop_table' )
129+ self .danger = self .get_opt ('danger' )
126130
127131 if self .drop_table and self .table != self .default_table_name :
128132 die ("not allowed to use --drop-table if using a table name other than the default table '{0}'" \
@@ -156,10 +160,13 @@ def run(self):
156160 log .info ("table '%s' already existed but -d / --drop-table was specified, removing table first" ,
157161 self .table )
158162 self .conn .delete_table (self .table , disable = True )
163+ elif self .danger :
164+ pass
159165 else :
160166 die ("WARNING: table '{0}' already exists, will not send data to a pre-existing table for safety" \
161167 .format (self .table ))
162- self .create_table ()
168+ else :
169+ self .create_table ()
163170 self .populate_table ()
164171 log .info ('finished, closing connection' )
165172 self .conn .close ()
0 commit comments