The contract with immutable tables is that a row will never be partially updated (including setting a column to null). Phoenix can’t enforce this and retain the perf gain it gives you, so it’s on an honor system instead. Attempts to set a value to null are stripped out rather than potentially placing a delete marker that in theory shouldn’t be needed.
So short answer is to not declare your table as immutable if you need to set column values to null. Thanks, James On Sat, Apr 28, 2018 at 3:24 AM Stepan Migunov < stepan.migu...@firstlinesoftware.com> wrote: > Thank you James, it was “immutable”. I didn't know that it affects. > > > > *From:* James Taylor [mailto:jamestay...@apache.org] > *Sent:* Friday, April 27, 2018 5:37 PM > *To:* user@phoenix.apache.org > *Subject:* Re: UPSERT null vlaues > > > > Hi Stepan, > > Please post your complete DDL and indicate the version of Phoenix and > HBase you’re using. Your example should work as expected barring > declaration of the table as immutable or COL2 being part of the primary key. > > > > Thanks, > > James > > > > On Fri, Apr 27, 2018 at 6:13 AM Stepan Migunov < > stepan.migu...@firstlinesoftware.com> wrote: > > Hi, > Could you please clarify, how I can set a value to NULL? > > After upsert into temp.table (ROWKEY, COL1, COL2) values (100, "ABC", > null); the value of COL2 still has a previous value (COL1 has "ABC" as > expected). > > Or there is only one way - to set STORE_NULLS = true? > > Thanks, > Stepan. > >