Compare commits

...

3 Commits

Author SHA1 Message Date
Gabriel Simmer
2f8eb58bdb Update to latest sqlparser version 2024-11-17 00:50:38 +00:00
Mostafa
328c703e4a bump 2024-11-12 18:54:25 -06:00
dependabot[bot]
da044e8fa5 chore(deps): bump sqlparser from 0.41.0 to 0.52.0
Bumps [sqlparser](https://github.com/apache/datafusion-sqlparser-rs) from 0.41.0 to 0.52.0.
- [Changelog](https://github.com/apache/datafusion-sqlparser-rs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/apache/datafusion-sqlparser-rs/commits)

---
updated-dependencies:
- dependency-name: sqlparser
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-12 04:16:48 +00:00
3 changed files with 22 additions and 38 deletions

4
Cargo.lock generated
View File

@@ -1525,9 +1525,9 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
[[package]] [[package]]
name = "sqlparser" name = "sqlparser"
version = "0.41.0" version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5cc2c25a6c66789625ef164b4c7d2e548d627902280c13710d33da8222169964" checksum = "9a875d8cd437cc8a97e9aeaeea352ec9a19aea99c23e9effb17757291de80b08"
dependencies = [ dependencies = [
"log", "log",
"sqlparser_derive", "sqlparser_derive",

View File

@@ -19,7 +19,7 @@ serde_derive = "1"
regex = "1" regex = "1"
num_cpus = "1" num_cpus = "1"
once_cell = "1" once_cell = "1"
sqlparser = { version = "0.41", features = ["visitor"] } sqlparser = { version = "0.52", features = ["visitor"] }
log = "0.4" log = "0.4"
arc-swap = "1" arc-swap = "1"
parking_lot = "0.12.1" parking_lot = "0.12.1"

View File

@@ -504,55 +504,33 @@ impl QueryRouter {
let mut table_names = Vec::new(); let mut table_names = Vec::new();
match q { match q {
Insert { Insert(i) => {
or,
into: _,
table_name,
columns,
overwrite: _,
source,
partitioned,
after_columns,
table: _,
on: _,
returning: _,
ignore: _,
} => {
// Not supported in postgres. // Not supported in postgres.
assert!(or.is_none()); assert!(i.or.is_none());
assert!(partitioned.is_none()); assert!(i.partitioned.is_none());
assert!(after_columns.is_empty()); assert!(i.after_columns.is_empty());
Self::process_table(table_name, &mut table_names); Self::process_table(&i.table_name, &mut table_names);
if let Some(source) = source { if let Some(source) = &i.source {
Self::process_query(source, &mut exprs, &mut table_names, &Some(columns)); Self::process_query(source, &mut exprs, &mut table_names, &Some(&i.columns));
} }
} }
Delete { Delete(d) => {
tables, if let Some(expr) = &d.selection {
from,
using,
selection,
returning: _,
order_by: _,
limit: _,
} => {
if let Some(expr) = selection {
exprs.push(expr.clone()); exprs.push(expr.clone());
} }
// Multi tables delete are not supported in postgres. // Multi tables delete are not supported in postgres.
assert!(tables.is_empty()); assert!(d.tables.is_empty());
Self::process_tables_with_join(from, &mut exprs, &mut table_names); if let Some(using_tbl_with_join) = &d.using {
if let Some(using_tbl_with_join) = using {
Self::process_tables_with_join( Self::process_tables_with_join(
using_tbl_with_join, using_tbl_with_join,
&mut exprs, &mut exprs,
&mut table_names, &mut table_names,
); );
} }
Self::process_selection(selection, &mut exprs); Self::process_selection(&d.selection, &mut exprs);
} }
Update { Update {
table, table,
@@ -822,7 +800,13 @@ impl QueryRouter {
for a in assignments { for a in assignments {
if sharding_key[0].value == "*" if sharding_key[0].value == "*"
&& sharding_key[1].value == a.id.last().unwrap().value.to_lowercase() && sharding_key[1].value
== a.target
.to_string()
.split('.')
.last()
.unwrap()
.to_lowercase()
{ {
return Err(Error::QueryRouterParserError( return Err(Error::QueryRouterParserError(
"Sharding key cannot be updated.".into(), "Sharding key cannot be updated.".into(),