New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Diesel with large-tables feature is not compiling #1634

Closed
Flakebi opened this Issue Apr 12, 2018 · 3 comments

Comments

Projects
None yet
4 participants
@Flakebi

Flakebi commented Apr 12, 2018

Setup

Versions

  • Rust: Stable 1.25.0 and 1.26.0-nightly (517f24025 2018-03-31)
  • Diesel: 1.2.1
  • Database: postgres
  • Operating System: linux

Feature Flags

  • diesel: ["large-tables"]

Problem Description

   Compiling diesel v1.2.1
error[E0550]: multiple deprecated attributes
   --> /home/sebi/.cargo/registry/src/github.com-1ecc6299db9ec823/diesel-1.2.1/src/lib.rs:1:1
    |
1   | / //! # Diesel
2   | | //!
3   | | //! Diesel is an ORM and query builder designed to reduce the boilerplate for database interactions.
4   | | //! If this is your first time reading this documentation,
...   |
303 | |                                    select, sql_query, update};
304 | | pub use result::Error::NotFound;
    | |________________________________^

error: aborting due to previous error

For more information about this error, try `rustc --explain E0550`.
error: Could not compile `diesel`.

Steps to reproduce

This happens not with diesel 1.1 (so I'm locking it to this version for now) and compiling without feature flags works just fine.

Minimal example:
Add diesel = { version = "*", features = ["large-tables"] } to Cargo.toml
and extern crate diesel; to main.rs
and cargo build.

Checklist

  • I have already looked over the issue tracker for similar issues.

Well, I did search the issue tracker for this error message, now I found out that this feature was renamed/activated by default so it’s not a real issue anymore (removing the feature fixes the issue).

It would be nice though if the error message would be more clear (and it would have saved me quite some time).

@weiznich

This comment has been minimized.

Contributor

weiznich commented Apr 12, 2018

Workaround: Change "large-tables" into "32-column-tables" (Or just remove that feature because that's now the new default).

@diesel-rs/core As far as I could see this happens because we deny warning in diesel and then drop a warning that we deprecated the large-table feature inside of diesel. So the build will fail.
Additionally the error message is really bad. It seems like cargo is hidding the real message because if I use a local diesel clone I get the following message:

Error message

error[E0550]: multiple deprecated attributes
   --> /home/weiznich/Dokumente/rust/diesel/diesel/src/lib.rs:1:1
    |
1   | / //! # Diesel
2   | | //!
3   | | //! Diesel is an ORM and query builder designed to reduce the boilerplate for database interactions.
4   | | //! If this is your first time reading this documentation,
...   |
303 | |                                    select, sql_query, update};
304 | | pub use result::Error::NotFound;
    | |________________________________^
error: use of deprecated item 'expression::functions::helper_types::not': The large-tables feature has been renamed to 32-column-tables
  --> /home/weiznich/Dokumente/rust/diesel/diesel/src/expression/functions/helper_types.rs:14:22
   |
14 | pub type Not<Expr> = not<Expr>;
   |                      ^^^^^^^^^
   |
note: lint level defined here
  --> /home/weiznich/Dokumente/rust/diesel/diesel/src/lib.rs:113:9
   |
113| #![deny(warnings, missing_debug_implementations, missing_copy_implementations, missing_docs)]
   |         ^^^^^^^^
   = note: #[deny(deprecated)] implied by #[deny(warnings)]
error: use of deprecated item 'query_builder::update_statement::UpdateStatement': The large-tables feature has been renamed to 32-column-tables
  --> /home/weiznich/Dokumente/rust/diesel/diesel/src/query_builder/update_statement/mod.rs:23:44
   |
23 | pub type IncompleteUpdateStatement<T, U> = UpdateStatement<T, U>;
   |                                            ^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated item 'sql_types': The large-tables feature has been renamed to 32-column-tables
 --> /home/weiznich/Dokumente/rust/diesel/diesel/src/types/mod.rs:7:9
  |
7 | pub use sql_types::*;
  |         ^^^^^^^^^
error: use of deprecated item 'deserialize::FromSql': The large-tables feature has been renamed to 32-column-tables
  --> /home/weiznich/Dokumente/rust/diesel/diesel/src/types/mod.rs:10:9
   |
10 | pub use deserialize::{FromSql, FromSqlRow};
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated item 'deserialize::FromSqlRow': The large-tables feature has been renamed to 32-column-tables
  --> /home/weiznich/Dokumente/rust/diesel/diesel/src/types/mod.rs:10:9
   |
10 | pub use deserialize::{FromSql, FromSqlRow};
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated item 'serialize::IsNull': The large-tables feature has been renamed to 32-column-tables
  --> /home/weiznich/Dokumente/rust/diesel/diesel/src/types/mod.rs:13:9
   |
13 | pub use serialize::{IsNull, ToSql};
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated item 'serialize::ToSql': The large-tables feature has been renamed to 32-column-tables
  --> /home/weiznich/Dokumente/rust/diesel/diesel/src/types/mod.rs:13:9
   |
13 | pub use serialize::{IsNull, ToSql};
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated item 'sql_types::Bool': The large-tables feature has been renamed to 32-column-tables
  --> /home/weiznich/Dokumente/rust/diesel/diesel/src/types/mod.rs:16:17
   |
16 | pub type Bool = ::sql_types::Bool;
error: use of deprecated item 'sql_types::Tinyint': The large-tables feature has been renamed to 32-column-tables
  --> /home/weiznich/Dokumente/rust/diesel/diesel/src/types/mod.rs:19:20
   |
19 | pub type Tinyint = ::sql_types::Tinyint;
   |                    ^^^^^^^^^^^^^^^^^^^^
error: use of deprecated item 'sql_types::SmallInt': The large-tables feature has been renamed to 32-column-tables
  --> /home/weiznich/Dokumente/rust/diesel/diesel/src/types/mod.rs:22:21
   |
22 | pub type SmallInt = ::sql_types::SmallInt;
   |                     ^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated item 'sql_types::Integer': The large-tables feature has been renamed to 32-column-tables
  --> /home/weiznich/Dokumente/rust/diesel/diesel/src/types/mod.rs:25:20
   |
25 | pub type Integer = ::sql_types::Integer;
   |                    ^^^^^^^^^^^^^^^^^^^^
error: use of deprecated item 'sql_types::BigInt': The large-tables feature has been renamed to 32-column-tables
  --> /home/weiznich/Dokumente/rust/diesel/diesel/src/types/mod.rs:28:19
   |
28 | pub type BigInt = ::sql_types::BigInt;
   |                   ^^^^^^^^^^^^^^^^^^^
error: use of deprecated item 'sql_types::Float': The large-tables feature has been renamed to 32-column-tables
  --> /home/weiznich/Dokumente/rust/diesel/diesel/src/types/mod.rs:31:18
   |
31 | pub type Float = ::sql_types::Float;
   |                  ^^^^^^^^^^^^^^^^^^
error: use of deprecated item 'sql_types::Double': The large-tables feature has been renamed to 32-column-tables
  --> /home/weiznich/Dokumente/rust/diesel/diesel/src/types/mod.rs:34:19
   |
34 | pub type Double = ::sql_types::Double;
   |                   ^^^^^^^^^^^^^^^^^^^
error: use of deprecated item 'sql_types::Numeric': The large-tables feature has been renamed to 32-column-tables
  --> /home/weiznich/Dokumente/rust/diesel/diesel/src/types/mod.rs:37:20
   |
37 | pub type Numeric = ::sql_types::Numeric;
   |                    ^^^^^^^^^^^^^^^^^^^^
error: use of deprecated item 'sql_types::Text': The large-tables feature has been renamed to 32-column-tables
  --> /home/weiznich/Dokumente/rust/diesel/diesel/src/types/mod.rs:40:17
   |
40 | pub type Text = ::sql_types::Text;
   |                 ^^^^^^^^^^^^^^^^^
error: use of deprecated item 'sql_types::Binary': The large-tables feature has been renamed to 32-column-tables
  --> /home/weiznich/Dokumente/rust/diesel/diesel/src/types/mod.rs:43:19
   |
43 | pub type Binary = ::sql_types::Binary;
   |                   ^^^^^^^^^^^^^^^^^^^
error: use of deprecated item 'sql_types::Date': The large-tables feature has been renamed to 32-column-tables
  --> /home/weiznich/Dokumente/rust/diesel/diesel/src/types/mod.rs:46:17
   |
46 | pub type Date = ::sql_types::Date;
   |                 ^^^^^^^^^^^
error: use of deprecated item 'sql_types::Interval': The large-tables feature has been renamed to 32-column-tables
  --> /home/weiznich/Dokumente/rust/diesel/diesel/src/types/mod.rs:49:21
   |
49 | pub type Interval = ::sql_types::Interval;
   |                     ^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated item 'sql_types::Time': The large-tables feature has been renamed to 32-column-tables
  --> /home/weiznich/Dokumente/rust/diesel/diesel/src/types/mod.rs:52:17
   |
52 | pub type Time = ::sql_types::Time;
   |                 ^^^^^^^^^^^^^^^^^
error: use of deprecated item 'sql_types::Timestamp': The large-tables feature has been renamed to 32-column-tables
  --> /home/weiznich/Dokumente/rust/diesel/diesel/src/types/mod.rs:55:22
   |
55 | pub type Timestamp = ::sql_types::Timestamp;
   |                      ^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated item 'sql_types::Nullable': The large-tables feature has been renamed to 32-column-tables
   --> /home/weiznich/Dokumente/rust/diesel/diesel/src/types/mod.rs:106:25
    |
106 | pub type Nullable<ST> = ::sql_types::Nullable<ST>;
    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated item 'serialize::Output': The large-tables feature has been renamed to 32-column-tables
   --> /home/weiznich/Dokumente/rust/diesel/diesel/src/types/mod.rs:109:35
    |
109 | pub type ToSqlOutput<'a, T, DB> = ::serialize::Output<'a, T, DB>;
    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated item 'expression::array_comparison::AsInExpression': The large-tables feature has been renamed to 32-column-tables
   --> /home/weiznich/Dokumente/rust/diesel/diesel/src/expression_methods/global_expression_methods.rs:105:12
    |
105 |         T: AsInExpression<Self::SqlType>,
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated item 'expression::array_comparison::NotIn': The large-tables feature has been renamed to 32-column-tables
   --> /home/weiznich/Dokumente/rust/diesel/diesel/src/expression_methods/global_expression_methods.rs:103:38
    |
103 |     fn ne_any<T>(self, values: T) -> NotIn<Self, T::InExpression>
    |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: use of deprecated item 'expression::array_comparison::NotIn': The large-tables feature has been renamed to 32-column-tables
   --> /home/weiznich/Dokumente/rust/diesel/diesel/src/expression_methods/global_expression_methods.rs:107:9
    |
107 |         NotIn::new(self, values.as_in_expression())
    |         ^^^^^^^^^^
error: use of deprecated item 'expression::Expression::SqlType': The large-tables feature has been renamed to 32-column-tables
   --> /home/weiznich/Dokumente/rust/diesel/diesel/src/expression_methods/global_expression_methods.rs:105:27
    |
105 |         T: AsInExpression<Self::SqlType>,
    |                           ^^^^^^^^^^^^^
error: use of deprecated item 'expression::array_comparison::AsInExpression::InExpression': The large-tables feature has been renamed to 32-column-tables
   --> /home/weiznich/Dokumente/rust/diesel/diesel/src/expression_methods/global_expression_methods.rs:103:50
    |
103 |     fn ne_any<T>(self, values: T) -> NotIn<Self, T::InExpression>
    |                                                  ^^^^^^^^^^^^^^^

error: aborting due to 30 previous errors
error: Could not compile `diesel`.
To learn more, run the command again with --ver

@flosse

This comment has been minimized.

flosse commented Apr 12, 2018

I got the same issue!

sgrif added a commit that referenced this issue Apr 12, 2018

Release v1.2.2
The way we had deprecated `large-tables` and friends was breaking
builds. We still need to improve how this gets deprecated in general,
but in the short term we can fix it by allowing warnings.

Fixes #1634.

@sgrif sgrif closed this in f6671c5 Apr 12, 2018

@sgrif

This comment has been minimized.

Member

sgrif commented Apr 12, 2018

I've released 1.2.2 with a short term fix, and opened #1636 to come up with a better long term answer

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment