liningpan opened a new issue, #2514:
URL: https://github.com/apache/datafusion-sqlparser-rs/issues/2514

   It appears that `sqlparser` is contributing significantly to DataFusion and 
downstream projects that uses DataFusion as a library.
   
   `cargo bloat` suggests that 6.4MB/100MB of the datafusion-cli binary 
(release build) is attributed to sqlparser (for my own project, it bloats up to 
20 MB/150MB). 
   
   ```
   > cargo bloat --bin datafusion-cli --release --filter sqlparser -n 100 
--full-fn
   
   File .text    Size     Crate Name
   0.0%  0.1% 33.8KiB sqlparser 
<sqlparser[f91aac8db406c26f]::parser::Parser>::parse_alter
   0.0%  0.1% 32.8KiB sqlparser 
<sqlparser[f91aac8db406c26f]::parser::Parser>::parse_create
   0.0%  0.0% 26.7KiB sqlparser <sqlparser[f91aac8db406c26f]::ast::Statement as 
core[663bb9e1522ba5ef]::hash::Hash>::hash::<hashbrown[a17ea828e164abc8]::hasher::DefaultHasher>
   0.0%  0.0% 26.7KiB sqlparser <sqlparser[f91aac8db406c26f]::ast::Statement as 
core[663bb9e1522ba5ef]::hash::Hash>::hash::<hashbrown[a17ea828e164abc8]::hasher::DefaultHasher>
   0.0%  0.0% 26.7KiB sqlparser <sqlparser[f91aac8db406c26f]::ast::Statement as 
core[663bb9e1522ba5ef]::hash::Hash>::hash::<hashbrown[a17ea828e164abc8]::hasher::DefaultHasher>
   0.0%  0.0% 26.6KiB sqlparser 
<sqlparser[f91aac8db406c26f]::parser::Parser>::parse_alter_table_operation
   0.0%  0.0% 19.8KiB sqlparser 
<sqlparser[f91aac8db406c26f]::ast::ddl::CreateTable as 
core[663bb9e1522ba5ef]::hash::Hash>::hash::<hashbrown[a17ea828e164abc8]::hasher::DefaultHasher>
   0.0%  0.0% 19.8KiB sqlparser 
<sqlparser[f91aac8db406c26f]::ast::ddl::CreateTable as 
core[663bb9e1522ba5ef]::hash::Hash>::hash::<hashbrown[a17ea828e164abc8]::hasher::DefaultHasher>
   0.0%  0.0% 19.8KiB sqlparser 
<sqlparser[f91aac8db406c26f]::ast::ddl::CreateTable as 
core[663bb9e1522ba5ef]::hash::Hash>::hash::<hashbrown[a17ea828e164abc8]::hasher::DefaultHasher>
   0.0%  0.0% 19.4KiB sqlparser 
<sqlparser[f91aac8db406c26f]::dialect::snowflake::SnowflakeDialect as 
sqlparser[f91aac8db406c26f]::dialect::Dialect>::parse_statement
   0.0%  0.0% 18.4KiB sqlparser 
<sqlparser[f91aac8db406c26f]::parser::Parser>::parse_table_factor::{closure#0}
   0.0%  0.0% 17.5KiB sqlparser 
sqlparser[f91aac8db406c26f]::dialect::snowflake::parse_create_table
   0.0%  0.0% 17.4KiB sqlparser <sqlparser[f91aac8db406c26f]::ast::Statement as 
core[663bb9e1522ba5ef]::fmt::Display>::fmt
   0.0%  0.0% 17.4KiB sqlparser 
<sqlparser[f91aac8db406c26f]::parser::Parser>::parse_create_table
   0.0%  0.0% 17.1KiB sqlparser <sqlparser[f91aac8db406c26f]::ast::Statement as 
core[663bb9e1522ba5ef]::clone::Clone>::clone
   0.0%  0.0% 17.1KiB sqlparser <sqlparser[f91aac8db406c26f]::ast::Statement as 
core[663bb9e1522ba5ef]::clone::Clone>::clone
   0.0%  0.0% 17.1KiB sqlparser <sqlparser[f91aac8db406c26f]::ast::Statement as 
core[663bb9e1522ba5ef]::clone::Clone>::clone
   0.0%  0.0% 17.1KiB sqlparser <sqlparser[f91aac8db406c26f]::ast::Statement as 
core[663bb9e1522ba5ef]::clone::Clone>::clone
   0.0%  0.0% 17.1KiB sqlparser <sqlparser[f91aac8db406c26f]::ast::Statement as 
core[663bb9e1522ba5ef]::clone::Clone>::clone
   0.0%  0.0% 17.1KiB sqlparser <sqlparser[f91aac8db406c26f]::ast::Statement as 
core[663bb9e1522ba5ef]::clone::Clone>::clone
   0.0%  0.0% 17.1KiB sqlparser <sqlparser[f91aac8db406c26f]::ast::Statement as 
core[663bb9e1522ba5ef]::clone::Clone>::clone
   0.0%  0.0% 17.1KiB sqlparser <sqlparser[f91aac8db406c26f]::ast::Statement as 
core[663bb9e1522ba5ef]::clone::Clone>::clone
   0.0%  0.0% 17.1KiB sqlparser <sqlparser[f91aac8db406c26f]::ast::Statement as 
core[663bb9e1522ba5ef]::clone::Clone>::clone
   0.0%  0.0% 17.1KiB sqlparser <sqlparser[f91aac8db406c26f]::ast::Statement as 
core[663bb9e1522ba5ef]::clone::Clone>::clone
   0.0%  0.0% 17.1KiB sqlparser <sqlparser[f91aac8db406c26f]::ast::Statement as 
core[663bb9e1522ba5ef]::clone::Clone>::clone
   0.0%  0.0% 17.1KiB sqlparser <sqlparser[f91aac8db406c26f]::ast::Statement as 
core[663bb9e1522ba5ef]::clone::Clone>::clone
   0.0%  0.0% 17.1KiB sqlparser <sqlparser[f91aac8db406c26f]::ast::Statement as 
core[663bb9e1522ba5ef]::clone::Clone>::clone
   0.0%  0.0% 15.3KiB sqlparser 
<sqlparser[f91aac8db406c26f]::parser::Parser>::parse_optional_create_table_config
   0.0%  0.0% 15.0KiB sqlparser 
<sqlparser[f91aac8db406c26f]::tokenizer::Tokenizer>::next_token
   0.0%  0.0% 14.7KiB sqlparser 
<sqlparser[f91aac8db406c26f]::parser::Parser>::parse_prefix::{closure#1}
   0.0%  0.0% 13.9KiB sqlparser <sqlparser[f91aac8db406c26f]::ast::Statement as 
core[663bb9e1522ba5ef]::hash::Hash>::hash::<std[5d97c59e5e5fafcc]::hash::random::DefaultHasher>
   0.0%  0.0% 13.9KiB sqlparser <sqlparser[f91aac8db406c26f]::ast::Statement as 
core[663bb9e1522ba5ef]::hash::Hash>::hash::<std[5d97c59e5e5fafcc]::hash::random::DefaultHasher>
   0.0%  0.0% 13.9KiB sqlparser <sqlparser[f91aac8db406c26f]::ast::Statement as 
core[663bb9e1522ba5ef]::hash::Hash>::hash::<std[5d97c59e5e5fafcc]::hash::random::DefaultHasher>
   0.0%  0.0% 13.9KiB sqlparser <sqlparser[f91aac8db406c26f]::ast::Statement as 
core[663bb9e1522ba5ef]::hash::Hash>::hash::<std[5d97c59e5e5fafcc]::hash::random::DefaultHasher>
   0.0%  0.0% 13.6KiB sqlparser 
<sqlparser[f91aac8db406c26f]::parser::Parser>::parse_grant_deny_revoke_privileges_objects
   0.0%  0.0% 13.2KiB sqlparser 
<sqlparser[f91aac8db406c26f]::parser::Parser>::parse_select
   0.0%  0.0% 13.1KiB sqlparser 
<sqlparser[f91aac8db406c26f]::ast::query::TableFactor as 
core[663bb9e1522ba5ef]::hash::Hash>::hash::<std[5d97c59e5e5fafcc]::hash::random::DefaultHasher>
   0.0%  0.0% 13.1KiB sqlparser 
<sqlparser[f91aac8db406c26f]::ast::query::TableFactor as 
core[663bb9e1522ba5ef]::hash::Hash>::hash::<std[5d97c59e5e5fafcc]::hash::random::DefaultHasher>
   0.0%  0.0% 13.1KiB sqlparser 
<sqlparser[f91aac8db406c26f]::ast::query::TableFactor as 
core[663bb9e1522ba5ef]::hash::Hash>::hash::<std[5d97c59e5e5fafcc]::hash::random::DefaultHasher>
   0.0%  0.0% 13.1KiB sqlparser 
<sqlparser[f91aac8db406c26f]::ast::query::TableFactor as 
core[663bb9e1522ba5ef]::hash::Hash>::hash::<std[5d97c59e5e5fafcc]::hash::random::DefaultHasher>
   ```
   
   It appears that there are a substantial number of `hash` and `clone` 
implementations that got inlined for `Statement` and `CreateTable` types. In my 
case, I got like 20 copies for Statement with hashbrown hasher alone. 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to