Skip to content

Commit 221018b

Browse files
authored
refactor(sqlsmith): refactor sqlsmith using http client (#16890)
* refactor(sqlsmith): refactor sqlsmith using http client * fix * rewrite HttpClient
1 parent a2ce45c commit 221018b

File tree

10 files changed

+580
-329
lines changed

10 files changed

+580
-329
lines changed

Cargo.lock

Lines changed: 11 additions & 137 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -536,9 +536,6 @@ tracing-appender = "0.2.3"
536536
tracing-subscriber = { version = "0.3.17", features = ["env-filter", "json", "valuable"] }
537537

538538
# Databend Integration Test
539-
databend-client = { version = "0.22" }
540-
databend-driver = { version = "0.22" }
541-
databend-driver-core = { version = "0.22" }
542539
msql-srv = "0.11.0"
543540
mysql_common = "0.32.4"
544541
quickcheck = "1.0"

src/query/expression/src/row/row_converter.rs

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -57,15 +57,17 @@ impl RowConverter {
5757

5858
fn support_data_type(d: &DataType) -> bool {
5959
match d {
60-
DataType::Array(_)
61-
| DataType::EmptyArray
62-
| DataType::EmptyMap
63-
| DataType::Map(_)
64-
| DataType::Bitmap
65-
| DataType::Tuple(_)
66-
| DataType::Generic(_) => false,
60+
DataType::Null
61+
| DataType::Boolean
62+
| DataType::Number(_)
63+
| DataType::Decimal(_)
64+
| DataType::Timestamp
65+
| DataType::Date
66+
| DataType::Binary
67+
| DataType::String
68+
| DataType::Variant => true,
6769
DataType::Nullable(inner) => Self::support_data_type(inner.as_ref()),
68-
_ => true,
70+
_ => false,
6971
}
7072
}
7173

src/tests/sqlsmith/Cargo.toml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,24 +9,26 @@ edition = { workspace = true }
99
[dependencies]
1010
chrono-tz = { workspace = true }
1111
clap = { workspace = true }
12-
databend-client = { workspace = true }
12+
cookie = { workspace = true }
1313
databend-common-ast = { workspace = true }
14+
databend-common-exception = { workspace = true }
1415
databend-common-expression = { workspace = true }
1516
databend-common-formats = { workspace = true }
1617
databend-common-functions = { workspace = true }
1718
databend-common-io = { workspace = true }
1819
databend-common-sql = { workspace = true }
19-
databend-driver = { workspace = true }
20-
databend-driver-core = { workspace = true }
2120
ethnum = { workspace = true }
2221
itertools = { workspace = true }
2322
jiff = { workspace = true }
2423
jsonb = { workspace = true }
2524
rand = { workspace = true }
25+
reqwest = { workspace = true, features = ["cookies"] }
26+
serde = { workspace = true }
27+
serde_json = { workspace = true }
2628
tokio = { workspace = true }
27-
tokio-stream = { workspace = true }
2829
tracing = { workspace = true }
2930
tracing-subscriber = { workspace = true }
31+
url = { workspace = true }
3032

3133
[[bin]]
3234
name = "databend-sqlsmith"

src/tests/sqlsmith/src/bin/main.rs

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@
1313
// limitations under the License.
1414

1515
use clap::Parser;
16+
use databend_common_exception::Result;
1617
use databend_sqlsmith::Runner;
18+
use tracing::metadata::LevelFilter;
19+
use tracing_subscriber::EnvFilter;
1720

1821
#[derive(Clone, Debug, PartialEq, Eq, Parser)]
1922
#[clap(about, author)]
@@ -27,7 +30,7 @@ pub struct Args {
2730
port: u16,
2831

2932
/// The test database.
30-
#[clap(long, default_value = "default")]
33+
#[clap(long, default_value = "sqlsmith_test")]
3134
db: String,
3235

3336
/// The username.
@@ -48,15 +51,26 @@ pub struct Args {
4851
}
4952

5053
#[tokio::main(flavor = "multi_thread", worker_threads = 5)]
51-
async fn main() {
52-
tracing_subscriber::fmt::init();
54+
async fn main() -> Result<()> {
55+
let filter = EnvFilter::builder()
56+
.with_default_directive(LevelFilter::INFO.into())
57+
.parse("")
58+
.unwrap();
59+
tracing_subscriber::fmt().with_env_filter(filter).init();
5360

5461
let args = Args::parse();
62+
let host = format!("http://{}:{}", args.host, args.port);
63+
let mut runner = Runner::try_new(
64+
host,
65+
args.user.clone(),
66+
args.pass.clone(),
67+
args.db.clone(),
68+
args.count,
69+
None,
70+
args.timeout,
71+
)
72+
.await?;
73+
runner.run().await?;
5574

56-
let dsn = format!(
57-
"databend://{}:{}@{}:{}/{}?sslmode=disable",
58-
args.user, args.pass, args.host, args.port, args.db
59-
);
60-
let runner = Runner::new(dsn, args.count, None, args.timeout);
61-
runner.run().await;
75+
Ok(())
6276
}

0 commit comments

Comments
 (0)