Merge branch 'main' into er/refactor/scalar_comp

pull/24376/head
kodiakhq[bot] 2021-05-24 17:02:14 +00:00 committed by GitHub
commit db96286ed7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
28 changed files with 334 additions and 383 deletions

305
Cargo.lock generated
View File

@ -37,18 +37,18 @@ version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "796540673305a66d127804eef19ad696f1f204b8c1025aaca4958c17eab32877" checksum = "796540673305a66d127804eef19ad696f1f204b8c1025aaca4958c17eab32877"
dependencies = [ dependencies = [
"getrandom 0.2.2", "getrandom 0.2.3",
"once_cell", "once_cell",
"version_check", "version_check",
] ]
[[package]] [[package]]
name = "ahash" name = "ahash"
version = "0.7.2" version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f200cbb1e856866d9eade941cf3aa0c5d7dd36f74311c4273b494f4ef036957" checksum = "11149c3eb723d15cb065a9ea5cc74ab57250f098ef33c9f6f7f39b48bd207750"
dependencies = [ dependencies = [
"getrandom 0.2.2", "getrandom 0.2.3",
"once_cell", "once_cell",
"version_check", "version_check",
] ]
@ -124,15 +124,9 @@ checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
[[package]] [[package]]
name = "arrow" name = "arrow"
version = "0.1.0" version = "4.1.0"
dependencies = [ source = "registry+https://github.com/rust-lang/crates.io-index"
"arrow 4.0.0-SNAPSHOT", checksum = "20cdf087304d5cdd743abd621b4b1b388848d29491932dae6f676ec89ebda0ae"
]
[[package]]
name = "arrow"
version = "4.0.0-SNAPSHOT"
source = "git+https://github.com/apache/arrow-rs?rev=8226219fe7104f6c8a2740806f96f02c960d991c#8226219fe7104f6c8a2740806f96f02c960d991c"
dependencies = [ dependencies = [
"cfg_aliases", "cfg_aliases",
"chrono", "chrono",
@ -154,10 +148,11 @@ dependencies = [
[[package]] [[package]]
name = "arrow-flight" name = "arrow-flight"
version = "4.0.0-SNAPSHOT" version = "4.1.0"
source = "git+https://github.com/apache/arrow-rs?rev=8226219fe7104f6c8a2740806f96f02c960d991c#8226219fe7104f6c8a2740806f96f02c960d991c" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be523cfd3669eee90aac4223cbc6fa8c4fd4cecf3281f061e5421e3e8aa91148"
dependencies = [ dependencies = [
"arrow 4.0.0-SNAPSHOT", "arrow",
"bytes", "bytes",
"futures", "futures",
"proc-macro2", "proc-macro2",
@ -168,19 +163,12 @@ dependencies = [
"tonic-build", "tonic-build",
] ]
[[package]]
name = "arrow_flight"
version = "0.1.0"
dependencies = [
"arrow-flight",
]
[[package]] [[package]]
name = "arrow_util" name = "arrow_util"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"ahash 0.7.2", "ahash 0.7.3",
"arrow 0.1.0", "arrow",
"futures", "futures",
"hashbrown 0.11.2", "hashbrown 0.11.2",
"num-traits", "num-traits",
@ -224,9 +212,9 @@ dependencies = [
[[package]] [[package]]
name = "async-stream" name = "async-stream"
version = "0.3.1" version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0a26cb53174ddd320edfff199a853f93d571f48eeb4dde75e67a9a3dbb7b7e5e" checksum = "171374e7e3b2504e0e5236e3b59260560f9fe94bfe9ac39ba5e4e929c5590625"
dependencies = [ dependencies = [
"async-stream-impl", "async-stream-impl",
"futures-core", "futures-core",
@ -234,9 +222,9 @@ dependencies = [
[[package]] [[package]]
name = "async-stream-impl" name = "async-stream-impl"
version = "0.3.1" version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "db134ba52475c060f3329a8ef0f8786d6b872ed01515d4b79c162e5798da1340" checksum = "648ed8c8d2ce5409ccd57453d9d1b214b342a0d69376a6feda1fd6cae3299308"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -510,11 +498,11 @@ checksum = "3a4f925191b4367301851c6d99b09890311d74b0d43f274c0b34c86d308a3663"
[[package]] [[package]]
name = "cast" name = "cast"
version = "0.2.5" version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cc38c385bfd7e444464011bb24820f40dd1c76bcdfa1b78611cb7c2e5cafab75" checksum = "57cdfa5d50aad6cb4d44dcab6101a7f79925bd59d82ca42f38a9856a28865374"
dependencies = [ dependencies = [
"rustc_version", "rustc_version 0.3.3",
] ]
[[package]] [[package]]
@ -587,6 +575,17 @@ dependencies = [
"vec_map", "vec_map",
] ]
[[package]]
name = "clipboard-win"
version = "4.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4e4ea1881992efc993e4dc50a324cdbd03216e41bdc8385720ff47efc9bd2ca8"
dependencies = [
"error-code",
"str-buf",
"winapi",
]
[[package]] [[package]]
name = "cloud-storage" name = "cloud-storage"
version = "0.9.0" version = "0.9.0"
@ -622,9 +621,9 @@ dependencies = [
[[package]] [[package]]
name = "const_fn" name = "const_fn"
version = "0.4.7" version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "402da840495de3f976eaefc3485b7f5eb5b0bf9761f9a47be27fe975b3b8c2ec" checksum = "f92cfa0fd5690b3cf8c1ef2cabbd9b7ef22fa53cf5e1f92b05103f6d5d1cf6e7"
[[package]] [[package]]
name = "constant_time_eq" name = "constant_time_eq"
@ -650,9 +649,9 @@ checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b"
[[package]] [[package]]
name = "cpufeatures" name = "cpufeatures"
version = "0.1.3" version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "281f563b2c3a0e535ab12d81d3c5859045795256ad269afa7c19542585b68f93" checksum = "ed00c67cb5d0a7d64a44f6ad2668db7e7530311dd53ea79bcd4fb022c64911c8"
dependencies = [ dependencies = [
"libc", "libc",
] ]
@ -906,20 +905,21 @@ dependencies = [
[[package]] [[package]]
name = "datafusion" name = "datafusion"
version = "4.0.0-SNAPSHOT" version = "4.0.0-SNAPSHOT"
source = "git+https://github.com/apache/arrow-datafusion.git?rev=9cf32cf2cda8472b87130142c4eee1126d4d9cbe#9cf32cf2cda8472b87130142c4eee1126d4d9cbe" source = "git+https://github.com/apache/arrow-datafusion.git?rev=7359e4b4df0836b8de970d551c6eeae22d1cc810#7359e4b4df0836b8de970d551c6eeae22d1cc810"
dependencies = [ dependencies = [
"ahash 0.7.2", "ahash 0.7.3",
"arrow 4.0.0-SNAPSHOT", "arrow",
"async-trait", "async-trait",
"chrono", "chrono",
"futures", "futures",
"hashbrown 0.11.2", "hashbrown 0.11.2",
"log", "log",
"num_cpus", "num_cpus",
"ordered-float 2.2.0", "ordered-float 2.4.0",
"parquet 4.0.0-SNAPSHOT", "parquet",
"paste 1.0.5", "paste 1.0.5",
"pin-project-lite", "pin-project-lite",
"rand 0.8.3",
"smallvec", "smallvec",
"sqlparser 0.9.0", "sqlparser 0.9.0",
"tokio", "tokio",
@ -1088,6 +1088,16 @@ dependencies = [
"termcolor", "termcolor",
] ]
[[package]]
name = "error-code"
version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5115567ac25674e0043e472be13d14e537f37ea8aa4bdc4aef0c89add1db1ff"
dependencies = [
"libc",
"str-buf",
]
[[package]] [[package]]
name = "event-listener" name = "event-listener"
version = "2.5.1" version = "2.5.1"
@ -1128,6 +1138,16 @@ dependencies = [
"synstructure", "synstructure",
] ]
[[package]]
name = "fd-lock"
version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0010f02effd88c702318c5dde0463206be67495d0b4d906ba7c0a8f166cc7f06"
dependencies = [
"libc",
"winapi",
]
[[package]] [[package]]
name = "fixedbitset" name = "fixedbitset"
version = "0.2.0" version = "0.2.0"
@ -1197,16 +1217,6 @@ dependencies = [
"percent-encoding", "percent-encoding",
] ]
[[package]]
name = "fs2"
version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213"
dependencies = [
"libc",
"winapi",
]
[[package]] [[package]]
name = "fs_extra" name = "fs_extra"
version = "1.2.0" version = "1.2.0"
@ -1368,9 +1378,9 @@ dependencies = [
[[package]] [[package]]
name = "getrandom" name = "getrandom"
version = "0.2.2" version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8" checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753"
dependencies = [ dependencies = [
"cfg-if", "cfg-if",
"libc", "libc",
@ -1438,7 +1448,7 @@ version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
dependencies = [ dependencies = [
"ahash 0.7.2", "ahash 0.7.3",
] ]
[[package]] [[package]]
@ -1642,8 +1652,8 @@ dependencies = [
name = "influxdb_iox" name = "influxdb_iox"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"arrow 0.1.0", "arrow",
"arrow_flight", "arrow-flight",
"arrow_util", "arrow_util",
"assert_cmd", "assert_cmd",
"byteorder", "byteorder",
@ -1683,7 +1693,7 @@ dependencies = [
"packers", "packers",
"panic_logging", "panic_logging",
"parking_lot", "parking_lot",
"parquet 0.1.0", "parquet",
"pprof", "pprof",
"predicates", "predicates",
"prettytable-rs", "prettytable-rs",
@ -1720,8 +1730,8 @@ dependencies = [
name = "influxdb_iox_client" name = "influxdb_iox_client"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"arrow 0.1.0", "arrow",
"arrow_flight", "arrow-flight",
"futures-util", "futures-util",
"generated_types", "generated_types",
"http", "http",
@ -1764,7 +1774,7 @@ dependencies = [
name = "ingest" name = "ingest"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"arrow 0.1.0", "arrow",
"flate2", "flate2",
"influxdb_line_protocol", "influxdb_line_protocol",
"influxdb_tsm", "influxdb_tsm",
@ -1772,7 +1782,7 @@ dependencies = [
"observability_deps", "observability_deps",
"packers", "packers",
"parking_lot", "parking_lot",
"parquet 0.1.0", "parquet",
"snafu", "snafu",
"test_helpers", "test_helpers",
] ]
@ -1796,7 +1806,7 @@ checksum = "48dc51180a9b377fd75814d0cc02199c20f8e99433d6762f650d39cdbbd3b56f"
name = "internal_types" name = "internal_types"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"arrow 0.1.0", "arrow",
"arrow_util", "arrow_util",
"observability_deps", "observability_deps",
"snafu", "snafu",
@ -1984,7 +1994,7 @@ checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771"
name = "mem_qe" name = "mem_qe"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"arrow 0.1.0", "arrow",
"chrono", "chrono",
"criterion", "criterion",
"croaring", "croaring",
@ -1993,7 +2003,7 @@ dependencies = [
"human_format", "human_format",
"observability_deps", "observability_deps",
"packers", "packers",
"parquet 0.1.0", "parquet",
"snafu", "snafu",
] ]
@ -2121,7 +2131,7 @@ dependencies = [
name = "mutable_buffer" name = "mutable_buffer"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"arrow 0.1.0", "arrow",
"arrow_util", "arrow_util",
"async-trait", "async-trait",
"criterion", "criterion",
@ -2212,11 +2222,11 @@ dependencies = [
[[package]] [[package]]
name = "num" name = "num"
version = "0.3.1" version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b7a8e9be5e039e2ff869df49155f1c06bd01ade2117ec783e56ab0932b67a8f" checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606"
dependencies = [ dependencies = [
"num-bigint 0.3.2", "num-bigint 0.4.0",
"num-complex", "num-complex",
"num-integer", "num-integer",
"num-iter", "num-iter",
@ -2237,9 +2247,9 @@ dependencies = [
[[package]] [[package]]
name = "num-bigint" name = "num-bigint"
version = "0.3.2" version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d0a3d5e207573f948a9e5376662aa743a2ea13f7c50a554d7af443a73fbfeba" checksum = "4e0d047c1062aa51e256408c560894e5251f08925980e53cf1aa5bd00eec6512"
dependencies = [ dependencies = [
"autocfg", "autocfg",
"num-integer", "num-integer",
@ -2248,9 +2258,9 @@ dependencies = [
[[package]] [[package]]
name = "num-complex" name = "num-complex"
version = "0.3.1" version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "747d632c0c558b87dbabbe6a82f3b4ae03720d0646ac5b7b4dae89394be5f2c5" checksum = "26873667bbbb7c5182d4a37c1add32cdf09f841af72da53318fdb81543c15085"
dependencies = [ dependencies = [
"num-traits", "num-traits",
] ]
@ -2288,12 +2298,12 @@ dependencies = [
[[package]] [[package]]
name = "num-rational" name = "num-rational"
version = "0.3.2" version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" checksum = "d41702bd167c2df5520b384281bc111a4b5efcf7fbc4c9c222c815b07e0a6a6a"
dependencies = [ dependencies = [
"autocfg", "autocfg",
"num-bigint 0.3.2", "num-bigint 0.4.0",
"num-integer", "num-integer",
"num-traits", "num-traits",
] ]
@ -2503,9 +2513,9 @@ dependencies = [
[[package]] [[package]]
name = "ordered-float" name = "ordered-float"
version = "2.2.0" version = "2.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b50b8919aecb97e5ee9aceef27e24f39c46b11831130f4a6b7b091ec5de0de12" checksum = "76d99537dd7019c4dabfcf3898a43ee685412f76e6bee1ecc48785d730c1a275"
dependencies = [ dependencies = [
"num-traits", "num-traits",
] ]
@ -2537,12 +2547,12 @@ dependencies = [
name = "packers" name = "packers"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"arrow 0.1.0", "arrow",
"human_format", "human_format",
"influxdb_tsm", "influxdb_tsm",
"internal_types", "internal_types",
"observability_deps", "observability_deps",
"parquet 0.1.0", "parquet",
"rand 0.8.3", "rand 0.8.3",
"snafu", "snafu",
"test_helpers", "test_helpers",
@ -2582,24 +2592,18 @@ dependencies = [
[[package]] [[package]]
name = "parquet" name = "parquet"
version = "0.1.0" version = "4.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "193b8db290021fa28a6447df8f433e39b3caab20ee08b874d0a5c1c34aef68de"
dependencies = [ dependencies = [
"parquet 4.0.0-SNAPSHOT", "arrow",
] "base64 0.13.0",
[[package]]
name = "parquet"
version = "4.0.0-SNAPSHOT"
source = "git+https://github.com/apache/arrow-rs?rev=8226219fe7104f6c8a2740806f96f02c960d991c#8226219fe7104f6c8a2740806f96f02c960d991c"
dependencies = [
"arrow 4.0.0-SNAPSHOT",
"base64 0.12.3",
"brotli", "brotli",
"byteorder", "byteorder",
"chrono", "chrono",
"flate2", "flate2",
"lz4", "lz4",
"num-bigint 0.3.2", "num-bigint 0.4.0",
"parquet-format", "parquet-format",
"snap", "snap",
"thrift", "thrift",
@ -2619,7 +2623,7 @@ dependencies = [
name = "parquet_file" name = "parquet_file"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"arrow 0.1.0", "arrow",
"arrow_util", "arrow_util",
"bytes", "bytes",
"data_types", "data_types",
@ -2632,7 +2636,7 @@ dependencies = [
"object_store", "object_store",
"observability_deps", "observability_deps",
"parking_lot", "parking_lot",
"parquet 0.1.0", "parquet",
"parquet-format", "parquet-format",
"prost", "prost",
"prost-types", "prost-types",
@ -2699,6 +2703,15 @@ version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d9978962f8a4b158e97447a6d09d2d75e206d2994eff056c894019f362b27142" checksum = "d9978962f8a4b158e97447a6d09d2d75e206d2994eff056c894019f362b27142"
[[package]]
name = "pest"
version = "2.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53"
dependencies = [
"ucd-trie",
]
[[package]] [[package]]
name = "petgraph" name = "petgraph"
version = "0.5.1" version = "0.5.1"
@ -2769,9 +2782,9 @@ checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c"
[[package]] [[package]]
name = "plotters" name = "plotters"
version = "0.3.0" version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "45ca0ae5f169d0917a7c7f5a9c1a3d3d9598f18f529dd2b8373ed988efea307a" checksum = "32a3fd9ec30b9749ce28cd91f255d569591cdf937fe280c312143e3c4bad6f2a"
dependencies = [ dependencies = [
"num-traits", "num-traits",
"plotters-backend", "plotters-backend",
@ -2986,7 +2999,7 @@ checksum = "45604fc7a88158e7d514d8e22e14ac746081e7a70d7690074dd0029ee37458d6"
name = "query" name = "query"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"arrow 0.1.0", "arrow",
"arrow_util", "arrow_util",
"async-trait", "async-trait",
"chrono", "chrono",
@ -3103,7 +3116,7 @@ version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7" checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7"
dependencies = [ dependencies = [
"getrandom 0.2.2", "getrandom 0.2.3",
] ]
[[package]] [[package]]
@ -3136,9 +3149,9 @@ dependencies = [
[[package]] [[package]]
name = "rayon" name = "rayon"
version = "1.5.0" version = "1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674" checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90"
dependencies = [ dependencies = [
"autocfg", "autocfg",
"crossbeam-deque", "crossbeam-deque",
@ -3148,9 +3161,9 @@ dependencies = [
[[package]] [[package]]
name = "rayon-core" name = "rayon-core"
version = "1.9.0" version = "1.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a" checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e"
dependencies = [ dependencies = [
"crossbeam-channel", "crossbeam-channel",
"crossbeam-deque", "crossbeam-deque",
@ -3163,7 +3176,7 @@ dependencies = [
name = "read_buffer" name = "read_buffer"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"arrow 0.1.0", "arrow",
"arrow_util", "arrow_util",
"criterion", "criterion",
"croaring", "croaring",
@ -3217,7 +3230,7 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64" checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64"
dependencies = [ dependencies = [
"getrandom 0.2.2", "getrandom 0.2.3",
"redox_syscall 0.2.8", "redox_syscall 0.2.8",
] ]
@ -3351,7 +3364,7 @@ dependencies = [
"log", "log",
"rusoto_credential", "rusoto_credential",
"rusoto_signature", "rusoto_signature",
"rustc_version", "rustc_version 0.2.3",
"serde", "serde",
"serde_json", "serde_json",
"tokio", "tokio",
@ -3407,7 +3420,7 @@ dependencies = [
"percent-encoding", "percent-encoding",
"pin-project-lite", "pin-project-lite",
"rusoto_credential", "rusoto_credential",
"rustc_version", "rustc_version 0.2.3",
"serde", "serde",
"sha2", "sha2",
"time 0.2.26", "time 0.2.26",
@ -3444,7 +3457,16 @@ version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
dependencies = [ dependencies = [
"semver", "semver 0.9.0",
]
[[package]]
name = "rustc_version"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee"
dependencies = [
"semver 0.11.0",
] ]
[[package]] [[package]]
@ -3474,14 +3496,15 @@ dependencies = [
[[package]] [[package]]
name = "rustyline" name = "rustyline"
version = "8.0.0" version = "8.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b9e1b597fcd1eeb1d6b25b493538e5aa19629eb08932184b85fef931ba87e893" checksum = "fbd4eaf7a7738f76c98e4f0395253ae853be3eb018f7b0bb57fe1b6c17e31874"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"cfg-if", "cfg-if",
"clipboard-win",
"dirs-next", "dirs-next",
"fs2", "fd-lock",
"libc", "libc",
"log", "log",
"memchr", "memchr",
@ -3565,7 +3588,16 @@ version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
dependencies = [ dependencies = [
"semver-parser", "semver-parser 0.7.0",
]
[[package]]
name = "semver"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6"
dependencies = [
"semver-parser 0.10.2",
] ]
[[package]] [[package]]
@ -3574,6 +3606,15 @@ version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
[[package]]
name = "semver-parser"
version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7"
dependencies = [
"pest",
]
[[package]] [[package]]
name = "serde" name = "serde"
version = "1.0.126" version = "1.0.126"
@ -3666,8 +3707,8 @@ dependencies = [
name = "server" name = "server"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"arrow 0.1.0", "arrow",
"arrow_flight", "arrow-flight",
"arrow_util", "arrow_util",
"async-trait", "async-trait",
"bytes", "bytes",
@ -3871,7 +3912,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5" checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5"
dependencies = [ dependencies = [
"discard", "discard",
"rustc_version", "rustc_version 0.2.3",
"stdweb-derive", "stdweb-derive",
"stdweb-internal-macros", "stdweb-internal-macros",
"stdweb-internal-runtime", "stdweb-internal-runtime",
@ -3913,6 +3954,12 @@ version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0" checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0"
[[package]]
name = "str-buf"
version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d44a3643b4ff9caf57abcee9c2c621d6c03d9135e0d8b589bd9afb5992cb176a"
[[package]] [[package]]
name = "str_stack" name = "str_stack"
version = "0.1.0" version = "0.1.0"
@ -4061,18 +4108,18 @@ dependencies = [
[[package]] [[package]]
name = "thiserror" name = "thiserror"
version = "1.0.24" version = "1.0.25"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e0f4a65597094d4483ddaed134f409b2cb7c1beccf25201a9f73c719254fa98e" checksum = "fa6f76457f59514c7eeb4e59d891395fab0b2fd1d40723ae737d64153392e9c6"
dependencies = [ dependencies = [
"thiserror-impl", "thiserror-impl",
] ]
[[package]] [[package]]
name = "thiserror-impl" name = "thiserror-impl"
version = "1.0.24" version = "1.0.25"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7765189610d8241a44529806d6fd1f2e0a08734313a35d5b3a556f92b381f3c0" checksum = "8a36768c0fbf1bb15eca10defa29526bda730a2376c2ab4393ccfa16fb1a318d"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -4515,6 +4562,12 @@ version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "879f6906492a7cd215bfa4cf595b600146ccfac0c79bcbd1f3000162af5e8b06" checksum = "879f6906492a7cd215bfa4cf595b600146ccfac0c79bcbd1f3000162af5e8b06"
[[package]]
name = "ucd-trie"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c"
[[package]] [[package]]
name = "unicode-bidi" name = "unicode-bidi"
version = "0.3.5" version = "0.3.5"
@ -4582,15 +4635,15 @@ version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
dependencies = [ dependencies = [
"getrandom 0.2.2", "getrandom 0.2.3",
"serde", "serde",
] ]
[[package]] [[package]]
name = "vcpkg" name = "vcpkg"
version = "0.2.12" version = "0.2.13"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cbdbff6266a24120518560b5dc983096efb98462e51d0d68169895b237be3e5d" checksum = "025ce40a007e1907e58d5bc1a594def78e5573bb0b1160bc389634e8f12e4faa"
[[package]] [[package]]
name = "vec_map" name = "vec_map"
@ -4835,18 +4888,18 @@ checksum = "4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd"
[[package]] [[package]]
name = "zstd" name = "zstd"
version = "0.7.0+zstd.1.4.9" version = "0.8.1+zstd.1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9428752481d8372e15b1bf779ea518a179ad6c771cca2d2c60e4fbff3cc2cd52" checksum = "357d6bb1bd9c6f6a55a5a15c74d01260b272f724dc60cc829b86ebd2172ac5ef"
dependencies = [ dependencies = [
"zstd-safe", "zstd-safe",
] ]
[[package]] [[package]]
name = "zstd-safe" name = "zstd-safe"
version = "3.1.0+zstd.1.4.9" version = "4.1.0+zstd.1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5aa1926623ad7fe406e090555387daf73db555b948134b4d73eac5eb08fb666d" checksum = "d30375f78e185ca4c91930f42ea2c0162f9aa29737032501f93b79266d985ae7"
dependencies = [ dependencies = [
"libc", "libc",
"zstd-sys", "zstd-sys",
@ -4854,9 +4907,9 @@ dependencies = [
[[package]] [[package]]
name = "zstd-sys" name = "zstd-sys"
version = "1.5.0+zstd.1.4.9" version = "1.6.0+zstd.1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4e6c094340240369025fc6b731b054ee2a834328fa584310ac96aa4baebdc465" checksum = "2141bed8922b427761470e6bbfeff255da94fa20b0bbeab0d9297fcaf71e3aa7"
dependencies = [ dependencies = [
"cc", "cc",
"libc", "libc",

View File

@ -8,8 +8,6 @@ readme = "README.md"
[workspace] # In alphabetical order [workspace] # In alphabetical order
members = [ members = [
"arrow",
"arrow_flight",
"arrow_util", "arrow_util",
"data_types", "data_types",
"datafusion", "datafusion",
@ -30,7 +28,6 @@ members = [
"observability_deps", "observability_deps",
"packers", "packers",
"panic_logging", "panic_logging",
"parquet",
"query", "query",
"read_buffer", "read_buffer",
"server", "server",
@ -47,8 +44,6 @@ debug = true
[dependencies] [dependencies]
# Workspace dependencies, in alphabetical order # Workspace dependencies, in alphabetical order
arrow = { path = "arrow" }
arrow_flight = { path = "arrow_flight" }
datafusion = { path = "datafusion" } datafusion = { path = "datafusion" }
data_types = { path = "data_types" } data_types = { path = "data_types" }
generated_types = { path = "generated_types" } generated_types = { path = "generated_types" }
@ -66,7 +61,6 @@ object_store = { path = "object_store" }
observability_deps = { path = "observability_deps" } observability_deps = { path = "observability_deps" }
packers = { path = "packers" } packers = { path = "packers" }
panic_logging = { path = "panic_logging" } panic_logging = { path = "panic_logging" }
parquet = { path = "parquet" }
query = { path = "query" } query = { path = "query" }
read_buffer = { path = "read_buffer" } read_buffer = { path = "read_buffer" }
server = { path = "server" } server = { path = "server" }
@ -74,6 +68,8 @@ tracker = { path = "tracker" }
write_buffer = { path = "write_buffer" } write_buffer = { path = "write_buffer" }
# Crates.io dependencies, in alphabetical order # Crates.io dependencies, in alphabetical order
arrow = "4.0"
arrow-flight = "4.0"
byteorder = "1.3.4" byteorder = "1.3.4"
bytes = "1.0" bytes = "1.0"
chrono = "0.4" chrono = "0.4"
@ -90,6 +86,7 @@ opentelemetry-jaeger = { version = "0.12", features = ["tokio"] }
opentelemetry-otlp = "0.6" opentelemetry-otlp = "0.6"
parking_lot = "0.11.1" parking_lot = "0.11.1"
itertools = "0.9.0" itertools = "0.9.0"
parquet = "4.0"
# used by arrow/datafusion anyway # used by arrow/datafusion anyway
prettytable-rs = "0.8" prettytable-rs = "0.8"
pprof = { version = "^0.4", default-features = false, features = ["flamegraph", "protobuf"] } pprof = { version = "^0.4", default-features = false, features = ["flamegraph", "protobuf"] }

View File

@ -1,11 +0,0 @@
[package]
name = "arrow"
version = "0.1.0"
authors = ["Andrew Lamb <andrew@nerdnetworks.org>"]
edition = "2018"
description = "Re-exports arrow at a specific version"
[dependencies]
# Rename to workaround doctest bug
upstream = { git = "https://github.com/apache/arrow-rs", rev = "8226219fe7104f6c8a2740806f96f02c960d991c", package="arrow", features = ["prettyprint"]}

View File

@ -1 +0,0 @@
pub use upstream::*;

View File

@ -1,11 +0,0 @@
[package]
name = "arrow_flight"
version = "0.1.0"
authors = ["Andrew Lamb <andrew@nerdnetworks.org>"]
edition = "2018"
description = "Re-exports arrow-flight at a specific version"
[dependencies]
# Rename to workaround doctest bug
upstream = { git = "https://github.com/apache/arrow-rs", rev = "8226219fe7104f6c8a2740806f96f02c960d991c", package = "arrow-flight" }

View File

@ -1 +0,0 @@
pub use upstream::*;

View File

@ -7,7 +7,7 @@ description = "Apache Arrow utilities"
[dependencies] [dependencies]
arrow = { path = "../arrow" } arrow = "4.0"
ahash = "0.7.2" ahash = "0.7.2"
num-traits = "0.2" num-traits = "0.2"
futures = "0.3" futures = "0.3"

View File

@ -9,4 +9,4 @@ description = "Re-exports datafusion at a specific version"
# Rename to workaround doctest bug # Rename to workaround doctest bug
# Turn off optional datafusion features (function packages) # Turn off optional datafusion features (function packages)
upstream = { git = "https://github.com/apache/arrow-datafusion.git", rev = "9cf32cf2cda8472b87130142c4eee1126d4d9cbe", default-features = false, package = "datafusion" } upstream = { git = "https://github.com/apache/arrow-datafusion.git", rev = "7359e4b4df0836b8de970d551c6eeae22d1cc810", default-features = false, package = "datafusion" }

View File

@ -5,13 +5,13 @@ authors = ["Dom Dwyer <dom@itsallbroken.com>"]
edition = "2018" edition = "2018"
[features] [features]
flight = ["arrow", "arrow_flight", "serde/derive", "serde_json", "futures-util"] flight = ["arrow", "arrow-flight", "serde/derive", "serde_json", "futures-util"]
format = ["arrow"] format = ["arrow"]
[dependencies] [dependencies]
# Workspace dependencies, in alphabetical order # Workspace dependencies, in alphabetical order
arrow = { path = "../arrow", optional = true } arrow = { version = "4.0", optional = true }
arrow_flight = { path = "../arrow_flight", optional = true} arrow-flight = { version = "4.0", optional = true}
generated_types = { path = "../generated_types" } generated_types = { path = "../generated_types" }
# Crates.io dependencies, in alphabetical order # Crates.io dependencies, in alphabetical order

View File

@ -5,12 +5,12 @@ authors = ["Andrew Lamb <andrew@nerdnetworks.org>"]
edition = "2018" edition = "2018"
[dependencies] # In alphabetical order [dependencies] # In alphabetical order
arrow = { path = "../arrow" } arrow = "4.0"
influxdb_line_protocol = { path = "../influxdb_line_protocol" } influxdb_line_protocol = { path = "../influxdb_line_protocol" }
influxdb_tsm = { path = "../influxdb_tsm" } influxdb_tsm = { path = "../influxdb_tsm" }
internal_types = { path = "../internal_types" } internal_types = { path = "../internal_types" }
packers = { path = "../packers" } packers = { path = "../packers" }
parquet = { path = "../parquet" } parquet = "4.0"
snafu = "0.6.2" snafu = "0.6.2"
observability_deps = { path = "../observability_deps" } observability_deps = { path = "../observability_deps" }

View File

@ -7,7 +7,7 @@ description = "InfluxDB IOx internal types, shared between IOx instances"
readme = "README.md" readme = "README.md"
[dependencies] [dependencies]
arrow = { path = "../arrow" } arrow = "4.0"
snafu = "0.6" snafu = "0.6"
observability_deps = { path = "../observability_deps" } observability_deps = { path = "../observability_deps" }

View File

@ -5,7 +5,7 @@ authors = ["Edd Robinson <me@edd.io>"]
edition = "2018" edition = "2018"
[dependencies] # In alphabetical order [dependencies] # In alphabetical order
arrow = { path = "../arrow" } arrow = "4.0"
chrono = "0.4" chrono = "0.4"
croaring = "0.4.5" croaring = "0.4.5"
crossbeam = "0.8" crossbeam = "0.8"
@ -14,7 +14,7 @@ human_format = "1.0.3"
packers = { path = "../packers" } packers = { path = "../packers" }
snafu = "0.6.8" snafu = "0.6.8"
observability_deps = { path = "../observability_deps" } observability_deps = { path = "../observability_deps" }
parquet = { path = "../parquet" } parquet = "4.0"
[dev-dependencies] # In alphabetical order [dev-dependencies] # In alphabetical order
criterion = "0.3" criterion = "0.3"

View File

@ -14,7 +14,7 @@ edition = "2018"
# 2. Keep change/compile/link time down during development when working on just this crate # 2. Keep change/compile/link time down during development when working on just this crate
[dependencies] # In alphabetical order [dependencies] # In alphabetical order
arrow = { path = "../arrow" } arrow = { version = "4.0" }
arrow_util = { path = "../arrow_util" } arrow_util = { path = "../arrow_util" }
async-trait = "0.1" async-trait = "0.1"
data_types = { path = "../data_types" } data_types = { path = "../data_types" }
@ -29,7 +29,6 @@ tokio = { version = "1.0", features = ["macros"] }
tracker = { path = "../tracker" } tracker = { path = "../tracker" }
[dev-dependencies] # In alphabetical order [dev-dependencies] # In alphabetical order
arrow_util = { path = "../arrow_util" }
test_helpers = { path = "../test_helpers" } test_helpers = { path = "../test_helpers" }
criterion = "0.3" criterion = "0.3"
flate2 = "1.0.20" flate2 = "1.0.20"

View File

@ -5,13 +5,13 @@ authors = ["Andrew Lamb <andrew@nerdnetworks.org>"]
edition = "2018" edition = "2018"
[dependencies] # In alphabetical order [dependencies] # In alphabetical order
arrow = { path = "../arrow" } arrow = "4.0"
human_format = "1.0.3" human_format = "1.0.3"
influxdb_tsm = { path = "../influxdb_tsm" } influxdb_tsm = { path = "../influxdb_tsm" }
internal_types = { path = "../internal_types" } internal_types = { path = "../internal_types" }
snafu = "0.6.2" snafu = "0.6.2"
observability_deps = { path = "../observability_deps" } observability_deps = { path = "../observability_deps" }
parquet = { path = "../parquet" } parquet = "4.0"
[dev-dependencies] # In alphabetical order [dev-dependencies] # In alphabetical order
rand = "0.8.3" rand = "0.8.3"

View File

@ -1,11 +0,0 @@
[package]
name = "parquet"
version = "0.1.0"
authors = ["Andrew Lamb <andrew@nerdnetworks.org>"]
edition = "2018"
description = "Re-exports the parquet crate at a specific version"
[dependencies]
# Rename to workaround doctest bug
upstream = { git = "https://github.com/apache/arrow-rs", rev = "8226219fe7104f6c8a2740806f96f02c960d991c", default-features = false, features = ["arrow", "snap", "brotli", "flate2", "lz4", "zstd"], package = "parquet" }

View File

@ -1,4 +0,0 @@
#![deny(broken_intra_doc_links, rust_2018_idioms)]
#![allow(clippy::clone_on_ref_ptr)]
pub use upstream::*;

View File

@ -5,7 +5,7 @@ authors = ["Nga Tran <nga-tran@live.com>"]
edition = "2018" edition = "2018"
[dependencies] # In alphabetical order [dependencies] # In alphabetical order
arrow = { path = "../arrow" } arrow = "4.0"
bytes = "1.0" bytes = "1.0"
data_types = { path = "../data_types" } data_types = { path = "../data_types" }
datafusion = { path = "../datafusion" } datafusion = { path = "../datafusion" }
@ -18,7 +18,7 @@ object_store = {path = "../object_store"}
observability_deps = { path = "../observability_deps" } observability_deps = { path = "../observability_deps" }
# Turn off the "arrow" feature; it currently has a bug that causes the crate to rebuild every time # Turn off the "arrow" feature; it currently has a bug that causes the crate to rebuild every time
# and we're not currently using it anyway # and we're not currently using it anyway
parquet = { path = "../parquet" } parquet = "4.0"
parquet-format = "2.6" parquet-format = "2.6"
parking_lot = "0.11.1" parking_lot = "0.11.1"
prost = "0.7" prost = "0.7"

View File

@ -77,10 +77,9 @@ impl Chunk {
file_location: Path, file_location: Path,
store: Arc<ObjectStore>, store: Arc<ObjectStore>,
schema: Schema, schema: Schema,
range: Option<TimestampRange>,
metrics: ChunkMetrics, metrics: ChunkMetrics,
) -> Self { ) -> Self {
let table = Table::new(table_summary, file_location, store, schema, range); let table = Table::new(table_summary, file_location, store, schema);
let mut chunk = Self { let mut chunk = Self {
partition_key: part_key.into(), partition_key: part_key.into(),
@ -130,11 +129,6 @@ impl Chunk {
}) })
} }
/// Return the timestamp range of the table
pub fn timestamp_range(&self) -> Option<TimestampRange> {
self.table.timestamp_range()
}
// Return all tables of this chunk whose timestamp overlaps with the give one // Return all tables of this chunk whose timestamp overlaps with the give one
pub fn table_names( pub fn table_names(
&self, &self,

View File

@ -88,9 +88,8 @@
//! [Thrift Compact Protocol]: https://github.com/apache/thrift/blob/master/doc/specs/thrift-compact-protocol.md //! [Thrift Compact Protocol]: https://github.com/apache/thrift/blob/master/doc/specs/thrift-compact-protocol.md
use std::sync::Arc; use std::sync::Arc;
use data_types::{ use data_types::partition_metadata::{
partition_metadata::{ColumnSummary, InfluxDbType, StatValues, Statistics, TableSummary}, ColumnSummary, InfluxDbType, StatValues, Statistics, TableSummary,
timestamp::TimestampRange,
}; };
use internal_types::schema::{InfluxColumnType, InfluxFieldType, Schema}; use internal_types::schema::{InfluxColumnType, InfluxFieldType, Schema};
use parquet::{ use parquet::{
@ -193,44 +192,30 @@ pub fn read_statistics_from_parquet_metadata(
parquet_md: &ParquetMetaData, parquet_md: &ParquetMetaData,
schema: &Schema, schema: &Schema,
table_name: &str, table_name: &str,
) -> Result<(TableSummary, Option<TimestampRange>)> { ) -> Result<TableSummary> {
let mut table_summary_agg: Option<TableSummary> = None; let mut table_summary_agg: Option<TableSummary> = None;
let mut timestamp_range_agg = None;
for (row_group_idx, row_group) in parquet_md.row_groups().iter().enumerate() { for (row_group_idx, row_group) in parquet_md.row_groups().iter().enumerate() {
let (table_summary, timestamp_range) = let table_summary =
read_statistics_from_parquet_row_group(row_group, row_group_idx, schema, table_name)?; read_statistics_from_parquet_row_group(row_group, row_group_idx, schema, table_name)?;
match table_summary_agg.as_mut() { match table_summary_agg.as_mut() {
Some(existing) => existing.update_from(&table_summary), Some(existing) => existing.update_from(&table_summary),
None => table_summary_agg = Some(table_summary), None => table_summary_agg = Some(table_summary),
} }
timestamp_range_agg = match (timestamp_range_agg, timestamp_range) {
(Some(a), Some(b)) => Some(TimestampRange {
start: a.start.min(b.start),
end: a.end.max(b.end),
}),
(Some(a), None) | (None, Some(a)) => Some(a),
(None, None) => None,
};
} }
match table_summary_agg { table_summary_agg.context(NoRowGroup)
Some(table_summary) => Ok((table_summary, timestamp_range_agg)),
None => Err(Error::NoRowGroup {}),
}
} }
/// Read IOx statistics (including timestamp range) from parquet row group metadata. /// Read IOx statistics from parquet row group metadata.
fn read_statistics_from_parquet_row_group( fn read_statistics_from_parquet_row_group(
row_group: &ParquetRowGroupMetaData, row_group: &ParquetRowGroupMetaData,
row_group_idx: usize, row_group_idx: usize,
schema: &Schema, schema: &Schema,
table_name: &str, table_name: &str,
) -> Result<(TableSummary, Option<TimestampRange>)> { ) -> Result<TableSummary> {
let mut column_summaries = vec![]; let mut column_summaries = vec![];
let mut timestamp_range = None;
for ((iox_type, field), column_chunk_metadata) in schema.iter().zip(row_group.columns()) { for ((iox_type, field), column_chunk_metadata) in schema.iter().zip(row_group.columns()) {
if let Some(iox_type) = iox_type { if let Some(iox_type) = iox_type {
@ -252,7 +237,7 @@ fn read_statistics_from_parquet_row_group(
let count = let count =
(row_group.num_rows().max(0) as u64).saturating_sub(parquet_stats.null_count()); (row_group.num_rows().max(0) as u64).saturating_sub(parquet_stats.null_count());
let (stats, maybe_tsrange) = extract_iox_statistics( let stats = extract_iox_statistics(
parquet_stats, parquet_stats,
iox_type, iox_type,
count, count,
@ -268,10 +253,6 @@ fn read_statistics_from_parquet_row_group(
}), }),
stats, stats,
}); });
if let Some(range) = maybe_tsrange {
assert!(timestamp_range.is_none());
timestamp_range = Some(range);
}
} }
} }
@ -280,97 +261,83 @@ fn read_statistics_from_parquet_row_group(
columns: column_summaries, columns: column_summaries,
}; };
Ok((table_summary, timestamp_range)) Ok(table_summary)
} }
/// Extract IOx statistics from parquet statistics. /// Extract IOx statistics from parquet statistics.
/// ///
/// This is required because upstream does not have a mapper from parquet statistics back to arrow or Rust native types. /// This is required because upstream does not have a mapper from
/// parquet statistics back to arrow or Rust native types.
fn extract_iox_statistics( fn extract_iox_statistics(
parquet_stats: &ParquetStatistics, parquet_stats: &ParquetStatistics,
iox_type: InfluxColumnType, iox_type: InfluxColumnType,
count: u64, count: u64,
row_group_idx: usize, row_group_idx: usize,
column_name: &str, column_name: &str,
) -> Result<(Statistics, Option<TimestampRange>)> { ) -> Result<Statistics> {
match (parquet_stats, iox_type) { match (parquet_stats, iox_type) {
(ParquetStatistics::Boolean(stats), InfluxColumnType::Field(InfluxFieldType::Boolean)) => { (ParquetStatistics::Boolean(stats), InfluxColumnType::Field(InfluxFieldType::Boolean)) => {
Ok(( Ok(Statistics::Bool(StatValues {
Statistics::Bool(StatValues {
min: Some(*stats.min()),
max: Some(*stats.max()),
count,
}),
None,
))
}
(ParquetStatistics::Int64(stats), InfluxColumnType::Field(InfluxFieldType::Integer)) => {
Ok((
Statistics::I64(StatValues {
min: Some(*stats.min()),
max: Some(*stats.max()),
count,
}),
None,
))
}
(ParquetStatistics::Int64(stats), InfluxColumnType::Field(InfluxFieldType::UInteger)) => {
// TODO: that's very likely wrong, but blocked by https://github.com/apache/arrow-rs/issues/254
Ok((
Statistics::U64(StatValues {
min: Some(*stats.min() as u64),
max: Some(*stats.max() as u64),
count,
}),
None,
))
}
(ParquetStatistics::Double(stats), InfluxColumnType::Field(InfluxFieldType::Float)) => {
Ok((
Statistics::F64(StatValues {
min: Some(*stats.min()),
max: Some(*stats.max()),
count,
}),
None,
))
}
(ParquetStatistics::Int64(stats), InfluxColumnType::Timestamp) => Ok((
Statistics::I64(StatValues {
min: Some(*stats.min()), min: Some(*stats.min()),
max: Some(*stats.max()), max: Some(*stats.max()),
count, count,
}), }))
Some(TimestampRange::new(*stats.min(), *stats.max())), }
)), (ParquetStatistics::Int64(stats), InfluxColumnType::Field(InfluxFieldType::Integer)) => {
Ok(Statistics::I64(StatValues {
min: Some(*stats.min()),
max: Some(*stats.max()),
count,
}))
}
(ParquetStatistics::Int64(stats), InfluxColumnType::Field(InfluxFieldType::UInteger)) => {
// TODO: Likely incorrect for large values until
// https://github.com/apache/arrow-rs/issues/254
Ok(Statistics::U64(StatValues {
min: Some(*stats.min() as u64),
max: Some(*stats.max() as u64),
count,
}))
}
(ParquetStatistics::Double(stats), InfluxColumnType::Field(InfluxFieldType::Float)) => {
Ok(Statistics::F64(StatValues {
min: Some(*stats.min()),
max: Some(*stats.max()),
count,
}))
}
(ParquetStatistics::Int64(stats), InfluxColumnType::Timestamp) => {
Ok(Statistics::I64(StatValues {
min: Some(*stats.min()),
max: Some(*stats.max()),
count,
}))
}
(ParquetStatistics::ByteArray(stats), InfluxColumnType::Tag) (ParquetStatistics::ByteArray(stats), InfluxColumnType::Tag)
| (ParquetStatistics::ByteArray(stats), InfluxColumnType::Field(InfluxFieldType::String)) => { | (ParquetStatistics::ByteArray(stats), InfluxColumnType::Field(InfluxFieldType::String)) => {
Ok(( Ok(Statistics::String(StatValues {
Statistics::String(StatValues { min: Some(
min: Some( stats
stats .min()
.min() .as_utf8()
.as_utf8() .context(StatisticsUtf8Error {
.context(StatisticsUtf8Error { row_group: row_group_idx,
row_group: row_group_idx, column: column_name.to_string(),
column: column_name.to_string(), })?
})? .to_string(),
.to_string(), ),
), max: Some(
max: Some( stats
stats .max()
.max() .as_utf8()
.as_utf8() .context(StatisticsUtf8Error {
.context(StatisticsUtf8Error { row_group: row_group_idx,
row_group: row_group_idx, column: column_name.to_string(),
column: column_name.to_string(), })?
})? .to_string(),
.to_string(), ),
), count,
count, }))
}),
None,
))
} }
_ => Err(Error::StatisticsTypeMismatch { _ => Err(Error::StatisticsTypeMismatch {
row_group: row_group_idx, row_group: row_group_idx,
@ -496,13 +463,11 @@ mod tests {
assert_eq!(schema_actual, schema_expected); assert_eq!(schema_actual, schema_expected);
// step 2: read back statistics // step 2: read back statistics
let (table_summary_actual, timestamp_range_actual) = let table_summary_actual =
read_statistics_from_parquet_metadata(&parquet_metadata, &schema_actual, &table) read_statistics_from_parquet_metadata(&parquet_metadata, &schema_actual, &table)
.unwrap(); .unwrap();
let table_summary_expected = chunk.table_summary(); let table_summary_expected = chunk.table_summary();
let timestamp_range_expected = chunk.timestamp_range();
assert_eq!(table_summary_actual, table_summary_expected); assert_eq!(table_summary_actual, table_summary_expected);
assert_eq!(timestamp_range_actual, timestamp_range_expected)
} }
#[tokio::test] #[tokio::test]
@ -521,13 +486,11 @@ mod tests {
assert_eq!(schema_actual, schema_expected); assert_eq!(schema_actual, schema_expected);
// step 2: read back statistics // step 2: read back statistics
let (table_summary_actual, timestamp_range_actual) = let table_summary_actual =
read_statistics_from_parquet_metadata(&parquet_metadata, &schema_actual, &table) read_statistics_from_parquet_metadata(&parquet_metadata, &schema_actual, &table)
.unwrap(); .unwrap();
let table_summary_expected = chunk.table_summary(); let table_summary_expected = chunk.table_summary();
let timestamp_range_expected = chunk.timestamp_range();
assert_eq!(table_summary_actual, table_summary_expected); assert_eq!(table_summary_actual, table_summary_expected);
assert_eq!(timestamp_range_actual, timestamp_range_expected)
} }
#[tokio::test] #[tokio::test]

View File

@ -5,9 +5,9 @@ use arrow::{
error::Result as ArrowResult, error::Result as ArrowResult,
record_batch::RecordBatch, record_batch::RecordBatch,
}; };
use datafusion::physical_plan::{ use datafusion::{
common::SizedRecordBatchStream, parquet::RowGroupPredicateBuilder, RecordBatchStream, physical_optimizer::pruning::PruningPredicateBuilder,
SendableRecordBatchStream, physical_plan::{common::SizedRecordBatchStream, RecordBatchStream, SendableRecordBatchStream},
}; };
use internal_types::{schema::Schema, selection::Selection}; use internal_types::{schema::Schema, selection::Selection};
use object_store::{ use object_store::{
@ -20,7 +20,7 @@ use parquet::{
arrow_reader::ParquetFileArrowReader, parquet_to_arrow_schema, ArrowReader, ArrowWriter, arrow_reader::ParquetFileArrowReader, parquet_to_arrow_schema, ArrowReader, ArrowWriter,
}, },
file::{ file::{
metadata::ParquetMetaData, metadata::{ParquetMetaData, RowGroupMetaData},
reader::FileReader, reader::FileReader,
serialized_reader::{SerializedFileReader, SliceableCursor}, serialized_reader::{SerializedFileReader, SliceableCursor},
writer::TryClone, writer::TryClone,
@ -75,6 +75,11 @@ pub enum Error {
#[snafu(display("Error opening file: {}", source))] #[snafu(display("Error opening file: {}", source))]
OpenFile { source: std::io::Error }, OpenFile { source: std::io::Error },
#[snafu(display("Error creating pruning predicate: {}", source))]
CreatingPredicate {
source: datafusion::error::DataFusionError,
},
#[snafu(display("Error at serialized file reader: {}", source))] #[snafu(display("Error at serialized file reader: {}", source))]
SerializedFileReaderError { SerializedFileReaderError {
source: parquet::errors::ParquetError, source: parquet::errors::ParquetError,
@ -276,13 +281,13 @@ impl Storage {
pub fn predicate_builder( pub fn predicate_builder(
predicate: &Predicate, predicate: &Predicate,
schema: ArrowSchema, schema: ArrowSchema,
) -> Option<RowGroupPredicateBuilder> { ) -> Option<PruningPredicateBuilder> {
if predicate.exprs.is_empty() { if predicate.exprs.is_empty() {
None None
} else { } else {
// Convert to datafusion's predicate // Convert to datafusion's predicate
let predicate = predicate.filter_expr()?; let predicate = predicate.filter_expr()?;
Some(RowGroupPredicateBuilder::try_new(&predicate, schema).ok()?) Some(PruningPredicateBuilder::try_new(&predicate, schema).ok()?)
} }
} }
@ -355,7 +360,7 @@ impl Storage {
path: Path, path: Path,
store: Arc<ObjectStore>, store: Arc<ObjectStore>,
projection: &[usize], projection: &[usize],
predicate_builder: Option<&RowGroupPredicateBuilder>, predicate_builder: Option<&PruningPredicateBuilder>,
batch_size: usize, batch_size: usize,
batches: &mut Vec<Arc<RecordBatch>>, batches: &mut Vec<Arc<RecordBatch>>,
limit: Option<usize>, limit: Option<usize>,
@ -375,8 +380,13 @@ impl Storage {
let schema = read_schema_from_parquet_metadata(metadata)?; let schema = read_schema_from_parquet_metadata(metadata)?;
if let Some(predicate_builder) = predicate_builder { if let Some(predicate_builder) = predicate_builder {
let row_group_predicate = let predicate_values = predicate_builder
predicate_builder.build_row_group_predicate(metadata.row_groups()); .build_pruning_predicate(metadata.row_groups())
.context(CreatingPredicate)?;
let row_group_predicate: Box<dyn Fn(&RowGroupMetaData, usize) -> bool> =
Box::new(move |_, i| predicate_values[i]);
reader.filter_row_groups(&row_group_predicate); //filter out reader.filter_row_groups(&row_group_predicate); //filter out
// row group based // row group based
// on the predicate // on the predicate

View File

@ -20,8 +20,7 @@ mod tests {
//////////////////// ////////////////////
// Create test data which is also the expected data // Create test data which is also the expected data
let table = "table1"; let table = "table1";
let (record_batches, schema, column_summaries, time_range, num_rows) = let (record_batches, schema, column_summaries, num_rows) = make_record_batch("foo");
make_record_batch("foo");
let mut table_summary = TableSummary::new(table); let mut table_summary = TableSummary::new(table);
table_summary.columns = column_summaries.clone(); table_summary.columns = column_summaries.clone();
let record_batch = record_batches[0].clone(); // Get the first one to compare key-value meta data that would be the same for all batches let record_batch = record_batches[0].clone(); // Get the first one to compare key-value meta data that would be the same for all batches
@ -40,7 +39,6 @@ mod tests {
schema.clone(), schema.clone(),
table, table,
column_summaries.clone(), column_summaries.clone(),
time_range,
) )
.await; .await;
@ -61,11 +59,10 @@ mod tests {
); );
// 2. Check statistics // 2. Check statistics
let (table_summary_actual, timestamp_range_actual) = let table_summary_actual =
read_statistics_from_parquet_metadata(&parquet_metadata, &schema_actual, &table) read_statistics_from_parquet_metadata(&parquet_metadata, &schema_actual, &table)
.unwrap(); .unwrap();
assert_eq!(table_summary_actual, table_summary); assert_eq!(table_summary_actual, table_summary);
assert_eq!(timestamp_range_actual, Some(time_range));
// 3. Check data // 3. Check data
// Note that the read_data_from_parquet_data function fixes the row-group/batches' level metadata bug in arrow // Note that the read_data_from_parquet_data function fixes the row-group/batches' level metadata bug in arrow

View File

@ -2,9 +2,15 @@ use snafu::{ResultExt, Snafu};
use std::{collections::BTreeSet, mem, sync::Arc}; use std::{collections::BTreeSet, mem, sync::Arc};
use crate::storage::{self, Storage}; use crate::storage::{self, Storage};
use data_types::{partition_metadata::TableSummary, timestamp::TimestampRange}; use data_types::{
partition_metadata::{Statistics, TableSummary},
timestamp::TimestampRange,
};
use datafusion::physical_plan::SendableRecordBatchStream; use datafusion::physical_plan::SendableRecordBatchStream;
use internal_types::{schema::Schema, selection::Selection}; use internal_types::{
schema::{Schema, TIME_COLUMN_NAME},
selection::Selection,
};
use object_store::{path::Path, ObjectStore}; use object_store::{path::Path, ObjectStore};
use query::predicate::Predicate; use query::predicate::Predicate;
@ -38,24 +44,26 @@ pub struct Table {
/// Schema that goes with this table's parquet file /// Schema that goes with this table's parquet file
table_schema: Schema, table_schema: Schema,
/// Timestamp rang of this table's parquet file /// Timestamp range of this table's parquet file
/// (extracted from TableSummary)
timestamp_range: Option<TimestampRange>, timestamp_range: Option<TimestampRange>,
} }
impl Table { impl Table {
pub fn new( pub fn new(
meta: TableSummary, table_summary: TableSummary,
path: Path, path: Path,
store: Arc<ObjectStore>, store: Arc<ObjectStore>,
schema: Schema, schema: Schema,
range: Option<TimestampRange>,
) -> Self { ) -> Self {
let timestamp_range = extract_range(&table_summary);
Self { Self {
table_summary: meta, table_summary,
object_store_path: path, object_store_path: path,
object_store: store, object_store: store,
table_schema: schema, table_schema: schema,
timestamp_range: range, timestamp_range,
} }
} }
@ -96,11 +104,6 @@ impl Table {
}) })
} }
/// Return timestamp range of this table
pub fn timestamp_range(&self) -> Option<TimestampRange> {
self.timestamp_range
}
// Check if 2 time ranges overlap // Check if 2 time ranges overlap
pub fn matches_predicate(&self, timestamp_range: &Option<TimestampRange>) -> bool { pub fn matches_predicate(&self, timestamp_range: &Option<TimestampRange>) -> bool {
match (self.timestamp_range, timestamp_range) { match (self.timestamp_range, timestamp_range) {
@ -152,3 +155,18 @@ impl Table {
self.table_summary.columns[0].count() as usize self.table_summary.columns[0].count() as usize
} }
} }
/// Extracts min/max values of the timestamp column, from the TableSummary, if possible
fn extract_range(table_summary: &TableSummary) -> Option<TimestampRange> {
table_summary
.column(TIME_COLUMN_NAME)
.map(|c| {
if let Statistics::I64(s) = &c.stats {
if let (Some(min), Some(max)) = (s.min, s.max) {
return Some(TimestampRange::new(min, max));
}
}
None
})
.flatten()
}

View File

@ -13,7 +13,6 @@ use datafusion::physical_plan::SendableRecordBatchStream;
use data_types::{ use data_types::{
partition_metadata::{ColumnSummary, InfluxDbType, StatValues, Statistics, TableSummary}, partition_metadata::{ColumnSummary, InfluxDbType, StatValues, Statistics, TableSummary},
server_id::ServerId, server_id::ServerId,
timestamp::TimestampRange,
}; };
use datafusion_util::MemoryStream; use datafusion_util::MemoryStream;
use futures::TryStreamExt; use futures::TryStreamExt;
@ -93,46 +92,20 @@ pub async fn make_chunk_given_record_batch(
schema: Schema, schema: Schema,
table: &str, table: &str,
column_summaries: Vec<ColumnSummary>, column_summaries: Vec<ColumnSummary>,
time_range: TimestampRange,
) -> Chunk { ) -> Chunk {
make_chunk_common( make_chunk_common(store, record_batches, schema, table, column_summaries).await
store,
record_batches,
schema,
table,
column_summaries,
time_range,
)
.await
} }
/// Same as [`make_chunk`] but parquet file does not contain any row group. /// Same as [`make_chunk`] but parquet file does not contain any row group.
pub async fn make_chunk(store: Arc<ObjectStore>, column_prefix: &str) -> Chunk { pub async fn make_chunk(store: Arc<ObjectStore>, column_prefix: &str) -> Chunk {
let (record_batches, schema, column_summaries, time_range, _num_rows) = let (record_batches, schema, column_summaries, _num_rows) = make_record_batch(column_prefix);
make_record_batch(column_prefix); make_chunk_common(store, record_batches, schema, "table1", column_summaries).await
make_chunk_common(
store,
record_batches,
schema,
"table1",
column_summaries,
time_range,
)
.await
} }
/// Same as [`make_chunk`] but parquet file does not contain any row group. /// Same as [`make_chunk`] but parquet file does not contain any row group.
pub async fn make_chunk_no_row_group(store: Arc<ObjectStore>, column_prefix: &str) -> Chunk { pub async fn make_chunk_no_row_group(store: Arc<ObjectStore>, column_prefix: &str) -> Chunk {
let (_, schema, column_summaries, time_range, _num_rows) = make_record_batch(column_prefix); let (_, schema, column_summaries, _num_rows) = make_record_batch(column_prefix);
make_chunk_common( make_chunk_common(store, vec![], schema, "table1", column_summaries).await
store,
vec![],
schema,
"table1",
column_summaries,
time_range,
)
.await
} }
/// Common code for all [`make_chunk`] and [`make_chunk_no_row_group`]. /// Common code for all [`make_chunk`] and [`make_chunk_no_row_group`].
@ -144,7 +117,6 @@ async fn make_chunk_common(
schema: Schema, schema: Schema,
table: &str, table: &str,
column_summaries: Vec<ColumnSummary>, column_summaries: Vec<ColumnSummary>,
time_range: TimestampRange,
) -> Chunk { ) -> Chunk {
let server_id = ServerId::new(NonZeroU32::new(1).unwrap()); let server_id = ServerId::new(NonZeroU32::new(1).unwrap());
let db_name = "db1"; let db_name = "db1";
@ -180,7 +152,6 @@ async fn make_chunk_common(
path, path,
Arc::clone(&store), Arc::clone(&store),
schema, schema,
Some(time_range),
ChunkMetrics::new_unregistered(), ChunkMetrics::new_unregistered(),
) )
} }
@ -367,7 +338,7 @@ fn create_column_timestamp(
arrow_cols: &mut Vec<Vec<(String, ArrayRef, bool)>>, arrow_cols: &mut Vec<Vec<(String, ArrayRef, bool)>>,
summaries: &mut Vec<ColumnSummary>, summaries: &mut Vec<ColumnSummary>,
schema_builder: SchemaBuilder, schema_builder: SchemaBuilder,
) -> (SchemaBuilder, TimestampRange) { ) -> SchemaBuilder {
assert_eq!(data.len(), arrow_cols.len()); assert_eq!(data.len(), arrow_cols.len());
for (arrow_cols_sub, data_sub) in arrow_cols.iter_mut().zip(data.iter()) { for (arrow_cols_sub, data_sub) in arrow_cols.iter_mut().zip(data.iter()) {
@ -389,10 +360,7 @@ fn create_column_timestamp(
}), }),
}); });
let timestamp_range = TimestampRange::new(min.unwrap(), max.unwrap()); schema_builder.timestamp()
let schema_builder = schema_builder.timestamp();
(schema_builder, timestamp_range)
} }
/// Creates an Arrow RecordBatches with schema and IOx statistics. /// Creates an Arrow RecordBatches with schema and IOx statistics.
@ -404,13 +372,7 @@ fn create_column_timestamp(
/// indeed self-contained and can act as a source to recorder schema and statistics. /// indeed self-contained and can act as a source to recorder schema and statistics.
pub fn make_record_batch( pub fn make_record_batch(
column_prefix: &str, column_prefix: &str,
) -> ( ) -> (Vec<RecordBatch>, Schema, Vec<ColumnSummary>, usize) {
Vec<RecordBatch>,
Schema,
Vec<ColumnSummary>,
TimestampRange,
usize,
) {
// (name, array, nullable) // (name, array, nullable)
let mut arrow_cols: Vec<Vec<(String, ArrayRef, bool)>> = vec![vec![], vec![], vec![]]; let mut arrow_cols: Vec<Vec<(String, ArrayRef, bool)>> = vec![vec![], vec![], vec![]];
let mut summaries = vec![]; let mut summaries = vec![];
@ -527,7 +489,7 @@ pub fn make_record_batch(
); );
// time // time
let (schema_builder, timestamp_range) = create_column_timestamp( let schema_builder = create_column_timestamp(
vec![vec![1000], vec![2000], vec![3000, 4000]], vec![vec![1000], vec![2000], vec![3000, 4000]],
&mut arrow_cols, &mut arrow_cols,
&mut summaries, &mut summaries,
@ -549,7 +511,7 @@ pub fn make_record_batch(
record_batches.push(record_batch); record_batches.push(record_batch);
} }
(record_batches, schema, summaries, timestamp_range, num_rows) (record_batches, schema, summaries, num_rows)
} }
/// Creates new in-memory object store for testing. /// Creates new in-memory object store for testing.

View File

@ -14,7 +14,7 @@ description = "IOx Query Interface and Executor"
# 2. Allow for query logic testing without bringing in all the storage systems. # 2. Allow for query logic testing without bringing in all the storage systems.
[dependencies] # In alphabetical order [dependencies] # In alphabetical order
arrow = { path = "../arrow" } arrow = "4.0"
arrow_util = { path = "../arrow_util" } arrow_util = { path = "../arrow_util" }
async-trait = "0.1" async-trait = "0.1"
chrono = "0.4" chrono = "0.4"

View File

@ -11,7 +11,7 @@ edition = "2018"
# 2. Keep change/compile/link time down during development when working on just this crate # 2. Keep change/compile/link time down during development when working on just this crate
[dependencies] # In alphabetical order [dependencies] # In alphabetical order
arrow = { path = "../arrow" } arrow = "4.0"
arrow_util = { path = "../arrow_util" } arrow_util = { path = "../arrow_util" }
croaring = "0.4.5" croaring = "0.4.5"
data_types = { path = "../data_types" } data_types = { path = "../data_types" }

View File

@ -5,9 +5,9 @@ authors = ["pauldix <paul@pauldix.net>"]
edition = "2018" edition = "2018"
[dependencies] # In alphabetical order [dependencies] # In alphabetical order
arrow = { path = "../arrow" } arrow = "4.0"
arrow_util = { path = "../arrow_util" } arrow_util = { path = "../arrow_util" }
arrow_flight = { path = "../arrow_flight" } arrow-flight = "4.0"
async-trait = "0.1" async-trait = "0.1"
bytes = { version = "1.0" } bytes = { version = "1.0" }
chrono = "0.4" chrono = "0.4"
@ -62,4 +62,3 @@ bench = ["mutable_buffer/nocache"]
[[bench]] [[bench]]
name = "influxrpc" name = "influxrpc"
harness = false harness = false

View File

@ -1136,7 +1136,7 @@ impl CatalogState for Catalog {
read_schema_from_parquet_metadata(&info.metadata).context(SchemaReadFailed { read_schema_from_parquet_metadata(&info.metadata).context(SchemaReadFailed {
path: info.path.clone(), path: info.path.clone(),
})?; })?;
let (table_summary, timestamp_range) = let table_summary =
read_statistics_from_parquet_metadata(&info.metadata, &schema, &table_name).context( read_statistics_from_parquet_metadata(&info.metadata, &schema, &table_name).context(
StatisticsReadFailed { StatisticsReadFailed {
path: info.path.clone(), path: info.path.clone(),
@ -1155,7 +1155,6 @@ impl CatalogState for Catalog {
object_store.path_from_dirs_and_filename(info.path.clone()), object_store.path_from_dirs_and_filename(info.path.clone()),
object_store, object_store,
schema, schema,
timestamp_range,
metrics, metrics,
); );
let parquet_chunk = Arc::new(parquet_chunk); let parquet_chunk = Arc::new(parquet_chunk);

View File

@ -468,7 +468,6 @@ mod tests {
path, path,
object_store, object_store,
schema, schema,
None,
parquet_file::chunk::ChunkMetrics::new_unregistered(), parquet_file::chunk::ChunkMetrics::new_unregistered(),
) )
} }