From c319a3fe2ba8c659a003e83800f9b4642b1800b4 Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Fri, 13 Oct 2023 09:24:59 -0400 Subject: [PATCH] Update to DataFusion 32 (#393) * update to DataFusion 32.0.0 and arrow 47 --- Cargo.lock | 383 ++++++++++-------- Cargo.toml | 17 + vegafusion-common/Cargo.toml | 16 +- vegafusion-common/src/data/json_writer.rs | 3 +- vegafusion-common/src/data/scalar.rs | 2 +- vegafusion-common/src/data/table.rs | 2 +- vegafusion-core/Cargo.toml | 17 +- vegafusion-core/src/expression/ast/binary.rs | 2 +- vegafusion-core/src/expression/ast/logical.rs | 2 +- vegafusion-core/src/expression/ast/unary.rs | 2 +- .../src/proto/prost_gen/transforms.rs | 2 +- .../src/proto/tonic_gen/services.rs | 21 +- .../src/proto/tonic_gen/transforms.rs | 2 +- vegafusion-core/src/variable/mod.rs | 2 +- vegafusion-dataframe/Cargo.toml | 6 +- vegafusion-datafusion-udfs/Cargo.toml | 4 +- vegafusion-datafusion-udfs/src/udafs/mod.rs | 4 +- .../src/udfs/array/indexof.rs | 2 +- .../src/udfs/math/isfinite.rs | 5 +- .../src/udfs/math/isnan.rs | 5 +- vegafusion-jni/Cargo.toml | 2 +- vegafusion-python-embed/Cargo.toml | 10 +- vegafusion-runtime/Cargo.toml | 22 +- .../data/vl_selection_resolve.rs | 2 +- .../data/vl_selection_test.rs | 2 +- .../src/expression/compiler/member.rs | 2 +- vegafusion-runtime/src/transform/aggregate.rs | 4 +- vegafusion-runtime/src/transform/extent.rs | 2 +- .../src/transform/joinaggregate.rs | 2 +- vegafusion-runtime/src/transform/pivot.rs | 2 +- vegafusion-runtime/src/transform/stack.rs | 2 +- vegafusion-runtime/src/transform/timeunit.rs | 2 +- vegafusion-runtime/src/transform/window.rs | 4 +- vegafusion-runtime/tests/util/equality.rs | 3 +- vegafusion-server/Cargo.toml | 12 +- vegafusion-sql/Cargo.toml | 16 +- vegafusion-sql/src/compile/expr.rs | 39 +- vegafusion-sql/src/compile/scalar.rs | 3 + .../src/connection/datafusion_conn.rs | 4 +- vegafusion-wasm/Cargo.toml | 6 +- vegafusion-wasm/package-lock.json | 4 +- vegafusion-wasm/src/lib.rs | 2 +- 42 files changed, 374 insertions(+), 272 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 24c179cbf..78f6ba57d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -60,6 +60,12 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56fc6cf8dc8c4158eed8649f9b8b0ea1518eb62b544fe9490d66fa0b349eafe9" +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + [[package]] name = "android_system_properties" version = "0.1.5" @@ -135,9 +141,9 @@ checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" [[package]] name = "arrow" -version = "43.0.0" +version = "47.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2feeebd77b34b0bc88f224e06d01c27da4733997cc4789a4e056196656cdc59a" +checksum = "7fab9e93ba8ce88a37d5a30dce4b9913b75413dc1ac56cb5d72e5a840543f829" dependencies = [ "ahash", "arrow-arith", @@ -158,9 +164,9 @@ dependencies = [ [[package]] name = "arrow-arith" -version = "43.0.0" +version = "47.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7173f5dc49c0ecb5135f52565af33afd3fdc9a12d13bd6f9973e8b96305e4b2e" +checksum = "bc1d4e368e87ad9ee64f28b9577a3834ce10fe2703a26b28417d485bbbdff956" dependencies = [ "arrow-array", "arrow-buffer", @@ -173,9 +179,9 @@ dependencies = [ [[package]] name = "arrow-array" -version = "43.0.0" +version = "47.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63d7ea725f7d1f8bb2cffc53ef538557e95fc802e217d5be25122d402e22f3d0" +checksum = "d02efa7253ede102d45a4e802a129e83bcc3f49884cab795b1ac223918e4318d" dependencies = [ "ahash", "arrow-buffer", @@ -190,19 +196,20 @@ dependencies = [ [[package]] name = "arrow-buffer" -version = "43.0.0" +version = "47.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdbe439e077f484e5000b9e1d47b5e4c0d15f2b311a8f5bcc682553d5d67a722" +checksum = "fda119225204141138cb0541c692fbfef0e875ba01bfdeaed09e9d354f9d6195" dependencies = [ + "bytes", "half 2.2.1", "num", ] [[package]] name = "arrow-cast" -version = "43.0.0" +version = "47.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93913cc14875770aa1eef5e310765e855effa352c094cb1c7c00607d0f37b4e1" +checksum = "1d825d51b9968868d50bc5af92388754056796dbc62a4e25307d588a1fc84dee" dependencies = [ "arrow-array", "arrow-buffer", @@ -218,9 +225,9 @@ dependencies = [ [[package]] name = "arrow-csv" -version = "43.0.0" +version = "47.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef55b67c55ed877e6fe7b923121c19dae5e31ca70249ea2779a17b58fb0fbd9a" +checksum = "43ef855dc6b126dc197f43e061d4de46b9d4c033aa51c2587657f7508242cef1" dependencies = [ "arrow-array", "arrow-buffer", @@ -237,9 +244,9 @@ dependencies = [ [[package]] name = "arrow-data" -version = "43.0.0" +version = "47.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4f4f4a3c54614126a71ab91f6631c9743eb4643d6e9318b74191da9dc6e028b" +checksum = "475a4c3699c8b4095ca61cecf15da6f67841847a5f5aac983ccb9a377d02f73a" dependencies = [ "arrow-buffer", "arrow-schema", @@ -249,9 +256,9 @@ dependencies = [ [[package]] name = "arrow-ipc" -version = "43.0.0" +version = "47.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d41a3659f984a524ef1c2981d43747b24d8eec78e2425267fcd0ef34ce71cd18" +checksum = "1248005c8ac549f869b7a840859d942bf62471479c1a2d82659d453eebcd166a" dependencies = [ "arrow-array", "arrow-buffer", @@ -263,9 +270,9 @@ dependencies = [ [[package]] name = "arrow-json" -version = "43.0.0" +version = "47.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10b95faa95a378f56ef32d84cc0104ea998c39ef7cd1faaa6b4cebf8ea92846d" +checksum = "f03d7e3b04dd688ccec354fe449aed56b831679f03e44ee2c1cfc4045067b69c" dependencies = [ "arrow-array", "arrow-buffer", @@ -283,9 +290,9 @@ dependencies = [ [[package]] name = "arrow-ord" -version = "43.0.0" +version = "47.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c68549a4284d9f8b39586afb8d5ff8158b8f0286353a4844deb1d11cf1ba1f26" +checksum = "03b87aa408ea6a6300e49eb2eba0c032c88ed9dc19e0a9948489c55efdca71f4" dependencies = [ "arrow-array", "arrow-buffer", @@ -298,9 +305,9 @@ dependencies = [ [[package]] name = "arrow-row" -version = "43.0.0" +version = "47.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a75a4a757afc301ce010adadff54d79d66140c4282ed3de565f6ccb716a5cf3" +checksum = "114a348ab581e7c9b6908fcab23cb39ff9f060eb19e72b13f8fb8eaa37f65d22" dependencies = [ "ahash", "arrow-array", @@ -313,19 +320,20 @@ dependencies = [ [[package]] name = "arrow-schema" -version = "43.0.0" +version = "47.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bebcb57eef570b15afbcf2d07d813eb476fde9f6dd69c81004d6476c197e87e" +checksum = "5d1d179c117b158853e0101bfbed5615e86fe97ee356b4af901f1c5001e1ce4b" dependencies = [ "bitflags 2.1.0", ] [[package]] name = "arrow-select" -version = "43.0.0" +version = "47.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6e2943fa433a48921e914417173816af64eef61c0a3d448280e6c40a62df221" +checksum = "d5c71e003202e67e9db139e5278c79f5520bb79922261dfe140e4637ee8b6108" dependencies = [ + "ahash", "arrow-array", "arrow-buffer", "arrow-data", @@ -335,9 +343,9 @@ dependencies = [ [[package]] name = "arrow-string" -version = "43.0.0" +version = "47.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbc92ed638851774f6d7af1ad900b92bc1486746497511868b4298fcbcfa35af" +checksum = "c4cebbb282d6b9244895f4a9a912e55e57bce112554c7fa91fcec5459cb421ab" dependencies = [ "arrow-array", "arrow-buffer", @@ -630,6 +638,12 @@ dependencies = [ "rustc-demangle", ] +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + [[package]] name = "base64" version = "0.21.2" @@ -723,7 +737,7 @@ checksum = "c3d4260bcc2e8fc9df1eac4919a720effeb63a3f0952f5bf4944adfa18897f09" dependencies = [ "memchr", "once_cell", - "regex-automata", + "regex-automata 0.1.10", "serde", ] @@ -801,17 +815,16 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.24" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ + "android-tzdata", "iana-time-zone", "js-sys", - "num-integer", "num-traits", - "time", "wasm-bindgen", - "winapi", + "windows-targets 0.48.0", ] [[package]] @@ -1161,16 +1174,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "ctor" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" -dependencies = [ - "quote", - "syn 1.0.109", -] - [[package]] name = "cxx" version = "1.0.94" @@ -1230,9 +1233,9 @@ dependencies = [ [[package]] name = "datafusion" -version = "28.0.0" +version = "32.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ddbcb2dda5b5033537457992ebde78938014390b2b19f9f4282e3be0e18b0c3" +checksum = "7014432223f4d721cb9786cd88bb89e7464e0ba984d4a7f49db7787f5f268674" dependencies = [ "ahash", "arrow", @@ -1249,6 +1252,7 @@ dependencies = [ "datafusion-expr", "datafusion-optimizer", "datafusion-physical-expr", + "datafusion-physical-plan", "datafusion-sql", "flate2", "futures", @@ -1257,7 +1261,6 @@ dependencies = [ "hashbrown 0.14.0", "indexmap 2.0.0", "itertools 0.11.0", - "lazy_static", "log", "num_cpus", "object_store", @@ -1266,8 +1269,7 @@ dependencies = [ "percent-encoding", "pin-project-lite", "rand", - "smallvec", - "sqlparser", + "sqlparser 0.38.0", "tempfile", "tokio", "tokio-util", @@ -1279,29 +1281,36 @@ dependencies = [ [[package]] name = "datafusion-common" -version = "28.0.0" +version = "32.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85fbb7b4da925031311743ab96662d55f0f7342d3692744f184f99b2257ef435" +checksum = "cb3903ed8f102892f17b48efa437f3542159241d41c564f0d1e78efdc5e663aa" dependencies = [ + "ahash", "arrow", "arrow-array", + "arrow-buffer", + "arrow-schema", "chrono", + "half 2.2.1", "num_cpus", "object_store", "parquet", "pyo3", - "sqlparser", + "sqlparser 0.38.0", ] [[package]] name = "datafusion-execution" -version = "28.0.0" +version = "32.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bb3617466d894eb0ad11d06bab1e6e89c571c0a27d660685d327d0c6e1e1ccd" +checksum = "780b73b2407050e53f51a9781868593f694102c59e622de9a8aafc0343c4f237" dependencies = [ + "arrow", + "chrono", "dashmap", "datafusion-common", "datafusion-expr", + "futures", "hashbrown 0.14.0", "log", "object_store", @@ -1313,24 +1322,24 @@ dependencies = [ [[package]] name = "datafusion-expr" -version = "28.0.0" +version = "32.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bd8220a0dfcdfddcc785cd7e71770ef1ce54fbe1e08984e5adf537027ecb6de" +checksum = "24c382676338d8caba6c027ba0da47260f65ffedab38fda78f6d8043f607557c" dependencies = [ "ahash", "arrow", + "arrow-array", "datafusion-common", - "lazy_static", - "sqlparser", + "sqlparser 0.38.0", "strum 0.25.0", "strum_macros 0.25.1", ] [[package]] name = "datafusion-optimizer" -version = "28.0.0" +version = "32.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d685a100c66952aaadd0cbe766df46d1887d58fc8bcf3589e6387787f18492b" +checksum = "3f2904a432f795484fd45e29ded4537152adb60f636c05691db34fcd94c92c96" dependencies = [ "arrow", "async-trait", @@ -1346,16 +1355,16 @@ dependencies = [ [[package]] name = "datafusion-physical-expr" -version = "28.0.0" +version = "32.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f2c635da9b05b4b4c6c8d935f46fd99f9b6225f834091cf4e3c8a045b68beab" +checksum = "57b4968e9a998dc0476c4db7a82f280e2026b25f464e4aa0c3bb9807ee63ddfd" dependencies = [ "ahash", "arrow", "arrow-array", "arrow-buffer", "arrow-schema", - "base64", + "base64 0.21.2", "blake2", "blake3", "chrono", @@ -1366,7 +1375,6 @@ dependencies = [ "hex", "indexmap 2.0.0", "itertools 0.11.0", - "lazy_static", "libc", "log", "md-5", @@ -1379,11 +1387,42 @@ dependencies = [ "uuid", ] +[[package]] +name = "datafusion-physical-plan" +version = "32.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efd0d1fe54e37a47a2d58a1232c22786f2c28ad35805fdcd08f0253a8b0aaa90" +dependencies = [ + "ahash", + "arrow", + "arrow-array", + "arrow-buffer", + "arrow-schema", + "async-trait", + "chrono", + "datafusion-common", + "datafusion-execution", + "datafusion-expr", + "datafusion-physical-expr", + "futures", + "half 2.2.1", + "hashbrown 0.14.0", + "indexmap 2.0.0", + "itertools 0.11.0", + "log", + "once_cell", + "parking_lot 0.12.1", + "pin-project-lite", + "rand", + "tokio", + "uuid", +] + [[package]] name = "datafusion-proto" -version = "28.0.0" +version = "32.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b7088150bc98c46e7b3a7168b96ea020c0eff682af08a6d1f3b8415ce1d7a7" +checksum = "ca1db9605e1f545b852fa9dd05f03339b333c9f2814a4e33b9ac7e9e586a1014" dependencies = [ "arrow", "chrono", @@ -1396,16 +1435,16 @@ dependencies = [ [[package]] name = "datafusion-sql" -version = "28.0.0" +version = "32.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3ef8abf4dd84d3f20c910822b52779c035ab7f4f2d5e7125ede3bae618e9de8" +checksum = "b568d44c87ead99604d704f942e257c8a236ee1bbf890ee3e034ad659dcb2c21" dependencies = [ "arrow", "arrow-schema", "datafusion-common", "datafusion-expr", "log", - "sqlparser", + "sqlparser 0.38.0", ] [[package]] @@ -1422,9 +1461,9 @@ checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" [[package]] name = "digest" -version = "0.10.6" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer", "crypto-common", @@ -1764,7 +1803,7 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "wasm-bindgen", ] @@ -1794,9 +1833,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.16" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be7b54589b581f624f566bf5d8eb2bab1db736c51528720b6bd36b96b55924d" +checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833" dependencies = [ "bytes", "fnv", @@ -1936,9 +1975,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.25" +version = "0.14.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc5e554ff619822309ffd57d8734d77cd5ce6238bc956f037ea06c58238c9899" +checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" dependencies = [ "bytes", "futures-channel", @@ -2350,11 +2389,10 @@ dependencies = [ [[package]] name = "log" -version = "0.4.17" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" dependencies = [ - "cfg-if", "value-bag", ] @@ -2415,9 +2453,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.5.0" +version = "2.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c" [[package]] name = "memoffset" @@ -2479,7 +2517,7 @@ checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9" dependencies = [ "libc", "log", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "windows-sys 0.45.0", ] @@ -2593,9 +2631,9 @@ dependencies = [ [[package]] name = "object_store" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27c776db4f332b571958444982ff641d2531417a326ca368995073b639205d58" +checksum = "d359e231e5451f4f9fa889d56e3ce34f8724f1a61db2107739359717cf2bbf08" dependencies = [ "async-trait", "bytes", @@ -2614,9 +2652,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.17.1" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "oorandom" @@ -2704,9 +2742,9 @@ dependencies = [ [[package]] name = "parquet" -version = "43.0.0" +version = "47.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec7267a9607c3f955d4d0ac41b88a67cecc0d8d009173ad3da390699a6cb3750" +checksum = "0463cc3b256d5f50408c49a4be3a16674f4c8ceef60941709620a062b1f6bf4d" dependencies = [ "ahash", "arrow-array", @@ -2716,7 +2754,7 @@ dependencies = [ "arrow-ipc", "arrow-schema", "arrow-select", - "base64", + "base64 0.21.2", "brotli", "bytes", "chrono", @@ -2926,12 +2964,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.1.25" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" +checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d" dependencies = [ "proc-macro2", - "syn 1.0.109", + "syn 2.0.31", ] [[package]] @@ -2975,9 +3013,9 @@ dependencies = [ [[package]] name = "prost" -version = "0.11.8" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48e50df39172a3e7eb17e14642445da64996989bc212b583015435d39a58537" +checksum = "f4fdd22f3b9c31b53c060df4a0613a1c7f062d4115a2b984dd15b1858f7e340d" dependencies = [ "bytes", "prost-derive", @@ -2985,44 +3023,44 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.11.8" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c828f93f5ca4826f97fedcbd3f9a536c16b12cff3dbbb4a007f932bbad95b12" +checksum = "8bdf592881d821b83d471f8af290226c8d51402259e9bb5be7f9f8bdebbb11ac" dependencies = [ "bytes", "heck", - "itertools 0.10.5", - "lazy_static", + "itertools 0.11.0", "log", "multimap", + "once_cell", "petgraph", "prettyplease", "prost", "prost-types", "regex", - "syn 1.0.109", + "syn 2.0.31", "tempfile", "which", ] [[package]] name = "prost-derive" -version = "0.11.8" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea9b0f8cbe5e15a8a042d030bd96668db28ecb567ec37d691971ff5731d2b1b" +checksum = "265baba7fabd416cf5078179f7d2cbeca4ce7a9041111900675ea7c4cb8a4c32" dependencies = [ "anyhow", - "itertools 0.10.5", + "itertools 0.11.0", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.31", ] [[package]] name = "prost-types" -version = "0.11.8" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "379119666929a1afd7a043aa6cf96fa67a6dce9af60c88095a4686dbce4c9c88" +checksum = "e081b29f63d83a4bc75cfc9f3fe424f9156cf92d8a4f0c9407cce9a1b67327cf" dependencies = [ "prost", ] @@ -3193,12 +3231,13 @@ dependencies = [ [[package]] name = "regex" -version = "1.8.1" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370" +checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47" dependencies = [ "aho-corasick", "memchr", + "regex-automata 0.3.8", "regex-syntax", ] @@ -3208,11 +3247,22 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +[[package]] +name = "regex-automata" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + [[package]] name = "regex-syntax" -version = "0.7.1" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3c" +checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" [[package]] name = "relative-path" @@ -3222,11 +3272,11 @@ checksum = "c707298afce11da2efef2f600116fa93ffa7a032b5d7b628aa17711ec81383ca" [[package]] name = "reqwest" -version = "0.11.16" +version = "0.11.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b71749df584b7f4cac2c426c127a7c785a5106cc98f7a8feb044115f0fa254" +checksum = "68cc60575865c7831548863cc02356512e3f1dc2f3f82cb837d7fc4cc8f3c97c" dependencies = [ - "base64", + "base64 0.13.1", "bytes", "encoding_rs", "futures-core", @@ -3426,9 +3476,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.21.0" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07180898a28ed6a7f7ba2311594308f595e3dd2e3c3812fa0a80a47b45f17e5d" +checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8" dependencies = [ "log", "ring", @@ -3442,14 +3492,14 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b" dependencies = [ - "base64", + "base64 0.21.2", ] [[package]] name = "rustls-webpki" -version = "0.100.1" +version = "0.101.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b" +checksum = "3c7d5dece342910d9ba34d259310cae3e0154b873b35408b787b59bce53d34fe" dependencies = [ "ring", "untrusted", @@ -3518,18 +3568,18 @@ checksum = "e6b44e8fc93a14e66336d230954dda83d18b4605ccace8fe09bc7514a71ad0bc" [[package]] name = "serde" -version = "1.0.159" +version = "1.0.188" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c04e8343c3daeec41f58990b9d77068df31209f2af111e059e9fe9646693065" +checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.159" +version = "1.0.188" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c614d17805b093df4b147b51339e7e44bf05ef59fba1e45d83500bcfb4d8585" +checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" dependencies = [ "proc-macro2", "quote", @@ -3538,11 +3588,11 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.96" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1" +checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65" dependencies = [ - "indexmap 1.9.3", + "indexmap 2.0.0", "itoa", "ryu", "serde", @@ -3657,9 +3707,18 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" [[package]] name = "sqlparser" -version = "0.35.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca597d77c98894be1f965f2e4e2d2a61575d4998088e655476c73715c54b2b43" +checksum = "37ae05a8250b968a3f7db93155a84d68b2e6cea1583949af5ca5b5170c76c075" +dependencies = [ + "log", +] + +[[package]] +name = "sqlparser" +version = "0.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0272b7bb0a225320170c99901b4b5fb3a4384e255a7f2cc228f61e2ba3893e75" dependencies = [ "log", "sqlparser_derive", @@ -3878,17 +3937,6 @@ dependencies = [ "ordered-float 2.10.0", ] -[[package]] -name = "time" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", -] - [[package]] name = "tiny-keccak" version = "2.0.2" @@ -3975,11 +4023,11 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.24.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0d409377ff5b1e3ca6437aa86c1eb7d40c134bfec254e44c830defa92669db5" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls 0.21.0", + "rustls 0.21.7", "tokio", ] @@ -4044,17 +4092,15 @@ dependencies = [ [[package]] name = "tonic" -version = "0.9.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38bd8e87955eb13c1986671838177d6792cdc52af9bffced0d2c8a9a7f741ab3" +checksum = "d560933a0de61cf715926b9cac824d4c883c2c43142f787595e48280c40a1d0e" dependencies = [ "async-stream", "async-trait", "axum", - "base64", + "base64 0.21.2", "bytes", - "futures-core", - "futures-util", "h2", "http", "http-body", @@ -4063,9 +4109,10 @@ dependencies = [ "percent-encoding", "pin-project", "prost", + "rustls 0.21.7", "rustls-pemfile", "tokio", - "tokio-rustls 0.24.0", + "tokio-rustls 0.24.1", "tokio-stream", "tower", "tower-layer", @@ -4075,30 +4122,30 @@ dependencies = [ [[package]] name = "tonic-build" -version = "0.9.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f60a933bbea70c95d633c04c951197ddf084958abaa2ed502a3743bdd8d8dd7" +checksum = "9d021fc044c18582b9a2408cd0dd05b1596e3ecdb5c4df822bb0183545683889" dependencies = [ "prettyplease", "proc-macro2", "prost-build", "quote", - "syn 1.0.109", + "syn 2.0.31", ] [[package]] name = "tonic-web" -version = "0.9.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ea5a992300fc324dd8c529868ec7b07ac85510431f982e6f716c2cac56701d9" +checksum = "0fddb2a37b247e6adcb9f239f4e5cefdcc5ed526141a416b943929f13aea2cce" dependencies = [ - "base64", + "base64 0.21.2", "bytes", - "futures-core", "http", "http-body", "hyper", "pin-project", + "tokio-stream", "tonic", "tower-http", "tower-layer", @@ -4292,29 +4339,25 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" [[package]] name = "uuid" -version = "1.3.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1674845326ee10d37ca60470760d4288a6f80f304007d92e5c53bab78c9cfd79" +checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d" dependencies = [ "getrandom", ] [[package]] name = "value-bag" -version = "1.0.0-alpha.9" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2209b78d1249f7e6f3293657c9779fe31ced465df091bbd433a1cf88e916ec55" -dependencies = [ - "ctor", - "version_check", -] +checksum = "d92ccd67fb88503048c01b59152a04effd0782d035a83a6d256ce6085f08f4a3" [[package]] name = "vegafusion-common" version = "1.4.1" dependencies = [ "arrow", - "base64", + "base64 0.21.2", "chrono", "datafusion-common", "datafusion-expr", @@ -4322,7 +4365,7 @@ dependencies = [ "jni", "pyo3", "serde_json", - "sqlparser", + "sqlparser 0.37.0", "thiserror", ] @@ -4349,7 +4392,7 @@ dependencies = [ "regex", "serde", "serde_json", - "sqlparser", + "sqlparser 0.37.0", "thiserror", "tonic", "tonic-build", @@ -4424,7 +4467,7 @@ dependencies = [ "async-lock", "async-recursion", "async-trait", - "base64", + "base64 0.21.2", "bytes", "chrono", "chrono-tz", @@ -4456,7 +4499,7 @@ dependencies = [ "rstest", "serde", "serde_json", - "sqlparser", + "sqlparser 0.37.0", "tempfile", "test-case", "tokio", @@ -4514,7 +4557,7 @@ dependencies = [ "rstest_reuse", "serde", "serde_json", - "sqlparser", + "sqlparser 0.37.0", "tempfile", "tokio", "toml", @@ -4585,12 +4628,6 @@ dependencies = [ "try-lock", ] -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" diff --git a/Cargo.toml b/Cargo.toml index ca81446f6..d0348ca97 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,6 +13,23 @@ members = [ "vegafusion-jni", ] +[workspace.dependencies] +arrow = { version = "47.0.0", default_features = false } +sqlparser = { version = "0.37.0" } +chrono = { version = "0.4.31", default_features = false } +reqwest = { version = "=0.11.13", default-features = false } +tokio = { version = "1.32.0" } +pyo3 = { version = "0.19" } +prost = { version = "0.12.1" } +prost-types = { version = "0.12.1" } + +datafusion = { version = "32.0.0" } +datafusion-common = { version = "32.0.0", default_features = false} +datafusion-expr = { version = "32.0.0" } +datafusion-proto = { version = "32.0.0" } +datafusion-physical-expr = { version = "32.0.0" } +datafusion-optimizer = { version = "32.0.0" } + [profile.release] ## Tell `rustc` to use highest performance optimization and perform Link Time Optimization opt-level = 3 diff --git a/vegafusion-common/Cargo.toml b/vegafusion-common/Cargo.toml index c467a3c24..96943b25c 100644 --- a/vegafusion-common/Cargo.toml +++ b/vegafusion-common/Cargo.toml @@ -14,11 +14,11 @@ prettyprint = [ "arrow/prettyprint",] thiserror = "^1.0.29" [dependencies.chrono] -version = "0.4.23" +workspace = true optional = true [dependencies.sqlparser] -version = "0.35.0" +workspace = true optional = true [dependencies.serde_json] @@ -27,22 +27,22 @@ default_features = false optional = true [dependencies.arrow] -version = "43.0.0" -default_features = false +workspace = true features = [ "ipc",] [dependencies.datafusion-common] -version = "28.0.0" +workspace = true +default_features = false [dependencies.datafusion-expr] -version = "28.0.0" +workspace = true [dependencies.datafusion-proto] -version = "28.0.0" +workspace = true optional = true [dependencies.pyo3] -version = "0.19" +workspace = true optional = true [dependencies.jni] diff --git a/vegafusion-common/src/data/json_writer.rs b/vegafusion-common/src/data/json_writer.rs index a4b417917..0372800f4 100644 --- a/vegafusion-common/src/data/json_writer.rs +++ b/vegafusion-common/src/data/json_writer.rs @@ -758,7 +758,8 @@ mod tests { let ts_nanos = ts_string .parse::() .unwrap() - .timestamp_nanos(); + .timestamp_nanos_opt() + .unwrap(); let ts_micros = ts_nanos / 1000; let ts_millis = ts_micros / 1000; let ts_secs = ts_millis / 1000; diff --git a/vegafusion-common/src/data/scalar.rs b/vegafusion-common/src/data/scalar.rs index e304be445..4518f58d2 100644 --- a/vegafusion-common/src/data/scalar.rs +++ b/vegafusion-common/src/data/scalar.rs @@ -69,7 +69,7 @@ impl ScalarValueHelpers for ScalarValue { .iter() .map(ScalarValue::from_json) .collect::>>()?; - let dtype = elements[0].get_datatype(); + let dtype = elements[0].data_type(); (elements, dtype) }; diff --git a/vegafusion-common/src/data/table.rs b/vegafusion-common/src/data/table.rs index 4e4849ca8..37b896b02 100644 --- a/vegafusion-common/src/data/table.rs +++ b/vegafusion-common/src/data/table.rs @@ -201,7 +201,7 @@ impl VegaFusionTable { } } - let dtype = elements[0].get_datatype(); + let dtype = elements[0].data_type(); Ok(ScalarValue::List( Some(elements), Arc::new(Field::new("item", dtype, true)), diff --git a/vegafusion-core/Cargo.toml b/vegafusion-core/Cargo.toml index 961a0cf1a..9e7785584 100644 --- a/vegafusion-core/Cargo.toml +++ b/vegafusion-core/Cargo.toml @@ -12,8 +12,8 @@ pyarrow = [ "pyo3", "datafusion-common/pyarrow", "vegafusion-common/pyarrow",] [dependencies] thiserror = "^1.0.29" bytes = "1.1.0" -prost = "0.11.3" -prost-types = "0.11.2" +prost = { workspace = true } +prost-types = { workspace = true } itertools = "0.10.3" lazy_static = "^1.4.0" regex = "^1.5.5" @@ -26,7 +26,7 @@ rand = "0.8.5" json-patch = "1.0.0" [dependencies.sqlparser] -version = "0.35.0" +workspace = true optional = true [dependencies.serde_json] @@ -39,10 +39,11 @@ features = [ "json", "sqlparser",] version = "1.4.1" [dependencies.datafusion-common] -version = "28.0.0" +workspace = true +default_features = false [dependencies.pyo3] -version = "0.19" +workspace = true optional = true [dependencies.serde] @@ -50,14 +51,14 @@ version = "1.0.137" features = [ "derive",] [dependencies.tonic] -version = "0.9.1" +version = "0.10.2" optional = true [build-dependencies.prost-build] -version = "0.11.4" +version = "0.12.1" [build-dependencies.tonic-build] -version = "0.9.1" +version = "0.10.2" optional = true [build-dependencies.protobuf-src] diff --git a/vegafusion-core/src/expression/ast/binary.rs b/vegafusion-core/src/expression/ast/binary.rs index 9f073bdf7..ca4e8310d 100644 --- a/vegafusion-core/src/expression/ast/binary.rs +++ b/vegafusion-core/src/expression/ast/binary.rs @@ -63,7 +63,7 @@ impl BinaryExpression { } pub fn to_operator(&self) -> BinaryOperator { - BinaryOperator::from_i32(self.operator).unwrap() + BinaryOperator::try_from(self.operator).unwrap() } pub fn infix_binding_power(&self) -> (f64, f64) { diff --git a/vegafusion-core/src/expression/ast/logical.rs b/vegafusion-core/src/expression/ast/logical.rs index 68055129a..da6d44864 100644 --- a/vegafusion-core/src/expression/ast/logical.rs +++ b/vegafusion-core/src/expression/ast/logical.rs @@ -34,7 +34,7 @@ impl LogicalExpression { } pub fn to_operator(&self) -> LogicalOperator { - LogicalOperator::from_i32(self.operator).unwrap() + LogicalOperator::try_from(self.operator).unwrap() } pub fn infix_binding_power(&self) -> (f64, f64) { diff --git a/vegafusion-core/src/expression/ast/unary.rs b/vegafusion-core/src/expression/ast/unary.rs index 867f0f4f9..89636d041 100644 --- a/vegafusion-core/src/expression/ast/unary.rs +++ b/vegafusion-core/src/expression/ast/unary.rs @@ -28,7 +28,7 @@ impl UnaryExpression { } pub fn to_operator(&self) -> UnaryOperator { - UnaryOperator::from_i32(self.operator).unwrap() + UnaryOperator::try_from(self.operator).unwrap() } pub fn new(op: &UnaryOperator, arg: Expression) -> Self { diff --git a/vegafusion-core/src/proto/prost_gen/transforms.rs b/vegafusion-core/src/proto/prost_gen/transforms.rs index 65e47d556..bb1d74ab3 100644 --- a/vegafusion-core/src/proto/prost_gen/transforms.rs +++ b/vegafusion-core/src/proto/prost_gen/transforms.rs @@ -68,7 +68,7 @@ pub struct Bin { /// A minimum distance between adjacent bins #[prost(double, tag = "12")] pub minstep: f64, - /// Scale factors indicating the allowed subdivisions. The defualt value is vec![5.0, 2.0], + /// Scale factors indicating the allowed subdivisions. The defualt value is vec!\[5.0, 2.0\], /// which indicates that for base 10 numbers, the method may consider dividing bin sizes by 5 and/or 2. #[prost(double, repeated, tag = "13")] pub divide: ::prost::alloc::vec::Vec, diff --git a/vegafusion-core/src/proto/tonic_gen/services.rs b/vegafusion-core/src/proto/tonic_gen/services.rs index 37dcd31af..d252d5f30 100644 --- a/vegafusion-core/src/proto/tonic_gen/services.rs +++ b/vegafusion-core/src/proto/tonic_gen/services.rs @@ -411,7 +411,8 @@ pub mod vega_fusion_runtime_server { ) -> Self::Future { let inner = Arc::clone(&self.0); let fut = async move { - (*inner).task_graph_query(request).await + ::task_graph_query(&inner, request) + .await }; Box::pin(fut) } @@ -460,7 +461,11 @@ pub mod vega_fusion_runtime_server { ) -> Self::Future { let inner = Arc::clone(&self.0); let fut = async move { - (*inner).pre_transform_spec(request).await + ::pre_transform_spec( + &inner, + request, + ) + .await }; Box::pin(fut) } @@ -509,7 +514,11 @@ pub mod vega_fusion_runtime_server { ) -> Self::Future { let inner = Arc::clone(&self.0); let fut = async move { - (*inner).pre_transform_values(request).await + ::pre_transform_values( + &inner, + request, + ) + .await }; Box::pin(fut) } @@ -558,7 +567,11 @@ pub mod vega_fusion_runtime_server { ) -> Self::Future { let inner = Arc::clone(&self.0); let fut = async move { - (*inner).pre_transform_extract(request).await + ::pre_transform_extract( + &inner, + request, + ) + .await }; Box::pin(fut) } diff --git a/vegafusion-core/src/proto/tonic_gen/transforms.rs b/vegafusion-core/src/proto/tonic_gen/transforms.rs index 65e47d556..bb1d74ab3 100644 --- a/vegafusion-core/src/proto/tonic_gen/transforms.rs +++ b/vegafusion-core/src/proto/tonic_gen/transforms.rs @@ -68,7 +68,7 @@ pub struct Bin { /// A minimum distance between adjacent bins #[prost(double, tag = "12")] pub minstep: f64, - /// Scale factors indicating the allowed subdivisions. The defualt value is vec![5.0, 2.0], + /// Scale factors indicating the allowed subdivisions. The defualt value is vec!\[5.0, 2.0\], /// which indicates that for base 10 numbers, the method may consider dividing bin sizes by 5 and/or 2. #[prost(double, repeated, tag = "13")] pub divide: ::prost::alloc::vec::Vec, diff --git a/vegafusion-core/src/variable/mod.rs b/vegafusion-core/src/variable/mod.rs index 19677b231..07623949b 100644 --- a/vegafusion-core/src/variable/mod.rs +++ b/vegafusion-core/src/variable/mod.rs @@ -26,7 +26,7 @@ impl Variable { } pub fn ns(&self) -> VariableNamespace { - VariableNamespace::from_i32(self.namespace).unwrap() + VariableNamespace::try_from(self.namespace).unwrap() } } diff --git a/vegafusion-dataframe/Cargo.toml b/vegafusion-dataframe/Cargo.toml index b836f9853..f0330de73 100644 --- a/vegafusion-dataframe/Cargo.toml +++ b/vegafusion-dataframe/Cargo.toml @@ -13,11 +13,11 @@ path = "../vegafusion-common" version = "1.4.1" [dependencies.datafusion-common] -version = "28.0.0" +workspace = true [dependencies.datafusion-expr] -version = "28.0.0" +workspace = true [dependencies.arrow] -version = "43.0.0" +workspace = true default_features = false diff --git a/vegafusion-datafusion-udfs/Cargo.toml b/vegafusion-datafusion-udfs/Cargo.toml index c93fff5c4..41d39617b 100644 --- a/vegafusion-datafusion-udfs/Cargo.toml +++ b/vegafusion-datafusion-udfs/Cargo.toml @@ -8,7 +8,7 @@ description = "Custom DataFusion UDFs used by VegaFusion" [dependencies] ordered-float = "3.6.0" lazy_static = "^1.4.0" -chrono = "0.4.23" +chrono = { workspace = true } chrono-tz = "0.8.1" regex = "^1.5.5" @@ -17,4 +17,4 @@ path = "../vegafusion-common" version = "1.4.1" [dependencies.datafusion-physical-expr] -version = "28.0.0" +workspace = true diff --git a/vegafusion-datafusion-udfs/src/udafs/mod.rs b/vegafusion-datafusion-udfs/src/udafs/mod.rs index 15a09ecaa..7e6fbc27a 100644 --- a/vegafusion-datafusion-udfs/src/udafs/mod.rs +++ b/vegafusion-datafusion-udfs/src/udafs/mod.rs @@ -142,7 +142,7 @@ lazy_static! { pub static ref Q1_UDF: AggregateUDF = create_udaf( "q1", // input type - DataType::Float64, + vec![DataType::Float64], // the return type Arc::new(DataType::Float64), Volatility::Immutable, @@ -161,7 +161,7 @@ lazy_static! { pub static ref Q3_UDF: AggregateUDF = create_udaf( "q3", // input type - DataType::Float64, + vec![DataType::Float64], // the return type Arc::new(DataType::Float64), Volatility::Immutable, diff --git a/vegafusion-datafusion-udfs/src/udfs/array/indexof.rs b/vegafusion-datafusion-udfs/src/udfs/array/indexof.rs index 847a5cdf8..9145ea710 100644 --- a/vegafusion-datafusion-udfs/src/udfs/array/indexof.rs +++ b/vegafusion-datafusion-udfs/src/udfs/array/indexof.rs @@ -37,7 +37,7 @@ fn make_indexof_udf() -> ScalarUDF { let arg = &args[1]; Ok(match arg { ColumnarValue::Scalar(value) => { - let value_dtype = value.get_datatype(); + let value_dtype = value.data_type(); if is_numeric_datatype(&value_dtype) && is_numeric_datatype(&array_dtype) { let indices = build_notnan_index_map(array.as_slice()); if let Ok(value) = value.to_f64() { diff --git a/vegafusion-datafusion-udfs/src/udfs/math/isfinite.rs b/vegafusion-datafusion-udfs/src/udfs/math/isfinite.rs index a75184627..631a90220 100644 --- a/vegafusion-datafusion-udfs/src/udfs/math/isfinite.rs +++ b/vegafusion-datafusion-udfs/src/udfs/math/isfinite.rs @@ -1,7 +1,6 @@ use datafusion_physical_expr::functions::make_scalar_function; use std::sync::Arc; use vegafusion_common::arrow::array::{ArrayRef, BooleanArray, Float32Array, Float64Array}; -use vegafusion_common::arrow::compute::no_simd_compare_op_scalar; use vegafusion_common::arrow::datatypes::DataType; use vegafusion_common::datafusion_expr::{ReturnTypeFunction, ScalarUDF, Signature, Volatility}; @@ -18,11 +17,11 @@ fn make_is_finite_udf() -> ScalarUDF { let is_finite_array = match arg.data_type() { DataType::Float32 => { let array = arg.as_any().downcast_ref::().unwrap(); - no_simd_compare_op_scalar(array, f32::NAN, |a, _| a.is_finite()).unwrap() + BooleanArray::from_unary(array, |a| a.is_finite()) } DataType::Float64 => { let array = arg.as_any().downcast_ref::().unwrap(); - no_simd_compare_op_scalar(array, f64::NAN, |a, _| a.is_finite()).unwrap() + BooleanArray::from_unary(array, |a| a.is_finite()) } _ => { // No other type can be non-finite diff --git a/vegafusion-datafusion-udfs/src/udfs/math/isnan.rs b/vegafusion-datafusion-udfs/src/udfs/math/isnan.rs index 8c669d1d1..ed782977c 100644 --- a/vegafusion-datafusion-udfs/src/udfs/math/isnan.rs +++ b/vegafusion-datafusion-udfs/src/udfs/math/isnan.rs @@ -3,7 +3,6 @@ use std::sync::Arc; use vegafusion_common::{ arrow::{ array::{ArrayRef, BooleanArray, Float32Array, Float64Array}, - compute::no_simd_compare_op_scalar, datatypes::DataType, }, datafusion_expr::{ReturnTypeFunction, ScalarUDF, Signature, Volatility}, @@ -22,11 +21,11 @@ fn make_is_nan_udf() -> ScalarUDF { let is_nan_array = match arg.data_type() { DataType::Float32 => { let array = arg.as_any().downcast_ref::().unwrap(); - no_simd_compare_op_scalar(array, f32::NAN, |a, _| a.is_nan()).unwrap() + BooleanArray::from_unary(array, |a| a.is_nan()) } DataType::Float64 => { let array = arg.as_any().downcast_ref::().unwrap(); - no_simd_compare_op_scalar(array, f64::NAN, |a, _| a.is_nan()).unwrap() + BooleanArray::from_unary(array, |a| a.is_nan()) } _ => { // No other type can be NaN diff --git a/vegafusion-jni/Cargo.toml b/vegafusion-jni/Cargo.toml index c1c9db6a3..495b40c24 100644 --- a/vegafusion-jni/Cargo.toml +++ b/vegafusion-jni/Cargo.toml @@ -33,5 +33,5 @@ version = "1.4.1" features = [ "datafusion-conn",] [dependencies.tokio] -version = "1.32.0" +workspace = true features = [ "macros", "rt-multi-thread",] diff --git a/vegafusion-python-embed/Cargo.toml b/vegafusion-python-embed/Cargo.toml index 65750cef0..445e8a669 100644 --- a/vegafusion-python-embed/Cargo.toml +++ b/vegafusion-python-embed/Cargo.toml @@ -18,7 +18,7 @@ env_logger = "0.10.0" pythonize = "0.19.0" async-trait = "0.1.73" uuid = "1.3.0" -prost = "0.11.3" +prost = { workspace = true } [dependencies.deterministic-hash] version = "1.0.1" @@ -31,7 +31,7 @@ features = [ "derive",] version = "1.0.79" [dependencies.arrow] -version = "43.0.0" +workspace = true features = [ "pyarrow",] [dependencies.vegafusion-common] @@ -59,12 +59,12 @@ path = "../vegafusion-dataframe" version = "1.4.1" [dependencies.datafusion-proto] -version = "28.0.0" +workspace = true [dependencies.tokio] -version = "1.32.0" +workspace = true features = [ "macros", "rt-multi-thread",] [dependencies.pyo3] -version = "0.19" +workspace = true features = [ "extension-module", "abi3-py38",] diff --git a/vegafusion-runtime/Cargo.toml b/vegafusion-runtime/Cargo.toml index 0d73d81de..96283aaa8 100644 --- a/vegafusion-runtime/Cargo.toml +++ b/vegafusion-runtime/Cargo.toml @@ -17,10 +17,10 @@ protobuf-src = [ "vegafusion-core/protobuf-src",] regex = "^1.5.5" lazy_static = "^1.4.0" serde_json = "1.0.91" -chrono = "0.4.23" +chrono = { workspace = true } chrono-tz = "0.8.1" -prost = "0.11.3" -prost-types = "0.11.2" +prost = { workspace = true } +prost-types = { workspace = true } num-traits = "0.2.15" itertools = "0.11.0" float-cmp = "0.9.0" @@ -54,7 +54,7 @@ version = "^1.2" features = [ "v4",] [dependencies.sqlparser] -version = "0.35.0" +workspace = true [dependencies.vegafusion-common] path = "../vegafusion-common" @@ -79,28 +79,28 @@ version = "1.0.137" features = [ "derive",] [dependencies.datafusion-common] -version = "28.0.0" +workspace = true [dependencies.datafusion-expr] -version = "28.0.0" +workspace = true [dependencies.datafusion-physical-expr] -version = "28.0.0" +workspace = true [dependencies.datafusion-optimizer] -version = "28.0.0" +workspace = true [dependencies.tokio] -version = "1.32.0" +workspace = true features = [ "macros", "rt-multi-thread", "fs",] [dependencies.reqwest] -version = "0.11.10" +workspace = true default_features = false features = [ "rustls-tls",] [dev-dependencies.reqwest] -version = "0.11.10" +workspace = true default_features = false features = [ "blocking", "rustls-tls",] diff --git a/vegafusion-runtime/src/expression/compiler/builtin_functions/data/vl_selection_resolve.rs b/vegafusion-runtime/src/expression/compiler/builtin_functions/data/vl_selection_resolve.rs index 14d9d4a40..9a63d94b3 100644 --- a/vegafusion-runtime/src/expression/compiler/builtin_functions/data/vl_selection_resolve.rs +++ b/vegafusion-runtime/src/expression/compiler/builtin_functions/data/vl_selection_resolve.rs @@ -122,7 +122,7 @@ pub fn vl_selection_resolve_fn( // Turn values into a scalar list let dtype = values .get(0) - .map(|s| s.get_datatype()) + .map(|s| s.data_type()) .unwrap_or(DataType::Float64); let values = ScalarValue::List(Some(values), Arc::new(Field::new("item", dtype, true))); (name, values) diff --git a/vegafusion-runtime/src/expression/compiler/builtin_functions/data/vl_selection_test.rs b/vegafusion-runtime/src/expression/compiler/builtin_functions/data/vl_selection_test.rs index 8e637f61a..6e6956555 100644 --- a/vegafusion-runtime/src/expression/compiler/builtin_functions/data/vl_selection_test.rs +++ b/vegafusion-runtime/src/expression/compiler/builtin_functions/data/vl_selection_test.rs @@ -288,7 +288,7 @@ impl FieldSpec { }) } _ => { - if is_numeric_datatype(field_type) && !is_numeric_datatype(&scalar.get_datatype()) { + if is_numeric_datatype(field_type) && !is_numeric_datatype(&scalar.data_type()) { cast_to(lit(scalar), field_type, schema) } else { Ok(lit(scalar)) diff --git a/vegafusion-runtime/src/expression/compiler/member.rs b/vegafusion-runtime/src/expression/compiler/member.rs index 8bbf3f18b..b097de44a 100644 --- a/vegafusion-runtime/src/expression/compiler/member.rs +++ b/vegafusion-runtime/src/expression/compiler/member.rs @@ -32,7 +32,7 @@ pub fn compile_member( || format!("VegaFusion does not support the use of datum expressions in object member access: {node}") )?; let prop_str = evaluated_property.to_string(); - if is_numeric_datatype(&evaluated_property.get_datatype()) { + if is_numeric_datatype(&evaluated_property.data_type()) { let int_array = cast(&evaluated_property.to_array(), &DataType::Int64).unwrap(); let int_array = int_array.as_any().downcast_ref::().unwrap(); index = Some(int_array.value(0) as usize); diff --git a/vegafusion-runtime/src/transform/aggregate.rs b/vegafusion-runtime/src/transform/aggregate.rs index f1b3767dd..ce4ca1c56 100644 --- a/vegafusion-runtime/src/transform/aggregate.rs +++ b/vegafusion-runtime/src/transform/aggregate.rs @@ -68,7 +68,7 @@ fn get_agg_and_proj_exprs(tx: &Aggregate, schema: &DFSchema) -> Result<(Vec Result<(Vec Result { let max_val_scalar = ScalarValue::try_from_array(max_val_array, 0).unwrap(); // Build two-element list of the extents - let element_datatype = min_val_scalar.get_datatype(); + let element_datatype = min_val_scalar.data_type(); let extent_list = TaskValue::Scalar(ScalarValue::List( Some(vec![min_val_scalar, max_val_scalar]), Arc::new(Field::new("item", element_datatype, true)), diff --git a/vegafusion-runtime/src/transform/joinaggregate.rs b/vegafusion-runtime/src/transform/joinaggregate.rs index 148791bc3..56ab648d8 100644 --- a/vegafusion-runtime/src/transform/joinaggregate.rs +++ b/vegafusion-runtime/src/transform/joinaggregate.rs @@ -24,7 +24,7 @@ impl TransformTrait for JoinAggregate { let mut agg_exprs = Vec::new(); let mut new_col_exprs = Vec::new(); for (i, (field, op)) in self.fields.iter().zip(&self.ops).enumerate() { - let op = AggregateOp::from_i32(*op).unwrap(); + let op = AggregateOp::try_from(*op).unwrap(); let alias = if let Some(alias) = self.aliases.get(i).filter(|a| !a.is_empty()) { // Alias is a non-empty string alias.clone() diff --git a/vegafusion-runtime/src/transform/pivot.rs b/vegafusion-runtime/src/transform/pivot.rs index 430e454ca..e9ee57381 100644 --- a/vegafusion-runtime/src/transform/pivot.rs +++ b/vegafusion-runtime/src/transform/pivot.rs @@ -158,7 +158,7 @@ async fn pivot_case( // Process aggregate operation let agg_op: AggregateOp = tx .op - .map(|op_code| AggregateOp::from_i32(op_code).unwrap()) + .map(|op_code| AggregateOp::try_from(op_code).unwrap()) .unwrap_or(AggregateOp::Sum); let fill_zero = should_fill_zero(&agg_op); diff --git a/vegafusion-runtime/src/transform/stack.rs b/vegafusion-runtime/src/transform/stack.rs index 1e8792a12..630d95706 100644 --- a/vegafusion-runtime/src/transform/stack.rs +++ b/vegafusion-runtime/src/transform/stack.rs @@ -45,7 +45,7 @@ impl TransformTrait for Stack { nulls_first: true, })); - let offset = StackOffset::from_i32(self.offset).expect("Failed to convert stack offset"); + let offset = StackOffset::try_from(self.offset).expect("Failed to convert stack offset"); let mode = match offset { StackOffset::Zero => StackMode::Zero, StackOffset::Normalize => StackMode::Normalize, diff --git a/vegafusion-runtime/src/transform/timeunit.rs b/vegafusion-runtime/src/transform/timeunit.rs index 8cc39eb14..c00c515a1 100644 --- a/vegafusion-runtime/src/transform/timeunit.rs +++ b/vegafusion-runtime/src/transform/timeunit.rs @@ -373,7 +373,7 @@ impl TransformTrait for TimeUnit { .units .iter() .sorted() - .map(|unit_i32| TimeUnitUnit::from_i32(*unit_i32).unwrap()) + .map(|unit_i32| TimeUnitUnit::try_from(*unit_i32).unwrap()) .collect::>(); // Add timeunit start diff --git a/vegafusion-runtime/src/transform/window.rs b/vegafusion-runtime/src/transform/window.rs index 463823b70..5e36db142 100644 --- a/vegafusion-runtime/src/transform/window.rs +++ b/vegafusion-runtime/src/transform/window.rs @@ -105,7 +105,7 @@ impl TransformTrait for Window { .map(|(i, (op, field))| -> Result { let (window_fn, args) = match op.op.as_ref().unwrap() { window_transform_op::Op::AggregateOp(op) => { - let op = AggregateOp::from_i32(*op).unwrap(); + let op = AggregateOp::try_from(*op).unwrap(); let numeric_field = || -> Result { to_numeric(unescaped_col(field), &schema_df).with_context(|| { @@ -149,7 +149,7 @@ impl TransformTrait for Window { (WindowFunction::AggregateFunction(agg_fn), vec![arg]) } window_transform_op::Op::WindowOp(op) => { - let op = WindowOp::from_i32(*op).unwrap(); + let op = WindowOp::try_from(*op).unwrap(); let _param = self.params.get(i); let (window_fn, args) = match op { diff --git a/vegafusion-runtime/tests/util/equality.rs b/vegafusion-runtime/tests/util/equality.rs index a01b2dd14..719d5ac6f 100644 --- a/vegafusion-runtime/tests/util/equality.rs +++ b/vegafusion-runtime/tests/util/equality.rs @@ -228,8 +228,7 @@ pub fn assert_scalars_almost_equals( if lhs == rhs || lhs.is_null() && rhs.is_null() { // Equal - } else if is_numeric_datatype(&lhs.get_datatype()) - && is_numeric_datatype(&rhs.get_datatype()) + } else if is_numeric_datatype(&lhs.data_type()) && is_numeric_datatype(&rhs.data_type()) { if (lhs.is_null() || !numeric_to_f64(&lhs).is_finite()) && (rhs.is_null() || !numeric_to_f64(&rhs).is_finite()) diff --git a/vegafusion-server/Cargo.toml b/vegafusion-server/Cargo.toml index 1b9bee41c..e64b387a6 100644 --- a/vegafusion-server/Cargo.toml +++ b/vegafusion-server/Cargo.toml @@ -13,7 +13,7 @@ description = "VegaFusion Server" protobuf-src = [ "vegafusion-core/protobuf-src",] [dependencies] -prost = "0.11.3" +prost = { workspace = true } futures-util = "0.3.21" regex = "^1.5.5" h2 = "0.3.16" @@ -24,8 +24,8 @@ assert_cmd = "2.0" predicates = "3.0.2" [build-dependencies] -tonic-build = "0.9.1" -prost-build = "0.11.4" +tonic-build = "0.10.2" +prost-build = "0.12.1" [dependencies.vegafusion-common] path = "../vegafusion-common" @@ -46,14 +46,14 @@ version = "1.4.1" features = [ "datafusion-conn",] [dependencies.tokio] -version = "1.32.0" +workspace = true features = [ "rt-multi-thread", "macros",] [dependencies.tonic-web] -version = "0.9.1" +version = "0.10.2" [dependencies.tonic] -version = "0.9.1" +version = "0.10.2" features = [ "tls",] [dependencies.clap] diff --git a/vegafusion-sql/Cargo.toml b/vegafusion-sql/Cargo.toml index 587468dbe..c05d3cadf 100644 --- a/vegafusion-sql/Cargo.toml +++ b/vegafusion-sql/Cargo.toml @@ -12,7 +12,7 @@ datafusion-conn = [ "datafusion", "tempfile", "reqwest", "reqwest-retry", "reqwe async-trait = "0.1.73" deterministic-hash = "1.0.1" log = "0.4.17" -chrono = "0.4.23" +chrono = { workspace = true } [dev-dependencies] rstest = "0.18.2" @@ -21,7 +21,7 @@ lazy_static = "^1.4.0" toml = "0.7.2" [dependencies.sqlparser] -version = "0.35.0" +workspace = true [dependencies.vegafusion-common] path = "../vegafusion-common" @@ -38,18 +38,18 @@ version = "1.4.1" optional = true [dependencies.arrow] -version = "43.0.0" +workspace = true default_features = false features = [ "ipc",] [dependencies.datafusion-common] -version = "28.0.0" +workspace = true [dependencies.datafusion-expr] -version = "28.0.0" +workspace = true [dependencies.datafusion] -version = "28.0.0" +workspace = true optional = true [dependencies.tempfile] @@ -57,7 +57,7 @@ version = "3.3.0" optional = true [dependencies.reqwest] -version = "0.11.14" +workspace = true default-features = false features = [ "rustls-tls",] optional = true @@ -92,7 +92,7 @@ version = "1.4.1" features = [ "sqlparser", "json", "prettyprint",] [dev-dependencies.tokio] -version = "1.32.0" +workspace = true features = [ "macros", "rt-multi-thread",] [dev-dependencies.serde] diff --git a/vegafusion-sql/src/compile/expr.rs b/vegafusion-sql/src/compile/expr.rs index 2b7594973..4a24eef46 100644 --- a/vegafusion-sql/src/compile/expr.rs +++ b/vegafusion-sql/src/compile/expr.rs @@ -85,6 +85,16 @@ impl ToSqlExpr for Expr { Operator::StringConcat => SqlBinaryOperator::StringConcat, Operator::BitwiseShiftRight => SqlBinaryOperator::PGBitwiseShiftRight, Operator::BitwiseShiftLeft => SqlBinaryOperator::PGBitwiseShiftLeft, + Operator::AtArrow => { + return Err(VegaFusionError::internal( + "AtArrow cannot be converted to SQL".to_string(), + )) + } + Operator::ArrowAt => { + return Err(VegaFusionError::internal( + "ArrowAt cannot be converted to SQL".to_string(), + )) + } }; Ok(SqlExpr::Nested(Box::new(SqlExpr::BinaryOp { left: Box::new(left.to_sql(dialect, schema)?), @@ -357,12 +367,26 @@ impl ToSqlExpr for Expr { BuiltinScalarFunction::ArrayReplace => "array_replace", BuiltinScalarFunction::ArrayToString => "array_to_string", BuiltinScalarFunction::Cardinality => "array_cardinality", + BuiltinScalarFunction::ArrayHas => "array_has", + BuiltinScalarFunction::ArrayHasAll => "array_has_all", + BuiltinScalarFunction::ArrayHasAny => "array_has_any", + BuiltinScalarFunction::ArrayPopBack => "array_pop_back", + BuiltinScalarFunction::ArrayElement => "array_element", + BuiltinScalarFunction::ArrayEmpty => "array_empty", + BuiltinScalarFunction::ArrayRemoveN => "array_remove_n", + BuiltinScalarFunction::ArrayRemoveAll => "array_remove_all", + BuiltinScalarFunction::ArrayRepeat => "array_repeat", + BuiltinScalarFunction::ArrayReplaceN => "array_replace_n", + BuiltinScalarFunction::ArrayReplaceAll => "array_replace_all", + BuiltinScalarFunction::ArraySlice => "array_slice", BuiltinScalarFunction::Decode => "decode", BuiltinScalarFunction::Encode => "encode", BuiltinScalarFunction::Cot => "cot", - BuiltinScalarFunction::ArrayContains => "array_contains", - BuiltinScalarFunction::ArrayFill => "array_fill", - BuiltinScalarFunction::TrimArray => "trim_array", + BuiltinScalarFunction::Isnan => "isnan", + BuiltinScalarFunction::Iszero => "iszero", + BuiltinScalarFunction::Nanvl => "nanvl", + BuiltinScalarFunction::Flatten => "flatten", + BuiltinScalarFunction::StringToArray => "string_to_array", }; translate_scalar_function(fun_name, args, dialect, schema) } @@ -698,6 +722,15 @@ fn aggr_fn_to_name(fun: &AggregateFunction) -> &str { AggregateFunction::BoolOr => "bool_or", AggregateFunction::FirstValue => "first_value", AggregateFunction::LastValue => "last_value", + AggregateFunction::RegrSlope => "regr_slope", + AggregateFunction::RegrIntercept => "regr_intercept", + AggregateFunction::RegrCount => "regr_count", + AggregateFunction::RegrR2 => "regr_r2", + AggregateFunction::RegrAvgx => "regr_avgx", + AggregateFunction::RegrAvgy => "regr_avgy", + AggregateFunction::RegrSXX => "regr_sxx", + AggregateFunction::RegrSYY => "regr_syy", + AggregateFunction::RegrSXY => "regr_sxy", } } diff --git a/vegafusion-sql/src/compile/scalar.rs b/vegafusion-sql/src/compile/scalar.rs index 6389bb904..5c9f8a14b 100644 --- a/vegafusion-sql/src/compile/scalar.rs +++ b/vegafusion-sql/src/compile/scalar.rs @@ -211,6 +211,9 @@ impl ToSqlScalar for ScalarValue { ScalarValue::Decimal128(_, _, _) => Err(VegaFusionError::internal( "Decimal128 cannot be converted to SQL", )), + ScalarValue::Decimal256(_, _, _) => Err(VegaFusionError::internal( + "Decimal256 cannot be converted to SQL", + )), ScalarValue::Time32Second(_) => Err(VegaFusionError::internal( "Time32Second cannot be converted to SQL", )), diff --git a/vegafusion-sql/src/connection/datafusion_conn.rs b/vegafusion-sql/src/connection/datafusion_conn.rs index 9b393147a..426c748af 100644 --- a/vegafusion-sql/src/connection/datafusion_conn.rs +++ b/vegafusion-sql/src/connection/datafusion_conn.rs @@ -362,7 +362,7 @@ pub fn make_datafusion_context() -> SessionContext { let options = config.options_mut(); options.optimizer.skip_failed_rules = true; let runtime = Arc::new(RuntimeEnv::default()); - let session_state = SessionState::with_config_rt(config, runtime); + let session_state = SessionState::new_with_config_rt(config, runtime); let session_state = session_state.with_analyzer_rules(vec![ Arc::new(InlineTableScan::new()), Arc::new(TypeCoercion::new()), @@ -370,7 +370,7 @@ pub fn make_datafusion_context() -> SessionContext { // Arc::new(CountWildcardRule::new()), ]); - let ctx = SessionContext::with_state(session_state); + let ctx = SessionContext::new_with_state(session_state); // isNan ctx.register_udf((*ISNAN_UDF).clone()); diff --git a/vegafusion-wasm/Cargo.toml b/vegafusion-wasm/Cargo.toml index 91b1fffc7..df6aee87d 100644 --- a/vegafusion-wasm/Cargo.toml +++ b/vegafusion-wasm/Cargo.toml @@ -16,8 +16,8 @@ protobuf-src = [ "vegafusion-core/protobuf-src",] serde_json = "1.0.91" wasm-bindgen-futures = "0.4.28" js-sys = "0.3.55" -prost = "0.11.3" -prost-types = "0.11.2" +prost = { workspace = true } +prost-types = { workspace = true } indexmap = "1.9.2" [dev-dependencies] @@ -44,7 +44,7 @@ version = "0.2.8" features = [ "js",] [dependencies.chrono] -version = "0.4.19" +version = "0.4.31" features = [ "wasmbind",] [dependencies.console_error_panic_hook] diff --git a/vegafusion-wasm/package-lock.json b/vegafusion-wasm/package-lock.json index eb0e6d475..b4613e524 100644 --- a/vegafusion-wasm/package-lock.json +++ b/vegafusion-wasm/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "vegafusion-wasm", - "version": "1.4.0", + "version": "1.4.1", "license": "BSD-3-Clause", "dependencies": { "bootstrap": "^5.1.3", @@ -1344,4 +1344,4 @@ } } } -} \ No newline at end of file +} diff --git a/vegafusion-wasm/src/lib.rs b/vegafusion-wasm/src/lib.rs index 074e7531d..89e8ca7f3 100644 --- a/vegafusion-wasm/src/lib.rs +++ b/vegafusion-wasm/src/lib.rs @@ -190,7 +190,7 @@ impl MsgReceiver { if self.verbose { log(&format!("VegaFusion(wasm): Received {}", var.name)); log(&serde_json::to_string_pretty(&json).unwrap()); - log(&format!("DataType: {:#?}", &value.get_datatype())); + log(&format!("DataType: {:#?}", &value.data_type())); } let js_value =