# # Masking Smoke # # We expect the masking rules to be as follows: # # { # "rules": [ # { # "replace": { # "column": "a" # }, # "with": { # "fill": "Y" # } # }, # { # "replace": { # "column": "b" # }, # "with": { # "value": "012345-ABCD" # } # }, # { # "replace": { # "column": "c" # }, # "with": { # "value": "012345-ABCD", # "fill": "Y" # } # } # ] # } --disable_warnings drop database if exists maskingdb; --enable_warnings create database maskingdb; use maskingdb; # # Each table contains a single column 'a' of a type subject # to masking. # create table masking (a TEXT, b TEXT, c TEXT); # - a should be just "Y...", # - b should be changed into "X..." as the length does not match and there is no # specific fill value, so the default "X" is used. # - c should be just "Y..." as the length does not match, so "value" is not applied # and has "fill", which is applied. # #a b c #YYYY XXXXXXXXXX YYYYYYYYYY insert into masking values ("blah", "012345-ABC", "012345-ABC"); select * from masking; delete from masking; # - a should be just "Y...", # - b should be changed as the length matches the length of the string of "value" # - c should be just "Y..." as the length does not match, so "value" is not applied # and has "fill", which is applied. # #a b c #YYYYYYYY 012345-ABCD YYYYYYYYYY insert into masking values ("blahblah", "221073-01AB", "012345-ABC"); select * from masking; delete from masking; # - a should be just "Y...", # - b should be changed as the length matches the length of the string of "value" # - c should be chanched into a specific string as the length matches the string of # "value" # #a b c #a b c #YYYYYYYYYYY 012345-ABCD 012345-ABCD # a should still be just "Y", b should be "012345-ABCD" and c should be "012345-ABCD" insert into masking values ("221073-01AB", "221073-01AB", "221073-01AB"); select * from masking; delete from masking;