duckdb 0.3.2-dev160.0 → 0.3.2-dev181.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/duckdb.cpp +712 -19
- package/src/duckdb.hpp +2 -2
package/package.json
CHANGED
package/src/duckdb.cpp
CHANGED
|
@@ -29764,6 +29764,700 @@ void Comparators::SwizzleSingleValue(data_ptr_t data_ptr, const data_ptr_t &heap
|
|
|
29764
29764
|
}
|
|
29765
29765
|
|
|
29766
29766
|
} // namespace duckdb
|
|
29767
|
+
// DuckDB
|
|
29768
|
+
//
|
|
29769
|
+
// duckdb/common/fast_mem.hpp
|
|
29770
|
+
//
|
|
29771
|
+
//
|
|
29772
|
+
//===----------------------------------------------------------------------===//
|
|
29773
|
+
|
|
29774
|
+
|
|
29775
|
+
|
|
29776
|
+
|
|
29777
|
+
|
|
29778
|
+
|
|
29779
|
+
template <size_t SIZE>
|
|
29780
|
+
static inline void MemcpyFixed(void *dest, const void *src) {
|
|
29781
|
+
memcpy(dest, src, SIZE);
|
|
29782
|
+
}
|
|
29783
|
+
|
|
29784
|
+
template <size_t SIZE>
|
|
29785
|
+
static inline int MemcmpFixed(const void *str1, const void *str2) {
|
|
29786
|
+
return memcmp(str1, str2, SIZE);
|
|
29787
|
+
}
|
|
29788
|
+
|
|
29789
|
+
namespace duckdb {
|
|
29790
|
+
|
|
29791
|
+
//! This templated memcpy is significantly faster than std::memcpy,
|
|
29792
|
+
//! but only when you are calling memcpy with a const size in a loop.
|
|
29793
|
+
//! For instance `while (<cond>) { memcpy(<dest>, <src>, const_size); ... }`
|
|
29794
|
+
static inline void FastMemcpy(void *dest, const void *src, const size_t size) {
|
|
29795
|
+
// LCOV_EXCL_START
|
|
29796
|
+
switch (size) {
|
|
29797
|
+
case 0:
|
|
29798
|
+
return;
|
|
29799
|
+
case 1:
|
|
29800
|
+
return MemcpyFixed<1>(dest, src);
|
|
29801
|
+
case 2:
|
|
29802
|
+
return MemcpyFixed<2>(dest, src);
|
|
29803
|
+
case 3:
|
|
29804
|
+
return MemcpyFixed<3>(dest, src);
|
|
29805
|
+
case 4:
|
|
29806
|
+
return MemcpyFixed<4>(dest, src);
|
|
29807
|
+
case 5:
|
|
29808
|
+
return MemcpyFixed<5>(dest, src);
|
|
29809
|
+
case 6:
|
|
29810
|
+
return MemcpyFixed<6>(dest, src);
|
|
29811
|
+
case 7:
|
|
29812
|
+
return MemcpyFixed<7>(dest, src);
|
|
29813
|
+
case 8:
|
|
29814
|
+
return MemcpyFixed<8>(dest, src);
|
|
29815
|
+
case 9:
|
|
29816
|
+
return MemcpyFixed<9>(dest, src);
|
|
29817
|
+
case 10:
|
|
29818
|
+
return MemcpyFixed<10>(dest, src);
|
|
29819
|
+
case 11:
|
|
29820
|
+
return MemcpyFixed<11>(dest, src);
|
|
29821
|
+
case 12:
|
|
29822
|
+
return MemcpyFixed<12>(dest, src);
|
|
29823
|
+
case 13:
|
|
29824
|
+
return MemcpyFixed<13>(dest, src);
|
|
29825
|
+
case 14:
|
|
29826
|
+
return MemcpyFixed<14>(dest, src);
|
|
29827
|
+
case 15:
|
|
29828
|
+
return MemcpyFixed<15>(dest, src);
|
|
29829
|
+
case 16:
|
|
29830
|
+
return MemcpyFixed<16>(dest, src);
|
|
29831
|
+
case 17:
|
|
29832
|
+
return MemcpyFixed<17>(dest, src);
|
|
29833
|
+
case 18:
|
|
29834
|
+
return MemcpyFixed<18>(dest, src);
|
|
29835
|
+
case 19:
|
|
29836
|
+
return MemcpyFixed<19>(dest, src);
|
|
29837
|
+
case 20:
|
|
29838
|
+
return MemcpyFixed<20>(dest, src);
|
|
29839
|
+
case 21:
|
|
29840
|
+
return MemcpyFixed<21>(dest, src);
|
|
29841
|
+
case 22:
|
|
29842
|
+
return MemcpyFixed<22>(dest, src);
|
|
29843
|
+
case 23:
|
|
29844
|
+
return MemcpyFixed<23>(dest, src);
|
|
29845
|
+
case 24:
|
|
29846
|
+
return MemcpyFixed<24>(dest, src);
|
|
29847
|
+
case 25:
|
|
29848
|
+
return MemcpyFixed<25>(dest, src);
|
|
29849
|
+
case 26:
|
|
29850
|
+
return MemcpyFixed<26>(dest, src);
|
|
29851
|
+
case 27:
|
|
29852
|
+
return MemcpyFixed<27>(dest, src);
|
|
29853
|
+
case 28:
|
|
29854
|
+
return MemcpyFixed<28>(dest, src);
|
|
29855
|
+
case 29:
|
|
29856
|
+
return MemcpyFixed<29>(dest, src);
|
|
29857
|
+
case 30:
|
|
29858
|
+
return MemcpyFixed<30>(dest, src);
|
|
29859
|
+
case 31:
|
|
29860
|
+
return MemcpyFixed<31>(dest, src);
|
|
29861
|
+
case 32:
|
|
29862
|
+
return MemcpyFixed<32>(dest, src);
|
|
29863
|
+
case 33:
|
|
29864
|
+
return MemcpyFixed<33>(dest, src);
|
|
29865
|
+
case 34:
|
|
29866
|
+
return MemcpyFixed<34>(dest, src);
|
|
29867
|
+
case 35:
|
|
29868
|
+
return MemcpyFixed<35>(dest, src);
|
|
29869
|
+
case 36:
|
|
29870
|
+
return MemcpyFixed<36>(dest, src);
|
|
29871
|
+
case 37:
|
|
29872
|
+
return MemcpyFixed<37>(dest, src);
|
|
29873
|
+
case 38:
|
|
29874
|
+
return MemcpyFixed<38>(dest, src);
|
|
29875
|
+
case 39:
|
|
29876
|
+
return MemcpyFixed<39>(dest, src);
|
|
29877
|
+
case 40:
|
|
29878
|
+
return MemcpyFixed<40>(dest, src);
|
|
29879
|
+
case 41:
|
|
29880
|
+
return MemcpyFixed<41>(dest, src);
|
|
29881
|
+
case 42:
|
|
29882
|
+
return MemcpyFixed<42>(dest, src);
|
|
29883
|
+
case 43:
|
|
29884
|
+
return MemcpyFixed<43>(dest, src);
|
|
29885
|
+
case 44:
|
|
29886
|
+
return MemcpyFixed<44>(dest, src);
|
|
29887
|
+
case 45:
|
|
29888
|
+
return MemcpyFixed<45>(dest, src);
|
|
29889
|
+
case 46:
|
|
29890
|
+
return MemcpyFixed<46>(dest, src);
|
|
29891
|
+
case 47:
|
|
29892
|
+
return MemcpyFixed<47>(dest, src);
|
|
29893
|
+
case 48:
|
|
29894
|
+
return MemcpyFixed<48>(dest, src);
|
|
29895
|
+
case 49:
|
|
29896
|
+
return MemcpyFixed<49>(dest, src);
|
|
29897
|
+
case 50:
|
|
29898
|
+
return MemcpyFixed<50>(dest, src);
|
|
29899
|
+
case 51:
|
|
29900
|
+
return MemcpyFixed<51>(dest, src);
|
|
29901
|
+
case 52:
|
|
29902
|
+
return MemcpyFixed<52>(dest, src);
|
|
29903
|
+
case 53:
|
|
29904
|
+
return MemcpyFixed<53>(dest, src);
|
|
29905
|
+
case 54:
|
|
29906
|
+
return MemcpyFixed<54>(dest, src);
|
|
29907
|
+
case 55:
|
|
29908
|
+
return MemcpyFixed<55>(dest, src);
|
|
29909
|
+
case 56:
|
|
29910
|
+
return MemcpyFixed<56>(dest, src);
|
|
29911
|
+
case 57:
|
|
29912
|
+
return MemcpyFixed<57>(dest, src);
|
|
29913
|
+
case 58:
|
|
29914
|
+
return MemcpyFixed<58>(dest, src);
|
|
29915
|
+
case 59:
|
|
29916
|
+
return MemcpyFixed<59>(dest, src);
|
|
29917
|
+
case 60:
|
|
29918
|
+
return MemcpyFixed<60>(dest, src);
|
|
29919
|
+
case 61:
|
|
29920
|
+
return MemcpyFixed<61>(dest, src);
|
|
29921
|
+
case 62:
|
|
29922
|
+
return MemcpyFixed<62>(dest, src);
|
|
29923
|
+
case 63:
|
|
29924
|
+
return MemcpyFixed<63>(dest, src);
|
|
29925
|
+
case 64:
|
|
29926
|
+
return MemcpyFixed<64>(dest, src);
|
|
29927
|
+
case 65:
|
|
29928
|
+
return MemcpyFixed<65>(dest, src);
|
|
29929
|
+
case 66:
|
|
29930
|
+
return MemcpyFixed<66>(dest, src);
|
|
29931
|
+
case 67:
|
|
29932
|
+
return MemcpyFixed<67>(dest, src);
|
|
29933
|
+
case 68:
|
|
29934
|
+
return MemcpyFixed<68>(dest, src);
|
|
29935
|
+
case 69:
|
|
29936
|
+
return MemcpyFixed<69>(dest, src);
|
|
29937
|
+
case 70:
|
|
29938
|
+
return MemcpyFixed<70>(dest, src);
|
|
29939
|
+
case 71:
|
|
29940
|
+
return MemcpyFixed<71>(dest, src);
|
|
29941
|
+
case 72:
|
|
29942
|
+
return MemcpyFixed<72>(dest, src);
|
|
29943
|
+
case 73:
|
|
29944
|
+
return MemcpyFixed<73>(dest, src);
|
|
29945
|
+
case 74:
|
|
29946
|
+
return MemcpyFixed<74>(dest, src);
|
|
29947
|
+
case 75:
|
|
29948
|
+
return MemcpyFixed<75>(dest, src);
|
|
29949
|
+
case 76:
|
|
29950
|
+
return MemcpyFixed<76>(dest, src);
|
|
29951
|
+
case 77:
|
|
29952
|
+
return MemcpyFixed<77>(dest, src);
|
|
29953
|
+
case 78:
|
|
29954
|
+
return MemcpyFixed<78>(dest, src);
|
|
29955
|
+
case 79:
|
|
29956
|
+
return MemcpyFixed<79>(dest, src);
|
|
29957
|
+
case 80:
|
|
29958
|
+
return MemcpyFixed<80>(dest, src);
|
|
29959
|
+
case 81:
|
|
29960
|
+
return MemcpyFixed<81>(dest, src);
|
|
29961
|
+
case 82:
|
|
29962
|
+
return MemcpyFixed<82>(dest, src);
|
|
29963
|
+
case 83:
|
|
29964
|
+
return MemcpyFixed<83>(dest, src);
|
|
29965
|
+
case 84:
|
|
29966
|
+
return MemcpyFixed<84>(dest, src);
|
|
29967
|
+
case 85:
|
|
29968
|
+
return MemcpyFixed<85>(dest, src);
|
|
29969
|
+
case 86:
|
|
29970
|
+
return MemcpyFixed<86>(dest, src);
|
|
29971
|
+
case 87:
|
|
29972
|
+
return MemcpyFixed<87>(dest, src);
|
|
29973
|
+
case 88:
|
|
29974
|
+
return MemcpyFixed<88>(dest, src);
|
|
29975
|
+
case 89:
|
|
29976
|
+
return MemcpyFixed<89>(dest, src);
|
|
29977
|
+
case 90:
|
|
29978
|
+
return MemcpyFixed<90>(dest, src);
|
|
29979
|
+
case 91:
|
|
29980
|
+
return MemcpyFixed<91>(dest, src);
|
|
29981
|
+
case 92:
|
|
29982
|
+
return MemcpyFixed<92>(dest, src);
|
|
29983
|
+
case 93:
|
|
29984
|
+
return MemcpyFixed<93>(dest, src);
|
|
29985
|
+
case 94:
|
|
29986
|
+
return MemcpyFixed<94>(dest, src);
|
|
29987
|
+
case 95:
|
|
29988
|
+
return MemcpyFixed<95>(dest, src);
|
|
29989
|
+
case 96:
|
|
29990
|
+
return MemcpyFixed<96>(dest, src);
|
|
29991
|
+
case 97:
|
|
29992
|
+
return MemcpyFixed<97>(dest, src);
|
|
29993
|
+
case 98:
|
|
29994
|
+
return MemcpyFixed<98>(dest, src);
|
|
29995
|
+
case 99:
|
|
29996
|
+
return MemcpyFixed<99>(dest, src);
|
|
29997
|
+
case 100:
|
|
29998
|
+
return MemcpyFixed<100>(dest, src);
|
|
29999
|
+
case 101:
|
|
30000
|
+
return MemcpyFixed<101>(dest, src);
|
|
30001
|
+
case 102:
|
|
30002
|
+
return MemcpyFixed<102>(dest, src);
|
|
30003
|
+
case 103:
|
|
30004
|
+
return MemcpyFixed<103>(dest, src);
|
|
30005
|
+
case 104:
|
|
30006
|
+
return MemcpyFixed<104>(dest, src);
|
|
30007
|
+
case 105:
|
|
30008
|
+
return MemcpyFixed<105>(dest, src);
|
|
30009
|
+
case 106:
|
|
30010
|
+
return MemcpyFixed<106>(dest, src);
|
|
30011
|
+
case 107:
|
|
30012
|
+
return MemcpyFixed<107>(dest, src);
|
|
30013
|
+
case 108:
|
|
30014
|
+
return MemcpyFixed<108>(dest, src);
|
|
30015
|
+
case 109:
|
|
30016
|
+
return MemcpyFixed<109>(dest, src);
|
|
30017
|
+
case 110:
|
|
30018
|
+
return MemcpyFixed<110>(dest, src);
|
|
30019
|
+
case 111:
|
|
30020
|
+
return MemcpyFixed<111>(dest, src);
|
|
30021
|
+
case 112:
|
|
30022
|
+
return MemcpyFixed<112>(dest, src);
|
|
30023
|
+
case 113:
|
|
30024
|
+
return MemcpyFixed<113>(dest, src);
|
|
30025
|
+
case 114:
|
|
30026
|
+
return MemcpyFixed<114>(dest, src);
|
|
30027
|
+
case 115:
|
|
30028
|
+
return MemcpyFixed<115>(dest, src);
|
|
30029
|
+
case 116:
|
|
30030
|
+
return MemcpyFixed<116>(dest, src);
|
|
30031
|
+
case 117:
|
|
30032
|
+
return MemcpyFixed<117>(dest, src);
|
|
30033
|
+
case 118:
|
|
30034
|
+
return MemcpyFixed<118>(dest, src);
|
|
30035
|
+
case 119:
|
|
30036
|
+
return MemcpyFixed<119>(dest, src);
|
|
30037
|
+
case 120:
|
|
30038
|
+
return MemcpyFixed<120>(dest, src);
|
|
30039
|
+
case 121:
|
|
30040
|
+
return MemcpyFixed<121>(dest, src);
|
|
30041
|
+
case 122:
|
|
30042
|
+
return MemcpyFixed<122>(dest, src);
|
|
30043
|
+
case 123:
|
|
30044
|
+
return MemcpyFixed<123>(dest, src);
|
|
30045
|
+
case 124:
|
|
30046
|
+
return MemcpyFixed<124>(dest, src);
|
|
30047
|
+
case 125:
|
|
30048
|
+
return MemcpyFixed<125>(dest, src);
|
|
30049
|
+
case 126:
|
|
30050
|
+
return MemcpyFixed<126>(dest, src);
|
|
30051
|
+
case 127:
|
|
30052
|
+
return MemcpyFixed<127>(dest, src);
|
|
30053
|
+
case 128:
|
|
30054
|
+
return MemcpyFixed<128>(dest, src);
|
|
30055
|
+
case 129:
|
|
30056
|
+
return MemcpyFixed<129>(dest, src);
|
|
30057
|
+
case 130:
|
|
30058
|
+
return MemcpyFixed<130>(dest, src);
|
|
30059
|
+
case 131:
|
|
30060
|
+
return MemcpyFixed<131>(dest, src);
|
|
30061
|
+
case 132:
|
|
30062
|
+
return MemcpyFixed<132>(dest, src);
|
|
30063
|
+
case 133:
|
|
30064
|
+
return MemcpyFixed<133>(dest, src);
|
|
30065
|
+
case 134:
|
|
30066
|
+
return MemcpyFixed<134>(dest, src);
|
|
30067
|
+
case 135:
|
|
30068
|
+
return MemcpyFixed<135>(dest, src);
|
|
30069
|
+
case 136:
|
|
30070
|
+
return MemcpyFixed<136>(dest, src);
|
|
30071
|
+
case 137:
|
|
30072
|
+
return MemcpyFixed<137>(dest, src);
|
|
30073
|
+
case 138:
|
|
30074
|
+
return MemcpyFixed<138>(dest, src);
|
|
30075
|
+
case 139:
|
|
30076
|
+
return MemcpyFixed<139>(dest, src);
|
|
30077
|
+
case 140:
|
|
30078
|
+
return MemcpyFixed<140>(dest, src);
|
|
30079
|
+
case 141:
|
|
30080
|
+
return MemcpyFixed<141>(dest, src);
|
|
30081
|
+
case 142:
|
|
30082
|
+
return MemcpyFixed<142>(dest, src);
|
|
30083
|
+
case 143:
|
|
30084
|
+
return MemcpyFixed<143>(dest, src);
|
|
30085
|
+
case 144:
|
|
30086
|
+
return MemcpyFixed<144>(dest, src);
|
|
30087
|
+
case 145:
|
|
30088
|
+
return MemcpyFixed<145>(dest, src);
|
|
30089
|
+
case 146:
|
|
30090
|
+
return MemcpyFixed<146>(dest, src);
|
|
30091
|
+
case 147:
|
|
30092
|
+
return MemcpyFixed<147>(dest, src);
|
|
30093
|
+
case 148:
|
|
30094
|
+
return MemcpyFixed<148>(dest, src);
|
|
30095
|
+
case 149:
|
|
30096
|
+
return MemcpyFixed<149>(dest, src);
|
|
30097
|
+
case 150:
|
|
30098
|
+
return MemcpyFixed<150>(dest, src);
|
|
30099
|
+
case 151:
|
|
30100
|
+
return MemcpyFixed<151>(dest, src);
|
|
30101
|
+
case 152:
|
|
30102
|
+
return MemcpyFixed<152>(dest, src);
|
|
30103
|
+
case 153:
|
|
30104
|
+
return MemcpyFixed<153>(dest, src);
|
|
30105
|
+
case 154:
|
|
30106
|
+
return MemcpyFixed<154>(dest, src);
|
|
30107
|
+
case 155:
|
|
30108
|
+
return MemcpyFixed<155>(dest, src);
|
|
30109
|
+
case 156:
|
|
30110
|
+
return MemcpyFixed<156>(dest, src);
|
|
30111
|
+
case 157:
|
|
30112
|
+
return MemcpyFixed<157>(dest, src);
|
|
30113
|
+
case 158:
|
|
30114
|
+
return MemcpyFixed<158>(dest, src);
|
|
30115
|
+
case 159:
|
|
30116
|
+
return MemcpyFixed<159>(dest, src);
|
|
30117
|
+
case 160:
|
|
30118
|
+
return MemcpyFixed<160>(dest, src);
|
|
30119
|
+
case 161:
|
|
30120
|
+
return MemcpyFixed<161>(dest, src);
|
|
30121
|
+
case 162:
|
|
30122
|
+
return MemcpyFixed<162>(dest, src);
|
|
30123
|
+
case 163:
|
|
30124
|
+
return MemcpyFixed<163>(dest, src);
|
|
30125
|
+
case 164:
|
|
30126
|
+
return MemcpyFixed<164>(dest, src);
|
|
30127
|
+
case 165:
|
|
30128
|
+
return MemcpyFixed<165>(dest, src);
|
|
30129
|
+
case 166:
|
|
30130
|
+
return MemcpyFixed<166>(dest, src);
|
|
30131
|
+
case 167:
|
|
30132
|
+
return MemcpyFixed<167>(dest, src);
|
|
30133
|
+
case 168:
|
|
30134
|
+
return MemcpyFixed<168>(dest, src);
|
|
30135
|
+
case 169:
|
|
30136
|
+
return MemcpyFixed<169>(dest, src);
|
|
30137
|
+
case 170:
|
|
30138
|
+
return MemcpyFixed<170>(dest, src);
|
|
30139
|
+
case 171:
|
|
30140
|
+
return MemcpyFixed<171>(dest, src);
|
|
30141
|
+
case 172:
|
|
30142
|
+
return MemcpyFixed<172>(dest, src);
|
|
30143
|
+
case 173:
|
|
30144
|
+
return MemcpyFixed<173>(dest, src);
|
|
30145
|
+
case 174:
|
|
30146
|
+
return MemcpyFixed<174>(dest, src);
|
|
30147
|
+
case 175:
|
|
30148
|
+
return MemcpyFixed<175>(dest, src);
|
|
30149
|
+
case 176:
|
|
30150
|
+
return MemcpyFixed<176>(dest, src);
|
|
30151
|
+
case 177:
|
|
30152
|
+
return MemcpyFixed<177>(dest, src);
|
|
30153
|
+
case 178:
|
|
30154
|
+
return MemcpyFixed<178>(dest, src);
|
|
30155
|
+
case 179:
|
|
30156
|
+
return MemcpyFixed<179>(dest, src);
|
|
30157
|
+
case 180:
|
|
30158
|
+
return MemcpyFixed<180>(dest, src);
|
|
30159
|
+
case 181:
|
|
30160
|
+
return MemcpyFixed<181>(dest, src);
|
|
30161
|
+
case 182:
|
|
30162
|
+
return MemcpyFixed<182>(dest, src);
|
|
30163
|
+
case 183:
|
|
30164
|
+
return MemcpyFixed<183>(dest, src);
|
|
30165
|
+
case 184:
|
|
30166
|
+
return MemcpyFixed<184>(dest, src);
|
|
30167
|
+
case 185:
|
|
30168
|
+
return MemcpyFixed<185>(dest, src);
|
|
30169
|
+
case 186:
|
|
30170
|
+
return MemcpyFixed<186>(dest, src);
|
|
30171
|
+
case 187:
|
|
30172
|
+
return MemcpyFixed<187>(dest, src);
|
|
30173
|
+
case 188:
|
|
30174
|
+
return MemcpyFixed<188>(dest, src);
|
|
30175
|
+
case 189:
|
|
30176
|
+
return MemcpyFixed<189>(dest, src);
|
|
30177
|
+
case 190:
|
|
30178
|
+
return MemcpyFixed<190>(dest, src);
|
|
30179
|
+
case 191:
|
|
30180
|
+
return MemcpyFixed<191>(dest, src);
|
|
30181
|
+
case 192:
|
|
30182
|
+
return MemcpyFixed<192>(dest, src);
|
|
30183
|
+
case 193:
|
|
30184
|
+
return MemcpyFixed<193>(dest, src);
|
|
30185
|
+
case 194:
|
|
30186
|
+
return MemcpyFixed<194>(dest, src);
|
|
30187
|
+
case 195:
|
|
30188
|
+
return MemcpyFixed<195>(dest, src);
|
|
30189
|
+
case 196:
|
|
30190
|
+
return MemcpyFixed<196>(dest, src);
|
|
30191
|
+
case 197:
|
|
30192
|
+
return MemcpyFixed<197>(dest, src);
|
|
30193
|
+
case 198:
|
|
30194
|
+
return MemcpyFixed<198>(dest, src);
|
|
30195
|
+
case 199:
|
|
30196
|
+
return MemcpyFixed<199>(dest, src);
|
|
30197
|
+
case 200:
|
|
30198
|
+
return MemcpyFixed<200>(dest, src);
|
|
30199
|
+
case 201:
|
|
30200
|
+
return MemcpyFixed<201>(dest, src);
|
|
30201
|
+
case 202:
|
|
30202
|
+
return MemcpyFixed<202>(dest, src);
|
|
30203
|
+
case 203:
|
|
30204
|
+
return MemcpyFixed<203>(dest, src);
|
|
30205
|
+
case 204:
|
|
30206
|
+
return MemcpyFixed<204>(dest, src);
|
|
30207
|
+
case 205:
|
|
30208
|
+
return MemcpyFixed<205>(dest, src);
|
|
30209
|
+
case 206:
|
|
30210
|
+
return MemcpyFixed<206>(dest, src);
|
|
30211
|
+
case 207:
|
|
30212
|
+
return MemcpyFixed<207>(dest, src);
|
|
30213
|
+
case 208:
|
|
30214
|
+
return MemcpyFixed<208>(dest, src);
|
|
30215
|
+
case 209:
|
|
30216
|
+
return MemcpyFixed<209>(dest, src);
|
|
30217
|
+
case 210:
|
|
30218
|
+
return MemcpyFixed<210>(dest, src);
|
|
30219
|
+
case 211:
|
|
30220
|
+
return MemcpyFixed<211>(dest, src);
|
|
30221
|
+
case 212:
|
|
30222
|
+
return MemcpyFixed<212>(dest, src);
|
|
30223
|
+
case 213:
|
|
30224
|
+
return MemcpyFixed<213>(dest, src);
|
|
30225
|
+
case 214:
|
|
30226
|
+
return MemcpyFixed<214>(dest, src);
|
|
30227
|
+
case 215:
|
|
30228
|
+
return MemcpyFixed<215>(dest, src);
|
|
30229
|
+
case 216:
|
|
30230
|
+
return MemcpyFixed<216>(dest, src);
|
|
30231
|
+
case 217:
|
|
30232
|
+
return MemcpyFixed<217>(dest, src);
|
|
30233
|
+
case 218:
|
|
30234
|
+
return MemcpyFixed<218>(dest, src);
|
|
30235
|
+
case 219:
|
|
30236
|
+
return MemcpyFixed<219>(dest, src);
|
|
30237
|
+
case 220:
|
|
30238
|
+
return MemcpyFixed<220>(dest, src);
|
|
30239
|
+
case 221:
|
|
30240
|
+
return MemcpyFixed<221>(dest, src);
|
|
30241
|
+
case 222:
|
|
30242
|
+
return MemcpyFixed<222>(dest, src);
|
|
30243
|
+
case 223:
|
|
30244
|
+
return MemcpyFixed<223>(dest, src);
|
|
30245
|
+
case 224:
|
|
30246
|
+
return MemcpyFixed<224>(dest, src);
|
|
30247
|
+
case 225:
|
|
30248
|
+
return MemcpyFixed<225>(dest, src);
|
|
30249
|
+
case 226:
|
|
30250
|
+
return MemcpyFixed<226>(dest, src);
|
|
30251
|
+
case 227:
|
|
30252
|
+
return MemcpyFixed<227>(dest, src);
|
|
30253
|
+
case 228:
|
|
30254
|
+
return MemcpyFixed<228>(dest, src);
|
|
30255
|
+
case 229:
|
|
30256
|
+
return MemcpyFixed<229>(dest, src);
|
|
30257
|
+
case 230:
|
|
30258
|
+
return MemcpyFixed<230>(dest, src);
|
|
30259
|
+
case 231:
|
|
30260
|
+
return MemcpyFixed<231>(dest, src);
|
|
30261
|
+
case 232:
|
|
30262
|
+
return MemcpyFixed<232>(dest, src);
|
|
30263
|
+
case 233:
|
|
30264
|
+
return MemcpyFixed<233>(dest, src);
|
|
30265
|
+
case 234:
|
|
30266
|
+
return MemcpyFixed<234>(dest, src);
|
|
30267
|
+
case 235:
|
|
30268
|
+
return MemcpyFixed<235>(dest, src);
|
|
30269
|
+
case 236:
|
|
30270
|
+
return MemcpyFixed<236>(dest, src);
|
|
30271
|
+
case 237:
|
|
30272
|
+
return MemcpyFixed<237>(dest, src);
|
|
30273
|
+
case 238:
|
|
30274
|
+
return MemcpyFixed<238>(dest, src);
|
|
30275
|
+
case 239:
|
|
30276
|
+
return MemcpyFixed<239>(dest, src);
|
|
30277
|
+
case 240:
|
|
30278
|
+
return MemcpyFixed<240>(dest, src);
|
|
30279
|
+
case 241:
|
|
30280
|
+
return MemcpyFixed<241>(dest, src);
|
|
30281
|
+
case 242:
|
|
30282
|
+
return MemcpyFixed<242>(dest, src);
|
|
30283
|
+
case 243:
|
|
30284
|
+
return MemcpyFixed<243>(dest, src);
|
|
30285
|
+
case 244:
|
|
30286
|
+
return MemcpyFixed<244>(dest, src);
|
|
30287
|
+
case 245:
|
|
30288
|
+
return MemcpyFixed<245>(dest, src);
|
|
30289
|
+
case 246:
|
|
30290
|
+
return MemcpyFixed<246>(dest, src);
|
|
30291
|
+
case 247:
|
|
30292
|
+
return MemcpyFixed<247>(dest, src);
|
|
30293
|
+
case 248:
|
|
30294
|
+
return MemcpyFixed<248>(dest, src);
|
|
30295
|
+
case 249:
|
|
30296
|
+
return MemcpyFixed<249>(dest, src);
|
|
30297
|
+
case 250:
|
|
30298
|
+
return MemcpyFixed<250>(dest, src);
|
|
30299
|
+
case 251:
|
|
30300
|
+
return MemcpyFixed<251>(dest, src);
|
|
30301
|
+
case 252:
|
|
30302
|
+
return MemcpyFixed<252>(dest, src);
|
|
30303
|
+
case 253:
|
|
30304
|
+
return MemcpyFixed<253>(dest, src);
|
|
30305
|
+
case 254:
|
|
30306
|
+
return MemcpyFixed<254>(dest, src);
|
|
30307
|
+
case 255:
|
|
30308
|
+
return MemcpyFixed<255>(dest, src);
|
|
30309
|
+
case 256:
|
|
30310
|
+
return MemcpyFixed<256>(dest, src);
|
|
30311
|
+
default:
|
|
30312
|
+
memcpy(dest, src, size);
|
|
30313
|
+
}
|
|
30314
|
+
// LCOV_EXCL_STOP
|
|
30315
|
+
}
|
|
30316
|
+
|
|
30317
|
+
//! This templated memcmp is significantly faster than std::memcmp,
|
|
30318
|
+
//! but only when you are calling memcmp with a const size in a loop.
|
|
30319
|
+
//! For instance `while (<cond>) { memcmp(<str1>, <str2>, const_size); ... }`
|
|
30320
|
+
static inline int FastMemcmp(const void *str1, const void *str2, const size_t size) {
|
|
30321
|
+
// LCOV_EXCL_START
|
|
30322
|
+
switch (size) {
|
|
30323
|
+
case 0:
|
|
30324
|
+
return 0;
|
|
30325
|
+
case 1:
|
|
30326
|
+
return MemcmpFixed<1>(str1, str2);
|
|
30327
|
+
case 2:
|
|
30328
|
+
return MemcmpFixed<2>(str1, str2);
|
|
30329
|
+
case 3:
|
|
30330
|
+
return MemcmpFixed<3>(str1, str2);
|
|
30331
|
+
case 4:
|
|
30332
|
+
return MemcmpFixed<4>(str1, str2);
|
|
30333
|
+
case 5:
|
|
30334
|
+
return MemcmpFixed<5>(str1, str2);
|
|
30335
|
+
case 6:
|
|
30336
|
+
return MemcmpFixed<6>(str1, str2);
|
|
30337
|
+
case 7:
|
|
30338
|
+
return MemcmpFixed<7>(str1, str2);
|
|
30339
|
+
case 8:
|
|
30340
|
+
return MemcmpFixed<8>(str1, str2);
|
|
30341
|
+
case 9:
|
|
30342
|
+
return MemcmpFixed<9>(str1, str2);
|
|
30343
|
+
case 10:
|
|
30344
|
+
return MemcmpFixed<10>(str1, str2);
|
|
30345
|
+
case 11:
|
|
30346
|
+
return MemcmpFixed<11>(str1, str2);
|
|
30347
|
+
case 12:
|
|
30348
|
+
return MemcmpFixed<12>(str1, str2);
|
|
30349
|
+
case 13:
|
|
30350
|
+
return MemcmpFixed<13>(str1, str2);
|
|
30351
|
+
case 14:
|
|
30352
|
+
return MemcmpFixed<14>(str1, str2);
|
|
30353
|
+
case 15:
|
|
30354
|
+
return MemcmpFixed<15>(str1, str2);
|
|
30355
|
+
case 16:
|
|
30356
|
+
return MemcmpFixed<16>(str1, str2);
|
|
30357
|
+
case 17:
|
|
30358
|
+
return MemcmpFixed<17>(str1, str2);
|
|
30359
|
+
case 18:
|
|
30360
|
+
return MemcmpFixed<18>(str1, str2);
|
|
30361
|
+
case 19:
|
|
30362
|
+
return MemcmpFixed<19>(str1, str2);
|
|
30363
|
+
case 20:
|
|
30364
|
+
return MemcmpFixed<20>(str1, str2);
|
|
30365
|
+
case 21:
|
|
30366
|
+
return MemcmpFixed<21>(str1, str2);
|
|
30367
|
+
case 22:
|
|
30368
|
+
return MemcmpFixed<22>(str1, str2);
|
|
30369
|
+
case 23:
|
|
30370
|
+
return MemcmpFixed<23>(str1, str2);
|
|
30371
|
+
case 24:
|
|
30372
|
+
return MemcmpFixed<24>(str1, str2);
|
|
30373
|
+
case 25:
|
|
30374
|
+
return MemcmpFixed<25>(str1, str2);
|
|
30375
|
+
case 26:
|
|
30376
|
+
return MemcmpFixed<26>(str1, str2);
|
|
30377
|
+
case 27:
|
|
30378
|
+
return MemcmpFixed<27>(str1, str2);
|
|
30379
|
+
case 28:
|
|
30380
|
+
return MemcmpFixed<28>(str1, str2);
|
|
30381
|
+
case 29:
|
|
30382
|
+
return MemcmpFixed<29>(str1, str2);
|
|
30383
|
+
case 30:
|
|
30384
|
+
return MemcmpFixed<30>(str1, str2);
|
|
30385
|
+
case 31:
|
|
30386
|
+
return MemcmpFixed<31>(str1, str2);
|
|
30387
|
+
case 32:
|
|
30388
|
+
return MemcmpFixed<32>(str1, str2);
|
|
30389
|
+
case 33:
|
|
30390
|
+
return MemcmpFixed<33>(str1, str2);
|
|
30391
|
+
case 34:
|
|
30392
|
+
return MemcmpFixed<34>(str1, str2);
|
|
30393
|
+
case 35:
|
|
30394
|
+
return MemcmpFixed<35>(str1, str2);
|
|
30395
|
+
case 36:
|
|
30396
|
+
return MemcmpFixed<36>(str1, str2);
|
|
30397
|
+
case 37:
|
|
30398
|
+
return MemcmpFixed<37>(str1, str2);
|
|
30399
|
+
case 38:
|
|
30400
|
+
return MemcmpFixed<38>(str1, str2);
|
|
30401
|
+
case 39:
|
|
30402
|
+
return MemcmpFixed<39>(str1, str2);
|
|
30403
|
+
case 40:
|
|
30404
|
+
return MemcmpFixed<40>(str1, str2);
|
|
30405
|
+
case 41:
|
|
30406
|
+
return MemcmpFixed<41>(str1, str2);
|
|
30407
|
+
case 42:
|
|
30408
|
+
return MemcmpFixed<42>(str1, str2);
|
|
30409
|
+
case 43:
|
|
30410
|
+
return MemcmpFixed<43>(str1, str2);
|
|
30411
|
+
case 44:
|
|
30412
|
+
return MemcmpFixed<44>(str1, str2);
|
|
30413
|
+
case 45:
|
|
30414
|
+
return MemcmpFixed<45>(str1, str2);
|
|
30415
|
+
case 46:
|
|
30416
|
+
return MemcmpFixed<46>(str1, str2);
|
|
30417
|
+
case 47:
|
|
30418
|
+
return MemcmpFixed<47>(str1, str2);
|
|
30419
|
+
case 48:
|
|
30420
|
+
return MemcmpFixed<48>(str1, str2);
|
|
30421
|
+
case 49:
|
|
30422
|
+
return MemcmpFixed<49>(str1, str2);
|
|
30423
|
+
case 50:
|
|
30424
|
+
return MemcmpFixed<50>(str1, str2);
|
|
30425
|
+
case 51:
|
|
30426
|
+
return MemcmpFixed<51>(str1, str2);
|
|
30427
|
+
case 52:
|
|
30428
|
+
return MemcmpFixed<52>(str1, str2);
|
|
30429
|
+
case 53:
|
|
30430
|
+
return MemcmpFixed<53>(str1, str2);
|
|
30431
|
+
case 54:
|
|
30432
|
+
return MemcmpFixed<54>(str1, str2);
|
|
30433
|
+
case 55:
|
|
30434
|
+
return MemcmpFixed<55>(str1, str2);
|
|
30435
|
+
case 56:
|
|
30436
|
+
return MemcmpFixed<56>(str1, str2);
|
|
30437
|
+
case 57:
|
|
30438
|
+
return MemcmpFixed<57>(str1, str2);
|
|
30439
|
+
case 58:
|
|
30440
|
+
return MemcmpFixed<58>(str1, str2);
|
|
30441
|
+
case 59:
|
|
30442
|
+
return MemcmpFixed<59>(str1, str2);
|
|
30443
|
+
case 60:
|
|
30444
|
+
return MemcmpFixed<60>(str1, str2);
|
|
30445
|
+
case 61:
|
|
30446
|
+
return MemcmpFixed<61>(str1, str2);
|
|
30447
|
+
case 62:
|
|
30448
|
+
return MemcmpFixed<62>(str1, str2);
|
|
30449
|
+
case 63:
|
|
30450
|
+
return MemcmpFixed<63>(str1, str2);
|
|
30451
|
+
case 64:
|
|
30452
|
+
return MemcmpFixed<64>(str1, str2);
|
|
30453
|
+
default:
|
|
30454
|
+
return memcmp(str1, str2, size);
|
|
30455
|
+
}
|
|
30456
|
+
// LCOV_EXCL_STOP
|
|
30457
|
+
}
|
|
30458
|
+
|
|
30459
|
+
} // namespace duckdb
|
|
30460
|
+
|
|
29767
30461
|
|
|
29768
30462
|
|
|
29769
30463
|
|
|
@@ -29920,7 +30614,7 @@ int MergeSorter::CompareUsingGlobalIndex(SortedBlock &l, SortedBlock &r, const i
|
|
|
29920
30614
|
|
|
29921
30615
|
int comp_res;
|
|
29922
30616
|
if (sort_layout.all_constant) {
|
|
29923
|
-
comp_res =
|
|
30617
|
+
comp_res = FastMemcmp(l_ptr, r_ptr, sort_layout.comparison_size);
|
|
29924
30618
|
} else {
|
|
29925
30619
|
l.blob_sorting_data->block_idx = l_block_idx;
|
|
29926
30620
|
l.blob_sorting_data->entry_idx = l_entry_idx;
|
|
@@ -30064,7 +30758,7 @@ void MergeSorter::ComputeMerge(const idx_t &count, bool left_smaller[]) {
|
|
|
30064
30758
|
if (sort_layout.all_constant) {
|
|
30065
30759
|
// All sorting columns are constant size
|
|
30066
30760
|
for (; compared < count && l_entry_idx < l_count && r_entry_idx < r_count; compared++) {
|
|
30067
|
-
left_smaller[compared] =
|
|
30761
|
+
left_smaller[compared] = FastMemcmp(l_radix_ptr, r_radix_ptr, sort_layout.comparison_size) < 0;
|
|
30068
30762
|
const bool &l_smaller = left_smaller[compared];
|
|
30069
30763
|
const bool r_smaller = !l_smaller;
|
|
30070
30764
|
// Use comparison bool (0 or 1) to increment entries and pointers
|
|
@@ -30312,8 +31006,8 @@ void MergeSorter::MergeData(SortedData &result_data, SortedData &l_data, SortedD
|
|
|
30312
31006
|
const bool &l_smaller = left_smaller[copied + i];
|
|
30313
31007
|
const bool r_smaller = !l_smaller;
|
|
30314
31008
|
const auto &entry_size = next_entry_sizes[copied + i];
|
|
30315
|
-
memcpy(result_heap_ptr, l_heap_ptr
|
|
30316
|
-
|
|
31009
|
+
memcpy(result_heap_ptr, (data_ptr_t)(l_smaller * (idx_t)l_heap_ptr + r_smaller * (idx_t)r_heap_ptr),
|
|
31010
|
+
entry_size);
|
|
30317
31011
|
D_ASSERT(Load<uint32_t>(result_heap_ptr) == entry_size);
|
|
30318
31012
|
result_heap_ptr += entry_size;
|
|
30319
31013
|
l_heap_ptr += l_smaller * entry_size;
|
|
@@ -30349,8 +31043,7 @@ void MergeSorter::MergeRows(data_ptr_t &l_ptr, idx_t &l_entry_idx, const idx_t &
|
|
|
30349
31043
|
const bool &l_smaller = left_smaller[copied + i];
|
|
30350
31044
|
const bool r_smaller = !l_smaller;
|
|
30351
31045
|
// Use comparison bool (0 or 1) to copy an entry from either side
|
|
30352
|
-
|
|
30353
|
-
memcpy(target_ptr, r_ptr, r_smaller * entry_size);
|
|
31046
|
+
FastMemcpy(target_ptr, (data_ptr_t)(l_smaller * (idx_t)l_ptr + r_smaller * (idx_t)r_ptr), entry_size);
|
|
30354
31047
|
target_ptr += entry_size;
|
|
30355
31048
|
// Use the comparison bool to increment entries and pointers
|
|
30356
31049
|
l_entry_idx += l_smaller;
|
|
@@ -30431,6 +31124,7 @@ void MergeSorter::FlushBlobs(const RowLayout &layout, const idx_t &source_count,
|
|
|
30431
31124
|
|
|
30432
31125
|
|
|
30433
31126
|
|
|
31127
|
+
|
|
30434
31128
|
namespace duckdb {
|
|
30435
31129
|
|
|
30436
31130
|
//! Calls std::sort on strings that are tied by their prefix after the radix sort
|
|
@@ -30470,7 +31164,7 @@ static void SortTiedBlobs(BufferManager &buffer_manager, const data_ptr_t datapt
|
|
|
30470
31164
|
buffer_manager.Allocate(MaxValue((end - start) * sort_layout.entry_size, (idx_t)Storage::BLOCK_SIZE));
|
|
30471
31165
|
data_ptr_t temp_ptr = temp_block->Ptr();
|
|
30472
31166
|
for (idx_t i = 0; i < end - start; i++) {
|
|
30473
|
-
|
|
31167
|
+
FastMemcpy(temp_ptr, entry_ptrs[i], sort_layout.entry_size);
|
|
30474
31168
|
temp_ptr += sort_layout.entry_size;
|
|
30475
31169
|
}
|
|
30476
31170
|
memcpy(dataptr + start * sort_layout.entry_size, temp_block->Ptr(), (end - start) * sort_layout.entry_size);
|
|
@@ -30530,7 +31224,7 @@ static void ComputeTies(data_ptr_t dataptr, const idx_t &count, const idx_t &col
|
|
|
30530
31224
|
// Align dataptr
|
|
30531
31225
|
dataptr += col_offset;
|
|
30532
31226
|
for (idx_t i = 0; i < count - 1; i++) {
|
|
30533
|
-
ties[i] = ties[i] &&
|
|
31227
|
+
ties[i] = ties[i] && FastMemcmp(dataptr, dataptr + sort_layout.entry_size, tie_size) == 0;
|
|
30534
31228
|
dataptr += sort_layout.entry_size;
|
|
30535
31229
|
}
|
|
30536
31230
|
}
|
|
@@ -30568,7 +31262,7 @@ void RadixSortLSD(BufferManager &buffer_manager, const data_ptr_t &dataptr, cons
|
|
|
30568
31262
|
data_ptr_t row_ptr = source_ptr + (count - 1) * row_width;
|
|
30569
31263
|
for (idx_t i = 0; i < count; i++) {
|
|
30570
31264
|
idx_t &radix_offset = --counts[*(row_ptr + offset)];
|
|
30571
|
-
|
|
31265
|
+
FastMemcpy(target_ptr + radix_offset * row_width, row_ptr, row_width);
|
|
30572
31266
|
row_ptr -= row_width;
|
|
30573
31267
|
}
|
|
30574
31268
|
swap = !swap;
|
|
@@ -30591,14 +31285,14 @@ inline void InsertionSort(const data_ptr_t orig_ptr, const data_ptr_t temp_ptr,
|
|
|
30591
31285
|
const data_ptr_t val = temp_val.get();
|
|
30592
31286
|
const auto comp_width = total_comp_width - offset;
|
|
30593
31287
|
for (idx_t i = 1; i < count; i++) {
|
|
30594
|
-
|
|
31288
|
+
FastMemcpy(val, source_ptr + i * row_width, row_width);
|
|
30595
31289
|
idx_t j = i;
|
|
30596
31290
|
while (j > 0 &&
|
|
30597
|
-
|
|
30598
|
-
|
|
31291
|
+
FastMemcmp(source_ptr + (j - 1) * row_width + total_offset, val + total_offset, comp_width) > 0) {
|
|
31292
|
+
FastMemcpy(source_ptr + j * row_width, source_ptr + (j - 1) * row_width, row_width);
|
|
30599
31293
|
j--;
|
|
30600
31294
|
}
|
|
30601
|
-
|
|
31295
|
+
FastMemcpy(source_ptr + j * row_width, val, row_width);
|
|
30602
31296
|
}
|
|
30603
31297
|
}
|
|
30604
31298
|
if (swap) {
|
|
@@ -30632,7 +31326,7 @@ void RadixSortMSD(const data_ptr_t orig_ptr, const data_ptr_t temp_ptr, const id
|
|
|
30632
31326
|
data_ptr_t row_ptr = source_ptr;
|
|
30633
31327
|
for (idx_t i = 0; i < count; i++) {
|
|
30634
31328
|
const idx_t &radix_offset = locations[*(row_ptr + total_offset)]++;
|
|
30635
|
-
|
|
31329
|
+
FastMemcpy(target_ptr + radix_offset * row_width, row_ptr, row_width);
|
|
30636
31330
|
row_ptr += row_width;
|
|
30637
31331
|
}
|
|
30638
31332
|
swap = !swap;
|
|
@@ -51460,7 +52154,6 @@ void Node4::Erase(ART &art, unique_ptr<Node> &node, int pos) {
|
|
|
51460
52154
|
auto new_length = node->prefix_length + childref->prefix_length + 1;
|
|
51461
52155
|
//! have to allocate space in our prefix array
|
|
51462
52156
|
unique_ptr<uint8_t[]> new_prefix = unique_ptr<uint8_t[]>(new uint8_t[new_length]);
|
|
51463
|
-
;
|
|
51464
52157
|
|
|
51465
52158
|
//! first move the existing prefix (if any)
|
|
51466
52159
|
for (uint32_t i = 0; i < childref->prefix_length; i++) {
|
|
@@ -80335,7 +81028,7 @@ bool TryGetDatePartSpecifier(const string &specifier_p, DatePartSpecifier &resul
|
|
|
80335
81028
|
result = DatePartSpecifier::DECADE;
|
|
80336
81029
|
} else if (specifier == "century" || specifier == "centuries") {
|
|
80337
81030
|
result = DatePartSpecifier::CENTURY;
|
|
80338
|
-
} else if (specifier == "millennium" || specifier == "
|
|
81031
|
+
} else if (specifier == "millennium" || specifier == "millennia") {
|
|
80339
81032
|
result = DatePartSpecifier::MILLENNIUM;
|
|
80340
81033
|
} else if (specifier == "microseconds" || specifier == "microsecond") {
|
|
80341
81034
|
result = DatePartSpecifier::MICROSECONDS;
|
|
@@ -80351,7 +81044,7 @@ bool TryGetDatePartSpecifier(const string &specifier_p, DatePartSpecifier &resul
|
|
|
80351
81044
|
} else if (specifier == "epoch") {
|
|
80352
81045
|
// seconds since 1970-01-01
|
|
80353
81046
|
result = DatePartSpecifier::EPOCH;
|
|
80354
|
-
} else if (specifier == "dow") {
|
|
81047
|
+
} else if (specifier == "dow" || specifier == "dayofweek") {
|
|
80355
81048
|
// day of the week (Sunday = 0, Saturday = 6)
|
|
80356
81049
|
result = DatePartSpecifier::DOW;
|
|
80357
81050
|
} else if (specifier == "isodow") {
|
|
@@ -81107,7 +81800,7 @@ void DatePartFun::RegisterFunction(BuiltinFunctions &set) {
|
|
|
81107
81800
|
AddDatePartOperator<DatePart::DayOperator>(set, "day");
|
|
81108
81801
|
AddDatePartOperator<DatePart::DecadeOperator>(set, "decade");
|
|
81109
81802
|
AddDatePartOperator<DatePart::CenturyOperator>(set, "century");
|
|
81110
|
-
AddDatePartOperator<DatePart::MilleniumOperator>(set, "
|
|
81803
|
+
AddDatePartOperator<DatePart::MilleniumOperator>(set, "millennium");
|
|
81111
81804
|
AddDatePartOperator<DatePart::QuarterOperator>(set, "quarter");
|
|
81112
81805
|
AddDatePartOperator<DatePart::DayOfWeekOperator>(set, "dayofweek");
|
|
81113
81806
|
AddDatePartOperator<DatePart::ISODayOfWeekOperator>(set, "isodow");
|
|
@@ -114013,7 +114706,7 @@ unique_ptr<Expression> DatePartSimplificationRule::Apply(LogicalOperator &op, ve
|
|
|
114013
114706
|
new_function_name = "century";
|
|
114014
114707
|
break;
|
|
114015
114708
|
case DatePartSpecifier::MILLENNIUM:
|
|
114016
|
-
new_function_name = "
|
|
114709
|
+
new_function_name = "millennium";
|
|
114017
114710
|
break;
|
|
114018
114711
|
case DatePartSpecifier::QUARTER:
|
|
114019
114712
|
new_function_name = "quarter";
|
package/src/duckdb.hpp
CHANGED
|
@@ -10,8 +10,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
|
|
|
10
10
|
|
|
11
11
|
#pragma once
|
|
12
12
|
#define DUCKDB_AMALGAMATION 1
|
|
13
|
-
#define DUCKDB_SOURCE_ID "
|
|
14
|
-
#define DUCKDB_VERSION "0.3.2-
|
|
13
|
+
#define DUCKDB_SOURCE_ID "9ffe41dec"
|
|
14
|
+
#define DUCKDB_VERSION "0.3.2-dev181"
|
|
15
15
|
//===----------------------------------------------------------------------===//
|
|
16
16
|
// DuckDB
|
|
17
17
|
//
|