Skip to content

Commit f2eb373

Browse files
committed
Support jrsonnet 0.5.0-pre95 and -pre96
1 parent 7b43249 commit f2eb373

23 files changed

+8146
-41
lines changed

Cargo.lock

+4,236
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

+6-3
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,14 @@
22
version = "0.1.14"
33
edition = "2021"
44
license = "MIT OR Apache-2.0"
5+
description = "Express SQL queries with a simple Jsonnet representation, which can be easily templated using the Jsonnet configuration language. "
6+
categories = ["database", "compilers"]
7+
repository = "https://github.com/cpg314/sqlsonnet"
58

69
[workspace.dependencies]
710
sqlsonnet = { version = "0.1.14", path = "sqlsonnet" }
811
sqlsonnet-macros = { version = "0.1.14", path = "macros" }
9-
clickhouse-client = { version = "0.1.14", path = "clickhouse-client" }
12+
sqlsonnet-clickhouse-client = { version = "0.1.14", path = "clickhouse-client" }
1013

1114
anyhow = "1.0.86"
1215
clap = { version = "4.5.7", features = ["derive", "env"] }
@@ -21,8 +24,8 @@ lazy_static = "1.5.0"
2124
tokio = { version = "1.38.0", features = ["full"] }
2225
reqwest = { version = "0.12.4", features = ["rustls-tls", "json", "gzip", "zstd", "stream"], default-features = false }
2326
http = "1.0.0"
24-
jrsonnet-parser = { version = "0.5.0-pre96", git = "https://github.com/cpg314/jrsonnet.git", package = "jrsonnet-parser", tag = "v0.5.0-patch", features = ["exp-null-coaelse"] }
25-
27+
jrsonnet-parser-95 = { package = "jrsonnet-parser", version = "0.5.0-pre95", features = ["exp-null-coaelse"] }
28+
jrsonnet-parser-96 = { version = "0.5.0-pre96", git = "https://github.com/cpg314/jrsonnet.git", package = "jrsonnet-parser", tag = "v0.5.0-patch", features = ["exp-null-coaelse"] }
2629

2730
[workspace]
2831
members = ["sqlsonnet", "clickhouse-proxy", "sqlsonnet-cli", "clickhouse-client", "bindings/wasm", "macros"]

README.md

+7
Original file line numberDiff line numberDiff line change
@@ -335,6 +335,13 @@ $ cargo make docker-compose
335335
$ cargo nextest run --workspace -r
336336
```
337337

338+
### `jrsonnet` version
339+
340+
Via the feature flags `jrsonnet-95` and `jrsonnet-96` (default), the crate supports both:
341+
342+
- the latest published version of `jrsonnet` on crates.io, 0.5.0-pre95
343+
- the [soon-to-be-released](https://github.com/CertainLach/jrsonnet/issues/70) 0.5.0-pre96 version.
344+
338345
## TODO
339346

340347
- Proxy:

checkalot.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ checks:
2525

2626
- type: command
2727
name: clippy
28-
command: cargo clippy --color always --release --workspace --no-deps --benches --tests --all-features -- -D warnings
29-
fix_command: cargo clippy --color always --release --workspace --no-deps --benches --tests --all-features --fix --allow-dirty --allow-staged -- -D warnings
28+
command: cargo clippy --color always --release --workspace --no-deps --benches --tests -- -D warnings
29+
fix_command: cargo clippy --color always --release --workspace --no-deps --benches --tests --fix --allow-dirty --allow-staged -- -D warnings
3030

3131
- type: command
3232
name: docker-compose

clickhouse-client/Cargo.toml

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
[package]
2-
name = "clickhouse-client"
2+
name = "sqlsonnet-clickhouse-client"
33
version.workspace = true
4+
repository.workspace = true
5+
license.workspace = true
6+
description = "Simple Clickhouse HTTP client"
47
edition = "2021"
58

69

clickhouse-proxy/Cargo.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[package]
2-
name = "clickhouse-proxy"
2+
name = "sqlsonnet-clickhouse-proxy"
33
version.workspace = true
44
edition = "2021"
55
publish = false
@@ -10,7 +10,7 @@ path = "src/clickhouse_proxy.rs"
1010
doc = false
1111

1212
[dependencies]
13-
clickhouse-client.workspace = true
13+
sqlsonnet-clickhouse-client.workspace = true
1414
sqlsonnet.workspace = true
1515

1616
anyhow.workspace = true

clickhouse-proxy/src/cache.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ impl Response {
166166
Ok::<_, CacheError>(())
167167
});
168168
let body = axum::body::Body::from_stream(body.map(move |buf| {
169-
let buf = buf.map_err(clickhouse_client::Error::from)?;
169+
let buf = buf.map_err(sqlsonnet_clickhouse_client::Error::from)?;
170170
tx.send(buf.clone()).map_err(|_| CacheError::SendBuf)?;
171171
Ok::<_, Error>(buf)
172172
}));

clickhouse-proxy/src/clickhouse_proxy.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use clap::Parser;
22
use tracing::*;
33

4-
use clickhouse_proxy::{main_impl, Flags};
4+
use sqlsonnet_clickhouse_proxy::{main_impl, Flags};
55

66
#[tokio::main]
77
async fn main() -> anyhow::Result<()> {

clickhouse-proxy/src/error.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ pub enum Error {
1010
#[error("Sqlsonnet error: {0}")]
1111
SqlSonnet(#[from] sqlsonnet::Error),
1212
#[error("Clickhouse error: {0}")]
13-
Clickhouse(#[from] clickhouse_client::Error),
13+
Clickhouse(#[from] sqlsonnet_clickhouse_client::Error),
1414
#[error("Received unexpected response from Clickhouse: {0}")]
1515
ClickhousePing(String),
1616
#[error("Cache error: {0}")]

clickhouse-proxy/src/lib.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,12 @@ use std::sync::Arc;
1414
use anyhow::Context;
1515
use axum::response::IntoResponse;
1616
use clap::Parser;
17+
use clickhouse_client::ClickhouseQuery;
1718
use itertools::Itertools;
1819
use metrics_exporter_prometheus::PrometheusBuilder;
20+
use sqlsonnet_clickhouse_client as clickhouse_client;
1921
use tracing::*;
2022

21-
use clickhouse_client::ClickhouseQuery;
2223
use sqlsonnet::{Queries, Query};
2324

2425
lazy_static::lazy_static! {

clickhouse-proxy/src/playground.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ mod websocket {
244244
params: BTreeMap::from([("default_format".into(), FORMAT.into())]),
245245
// We can't ask for compression here, because the client does not have
246246
// decompression enabled.
247-
compression: clickhouse_client::Compression::None,
247+
compression: sqlsonnet_clickhouse_client::Compression::None,
248248
..Default::default()
249249
})
250250
.await?;

clickhouse-proxy/tests/main.rs

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
use std::collections::BTreeMap;
22

3+
use sqlsonnet_clickhouse_client as clickhouse_client;
4+
use sqlsonnet_clickhouse_proxy as clickhouse_proxy;
35
use tracing::*;
46

57
/// Integration test which requires a Clickhouse server running (use `cargo make docker-compose`)

macros/Cargo.toml

+8-1
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,19 @@ name = "sqlsonnet-macros"
33
version.workspace = true
44
license.workspace = true
55
edition = "2021"
6+
description = "Proc macros for sqlsonnet"
67

78
[lib]
89
proc-macro = true
910

1011
[dependencies]
1112
quote = "1.0.36"
12-
jrsonnet-parser.workspace = true
13+
jrsonnet-parser-96 = { workspace = true, optional = true }
14+
jrsonnet-parser-95 = { workspace = true, optional = true }
1315
syn = "2.0.66"
1416
proc-macro2 = "1.0.85"
17+
18+
[features]
19+
default = []
20+
jrsonnet-95 = ["dep:jrsonnet-parser-95"]
21+
jrsonnet-96 = ["dep:jrsonnet-parser-96"]

macros/src/lib.rs

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
extern crate proc_macro;
2+
#[cfg(feature = "jrsonnet-95")]
3+
use jrsonnet_parser_95 as jrsonnet_parser;
4+
#[cfg(feature = "jrsonnet-96")]
5+
use jrsonnet_parser_96 as jrsonnet_parser;
26
use proc_macro::TokenStream;
37
use quote::quote;
48

@@ -13,14 +17,12 @@ fn crate_() -> proc_macro2::TokenStream {
1317
}
1418
}
1519

16-
#[derive(Debug)]
1720
struct Input {
1821
sqlsonnet: String,
1922
variables: Vec<Variable>,
2023
resolver: syn::Expr,
2124
}
2225

23-
#[derive(Debug)]
2426
struct Variable {
2527
name: syn::Ident,
2628
value: syn::Expr,

0 commit comments

Comments
 (0)