From df504fabe105b72a711f54064c2fc35a4e2a593f Mon Sep 17 00:00:00 2001 From: Jonas Irgens Kylling Date: Tue, 3 Sep 2024 14:33:48 +0200 Subject: [PATCH] fix: stats is optional in add action --- crates/core/src/kernel/snapshot/parse.rs | 5 +++-- crates/core/src/protocol/mod.rs | 9 +++++++++ .../_delta_log/00000000000000000000.json | 3 +++ .../_delta_log/00000000000000000001.json | 3 +++ .../00000000000000000002.checkpoint.parquet | Bin 0 -> 41898 bytes .../_delta_log/00000000000000000002.json | 2 ++ .../_delta_log/_last_checkpoint | 1 + ...2-411e-bca9-b067444cbcb0-c000.snappy.parquet | Bin 0 -> 5489 bytes ...8-4453-9202-51d75dee59af-c000.snappy.parquet | Bin 0 -> 5489 bytes 9 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 crates/test/tests/data/delta-checkpoint-stats-optional/_delta_log/00000000000000000000.json create mode 100644 crates/test/tests/data/delta-checkpoint-stats-optional/_delta_log/00000000000000000001.json create mode 100644 crates/test/tests/data/delta-checkpoint-stats-optional/_delta_log/00000000000000000002.checkpoint.parquet create mode 100644 crates/test/tests/data/delta-checkpoint-stats-optional/_delta_log/00000000000000000002.json create mode 100644 crates/test/tests/data/delta-checkpoint-stats-optional/_delta_log/_last_checkpoint create mode 100644 crates/test/tests/data/delta-checkpoint-stats-optional/part-00000-28925d3a-bdf2-411e-bca9-b067444cbcb0-c000.snappy.parquet create mode 100644 crates/test/tests/data/delta-checkpoint-stats-optional/part-00000-7a509247-4f58-4453-9202-51d75dee59af-c000.snappy.parquet diff --git a/crates/core/src/kernel/snapshot/parse.rs b/crates/core/src/kernel/snapshot/parse.rs index fc61187c00..f75744691e 100644 --- a/crates/core/src/kernel/snapshot/parse.rs +++ b/crates/core/src/kernel/snapshot/parse.rs @@ -83,7 +83,7 @@ pub(super) fn read_adds(array: &dyn ProvidesColumnByName) -> DeltaResult(arr, "size")?; let modification_time = ex::extract_and_cast::(arr, "modificationTime")?; let data_change = ex::extract_and_cast::(arr, "dataChange")?; - let stats = ex::extract_and_cast::(arr, "stats")?; + let stats = ex::extract_and_cast_opt::(arr, "stats"); let tags = ex::extract_and_cast_opt::(arr, "tags"); let dv = ex::extract_and_cast_opt::(arr, "deletionVector"); @@ -126,7 +126,8 @@ pub(super) fn read_adds(array: &dyn ProvidesColumnByName) -> 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 X2Y%przyHGj6W)jaqH>$kQU3n`EoDKR literal 0 HcmV?d00001 diff --git a/crates/test/tests/data/delta-checkpoint-stats-optional/_delta_log/00000000000000000002.json b/crates/test/tests/data/delta-checkpoint-stats-optional/_delta_log/00000000000000000002.json new file mode 100644 index 0000000000..f6f9a119ce --- /dev/null +++ b/crates/test/tests/data/delta-checkpoint-stats-optional/_delta_log/00000000000000000002.json @@ -0,0 +1,2 @@ +{"commitInfo":{"timestamp":1666652374424,"userId":"6114986638742036","userName":"dummy_username","operation":"WRITE","operationParameters":{"mode":"Append","partitionBy":"[]"},"notebook":{"notebookId":"1829280694121074"},"clusterId":"1007-161845-fa2h8e50","readVersion":1,"isolationLevel":"WriteSerializable","isBlindAppend":true,"operationMetrics":{"numFiles":"1","numOutputRows":"1","numOutputBytes":"5489"},"engineInfo":"Databricks-Runtime/10.4.x-scala2.12","txnId":"efe25f5f-e03a-458d-8fbe-34ed2111b3c1"}} +{"add":{"path":"part-00000-28925d3a-bdf2-411e-bca9-b067444cbcb0-c000.snappy.parquet","partitionValues":{},"size":5489,"modificationTime":1666652374000,"dataChange":true,"stats_parsed":null,"tags":{"INSERTION_TIME":"1666652374000000","OPTIMIZE_TARGET_SIZE":"268435456"}}} diff --git a/crates/test/tests/data/delta-checkpoint-stats-optional/_delta_log/_last_checkpoint b/crates/test/tests/data/delta-checkpoint-stats-optional/_delta_log/_last_checkpoint new file mode 100644 index 0000000000..ce032077f2 --- /dev/null +++ b/crates/test/tests/data/delta-checkpoint-stats-optional/_delta_log/_last_checkpoint @@ -0,0 +1 @@ +{"size":4,"size_in_bytes":41898,"version":2} \ No newline at end of file diff --git a/crates/test/tests/data/delta-checkpoint-stats-optional/part-00000-28925d3a-bdf2-411e-bca9-b067444cbcb0-c000.snappy.parquet b/crates/test/tests/data/delta-checkpoint-stats-optional/part-00000-28925d3a-bdf2-411e-bca9-b067444cbcb0-c000.snappy.parquet new file mode 100644 index 0000000000000000000000000000000000000000..1b473a23e83223587202e007ea28e8e7052131bf GIT binary patch literal 5489 zcmcIoeP~-%6u)_SP0}>$+O7Bbp2SI6YJ-P)R#=d4q7Y7JuynR8lSn%6BZA2mrQ zWe&y=l)69W1eKxwAtG*01@RvhhEp~_n6N*FAK=IE>kk%_E9k=4}Dx8Yb$G-gSxo#8pqY@GuoVerc?Hj=S_Td3`{2qAz z(~AdQ>1MW6eu0rVw?%>wNYOR)_YWU=rc-j}vMoV&!wQLUx96toQ@gC^ z{38dDMFdCF`F$cLp|nE6P%2roQ#$Pd#|di=#F-wC<+kiXoQ&jd-QkasO)=s11- z^_P!(5rIbB*O&;BE@)WQsx|LVrba( z1`Hh}!nO*wkP3hl2)KL@B5ndoONp(r!~?36e*zU+A)aX7Lel7PQp?c!x5Q9cJ^{)} zD<3K*-M0XiX;rvfx9mWLEi^sGWR3F@msx=}3msh+?>2VL(XbkKXm@@U9g z?hn(vp#B)9JH+yn2rY}{$xct;NR$iU#OJTr5Ub5v)tytd=^b{-qH!eFfTD*B<+{Dy zuA&rRr>r3 z4C<9KIS8B)RqsSC5pP{(szeWhB74!{WSEc8;UpC>LX#%PP>Y3{XF1$ta!Esi!9%#Q z$UoO@+8{dB1f_{%Rc5AmYGdIXs3m5zhp_DWcM+GMDMs8l-;-n|(HM!45MF`E2C8U^ zwqCn288LZj;-4B>=@cryL+Yb^BdmmI=X+_NcCd@4NHPnmfOFEx!5Y`rC9~!z>X@%{ zU>S7Y>Y^)1az9$4tK=r0qi1RpV4A3U_=9=pTLyV<8P&8ex@dwVPXQz}e{>g62-^qZd8Q`%PyQ#AP zjJXc;cjMq?wN2oe?pt!dfhk^>OObKEW4PyHbd)4t4NAED@j1AY+D7n9QQXBBPa%HFVd@_i~!&e{V1WGDA`GTOoAKs&R9oqPckOUM{eBgi?w z0635jXb%R!Prj$d^_V=XH11&LAGpLA#4Mw-_sE7ImZ2}eI&uVt#g#jkiCWY2hLQT) zw0j_GHukf|9dkfDW2dq-a^-U$W9Q!2O|v9<6hltT7{F7@unOi^Emp0ZKD-ZMspZZckaW z7DkzrGu5Qn6tT5Zw)Nmmw{0eRyh)&FZ?~rBZ_aKW8`aqlk|u#&cC}Whl=Y6asWqt~ zqOWR_sNGjgVT8JG&aS7bmHSgAyKbQrTKe;`-HH1AteqH7@RE=iOw1JQV!oCbzjJq@ zY?T;G^j7eMtWRKLmxcK%F^-=f_F%$APK@u~vuDslU}CIl|G8MZ_^Fl6McPe-=;q6f4;WZwW;fkyFP$SY7@mv zGakuy(vPdS!>Dh)z0136PuppR#^#}Wj&UNo+-C2c;C~&EbDC#M;`Nns-71u8S(f$A z!)V_JXRL1a!X=A|e6iW-i?Gi$8s!RY@M+6#!iILo3RHkb4| zTE@`3tV@+=7oH0LdP{fhA^Md~O@;TR8&FX;qlK~7v{m$&)un2`XiEJV!Z literal 0 HcmV?d00001 diff --git a/crates/test/tests/data/delta-checkpoint-stats-optional/part-00000-7a509247-4f58-4453-9202-51d75dee59af-c000.snappy.parquet b/crates/test/tests/data/delta-checkpoint-stats-optional/part-00000-7a509247-4f58-4453-9202-51d75dee59af-c000.snappy.parquet new file mode 100644 index 0000000000000000000000000000000000000000..612bc6a5b63d75ed53b0e311005f67ac812daecd GIT binary patch literal 5489 zcmcIoTZkJ~7(SWICfRJd-EH@bGZO0(+|a@{WZT^}yNtC~@lw~Ylp3E zvX!M4O7TI~KGZ&_6!k$w>_vs*ixrBkST9uQgJ=bn;_X3-6bt%NFW;GSX69rQHMJF% z`w2qDp%6hcTafDZy%jP}r9FP-@= zDv5;p91+IurpxI23+MNDNbIoA5dz@HX+Qn(!r@PrO8o9&&VOL+?T>bzxO6MTm?Q5V zICv^7iMftM?*Hvii1gE&=m*dK`FubU=`lG{2)@?p)k1k21Xs`mz3|1iKQEC4mu9$N z2LyBTb-N~PzI5QlFJ;$Vn-AWL!>e#APM>-CmrII?`%wvr4Nm@kWB1)){_ykwJAMy5 z|K-U3x4M}vm0w^a&TWw(1X6Sj{r%HtUhb5fx$c1=+z2Wp#@(Kqu21c>igPyP(~y7t z(8_2}7x5%}(vG=OI5#N9oBUFT5Xe@gaY`FP{mLP9g7F$k1{6 z&O2|O^dbU{xUaE3NV=e5Rjby#=aos<)31O1{*Q=j1$nZf?wle>mP5R3*XnkD3Nerm z!<_s6(1#y;kzmfn9W_GKKzJD8Xgm&c?$8^1zEWL7%sENJ#J=G`Mz3P%hzud(ize-^K_YCcU<;`LNP&RM2O;7nptO|ODoZ?|I{7D1p%vnZ<}D^jO;Bb@+;KY}2xI0#xwW>R&YSY{8l11Z4tN}$27s_>e zn_WdIz)mgC6^ncs&Q&T!+bRo_vr4mMgsbEIQH7&*i}bRKcF8W+1uEo% z$QjftWnvIGBdXqsS|Z-M%2bIS1V#3u!^toop~FckV1y=2j-eI{HP3Rm$>frT1cQfg zW08NZ+q6M+stHOH$EwUs@zln`IZ#W?W)ET6_3tV!K~s#lak(eSN}@3mAtAg1kquPQ z6m5fcXEI{)(!@VCveGG3e23IW`9@d?(JuGWKJ7pkO_5|4Q~~FtlY=#`txIOjQPeSC zXa6$jyw^onkmNqJL|4g8JV(#e)`MxH>fsOOoo^ZB)n!!EzUiU~k~{;DsIV;Z)xp@P zWx+H3V(G7d=#@~PD&rq#_9Z4Qkq>B(u_jfYdf#pE^YzaI00w$J_F``D0 zbAADEAfMEp3V@&dNR8_;c~)uM!OTB!i7|*-MrH4j4M8kJUx#(%2n>s>aV`_Jrs)kM z^|xqSA!;`Ev&J2BKs;lovNUq#bDv=6-rG&HBzY7=PRtm9&10iF`$5tqu+y&A3YD_nu{O0P zHAM7PO%k=oiz$pykI&ilRJHO%s$|zKltN2?Ew(FBpP#i8;|X385`&4Ef?dql65|i= zN|db-O&?W+( z0(}>}eY^U6aFhTzVP$4;WL5hI;l0vF@%C-H!F!^w@9o>vXZ_FD7P~fey>ZtEkV$Q# zcxlEX*-rX#6?Yi*t+#i1kL+$c&Cu99bk8wPM3>v_y%YSe19DFDY)QPmQm$KtaxKfU z-gy}9`{0b#&0e@VLU<6Yf9s5Th=-$Hu@u@`4q^uy+w zUPsFqdY5&r^6bh};a_j*k=;bUv8k!>zH|pF%4W1M)|ws?J!W;O+Ao??|4?dZO)9;b zb(>tZFukL;I-O1r_pi*&6^i-(wKGE_>9y8aCS%X!*3MYDv5{PEW-L9N8OqPtX>4yE ZvFy?5RrtAwpXFEdM{dDy`$_z>^)EM!n;-xH literal 0 HcmV?d00001