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

infer_schema! fails on table, removing a column yields success #1280

Closed
abhikp opened this Issue Oct 28, 2017 · 2 comments

Comments

Projects
None yet
2 participants
@abhikp

abhikp commented Oct 28, 2017

Setup

Versions

  • Rust: 1.21.0
  • Diesel: 0.16.0
  • Database: SQLite
  • Operating System OS X 10.13

Feature Flags

  • diesel: ["sqlite"]
  • diesel_codegen: ["sqlite"]

Problem Description

infer_schema! fails when running cargo build for this table:

CREATE TABLE test (
    e01 INTEGER NOT NULL,
    e02 VARCHAR NOT NULL,
    e03 TEXT NOT NULL,
    e04 VARCHAR NOT NULL,
    e05 VARCHAR NOT NULL,
    e06 FLOAT NOT NULL,
    e07 FLOAT NOT NULL,
    e08 FLOAT NOT NULL,
    e09 FLOAT NOT NULL,
    e10 FLOAT NOT NULL,
    e11 FLOAT NOT NULL,
    e12 FLOAT NOT NULL,
    e13 FLOAT NOT NULL,
    e14 FLOAT NOT NULL,
    e15 FLOAT NOT NULL,
    e16 FLOAT NOT NULL,
    e17 VARCHAR PRIMARY KEY NOT NULL
);

Removing a column (e.g. e16) followed by cargo clean and cargo build yields a successful build.

What are you trying to accomplish?

A successful inference of the test table.

What is the expected output?

A successful build.

What is the actual output?

% cargo build
   Compiling diesel_issue v0.1.0 (file:///Users/abhik/Development/rust/diesel_issue)
error[E0277]: the trait bound `(__diesel_infer_schema::infer_test::test::columns::e01, __diesel_infer_schema::infer_test::test::columns::e02, __diesel_infer_schema::infer_test::test::columns::e03, __diesel_infer_schema::infer_test::test::columns::e04, __diesel_infer_schema::infer_test::test::columns::e05, __diesel_infer_schema::infer_test::test::columns::e06, __diesel_infer_schema::infer_test::test::columns::e07, __diesel_infer_schema::infer_test::test::columns::e08, __diesel_infer_schema::infer_test::test::columns::e09, __diesel_infer_schema::infer_test::test::columns::e10, __diesel_infer_schema::infer_test::test::columns::e11, __diesel_infer_schema::infer_test::test::columns::e12, __diesel_infer_schema::infer_test::test::columns::e13, __diesel_infer_schema::infer_test::test::columns::e14, __diesel_infer_schema::infer_test::test::columns::e15, __diesel_infer_schema::infer_test::test::columns::e16, __diesel_infer_schema::infer_test::test::columns::e17): diesel::Expression` is not satisfied
 --> src/lib.rs:7:1
  |
7 | infer_schema!("dotenv:DATABASE_URL");
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `diesel::Expression` is not implemented for `(__diesel_infer_schema::infer_test::test::columns::e01, __diesel_infer_schema::infer_test::test::columns::e02, __diesel_infer_schema::infer_test::test::columns::e03, __diesel_infer_schema::infer_test::test::columns::e04, __diesel_infer_schema::infer_test::test::columns::e05, __diesel_infer_schema::infer_test::test::columns::e06, __diesel_infer_schema::infer_test::test::columns::e07, __diesel_infer_schema::infer_test::test::columns::e08, __diesel_infer_schema::infer_test::test::columns::e09, __diesel_infer_schema::infer_test::test::columns::e10, __diesel_infer_schema::infer_test::test::columns::e11, __diesel_infer_schema::infer_test::test::columns::e12, __diesel_infer_schema::infer_test::test::columns::e13, __diesel_infer_schema::infer_test::test::columns::e14, __diesel_infer_schema::infer_test::test::columns::e15, __diesel_infer_schema::infer_test::test::columns::e16, __diesel_infer_schema::infer_test::test::columns::e17)`
  |
  = note: this error originates in a macro outside of the current crate

error[E0277]: the trait bound `(__diesel_infer_schema::infer_test::test::columns::e01, __diesel_infer_schema::infer_test::test::columns::e02, __diesel_infer_schema::infer_test::test::columns::e03, __diesel_infer_schema::infer_test::test::columns::e04, __diesel_infer_schema::infer_test::test::columns::e05, __diesel_infer_schema::infer_test::test::columns::e06, __diesel_infer_schema::infer_test::test::columns::e07, __diesel_infer_schema::infer_test::test::columns::e08, __diesel_infer_schema::infer_test::test::columns::e09, __diesel_infer_schema::infer_test::test::columns::e10, __diesel_infer_schema::infer_test::test::columns::e11, __diesel_infer_schema::infer_test::test::columns::e12, __diesel_infer_schema::infer_test::test::columns::e13, __diesel_infer_schema::infer_test::test::columns::e14, __diesel_infer_schema::infer_test::test::columns::e15, __diesel_infer_schema::infer_test::test::columns::e16, __diesel_infer_schema::infer_test::test::columns::e17): diesel::expression::NonAggregate` is not satisfied
 --> src/lib.rs:7:1
  |
7 | infer_schema!("dotenv:DATABASE_URL");
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `diesel::expression::NonAggregate` is not implemented for `(__diesel_infer_schema::infer_test::test::columns::e01, __diesel_infer_schema::infer_test::test::columns::e02, __diesel_infer_schema::infer_test::test::columns::e03, __diesel_infer_schema::infer_test::test::columns::e04, __diesel_infer_schema::infer_test::test::columns::e05, __diesel_infer_schema::infer_test::test::columns::e06, __diesel_infer_schema::infer_test::test::columns::e07, __diesel_infer_schema::infer_test::test::columns::e08, __diesel_infer_schema::infer_test::test::columns::e09, __diesel_infer_schema::infer_test::test::columns::e10, __diesel_infer_schema::infer_test::test::columns::e11, __diesel_infer_schema::infer_test::test::columns::e12, __diesel_infer_schema::infer_test::test::columns::e13, __diesel_infer_schema::infer_test::test::columns::e14, __diesel_infer_schema::infer_test::test::columns::e15, __diesel_infer_schema::infer_test::test::columns::e16, __diesel_infer_schema::infer_test::test::columns::e17)`
  |
  = note: this error originates in a macro outside of the current crate

error[E0277]: the trait bound `(__diesel_infer_schema::infer_test::test::columns::e01, __diesel_infer_schema::infer_test::test::columns::e02, __diesel_infer_schema::infer_test::test::columns::e03, __diesel_infer_schema::infer_test::test::columns::e04, __diesel_infer_schema::infer_test::test::columns::e05, __diesel_infer_schema::infer_test::test::columns::e06, __diesel_infer_schema::infer_test::test::columns::e07, __diesel_infer_schema::infer_test::test::columns::e08, __diesel_infer_schema::infer_test::test::columns::e09, __diesel_infer_schema::infer_test::test::columns::e10, __diesel_infer_schema::infer_test::test::columns::e11, __diesel_infer_schema::infer_test::test::columns::e12, __diesel_infer_schema::infer_test::test::columns::e13, __diesel_infer_schema::infer_test::test::columns::e14, __diesel_infer_schema::infer_test::test::columns::e15, __diesel_infer_schema::infer_test::test::columns::e16, __diesel_infer_schema::infer_test::test::columns::e17): diesel::SelectableExpression<__diesel_infer_schema::infer_test::test::table>` is not satisfied
 --> src/lib.rs:7:1
  |
7 | infer_schema!("dotenv:DATABASE_URL");
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `diesel::SelectableExpression<__diesel_infer_schema::infer_test::test::table>` is not implemented for `(__diesel_infer_schema::infer_test::test::columns::e01, __diesel_infer_schema::infer_test::test::columns::e02, __diesel_infer_schema::infer_test::test::columns::e03, __diesel_infer_schema::infer_test::test::columns::e04, __diesel_infer_schema::infer_test::test::columns::e05, __diesel_infer_schema::infer_test::test::columns::e06, __diesel_infer_schema::infer_test::test::columns::e07, __diesel_infer_schema::infer_test::test::columns::e08, __diesel_infer_schema::infer_test::test::columns::e09, __diesel_infer_schema::infer_test::test::columns::e10, __diesel_infer_schema::infer_test::test::columns::e11, __diesel_infer_schema::infer_test::test::columns::e12, __diesel_infer_schema::infer_test::test::columns::e13, __diesel_infer_schema::infer_test::test::columns::e14, __diesel_infer_schema::infer_test::test::columns::e15, __diesel_infer_schema::infer_test::test::columns::e16, __diesel_infer_schema::infer_test::test::columns::e17)`
  |
  = note: this error originates in a macro outside of the current crate

error[E0277]: the trait bound `(__diesel_infer_schema::infer_test::test::columns::e01, __diesel_infer_schema::infer_test::test::columns::e02, __diesel_infer_schema::infer_test::test::columns::e03, __diesel_infer_schema::infer_test::test::columns::e04, __diesel_infer_schema::infer_test::test::columns::e05, __diesel_infer_schema::infer_test::test::columns::e06, __diesel_infer_schema::infer_test::test::columns::e07, __diesel_infer_schema::infer_test::test::columns::e08, __diesel_infer_schema::infer_test::test::columns::e09, __diesel_infer_schema::infer_test::test::columns::e10, __diesel_infer_schema::infer_test::test::columns::e11, __diesel_infer_schema::infer_test::test::columns::e12, __diesel_infer_schema::infer_test::test::columns::e13, __diesel_infer_schema::infer_test::test::columns::e14, __diesel_infer_schema::infer_test::test::columns::e15, __diesel_infer_schema::infer_test::test::columns::e16, __diesel_infer_schema::infer_test::test::columns::e17): diesel::SelectableExpression<__diesel_infer_schema::infer_test::test::table>` is not satisfied
 --> src/lib.rs:7:1
  |
7 | infer_schema!("dotenv:DATABASE_URL");
  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `diesel::SelectableExpression<__diesel_infer_schema::infer_test::test::table>` is not implemented for `(__diesel_infer_schema::infer_test::test::columns::e01, __diesel_infer_schema::infer_test::test::columns::e02, __diesel_infer_schema::infer_test::test::columns::e03, __diesel_infer_schema::infer_test::test::columns::e04, __diesel_infer_schema::infer_test::test::columns::e05, __diesel_infer_schema::infer_test::test::columns::e06, __diesel_infer_schema::infer_test::test::columns::e07, __diesel_infer_schema::infer_test::test::columns::e08, __diesel_infer_schema::infer_test::test::columns::e09, __diesel_infer_schema::infer_test::test::columns::e10, __diesel_infer_schema::infer_test::test::columns::e11, __diesel_infer_schema::infer_test::test::columns::e12, __diesel_infer_schema::infer_test::test::columns::e13, __diesel_infer_schema::infer_test::test::columns::e14, __diesel_infer_schema::infer_test::test::columns::e15, __diesel_infer_schema::infer_test::test::columns::e16, __diesel_infer_schema::infer_test::test::columns::e17)`
  |
  = note: this error originates in a macro outside of the current crate

error: aborting due to 4 previous errors

error: Could not compile `diesel_issue`.

To learn more, run the command again with --verbose.

Are you seeing any additional errors?

Nope.

Steps to reproduce

Please see example repo and follow README

Checklist

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

This comment has been minimized.

Member

killercup commented Oct 28, 2017

@abhikp

This comment has been minimized.

abhikp commented Oct 29, 2017

That worked. Thanks!

@killercup killercup closed this Oct 29, 2017

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