Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/10968 )

Change subject: schema: add is_deleted virtual column
......................................................................


Patch Set 12:

(4 comments)

http://gerrit.cloudera.org:8080/#/c/10968/11/src/kudu/common/types.h
File src/kudu/common/types.h:

http://gerrit.cloudera.org:8080/#/c/10968/11/src/kudu/common/types.h@158
PS11, Line 158:   static bool IsVirtual() {
              :     return false;
              :   }
> nit: maybe, move this into the DataTypeTraits template itself and have cust
Is that possible? I thought the DataTypeTraits template was intentionally 
empty; if you look at some of the other specializations, there's what appears 
to be intentional repetition of implementations (i.e. min_value() and 
max_value()).

I just tried it out: I added an IsVirtual static function to the DataTypeTraits 
template, removed it from the specializations, but kept it in DerivedTypeTraits 
and DataTypeTraits<IS_DELETED>. I got the following compilation failure:

FAILED: src/kudu/common/CMakeFiles/kudu_common.dir/types.cc.o
/usr/lib/ccache/c++  -DHAVE_LIB_VMEM=1 -DKUDU_HEADERS_NO_STUBS=1 
-DKUDU_HEADERS_USE_RICH_SLICE=1 -DKUDU_HEADERS_USE_SHORT_STATUS_MACROS=1 
-DKUDU_STATIC_DEFINE -DTCMALLOC_ENABLED -D__STDC_FORMAT_MACROS 
-Dkudu_common_EXPORTS -Isrc -I../../src -isystem 
../../thirdparty/installed/common/include -isystem 
../../thirdparty/installed/uninstrumented/include -msse4.2 -Wall 
-Wno-sign-compare -Wno-comment -Wno-deprecated -pthread -fno-strict-aliasing 
-DBOOST_DATE_TIME_POSIX_TIME_STD_CONFIG -ggdb -std=c++11 -fuse-ld=gold 
-fsized-deallocation -g -fPIC   -fPIC -MD -MT 
src/kudu/common/CMakeFiles/kudu_common.dir/types.cc.o -MF 
src/kudu/common/CMakeFiles/kudu_common.dir/types.cc.o.d -o 
src/kudu/common/CMakeFiles/kudu_common.dir/types.cc.o -c 
../../src/kudu/common/types.cc
../../src/kudu/common/types.cc: In instantiation of 
‘kudu::TypeInfo::TypeInfo(TypeTraitsClass) [with Type = 
kudu::TypeTraits<(kudu::DataType)0>]’:
../../src/kudu/common/types.cc:96:49:   required from ‘void 
kudu::TypeInfoResolver::AddMapping() [with kudu::DataType type = 
(kudu::DataType)0]’
../../src/kudu/common/types.cc:73:23:   required from here
../../src/kudu/common/types.cc:40:43: error: ‘IsVirtual’ is not a member of 
‘kudu::TypeTraits<(kudu::DataType)0>’
     is_virtual_(TypeTraitsClass::IsVirtual()),
                 ~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../../src/kudu/common/types.cc: In instantiation of 
‘kudu::TypeInfo::TypeInfo(TypeTraitsClass) [with Type = 
kudu::TypeTraits<(kudu::DataType)1>]’:
../../src/kudu/common/types.cc:96:49:   required from ‘void 
kudu::TypeInfoResolver::AddMapping() [with kudu::DataType type = 
(kudu::DataType)1]’
../../src/kudu/common/types.cc:74:22:   required from here
../../src/kudu/common/types.cc:40:43: error: ‘IsVirtual’ is not a member of 
‘kudu::TypeTraits<(kudu::DataType)1>’
../../src/kudu/common/types.cc: In instantiation of 
‘kudu::TypeInfo::TypeInfo(TypeTraitsClass) [with Type = 
kudu::TypeTraits<(kudu::DataType)2>]’:
../../src/kudu/common/types.cc:96:49:   required from ‘void 
kudu::TypeInfoResolver::AddMapping() [with kudu::DataType type = 
(kudu::DataType)2]’
../../src/kudu/common/types.cc:75:24:   required from here
../../src/kudu/common/types.cc:40:43: error: ‘IsVirtual’ is not a member of 
‘kudu::TypeTraits<(kudu::DataType)2>’
../../src/kudu/common/types.cc: In instantiation of 
‘kudu::TypeInfo::TypeInfo(TypeTraitsClass) [with Type = 
kudu::TypeTraits<(kudu::DataType)3>]’:
../../src/kudu/common/types.cc:96:49:   required from ‘void 
kudu::TypeInfoResolver::AddMapping() [with kudu::DataType type = 
(kudu::DataType)3]’
../../src/kudu/common/types.cc:76:23:   required from here
../../src/kudu/common/types.cc:40:43: error: ‘IsVirtual’ is not a member of 
‘kudu::TypeTraits<(kudu::DataType)3>’
../../src/kudu/common/types.cc: In instantiation of 
‘kudu::TypeInfo::TypeInfo(TypeTraitsClass) [with Type = 
kudu::TypeTraits<(kudu::DataType)4>]’:
../../src/kudu/common/types.cc:96:49:   required from ‘void 
kudu::TypeInfoResolver::AddMapping() [with kudu::DataType type = 
(kudu::DataType)4]’
../../src/kudu/common/types.cc:77:24:   required from here
../../src/kudu/common/types.cc:40:43: error: ‘IsVirtual’ is not a member of 
‘kudu::TypeTraits<(kudu::DataType)4>’
../../src/kudu/common/types.cc: In instantiation of 
‘kudu::TypeInfo::TypeInfo(TypeTraitsClass) [with Type = 
kudu::TypeTraits<(kudu::DataType)5>]’:
../../src/kudu/common/types.cc:96:49:   required from ‘void 
kudu::TypeInfoResolver::AddMapping() [with kudu::DataType type = 
(kudu::DataType)5]’
../../src/kudu/common/types.cc:78:23:   required from here
../../src/kudu/common/types.cc:40:43: error: ‘IsVirtual’ is not a member of 
‘kudu::TypeTraits<(kudu::DataType)5>’
../../src/kudu/common/types.cc: In instantiation of 
‘kudu::TypeInfo::TypeInfo(TypeTraitsClass) [with Type = 
kudu::TypeTraits<(kudu::DataType)6>]’:
../../src/kudu/common/types.cc:96:49:   required from ‘void 
kudu::TypeInfoResolver::AddMapping() [with kudu::DataType type = 
(kudu::DataType)6]’
../../src/kudu/common/types.cc:79:24:   required from here
../../src/kudu/common/types.cc:40:43: error: ‘IsVirtual’ is not a member of 
‘kudu::TypeTraits<(kudu::DataType)6>’
../../src/kudu/common/types.cc: In instantiation of 
‘kudu::TypeInfo::TypeInfo(TypeTraitsClass) [with Type = 
kudu::TypeTraits<(kudu::DataType)7>]’:
../../src/kudu/common/types.cc:96:49:   required from ‘void 
kudu::TypeInfoResolver::AddMapping() [with kudu::DataType type = 
(kudu::DataType)7]’
../../src/kudu/common/types.cc:80:23:   required from here
../../src/kudu/common/types.cc:40:43: error: ‘IsVirtual’ is not a member of 
‘kudu::TypeTraits<(kudu::DataType)7>’
../../src/kudu/common/types.cc: In instantiation of 
‘kudu::TypeInfo::TypeInfo(TypeTraitsClass) [with Type = 
kudu::TypeTraits<(kudu::DataType)9>]’:
../../src/kudu/common/types.cc:96:49:   required from ‘void 
kudu::TypeInfoResolver::AddMapping() [with kudu::DataType type = 
(kudu::DataType)9]’
../../src/kudu/common/types.cc:83:22:   required from here
../../src/kudu/common/types.cc:40:43: error: ‘IsVirtual’ is not a member of 
‘kudu::TypeTraits<(kudu::DataType)9>’
../../src/kudu/common/types.cc: In instantiation of 
‘kudu::TypeInfo::TypeInfo(TypeTraitsClass) [with Type = 
kudu::TypeTraits<(kudu::DataType)10>]’:
../../src/kudu/common/types.cc:96:49:   required from ‘void 
kudu::TypeInfoResolver::AddMapping() [with kudu::DataType type = 
(kudu::DataType)10]’
../../src/kudu/common/types.cc:84:23:   required from here
../../src/kudu/common/types.cc:40:43: error: ‘IsVirtual’ is not a member of 
‘kudu::TypeTraits<(kudu::DataType)10>’
../../src/kudu/common/types.cc: In instantiation of 
‘kudu::TypeInfo::TypeInfo(TypeTraitsClass) [with Type = 
kudu::TypeTraits<(kudu::DataType)11>]’:
../../src/kudu/common/types.cc:96:49:   required from ‘void 
kudu::TypeInfoResolver::AddMapping() [with kudu::DataType type = 
(kudu::DataType)11]’
../../src/kudu/common/types.cc:85:24:   required from here
../../src/kudu/common/types.cc:40:43: error: ‘IsVirtual’ is not a member of 
‘kudu::TypeTraits<(kudu::DataType)11>’
../../src/kudu/common/types.cc: In instantiation of 
‘kudu::TypeInfo::TypeInfo(TypeTraitsClass) [with Type = 
kudu::TypeTraits<(kudu::DataType)12>]’:
../../src/kudu/common/types.cc:96:49:   required from ‘void 
kudu::TypeInfoResolver::AddMapping() [with kudu::DataType type = 
(kudu::DataType)12]’
../../src/kudu/common/types.cc:86:24:   required from here
../../src/kudu/common/types.cc:40:43: error: ‘IsVirtual’ is not a member of 
‘kudu::TypeTraits<(kudu::DataType)12>’
../../src/kudu/common/types.cc: In instantiation of 
‘kudu::TypeInfo::TypeInfo(TypeTraitsClass) [with Type = 
kudu::TypeTraits<(kudu::DataType)14>]’:
../../src/kudu/common/types.cc:96:49:   required from ‘void 
kudu::TypeInfoResolver::AddMapping() [with kudu::DataType type = 
(kudu::DataType)14]’
../../src/kudu/common/types.cc:87:24:   required from here
../../src/kudu/common/types.cc:40:43: error: ‘IsVirtual’ is not a member of 
‘kudu::TypeTraits<(kudu::DataType)14>’
In file included from ../../src/kudu/common/types.cc:18:0:
../../src/kudu/common/types.h: In instantiation of ‘static bool 
kudu::DerivedTypeTraits<PhysicalType>::IsVirtual() [with kudu::DataType 
PhysicalType = (kudu::DataType)7]’:
../../src/kudu/common/types.cc:40:43:   required from 
‘kudu::TypeInfo::TypeInfo(TypeTraitsClass) [with Type = 
kudu::TypeTraits<(kudu::DataType)13>]’
../../src/kudu/common/types.cc:96:49:   required from ‘void 
kudu::TypeInfoResolver::AddMapping() [with kudu::DataType type = 
(kudu::DataType)13]’
../../src/kudu/common/types.cc:81:33:   required from here
../../src/kudu/common/types.h:497:51: error: ‘IsVirtual’ is not a member of 
‘kudu::DataTypeTraits<(kudu::DataType)7>’
     return DataTypeTraits<PhysicalType>::IsVirtual();
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
../../src/kudu/common/types.h: In instantiation of ‘static bool 
kudu::DerivedTypeTraits<PhysicalType>::IsVirtual() [with kudu::DataType 
PhysicalType = (kudu::DataType)12]’:
../../src/kudu/common/types.cc:40:43:   required from 
‘kudu::TypeInfo::TypeInfo(TypeTraitsClass) [with Type = 
kudu::TypeTraits<(kudu::DataType)8>]’
../../src/kudu/common/types.cc:96:49:   required from ‘void 
kudu::TypeInfoResolver::AddMapping() [with kudu::DataType type = 
(kudu::DataType)8]’
../../src/kudu/common/types.cc:82:24:   required from here
../../src/kudu/common/types.h:497:51: error: ‘IsVirtual’ is not a member of 
‘kudu::DataTypeTraits<(kudu::DataType)12>’
../../src/kudu/common/types.h: In instantiation of ‘static bool 
kudu::DerivedTypeTraits<PhysicalType>::IsVirtual() [with kudu::DataType 
PhysicalType = (kudu::DataType)5]’:
../../src/kudu/common/types.cc:40:43:   required from 
‘kudu::TypeInfo::TypeInfo(TypeTraitsClass) [with Type = 
kudu::TypeTraits<(kudu::DataType)15>]’
../../src/kudu/common/types.cc:96:49:   required from ‘void 
kudu::TypeInfoResolver::AddMapping() [with kudu::DataType type = 
(kudu::DataType)15]’
../../src/kudu/common/types.cc:88:27:   required from here
../../src/kudu/common/types.h:497:51: error: ‘IsVirtual’ is not a member of 
‘kudu::DataTypeTraits<(kudu::DataType)5>’
../../src/kudu/common/types.h: In instantiation of ‘static bool 
kudu::DerivedTypeTraits<PhysicalType>::IsVirtual() [with kudu::DataType 
PhysicalType = (kudu::DataType)14]’:
../../src/kudu/common/types.cc:40:43:   required from 
‘kudu::TypeInfo::TypeInfo(TypeTraitsClass) [with Type = 
kudu::TypeTraits<(kudu::DataType)17>]’
../../src/kudu/common/types.cc:96:49:   required from ‘void 
kudu::TypeInfoResolver::AddMapping() [with kudu::DataType type = 
(kudu::DataType)17]’
../../src/kudu/common/types.cc:90:28:   required from here
../../src/kudu/common/types.h:497:51: error: ‘IsVirtual’ is not a member of 
‘kudu::DataTypeTraits<(kudu::DataType)14>’


http://gerrit.cloudera.org:8080/#/c/10968/11/src/kudu/common/types.h@673
PS11, Line 673:       case IS_DELETED:
> nit: add FALLTHROUGH_INTENDED ?
Done


http://gerrit.cloudera.org:8080/#/c/10968/11/src/kudu/common/types.h@763
PS11, Line 763:   //  Examples:
> nit: add FALLTHROUGH_INTENDED ?
Done


http://gerrit.cloudera.org:8080/#/c/10968/10/src/kudu/common/types.h
File src/kudu/common/types.h:

http://gerrit.cloudera.org:8080/#/c/10968/10/src/kudu/common/types.h@625
PS10, Line 625:     return DataTypeTraits<BOOL>::name();
> But if it's name is 'bool', then how to distinguish between a column of vir
It's worth adding that in normal scan operations users wouldn't necessarily see 
what I saw; I was working within a unit test that dumped rows. I don't feel 
strongly about it, so if everyone else thinks IS_DELETED (or something like it) 
is a better type name, I'll change it.



--
To view, visit http://gerrit.cloudera.org:8080/10968
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I56eb1d44ba8bfbd76d8bb794b8076b695782939e
Gerrit-Change-Number: 10968
Gerrit-PatchSet: 12
Gerrit-Owner: Adar Dembo <a...@cloudera.com>
Gerrit-Reviewer: Adar Dembo <a...@cloudera.com>
Gerrit-Reviewer: Alexey Serbin <aser...@cloudera.com>
Gerrit-Reviewer: Dan Burkert <danburk...@apache.org>
Gerrit-Reviewer: Grant Henke <granthe...@apache.org>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy <mpe...@apache.org>
Gerrit-Reviewer: Tidy Bot
Gerrit-Reviewer: Todd Lipcon <t...@apache.org>
Gerrit-Comment-Date: Thu, 02 Aug 2018 18:45:19 +0000
Gerrit-HasComments: Yes

Reply via email to