[ https://issues.apache.org/jira/browse/PHOENIX-5889?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mariusz Szpatuśko updated PHOENIX-5889: --------------------------------------- Description: {code:java} CREATE TABLE STORE.TEST1(CREATE TABLE STORE.TEST1(eventStartTimestamp timestamp not null,val1 varchar, val2 varcharCONSTRAINT pk PRIMARY KEY (eventStartTimestamp desc ROW_TIMESTAMP))VERSIONS=1, DATA_BLOCK_ENCODING='FAST_DIFF', COMPRESSION='SNAPPY',BLOOMFILTER='ROW', UPDATE_CACHE_FREQUENCY=900000, SALT_BUCKETS=32; hbase(main):037:0> describe 'STORE.TEST1'Table STORE.TEST1 is ENABLEDSTORE.TEST1, {TABLE_ATTRIBUTES => {coprocessor$1 => '|org.apache.phoenix.coprocessor.ScanRegionObserver|805306366|', coprocessor$2 => '|org.apache.phoenix.coprocessor.UngroupedAggregateRegionObserver|805306366|', coprocessor$3 => '|org.apache.phoenix.coprocessor.GroupedAggregateRegionObserver|805306366|', coprocessor$4 => '|org.apache.phoenix.coprocessor.ServerCachingEndpointImpl|805306366|', coprocessor$5 => '|org.apache.phoenix.hbase.index.IndexRegionObserver|805306366|org.apache.hadoop.hbase.index.codec.class=org.apache.phoenix.index.PhoenixIndexCodec,index.builder=org.apache.phoenix.index.PhoenixIndexBuilder'}COLUMN FAMILIES DESCRIPTION{NAME => '0', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'FAST_DIFF', TTL => 'FOREVER', COMPRESSION => 'SNAPPY', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'} UPSERT INTO STORE.TEST1(EVENTSTARTTIMESTAMP, VAL1, VAL2) values ('2002-05-30 09:30:10','a','b'); {code} For table with row_timestamp key {code:java} hbase(main):055:0> scan 'STORE.TEST1',{RAW=>true,VERSIONS=>3} ROW COLUMN+CELL \x1A\x7F\xFF\xFF\x11\xDFJ\x13/\xFF\xFF\xFF\xFF column=0:\x00\x00\x00\x00, timestamp=1022751010000, value=x \x1A\x7F\xFF\xFF\x11\xDFJ\x13/\xFF\xFF\xFF\xFF column=0:\x80\x0B, timestamp=1022751010000, value=a \x1A\x7F\xFF\xFF\x11\xDFJ\x13/\xFF\xFF\xFF\xFF column=0:\x80\x0C, timestamp=1022751010000, value=b 1 row(s) in 0.0340 seconds upsert into store.test1(EVENTSTARTTIMESTAMP, VAL2) values('2002-05-30 09:30:10','test2111122') on duplicate key update val1='testa',val2='testb'; hbase(main):058:0> scan 'STORE.TEST1',{RAW=>true,VERSIONS=>3} ROW COLUMN+CELL \x1A\x7F\xFF\xFF\x11\xDFJ\x13/\xFF\xFF\xFF\xFF column=0:\x00\x00\x00\x00, timestamp=1589202202193, value=x \x1A\x7F\xFF\xFF\x11\xDFJ\x13/\xFF\xFF\xFF\xFF column=0:\x80\x0B, timestamp=1589202202193, value=testa \x1A\x7F\xFF\xFF\x11\xDFJ\x13/\xFF\xFF\xFF\xFF column=0:\x80\x0C, timestamp=1589202202193, value=testb 1 row(s) in 0.0510 seconds {code} when data is upserted and after that updated for the same key timestamp is updated also. means on duplicate keys deoesn work for row_timestamp {code:java} select * from store.test1 where eventstarttimestamp <to_timestamp('2028-05-30 09:30:10');select * from store.test1 where eventstarttimestamp <to_timestamp('2028-05-30 09:30:10'); 2002-05-30 09:30:10.000000 testa testb select * from store.test1 where eventstarttimestamp <to_timestamp('2008-05-30 09:30:10'); no rows {code} after that select returns wrong values depends of key range was: {code:java} CREATE TABLE STORE.TEST1(CREATE TABLE STORE.TEST1(eventStartTimestamp timestamp not null,val1 varchar, val2 varcharCONSTRAINT pk PRIMARY KEY (eventStartTimestamp desc ROW_TIMESTAMP))VERSIONS=1, DATA_BLOCK_ENCODING='FAST_DIFF', COMPRESSION='SNAPPY',BLOOMFILTER='ROW', UPDATE_CACHE_FREQUENCY=900000, SALT_BUCKETS=32; hbase(main):037:0> describe 'STORE.TEST1'Table STORE.TEST1 is ENABLEDSTORE.TEST1, {TABLE_ATTRIBUTES => {coprocessor$1 => '|org.apache.phoenix.coprocessor.ScanRegionObserver|805306366|', coprocessor$2 => '|org.apache.phoenix.coprocessor.UngroupedAggregateRegionObserver|805306366|', coprocessor$3 => '|org.apache.phoenix.coprocessor.GroupedAggregateRegionObserver|805306366|', coprocessor$4 => '|org.apache.phoenix.coprocessor.ServerCachingEndpointImpl|805306366|', coprocessor$5 => '|org.apache.phoenix.hbase.index.IndexRegionObserver|805306366|org.apache.hadoop.hbase.index.codec.class=org.apache.phoenix.index.PhoenixIndexCodec,index.builder=org.apache.phoenix.index.PhoenixIndexBuilder'}COLUMN FAMILIES DESCRIPTION{NAME => '0', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'FAST_DIFF', TTL => 'FOREVER', COMPRESSION => 'SNAPPY', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'} UPSERT INTO STORE.TEST1(EVENTSTARTTIMESTAMP, VAL1, VAL2) values ('2002-05-30 09:30:10','a','b'); {code} For table with row_timestamp key {code:java} hbase(main):055:0> scan 'STORE.TEST1',{RAW=>true,VERSIONS=>3} ROW COLUMN+CELL \x1A\x7F\xFF\xFF\x11\xDFJ\x13/\xFF\xFF\xFF\xFF column=0:\x00\x00\x00\x00, timestamp=1022751010000, value=x \x1A\x7F\xFF\xFF\x11\xDFJ\x13/\xFF\xFF\xFF\xFF column=0:\x80\x0B, timestamp=1022751010000, value=a \x1A\x7F\xFF\xFF\x11\xDFJ\x13/\xFF\xFF\xFF\xFF column=0:\x80\x0C, timestamp=1022751010000, value=b 1 row(s) in 0.0340 seconds upsert into store.test1(EVENTSTARTTIMESTAMP, VAL2) values('2002-05-30 09:30:10','test2111122') on duplicate key update val1='testa',val2='testb';hbase(main):058:0> scan 'STORE.TEST1',{RAW=>true,VERSIONS=>3} ROW COLUMN+CELL \x1A\x7F\xFF\xFF\x11\xDFJ\x13/\xFF\xFF\xFF\xFF column=0:\x00\x00\x00\x00, timestamp=1589202202193, value=x \x1A\x7F\xFF\xFF\x11\xDFJ\x13/\xFF\xFF\xFF\xFF column=0:\x80\x0B, timestamp=1589202202193, value=testa \x1A\x7F\xFF\xFF\x11\xDFJ\x13/\xFF\xFF\xFF\xFF column=0:\x80\x0C, timestamp=1589202202193, value=testb 1 row(s) in 0.0510 seconds {code} when data is upserted and after that updated for the same key timestamp is updated also. means on duplicate keys deoesn work for row_timestamp {code:java} select * from store.test1 where eventstarttimestamp <to_timestamp('2028-05-30 09:30:10');select * from store.test1 where eventstarttimestamp <to_timestamp('2028-05-30 09:30:10'); 2002-05-30 09:30:10.000000 testa testb select * from store.test1 where eventstarttimestamp <to_timestamp('2008-05-30 09:30:10'); no rows {code} after that select returns wrong values depends of key range > row_timestamp wrong column values for on duplicate key update > ------------------------------------------------------------- > > Key: PHOENIX-5889 > URL: https://issues.apache.org/jira/browse/PHOENIX-5889 > Project: Phoenix > Issue Type: Bug > Components: core > Affects Versions: 4.14.3 > Reporter: Mariusz Szpatuśko > Priority: Critical > > {code:java} > CREATE TABLE STORE.TEST1(CREATE TABLE STORE.TEST1(eventStartTimestamp > timestamp not null,val1 varchar, val2 varcharCONSTRAINT pk PRIMARY KEY > (eventStartTimestamp desc ROW_TIMESTAMP))VERSIONS=1, > DATA_BLOCK_ENCODING='FAST_DIFF', COMPRESSION='SNAPPY',BLOOMFILTER='ROW', > UPDATE_CACHE_FREQUENCY=900000, SALT_BUCKETS=32; > hbase(main):037:0> describe 'STORE.TEST1'Table STORE.TEST1 is > ENABLEDSTORE.TEST1, {TABLE_ATTRIBUTES => {coprocessor$1 => > '|org.apache.phoenix.coprocessor.ScanRegionObserver|805306366|', > coprocessor$2 => > '|org.apache.phoenix.coprocessor.UngroupedAggregateRegionObserver|805306366|', > coprocessor$3 => > '|org.apache.phoenix.coprocessor.GroupedAggregateRegionObserver|805306366|', > coprocessor$4 => > '|org.apache.phoenix.coprocessor.ServerCachingEndpointImpl|805306366|', > coprocessor$5 => > '|org.apache.phoenix.hbase.index.IndexRegionObserver|805306366|org.apache.hadoop.hbase.index.codec.class=org.apache.phoenix.index.PhoenixIndexCodec,index.builder=org.apache.phoenix.index.PhoenixIndexBuilder'}COLUMN > FAMILIES DESCRIPTION{NAME => '0', BLOOMFILTER => 'ROW', VERSIONS => '1', > IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => > 'FAST_DIFF', TTL => 'FOREVER', COMPRESSION => 'SNAPPY', MIN_VERSIONS => '0', > BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'} > UPSERT INTO STORE.TEST1(EVENTSTARTTIMESTAMP, VAL1, VAL2) values ('2002-05-30 > 09:30:10','a','b'); > {code} > For table with row_timestamp key > {code:java} > hbase(main):055:0> scan 'STORE.TEST1',{RAW=>true,VERSIONS=>3} > ROW COLUMN+CELL > \x1A\x7F\xFF\xFF\x11\xDFJ\x13/\xFF\xFF\xFF\xFF > column=0:\x00\x00\x00\x00, timestamp=1022751010000, value=x > \x1A\x7F\xFF\xFF\x11\xDFJ\x13/\xFF\xFF\xFF\xFF > column=0:\x80\x0B, timestamp=1022751010000, value=a > \x1A\x7F\xFF\xFF\x11\xDFJ\x13/\xFF\xFF\xFF\xFF > column=0:\x80\x0C, timestamp=1022751010000, value=b > 1 row(s) in 0.0340 seconds > upsert into store.test1(EVENTSTARTTIMESTAMP, VAL2) values('2002-05-30 > 09:30:10','test2111122') on duplicate key update val1='testa',val2='testb'; > hbase(main):058:0> scan 'STORE.TEST1',{RAW=>true,VERSIONS=>3} > ROW COLUMN+CELL > \x1A\x7F\xFF\xFF\x11\xDFJ\x13/\xFF\xFF\xFF\xFF > column=0:\x00\x00\x00\x00, timestamp=1589202202193, value=x > \x1A\x7F\xFF\xFF\x11\xDFJ\x13/\xFF\xFF\xFF\xFF > column=0:\x80\x0B, timestamp=1589202202193, value=testa > \x1A\x7F\xFF\xFF\x11\xDFJ\x13/\xFF\xFF\xFF\xFF > column=0:\x80\x0C, timestamp=1589202202193, value=testb > 1 row(s) in 0.0510 seconds > {code} > when data is upserted and after that updated for the same key timestamp is > updated also. > means on duplicate keys deoesn work for row_timestamp > {code:java} > select * from store.test1 where eventstarttimestamp <to_timestamp('2028-05-30 > 09:30:10');select * from store.test1 where eventstarttimestamp > <to_timestamp('2028-05-30 09:30:10'); > 2002-05-30 09:30:10.000000 testa testb > select * from store.test1 where eventstarttimestamp <to_timestamp('2008-05-30 > 09:30:10'); > no rows > {code} > after that select returns wrong values depends of key range -- This message was sent by Atlassian Jira (v8.3.4#803005)