#! /bin/sh
# @@@ START COPYRIGHT @@@
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#
# @@@ END COPYRIGHT @@@

# Like the pattern-masking of QACOMP, here we filter out such stuff as
# transaction id.  Called by the runregr script before doing diff.

fil=$1
sed "
s/^\([ ]*HBASE_PORT[ ]*[\.]*\) .*/ HBASE_PORT........ removed/g
s/^\([ ]*HBASE_SERVER[ ]*[\.]*\) .*/\1 removed/g
s/^\([ ]*HBASE_INTERFACE[ ]*[\.]*\) .*/\1 removed/g
s/^\([ ]*HBASE_SERIALIZATION[ ]*[\.]*\) .*/\1 removed/g
s/^\([ ]*HBASE_FILTER_PREDS[ ]*[\.]*\) .*/\1 removed/g
s/^\([ ]*TRAF_ALIGNED_ROW_FORMAT[ ]*[\.]*\) .*/\1 removed/g
s/^\([ ]*TRAF_INDEX_CREATE_OPT[ ]*[\.]*\) .*/\1 removed/g
s/^\([ ]*embedded_arkcmp[ ]*[\.]*\) .*/\1 removed/g
s/^\(\.*PREPARATION[ ]Status:[ ]*\) .*/removed/g
s/^\([ ]*Task:[ ]COMPLETION[ ]Status:[ ]*\) .*/removed/g
s/.*PREPARATION.*/removed/
s/.*COMPLETION.*/removed/
s/Time:.*/Time:@time@/
s/VOLATILE_SCHEMA_MXID[0-9]*/VOLATILE_SCHEMA_00/
s/^\([ ]*PLAN_ID[ ]*[\.]*\) .*/\1 removed/g
s/^\([ ]*est_memory_per_node[ ]*[\.]*\) .*/\1 removed/g
" $fil
