Commit Graph

8 Commits

Author SHA1 Message Date
Maximilian Roos
7d58d82361
internal: Refine rust prql code
This makes the rust code a bit more idiomatic. It builds on top of #60616, which can merge first. There aren't any rust tests here, so would like to check CI.
2024-02-29 21:32:27 -08:00
Maximilian Roos
13d476a0f3
2024-02-29 18:35:42 -08:00
Maximilian Roos
81876435e6
build: Upgrade prqlc
We also changed the name of our library (though continue to publish to `prql-compiler` FWIW)
2024-02-29 17:51:02 -08:00
Azat Khuzhin
65cfbaaa4b Safer Rust (catch panic with catch_unwind())
Crossing boundaries of multiple languages is tricky, but we can do at
least something about this, in particular, use catch_unwind() [1] to
catch possible panic!()s.

  [1]: https://doc.rust-lang.org/std/panic/fn.catch_unwind.html

Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2024-01-31 22:31:18 +01:00
Alexey Milovidov
27cd218483 No debug symbols in Rust 2024-01-28 15:10:57 +01:00
Maximilian Roos
cc5ec9e634
build: Upgrade PRQL version 2023-08-04 11:34:00 -07:00
Azat Khuzhin
0b258dda4e Reproducible builds for Rust
From now on cargo will not download anything from the internet during
builds. This step had been moved for docker image builds (via cargo
vendor).

And now cargo inside docker.io/clickhouse/binary-builder will not use
any crates from the internet, so we don't need to add --offline for
cargo commands in cmake (corrosion_import_crate()).

Also the docker build command had been adjusted to allow following
symlinks inside build context, by using tar, this is required for Rust
packages.

Note, that to make proper Cargo.lock that could be vendored I did the
following:
- per-project locks had been removed (since there is no automatic way to
  sync the workspace Cargo.lock with per-project Cargo.lock, since cargo
  update/generate-lockfile will use only per-project Cargo.toml files
  apparently, -Z minimal-versions does not helps either)
- and to generate Cargo.lock with less changes I've pinned version in
  the Cargo.toml strictly, i.e. not 'foo = "0.1"' but 'foo = "=0.1"'
  then the Cargo.lock for workspace had been generated and afterwards
  I've reverted this part.

Plus I have to update the dependencies afterwards, since otherwise there
are conflicts with dependencies for std library. Non trivial.

Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2023-07-22 22:46:22 +02:00
János Benjamin Antal
e74acda53e
PRQL integration (#50686)
* Added prql-lib

* Add PRQL parser

* Extend stateless tests

* Add unit tests for `ParserPRQL`

---------

Co-authored-by: Ubuntu <ubuntu@ip-172-31-37-24.eu-central-1.compute.internal>
Co-authored-by: Ubuntu <ubuntu@ip-10-10-10-195.eu-central-1.compute.internal>
Co-authored-by: Александр Нам <47687537+seshWCS@users.noreply.github.com>
2023-07-20 12:54:42 +02:00