From cd91f2ecdcc00a9f8654a62649374869d9a2cac3 Mon Sep 17 00:00:00 2001 From: Glauber Costa Date: Tue, 21 Jul 2015 23:52:07 -0400 Subject: [PATCH] sstables: add tests for dense tables Signed-off-by: Glauber Costa --- tests/urchin/sstable_mutation_test.cc | 36 +++++++++++++++ tests/urchin/sstable_test.hh | 42 ++++++++++++++++++ .../sstables/compact_dense/la-1-big-CRC.db | Bin 0 -> 8 bytes .../sstables/compact_dense/la-1-big-Data.db | Bin 0 -> 55 bytes .../compact_dense/la-1-big-Digest.sha1 | 1 + .../sstables/compact_dense/la-1-big-Filter.db | Bin 0 -> 16 bytes .../sstables/compact_dense/la-1-big-Index.db | Bin 0 -> 23 bytes .../compact_dense/la-1-big-Statistics.db | Bin 0 -> 4454 bytes .../compact_dense/la-1-big-Summary.db | Bin 0 -> 107 bytes .../sstables/compact_dense/la-1-big-TOC.txt | 8 ++++ .../compact_simple_dense/la-1-big-CRC.db | Bin 0 -> 8 bytes .../compact_simple_dense/la-1-big-Data.db | Bin 0 -> 95 bytes .../compact_simple_dense/la-1-big-Digest.sha1 | 1 + .../compact_simple_dense/la-1-big-Filter.db | Bin 0 -> 16 bytes .../compact_simple_dense/la-1-big-Index.db | Bin 0 -> 47 bytes .../la-1-big-Statistics.db | Bin 0 -> 4449 bytes .../compact_simple_dense/la-1-big-Summary.db | Bin 0 -> 109 bytes .../compact_simple_dense/la-1-big-TOC.txt | 8 ++++ 18 files changed, 96 insertions(+) create mode 100644 tests/urchin/sstables/compact_dense/la-1-big-CRC.db create mode 100644 tests/urchin/sstables/compact_dense/la-1-big-Data.db create mode 100644 tests/urchin/sstables/compact_dense/la-1-big-Digest.sha1 create mode 100644 tests/urchin/sstables/compact_dense/la-1-big-Filter.db create mode 100644 tests/urchin/sstables/compact_dense/la-1-big-Index.db create mode 100644 tests/urchin/sstables/compact_dense/la-1-big-Statistics.db create mode 100644 tests/urchin/sstables/compact_dense/la-1-big-Summary.db create mode 100644 tests/urchin/sstables/compact_dense/la-1-big-TOC.txt create mode 100644 tests/urchin/sstables/compact_simple_dense/la-1-big-CRC.db create mode 100644 tests/urchin/sstables/compact_simple_dense/la-1-big-Data.db create mode 100644 tests/urchin/sstables/compact_simple_dense/la-1-big-Digest.sha1 create mode 100644 tests/urchin/sstables/compact_simple_dense/la-1-big-Filter.db create mode 100644 tests/urchin/sstables/compact_simple_dense/la-1-big-Index.db create mode 100644 tests/urchin/sstables/compact_simple_dense/la-1-big-Statistics.db create mode 100644 tests/urchin/sstables/compact_simple_dense/la-1-big-Summary.db create mode 100644 tests/urchin/sstables/compact_simple_dense/la-1-big-TOC.txt diff --git a/tests/urchin/sstable_mutation_test.cc b/tests/urchin/sstable_mutation_test.cc index cf933b6be2..88a30d672f 100644 --- a/tests/urchin/sstable_mutation_test.cc +++ b/tests/urchin/sstable_mutation_test.cc @@ -462,3 +462,39 @@ SEASTAR_TEST_CASE(compact_storage_sparse_read) { }); }); } + +SEASTAR_TEST_CASE(compact_storage_simple_dense_read) { + return reusable_sst("tests/urchin/sstables/compact_simple_dense", 1).then([] (auto sstp) { + return do_with(sstables::key("first_row"), [sstp] (auto& key) { + auto s = compact_simple_dense_schema(); + return sstp->read_row(s, key).then([sstp, s, &key] (auto mutation) { + auto& mp = mutation->partition(); + + auto exploded = exploded_clustering_prefix({"cl1"}); + auto clustering = clustering_key::from_clustering_prefix(*s, exploded); + + auto row = mp.clustered_row(clustering); + match_live_cell(row.cells(), *s, "cl2", boost::any(to_bytes("cl2"))); + return make_ready_future<>(); + }); + }); + }); +} + +SEASTAR_TEST_CASE(compact_storage_dense_read) { + return reusable_sst("tests/urchin/sstables/compact_dense", 1).then([] (auto sstp) { + return do_with(sstables::key("first_row"), [sstp] (auto& key) { + auto s = compact_dense_schema(); + return sstp->read_row(s, key).then([sstp, s, &key] (auto mutation) { + auto& mp = mutation->partition(); + + auto exploded = exploded_clustering_prefix({"cl1", "cl2"}); + auto clustering = clustering_key::from_clustering_prefix(*s, exploded); + + auto row = mp.clustered_row(clustering); + match_live_cell(row.cells(), *s, "cl3", boost::any(to_bytes("cl3"))); + return make_ready_future<>(); + }); + }); + }); +} diff --git a/tests/urchin/sstable_test.hh b/tests/urchin/sstable_test.hh index e9a6cc608c..9351f147ca 100644 --- a/tests/urchin/sstable_test.hh +++ b/tests/urchin/sstable_test.hh @@ -249,6 +249,48 @@ inline schema_ptr columns_schema() { return columns; } +inline schema_ptr compact_simple_dense_schema() { + static thread_local auto s = [] { + schema_builder builder(make_lw_shared(schema({}, "tests", "compact_simple_dense", + // partition key + {{"ks", bytes_type}}, + // clustering key + {{"cl1", bytes_type}}, + // regular columns + {{"cl2", bytes_type}}, + // static columns + {}, + // regular column name type + utf8_type, + // comment + "Table with a compact storage, and a single clustering key" + ))); + return builder.build(schema_builder::compact_storage::yes); + }(); + return s; +} + +inline schema_ptr compact_dense_schema() { + static thread_local auto s = [] { + schema_builder builder(make_lw_shared(schema({}, "tests", "compact_simple_dense", + // partition key + {{"ks", bytes_type}}, + // clustering key + {{"cl1", bytes_type}, {"cl2", bytes_type}}, + // regular columns + {{"cl3", bytes_type}}, + // static columns + {}, + // regular column name type + utf8_type, + // comment + "Table with a compact storage, and a compound clustering key" + ))); + return builder.build(schema_builder::compact_storage::yes); + }(); + return s; +} + inline schema_ptr compact_sparse_schema() { static thread_local auto s = [] { schema_builder builder(make_lw_shared(schema({}, "tests", "compact_sparse", diff --git a/tests/urchin/sstables/compact_dense/la-1-big-CRC.db b/tests/urchin/sstables/compact_dense/la-1-big-CRC.db new file mode 100644 index 0000000000000000000000000000000000000000..9a21e47ca516a06980d805ca571b3a94a7f2e6d1 GIT binary patch literal 8 PcmZQzWMJ68k9Q*g1`q;0 literal 0 HcmV?d00001 diff --git a/tests/urchin/sstables/compact_dense/la-1-big-Data.db b/tests/urchin/sstables/compact_dense/la-1-big-Data.db new file mode 100644 index 0000000000000000000000000000000000000000..2ad85e1c3fe6dc549aa0ba64fbc08030c00557fc GIT binary patch literal 55 zcmZSJOv@}PE{QM7FR%aq|9=Am6!0)GC+8S4fJh^t5UX_d=fkdgKo(HIn1KNRzrGEz literal 0 HcmV?d00001 diff --git a/tests/urchin/sstables/compact_dense/la-1-big-Digest.sha1 b/tests/urchin/sstables/compact_dense/la-1-big-Digest.sha1 new file mode 100644 index 0000000000..b22a62c0d7 --- /dev/null +++ b/tests/urchin/sstables/compact_dense/la-1-big-Digest.sha1 @@ -0,0 +1 @@ +3216903601 \ No newline at end of file diff --git a/tests/urchin/sstables/compact_dense/la-1-big-Filter.db b/tests/urchin/sstables/compact_dense/la-1-big-Filter.db new file mode 100644 index 0000000000000000000000000000000000000000..0756b98a8980903dfa3124cb7833b49860d77afe GIT binary patch literal 16 VcmZQzU|?lnU|?iu0Fn#}S^xw@0MP&d literal 0 HcmV?d00001 diff --git a/tests/urchin/sstables/compact_dense/la-1-big-Index.db b/tests/urchin/sstables/compact_dense/la-1-big-Index.db new file mode 100644 index 0000000000000000000000000000000000000000..ac02d0a1264d0fa055897dcf36645269aec0528e GIT binary patch literal 23 UcmZSJOv@}PE{QM7FK0jk077a5=>Px# literal 0 HcmV?d00001 diff --git a/tests/urchin/sstables/compact_dense/la-1-big-Statistics.db b/tests/urchin/sstables/compact_dense/la-1-big-Statistics.db new file mode 100644 index 0000000000000000000000000000000000000000..0318feb4ffd9a1e1e80bd262200209c148ca6b53 GIT binary patch literal 4454 zcmeI$`%6<%902h9*wmRWou;WN0v)y}M+hG(%vD8dj z#AP&hZRakAyOh+5G*zNho-S7;DWwW|Mut2!K_!@LGs5PCEeMMVTNAb=ypXUnVK>5FguM;s$0dM>hZEjOIFWD;;UdCKga@%{Vm|0~ zL|jd{1Dny$JxI(c0ItXqpU;-!xF8l==!0z%h;2&r*K88U&3mvdwAk~{U`wuG+wH-2 z9Kc?@3VUe>BF~$$K^7}qmkWu@qBxY_qJYhu$M^4#v;7+fjq!DW4?BCnM{T zOD5JMx7@|!^QHxjCv9%^6Sk*=!pg}S>RJuWcs8T&SLTxV8H}@zS!jK*t@}kV zF31vXfEMl>MEx~MOU{CE(-zGbv`7~E1A3lI8`@8nagsh5w_+o@p>6y;(0aBPPh5s^ zr<(Jl&`Z{aH$r>9*cAZ1sxPSy+CTn8IkfE6>Rr&$6-Rub6&|-XLLdEYISgHJuR096 zCZ@y{`blx#Iq0#Q1EIk5GRuRl(29@{xc}+usAjnTY28IJ-2aSH^Y%7)KQmOjAsd)g z)0zvw0{31?1oZfL4xAt1ufihu`(e7=W;htMH!E()z5#3=d9_;wY;mCAGwi?krS&N6 zzjc3jlLWM1AkR;SzXuLgL2XhHcX==@f%E15Ei57*#8<{@J>Yr3*XLum7{r4HKeQbK z-cnj$3!i7N*54Pd=hSFfWg%#vcd(^r2)O+9oAyfJj%(NJ;qz*`yaxQ{;QvP=f*P^8V<^M=0f9PJaZY( zTwp=`TW2nMTf<0WKSjmYQbMOg-@8Jke4fkwq0#wewqpsirMUt_v5LcM^e^6ACDdOh C`c29J literal 0 HcmV?d00001 diff --git a/tests/urchin/sstables/compact_dense/la-1-big-Summary.db b/tests/urchin/sstables/compact_dense/la-1-big-Summary.db new file mode 100644 index 0000000000000000000000000000000000000000..5254bc69d3d0d8f5014e9add04bac88bcf2e7009 GIT binary patch literal 107 zcmZQzU}#`qU|FtAEz{nC7z2NVPf7y$(sIMXtVic2um UGXvFwmH%8>SqxML~3Xd7-qjnm_=qn zX$Od@B;9IJKUmsfc@SBVVz62ywH9Ss;r3Sd>GwPTL9_#pna_M@_sz_kc{?mcQ7ko^ z7IGQQU7NUz;VuQWv_P3Hk?obqbFw6InMx(g&s54JnK^37`hCj0eaes|nNqD#D+=YBQ{-!YLZw?dRLB3AF z7Ywr5w<04PuQ8TJ7I6a0S5Eq4kqFegcAsFA)HOPm~a*08-xe2 zX}({EYI-FRR};RE%{UP*#b$}`XV2ldAQf8}f^8CsZAy&S>^F{EbYWX*u@@Y}7GJ=2 z+>Y(qkL?+Vy|@lrl7=029(&C_>?8;5bQf%ue#3%PE(73-^~Cz^lH$151DW>tik-F@ z`#fHswDuK>GbwmKGf%PEv=^woK)|p6*=j*wH;M}%S0I~=HzJ#*=#b5)vyd&P?T|&8 zcs<%mKccvOnK2gK|il9I{`g$t3M8yUSgfm1}%?`h5MgwOu7U2Kdn10g8QGz(hS`NpJ#@fql$o8 zHLW=XEb!?OCqhq77Q^Qw{8?EAe?Lt9?M7ojd$a0mMK^&hHeT#h0$c5__yWf-dSm+u zj^DN~;f5HrcaW9ug}(lr5W~Thc-MEuIKz@X?-PVUzX9@H4I$)Ztz|`@cm1dTVQ`R9RdAe^Kn{ywENE* z;KbY?zf0#$sSIWQ9n28soAUL%|CcitKi*)zV93!P=jx1SE;K>LGZ&f;%6R5N^I<%5 z8P8l`LHt{1E_%bYkJtMs%Cnpjy5&w?IjGX-zx+q?OSnHZ9*oZoEOV|jU!W;gzGpdS Kni6n@VCpaLJWk30 literal 0 HcmV?d00001 diff --git a/tests/urchin/sstables/compact_simple_dense/la-1-big-Summary.db b/tests/urchin/sstables/compact_simple_dense/la-1-big-Summary.db new file mode 100644 index 0000000000000000000000000000000000000000..169ec57b6db11e5e8401ed7fd14cacf93b31c8b7 GIT binary patch literal 109 zcmZQzU}#`qU|