[INFO] cloning repository https://github.com/dbrowne/alphavantage [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dbrowne/alphavantage" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdbrowne%2Falphavantage", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdbrowne%2Falphavantage'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 65afd31bb7ef58b93ec52cb6ea0ba8915c592e6c [INFO] checking dbrowne/alphavantage against try#95813608313bff49cfc1afc393a946a3c085b772 for pr-148946 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdbrowne%2Falphavantage" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/dbrowne/alphavantage [INFO] finished tweaking git repo https://github.com/dbrowne/alphavantage [INFO] tweaked toml for git repo https://github.com/dbrowne/alphavantage written to /workspace/builds/worker-2-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/dbrowne/alphavantage on toolchain 95813608313bff49cfc1afc393a946a3c085b772 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+95813608313bff49cfc1afc393a946a3c085b772" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/dbrowne/alphavantage already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+95813608313bff49cfc1afc393a946a3c085b772" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+95813608313bff49cfc1afc393a946a3c085b772" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] caadfe10e0a8ca0fc4dfb3306c9cd1a04135812daf22b1dcebfd6a7f9890c64a [INFO] running `Command { std: "docker" "start" "-a" "caadfe10e0a8ca0fc4dfb3306c9cd1a04135812daf22b1dcebfd6a7f9890c64a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "caadfe10e0a8ca0fc4dfb3306c9cd1a04135812daf22b1dcebfd6a7f9890c64a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "caadfe10e0a8ca0fc4dfb3306c9cd1a04135812daf22b1dcebfd6a7f9890c64a", kill_on_drop: false }` [INFO] [stdout] caadfe10e0a8ca0fc4dfb3306c9cd1a04135812daf22b1dcebfd6a7f9890c64a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+95813608313bff49cfc1afc393a946a3c085b772" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 63ee66adca9286ea7d62d00cebc9828ae1c0839816c32258a77b8db79e6c6f6c [INFO] running `Command { std: "docker" "start" "-a" "63ee66adca9286ea7d62d00cebc9828ae1c0839816c32258a77b8db79e6c6f6c", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.174 [INFO] [stderr] Checking cfg-if v1.0.1 [INFO] [stderr] Checking smallvec v1.15.1 [INFO] [stderr] Checking memchr v2.7.5 [INFO] [stderr] Checking slab v0.4.10 [INFO] [stderr] Checking log v0.4.28 [INFO] [stderr] Checking futures-io v0.3.31 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking bitflags v2.9.1 [INFO] [stderr] Compiling syn v2.0.104 [INFO] [stderr] Compiling getrandom v0.3.3 [INFO] [stderr] Compiling cc v1.2.29 [INFO] [stderr] Checking tracing-core v0.1.34 [INFO] [stderr] Compiling zerocopy v0.8.26 [INFO] [stderr] Checking http v1.3.1 [INFO] [stderr] Checking foldhash v0.1.5 [INFO] [stderr] Checking allocator-api2 v0.2.21 [INFO] [stderr] Compiling httparse v1.10.1 [INFO] [stderr] Checking iana-time-zone v0.1.63 [INFO] [stderr] Compiling openssl v0.10.73 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Checking regex-syntax v0.8.5 [INFO] [stderr] Checking sync_wrapper v1.0.2 [INFO] [stderr] Checking anstyle v1.0.11 [INFO] [stderr] Checking lazy_static v1.5.0 [INFO] [stderr] Checking tower-layer v0.3.3 [INFO] [stderr] Compiling portable-atomic v1.11.1 [INFO] [stderr] Compiling rust_decimal v1.37.2 [INFO] [stderr] Checking iri-string v0.7.8 [INFO] [stderr] Checking hashbrown v0.15.4 [INFO] [stderr] Checking tinyvec v1.9.0 [INFO] [stderr] Checking anstyle-parse v0.2.7 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Checking rustls-pki-types v1.12.0 [INFO] [stderr] Checking encoding_rs v0.8.35 [INFO] [stderr] Checking anstyle-query v1.1.3 [INFO] [stderr] Checking regex-syntax v0.6.29 [INFO] [stderr] Checking colorchoice v1.0.4 [INFO] [stderr] Checking http-body v1.0.1 [INFO] [stderr] Checking arrayvec v0.7.6 [INFO] [stderr] Checking anstream v0.6.19 [INFO] [stderr] Checking http-body-util v0.1.3 [INFO] [stderr] Checking parking_lot_core v0.9.11 [INFO] [stderr] Checking signal-hook-registry v1.4.5 [INFO] [stderr] Checking socket2 v0.5.10 [INFO] [stderr] Checking mio v1.0.4 [INFO] [stderr] Checking indexmap v2.10.0 [INFO] [stderr] Checking parking_lot v0.12.4 [INFO] [stderr] Checking raw-cpuid v11.5.0 [INFO] [stderr] Compiling libm v0.2.15 [INFO] [stderr] Checking unicode-normalization v0.1.24 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking rand_core v0.9.3 [INFO] [stderr] Checking overload v0.1.1 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Checking nu-ansi-term v0.46.0 [INFO] [stderr] Checking sha2 v0.10.9 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking md-5 v0.10.6 [INFO] [stderr] Checking sharded-slab v0.1.7 [INFO] [stderr] Checking thread_local v1.1.9 [INFO] [stderr] Checking spinning_top v0.3.0 [INFO] [stderr] Compiling bigdecimal v0.4.8 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling openssl-sys v0.9.109 [INFO] [stderr] Checking siphasher v1.0.1 [INFO] [stderr] Checking fallible-iterator v0.2.0 [INFO] [stderr] Checking stringprep v0.1.5 [INFO] [stderr] Checking futures-timer v3.0.3 [INFO] [stderr] Checking web-time v1.1.0 [INFO] [stderr] Compiling pq-sys v0.7.2 [INFO] [stderr] Checking nonzero_ext v0.3.0 [INFO] [stderr] Checking phf_shared v0.11.3 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Checking scheduled-thread-pool v0.2.7 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking colored v2.2.0 [INFO] [stderr] Checking phf v0.11.3 [INFO] [stderr] Checking whoami v1.6.0 [INFO] [stderr] Checking r2d2 v0.8.10 [INFO] [stderr] Checking unicode-width v0.2.1 [INFO] [stderr] Checking uuid v1.17.0 [INFO] [stderr] Checking scoped-futures v0.1.4 [INFO] [stderr] Checking regex-automata v0.4.9 [INFO] [stderr] Checking num_cpus v1.17.0 [INFO] [stderr] Checking regex-automata v0.1.10 [INFO] [stderr] Checking dashmap v6.1.0 [INFO] [stderr] Checking deadpool-runtime v0.1.4 [INFO] [stderr] Compiling anyhow v1.0.98 [INFO] [stderr] Compiling rustix v1.0.7 [INFO] [stderr] Checking clap_lex v0.7.5 [INFO] [stderr] Checking quanta v0.12.6 [INFO] [stderr] Checking csv-core v0.1.12 [INFO] [stderr] Checking linux-raw-sys v0.9.4 [INFO] [stderr] Checking unit-prefix v0.5.1 [INFO] [stderr] Checking console v0.16.0 [INFO] [stderr] Checking clap_builder v4.5.41 [INFO] [stderr] Checking jiff v0.2.15 [INFO] [stderr] Checking predicates-core v1.0.9 [INFO] [stderr] Checking fastrand v2.3.0 [INFO] [stderr] Checking console v0.15.11 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Checking indicatif v0.18.0 [INFO] [stderr] Checking sdd v3.0.8 [INFO] [stderr] Checking termtree v0.5.1 [INFO] [stderr] Checking predicates v3.1.3 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking predicates-tree v1.0.12 [INFO] [stderr] Checking diff v0.1.13 [INFO] [stderr] Checking yansi v1.0.1 [INFO] [stderr] Checking fragile v2.0.1 [INFO] [stderr] Checking downcast v0.11.0 [INFO] [stderr] Checking dotenv v0.15.0 [INFO] [stderr] Checking matchers v0.1.0 [INFO] [stderr] Checking scc v2.3.4 [INFO] [stderr] Checking indicatif v0.17.11 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking rand v0.9.1 [INFO] [stderr] Checking pretty_assertions v1.4.1 [INFO] [stderr] Checking postgres-protocol v0.6.8 [INFO] [stderr] Checking postgres-types v0.2.9 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Compiling diesel_table_macro_syntax v0.2.0 [INFO] [stderr] Checking tempfile v3.20.0 [INFO] [stderr] Checking regex v1.11.1 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling zerovec-derive v0.11.1 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling tracing-attributes v0.1.30 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling async-trait v0.1.88 [INFO] [stderr] Compiling thiserror-impl v2.0.12 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling clap_derive v4.5.41 [INFO] [stderr] Checking env_filter v0.1.3 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.0 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Checking async-stream v0.3.6 [INFO] [stderr] Compiling serial_test_derive v3.2.0 [INFO] [stderr] Checking tokio v1.46.1 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Compiling mockall_derive v0.12.1 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking env_logger v0.11.8 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking thiserror v2.0.12 [INFO] [stderr] Checking yoke v0.8.0 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Checking zerovec v0.11.2 [INFO] [stderr] Checking zerotrie v0.2.2 [INFO] [stderr] Checking clap v4.5.41 [INFO] [stderr] Checking tracing-subscriber v0.3.19 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling dsl_auto_type v0.1.3 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking governor v0.10.0 [INFO] [stderr] Checking tinystr v0.8.1 [INFO] [stderr] Checking potential_utf v0.1.2 [INFO] [stderr] Compiling diesel_derives v2.2.6 [INFO] [stderr] Checking icu_collections v2.0.0 [INFO] [stderr] Checking icu_locale_core v2.0.0 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Checking mockall v0.12.1 [INFO] [stderr] Checking serial_test v3.2.0 [INFO] [stderr] Checking serde v1.0.219 [INFO] [stderr] Checking icu_provider v2.0.0 [INFO] [stderr] Checking icu_properties v2.0.1 [INFO] [stderr] Checking icu_normalizer v2.0.0 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking tokio-util v0.7.15 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking tower v0.5.2 [INFO] [stderr] Checking bb8 v0.9.0 [INFO] [stderr] Checking tokio-stream v0.1.17 [INFO] [stderr] Checking deadpool v0.10.0 [INFO] [stderr] Checking idna v1.0.3 [INFO] [stderr] Checking url v2.5.4 [INFO] [stderr] Checking tokio-test v0.4.4 [INFO] [stderr] Checking tower-http v0.6.6 [INFO] [stderr] Checking h2 v0.4.11 [INFO] [stderr] Checking tokio-postgres v0.7.13 [INFO] [stderr] Checking serde_json v1.0.140 [INFO] [stderr] Checking chrono v0.4.41 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking csv v1.3.1 [INFO] [stderr] Checking serde_test v1.0.177 [INFO] [stderr] Checking assert-json-diff v2.0.2 [INFO] [stderr] Checking av-core v0.1.0 (/opt/rustwide/workdir/crates/av-core) [INFO] [stderr] Checking av-models v0.1.0 (/opt/rustwide/workdir/crates/av-models) [INFO] [stderr] Checking diesel v2.2.12 [INFO] [stdout] warning: unused variable: `max_4bit` [INFO] [stdout] --> crates/av-core/src/types/market.rs:886:9 [INFO] [stdout] | [INFO] [stdout] 886 | let max_4bit = u32::MAX >> 4; // 60 bits available for ID [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_4bit` [INFO] [stdout] | [INFO] [stdout] = note: requested on the command line with `-W unused-variables` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `max_5bit` [INFO] [stdout] --> crates/av-core/src/types/market.rs:887:9 [INFO] [stdout] | [INFO] [stdout] 887 | let max_5bit = u32::MAX >> 5; // 59 bits available for ID [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_5bit` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `max_6bit` [INFO] [stdout] --> crates/av-core/src/types/market.rs:888:9 [INFO] [stdout] | [INFO] [stdout] 888 | let max_6bit = u32::MAX >> 6; // 58 bits available for ID [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_6bit` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking hyper v1.6.0 [INFO] [stderr] Checking hyper-util v0.1.15 [INFO] [stderr] Checking hyper-tls v0.6.0 [INFO] [stderr] Checking wiremock v0.6.4 [INFO] [stderr] Checking reqwest v0.12.23 [INFO] [stderr] Checking av-client v0.1.0 (/opt/rustwide/workdir/crates/av-client) [INFO] [stdout] warning: fields `pe_ratio` and `dividend_yield` are never read [INFO] [stdout] --> crates/av-client/examples/portfolio_tracker.rs:49:3 [INFO] [stdout] | [INFO] [stdout] 39 | struct HoldingAnalysis { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 49 | pe_ratio: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 50 | dividend_yield: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `HoldingAnalysis` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: requested on the command line with `-W dead-code` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `display_top_movers` is never used [INFO] [stdout] --> crates/av-client/examples/portfolio_tracker.rs:425:4 [INFO] [stdout] | [INFO] [stdout] 425 | fn display_top_movers(movers: &TopGainersLosers) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_volume` is never used [INFO] [stdout] --> crates/av-client/examples/portfolio_tracker.rs:496:4 [INFO] [stdout] | [INFO] [stdout] 496 | fn format_volume(volume: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `display_portfolio_sentiment` is never used [INFO] [stdout] --> crates/av-client/examples/portfolio_tracker.rs:513:4 [INFO] [stdout] | [INFO] [stdout] 513 | fn display_portfolio_sentiment(portfolio: &[Holding], sentiment_data: &HashMap) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `show_loading_progress` is never used [INFO] [stdout] --> crates/av-client/examples/portfolio_tracker.rs:612:4 [INFO] [stdout] | [INFO] [stdout] 612 | fn show_loading_progress(current: usize, total: usize, symbol: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `display_holding_update` is never used [INFO] [stdout] --> crates/av-client/examples/portfolio_tracker.rs:626:4 [INFO] [stdout] | [INFO] [stdout] 626 | fn display_holding_update(holding: &HoldingAnalysis) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clear_screen` is never used [INFO] [stdout] --> crates/av-client/examples/portfolio_tracker.rs:647:4 [INFO] [stdout] | [INFO] [stdout] 647 | fn clear_screen() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `setup_terminal_colors` is never used [INFO] [stdout] --> crates/av-client/examples/portfolio_tracker.rs:654:4 [INFO] [stdout] | [INFO] [stdout] 654 | fn setup_terminal_colors() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `show_progress` is never used [INFO] [stdout] --> crates/av-client/examples/portfolio_tracker.rs:670:4 [INFO] [stdout] | [INFO] [stdout] 670 | fn show_progress(current: usize, total: usize, message: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `sentiment_label` and `relevance_score` are never read [INFO] [stdout] --> crates/av-client/examples/news_analysis.rs:43:3 [INFO] [stdout] | [INFO] [stdout] 40 | struct TickerSentimentSummary { [INFO] [stdout] | ---------------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 43 | sentiment_label: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 44 | mention_count: u32, [INFO] [stdout] 45 | relevance_score: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TickerSentimentSummary` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: requested on the command line with `-W dead-code` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `mention_count` is never read [INFO] [stdout] --> crates/av-client/examples/news_analysis.rs:54:3 [INFO] [stdout] | [INFO] [stdout] 50 | struct TopicSentiment { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 54 | mention_count: u32, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TopicSentiment` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `sentiment_score`, `time_published`, and `url` are never read [INFO] [stdout] --> crates/av-client/examples/news_analysis.rs:63:3 [INFO] [stdout] | [INFO] [stdout] 59 | struct Headline { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 63 | sentiment_score: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 64 | time_published: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 65 | url: String, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Headline` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking diesel-async v0.6.1 [INFO] [stderr] Checking av-database-postgres v0.1.0 (/opt/rustwide/workdir/crates/av-database/postgres) [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:104:67 [INFO] [stdout] | [INFO] [stdout] 104 | newsoverviews::table.filter(newsoverviews::hashid.eq(hashid)).first(conn).await.optional() [INFO] [stdout] | ^^^^^ multiple `first` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 104 - newsoverviews::table.filter(newsoverviews::hashid.eq(hashid)).first(conn).await.optional() [INFO] [stdout] 104 + diesel_async::RunQueryDsl::first(newsoverviews::table.filter(newsoverviews::hashid.eq(hashid)), conn).await.optional() [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 104 - newsoverviews::table.filter(newsoverviews::hashid.eq(hashid)).first(conn).await.optional() [INFO] [stdout] 104 + diesel::RunQueryDsl::first(newsoverviews::table.filter(newsoverviews::hashid.eq(hashid)), conn).await.optional() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0282]: type annotations needed [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:104:5 [INFO] [stdout] | [INFO] [stdout] 104 | newsoverviews::table.filter(newsoverviews::hashid.eq(hashid)).first(conn).await.optional() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:116:8 [INFO] [stdout] | [INFO] [stdout] 116 | .load(conn) [INFO] [stdout] | ^^^^ multiple `load` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 112 ~ diesel_async::RunQueryDsl::load(newsoverviews::table [INFO] [stdout] 113 + .filter(newsoverviews::sid.eq(sid)) [INFO] [stdout] 114 + .filter(newsoverviews::creation.ge(chrono::Utc::now() - chrono::Duration::days(days as i64))) [INFO] [stdout] 115 + .order(newsoverviews::creation.desc()), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 112 ~ diesel::RunQueryDsl::load(newsoverviews::table [INFO] [stdout] 113 + .filter(newsoverviews::sid.eq(sid)) [INFO] [stdout] 114 + .filter(newsoverviews::creation.ge(chrono::Utc::now() - chrono::Duration::days(days as i64))) [INFO] [stdout] 115 + .order(newsoverviews::creation.desc()), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:179:6 [INFO] [stdout] | [INFO] [stdout] 179 | .load::(conn) [INFO] [stdout] | ^^^^ multiple `load` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `query_builder::sql_query::UncheckedBind` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 128 ~ diesel_async::RunQueryDsl::load(sql_query( [INFO] [stdout] 129 + r#" [INFO] [stdout] 130 + WITH recent_news AS ( [INFO] [stdout] 131 + SELECT n.*, f.osentiment, f.sentlabel [INFO] [stdout] 132 + FROM newsoverviews n [INFO] [stdout] 133 + JOIN feeds f ON n.id = f.newsoverviewid [INFO] [stdout] 134 + WHERE n.sid = $1 [INFO] [stdout] 135 + AND n.creation >= NOW() - INTERVAL '1 day' * $2 [INFO] [stdout] 136 + ), [INFO] [stdout] 137 + sentiment_counts AS ( [INFO] [stdout] 138 + SELECT [INFO] [stdout] 139 + COUNT(*) as total, [INFO] [stdout] 140 + COUNT(CASE WHEN sentlabel = 'Bullish' THEN 1 END) as bullish, [INFO] [stdout] 141 + COUNT(CASE WHEN sentlabel = 'Bearish' THEN 1 END) as bearish, [INFO] [stdout] 142 + COUNT(CASE WHEN sentlabel = 'Neutral' THEN 1 END) as neutral [INFO] [stdout] 143 + FROM recent_news [INFO] [stdout] 144 + ) [INFO] [stdout] 145 + SELECT [INFO] [stdout] 146 + $1 as sid, [INFO] [stdout] 147 + AVG(rn.osentiment) as avg_sentiment, [INFO] [stdout] 148 + COUNT(DISTINCT rn.id) as article_count, [INFO] [stdout] 149 + (sc.bullish::float8 / NULLIF(sc.total, 0) * 100) as bullish_pct, [INFO] [stdout] 150 + (sc.bearish::float8 / NULLIF(sc.total, 0) * 100) as bearish_pct, [INFO] [stdout] 151 + (sc.neutral::float8 / NULLIF(sc.total, 0) * 100) as neutral_pct, [INFO] [stdout] 152 + COALESCE( [INFO] [stdout] 153 + jsonb_agg(DISTINCT [INFO] [stdout] 154 + jsonb_build_object( [INFO] [stdout] 155 + 'topic', tr.name, [INFO] [stdout] 156 + 'avg_relevance', tm.avg_relevance [INFO] [stdout] 157 + ) [INFO] [stdout] 158 + ) FILTER (WHERE tr.name IS NOT NULL), [INFO] [stdout] 159 + '[]'::jsonb [INFO] [stdout] 160 + ) as topics [INFO] [stdout] 161 + FROM recent_news rn [INFO] [stdout] 162 + CROSS JOIN sentiment_counts sc [INFO] [stdout] 163 + LEFT JOIN ( [INFO] [stdout] 164 + SELECT [INFO] [stdout] 165 + f.newsoverviewid, [INFO] [stdout] 166 + tm.topicid, [INFO] [stdout] 167 + AVG(tm.relscore) as avg_relevance [INFO] [stdout] 168 + FROM feeds f [INFO] [stdout] 169 + JOIN topicmaps tm ON f.id = tm.feedid [INFO] [stdout] 170 + WHERE f.newsoverviewid IN (SELECT id FROM recent_news) [INFO] [stdout] 171 + GROUP BY f.newsoverviewid, tm.topicid [INFO] [stdout] 172 + ) tm ON rn.id = tm.newsoverviewid [INFO] [stdout] 173 + LEFT JOIN topicrefs tr ON tm.topicid = tr.id [INFO] [stdout] 174 + GROUP BY sc.bullish, sc.bearish, sc.neutral, sc.total [INFO] [stdout] 175 + "#, [INFO] [stdout] 176 + ) [INFO] [stdout] 177 + .bind::(sid) [INFO] [stdout] 178 + .bind::(days), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 128 ~ diesel::RunQueryDsl::load(sql_query( [INFO] [stdout] 129 + r#" [INFO] [stdout] 130 + WITH recent_news AS ( [INFO] [stdout] 131 + SELECT n.*, f.osentiment, f.sentlabel [INFO] [stdout] 132 + FROM newsoverviews n [INFO] [stdout] 133 + JOIN feeds f ON n.id = f.newsoverviewid [INFO] [stdout] 134 + WHERE n.sid = $1 [INFO] [stdout] 135 + AND n.creation >= NOW() - INTERVAL '1 day' * $2 [INFO] [stdout] 136 + ), [INFO] [stdout] 137 + sentiment_counts AS ( [INFO] [stdout] 138 + SELECT [INFO] [stdout] 139 + COUNT(*) as total, [INFO] [stdout] 140 + COUNT(CASE WHEN sentlabel = 'Bullish' THEN 1 END) as bullish, [INFO] [stdout] 141 + COUNT(CASE WHEN sentlabel = 'Bearish' THEN 1 END) as bearish, [INFO] [stdout] 142 + COUNT(CASE WHEN sentlabel = 'Neutral' THEN 1 END) as neutral [INFO] [stdout] 143 + FROM recent_news [INFO] [stdout] 144 + ) [INFO] [stdout] 145 + SELECT [INFO] [stdout] 146 + $1 as sid, [INFO] [stdout] 147 + AVG(rn.osentiment) as avg_sentiment, [INFO] [stdout] 148 + COUNT(DISTINCT rn.id) as article_count, [INFO] [stdout] 149 + (sc.bullish::float8 / NULLIF(sc.total, 0) * 100) as bullish_pct, [INFO] [stdout] 150 + (sc.bearish::float8 / NULLIF(sc.total, 0) * 100) as bearish_pct, [INFO] [stdout] 151 + (sc.neutral::float8 / NULLIF(sc.total, 0) * 100) as neutral_pct, [INFO] [stdout] 152 + COALESCE( [INFO] [stdout] 153 + jsonb_agg(DISTINCT [INFO] [stdout] 154 + jsonb_build_object( [INFO] [stdout] 155 + 'topic', tr.name, [INFO] [stdout] 156 + 'avg_relevance', tm.avg_relevance [INFO] [stdout] 157 + ) [INFO] [stdout] 158 + ) FILTER (WHERE tr.name IS NOT NULL), [INFO] [stdout] 159 + '[]'::jsonb [INFO] [stdout] 160 + ) as topics [INFO] [stdout] 161 + FROM recent_news rn [INFO] [stdout] 162 + CROSS JOIN sentiment_counts sc [INFO] [stdout] 163 + LEFT JOIN ( [INFO] [stdout] 164 + SELECT [INFO] [stdout] 165 + f.newsoverviewid, [INFO] [stdout] 166 + tm.topicid, [INFO] [stdout] 167 + AVG(tm.relscore) as avg_relevance [INFO] [stdout] 168 + FROM feeds f [INFO] [stdout] 169 + JOIN topicmaps tm ON f.id = tm.feedid [INFO] [stdout] 170 + WHERE f.newsoverviewid IN (SELECT id FROM recent_news) [INFO] [stdout] 171 + GROUP BY f.newsoverviewid, tm.topicid [INFO] [stdout] 172 + ) tm ON rn.id = tm.newsoverviewid [INFO] [stdout] 173 + LEFT JOIN topicrefs tr ON tm.topicid = tr.id [INFO] [stdout] 174 + GROUP BY sc.bullish, sc.bearish, sc.neutral, sc.total [INFO] [stdout] 175 + "#, [INFO] [stdout] 176 + ) [INFO] [stdout] 177 + .bind::(sid) [INFO] [stdout] 178 + .bind::(days), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:233:70 [INFO] [stdout] | [INFO] [stdout] 233 | insert_into(feeds::table).values(chunk).returning(feeds::id).get_results(conn).await?; [INFO] [stdout] | ^^^^^^^^^^^ multiple `get_results` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 233 - insert_into(feeds::table).values(chunk).returning(feeds::id).get_results(conn).await?; [INFO] [stdout] 233 + diesel::RunQueryDsl::get_results(insert_into(feeds::table).values(chunk).returning(feeds::id), conn).await?; [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 233 - insert_into(feeds::table).values(chunk).returning(feeds::id).get_results(conn).await?; [INFO] [stdout] 233 + diesel_async::RunQueryDsl::get_results(insert_into(feeds::table).values(chunk).returning(feeds::id), conn).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:264:70 [INFO] [stdout] | [INFO] [stdout] 264 | insert_into(feeds::table).values(chunk).returning(feeds::id).get_results(conn).await?; [INFO] [stdout] | ^^^^^^^^^^^ multiple `get_results` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 264 - insert_into(feeds::table).values(chunk).returning(feeds::id).get_results(conn).await?; [INFO] [stdout] 264 + diesel::RunQueryDsl::get_results(insert_into(feeds::table).values(chunk).returning(feeds::id), conn).await?; [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 264 - insert_into(feeds::table).values(chunk).returning(feeds::id).get_results(conn).await?; [INFO] [stdout] 264 + diesel_async::RunQueryDsl::get_results(insert_into(feeds::table).values(chunk).returning(feeds::id), conn).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:339:34 [INFO] [stdout] | [INFO] [stdout] 339 | articles::table.find(hashid).first(conn).await.optional() [INFO] [stdout] | ^^^^^ multiple `first` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 339 - articles::table.find(hashid).first(conn).await.optional() [INFO] [stdout] 339 + diesel_async::RunQueryDsl::first(articles::table.find(hashid), conn).await.optional() [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 339 - articles::table.find(hashid).first(conn).await.optional() [INFO] [stdout] 339 + diesel::RunQueryDsl::first(articles::table.find(hashid), conn).await.optional() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0282]: type annotations needed [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:339:5 [INFO] [stdout] | [INFO] [stdout] 339 | articles::table.find(hashid).first(conn).await.optional() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:351:8 [INFO] [stdout] | [INFO] [stdout] 351 | .load(conn) [INFO] [stdout] | ^^^^ multiple `load` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 347 ~ diesel_async::RunQueryDsl::load(articles::table [INFO] [stdout] 348 + .filter(articles::category.eq(category)) [INFO] [stdout] 349 + .order(articles::ct.desc()) [INFO] [stdout] 350 + .limit(limit), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 347 ~ diesel::RunQueryDsl::load(articles::table [INFO] [stdout] 348 + .filter(articles::category.eq(category)) [INFO] [stdout] 349 + .order(articles::ct.desc()) [INFO] [stdout] 350 + .limit(limit), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:387:8 [INFO] [stdout] | [INFO] [stdout] 387 | .first::(conn) [INFO] [stdout] | ^^^^^ multiple `first` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 384 ~ if let Some(author) = diesel_async::RunQueryDsl::first(authors::table [INFO] [stdout] 385 + .filter(authors::author_name.eq(name)) [INFO] [stdout] 386 + .select(authors::id), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 384 ~ if let Some(author) = diesel::RunQueryDsl::first(authors::table [INFO] [stdout] 385 + .filter(authors::author_name.eq(name)) [INFO] [stdout] 386 + .select(authors::id), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0282]: type annotations needed [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:384:27 [INFO] [stdout] | [INFO] [stdout] 384 | if let Some(author) = authors::table [INFO] [stdout] | ___________________________^ [INFO] [stdout] 385 | | .filter(authors::author_name.eq(name)) [INFO] [stdout] 386 | | .select(authors::id) [INFO] [stdout] 387 | | .first::(conn) [INFO] [stdout] 388 | | .await [INFO] [stdout] | |____________^ cannot infer type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:398:8 [INFO] [stdout] | [INFO] [stdout] 398 | .get_result(conn) [INFO] [stdout] | ^^^^^^^^^^ multiple `get_result` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 395 ~ diesel::RunQueryDsl::get_result(insert_into(authors::table) [INFO] [stdout] 396 + .values(NewAuthor { author_name: name }) [INFO] [stdout] 397 + .returning(authors::id), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 395 ~ diesel_async::RunQueryDsl::get_result(insert_into(authors::table) [INFO] [stdout] 396 + .values(NewAuthor { author_name: name }) [INFO] [stdout] 397 + .returning(authors::id), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:462:8 [INFO] [stdout] | [INFO] [stdout] 462 | .first::(conn) [INFO] [stdout] | ^^^^^ multiple `first` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 458 ~ if let Some(source) = diesel_async::RunQueryDsl::first(sources::table [INFO] [stdout] 459 + .filter(sources::source_name.eq(name)) [INFO] [stdout] 460 + .filter(sources::domain.eq(domain)) [INFO] [stdout] 461 + .select(sources::id), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 458 ~ if let Some(source) = diesel::RunQueryDsl::first(sources::table [INFO] [stdout] 459 + .filter(sources::source_name.eq(name)) [INFO] [stdout] 460 + .filter(sources::domain.eq(domain)) [INFO] [stdout] 461 + .select(sources::id), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0282]: type annotations needed [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:458:27 [INFO] [stdout] | [INFO] [stdout] 458 | if let Some(source) = sources::table [INFO] [stdout] | ___________________________^ [INFO] [stdout] 459 | | .filter(sources::source_name.eq(name)) [INFO] [stdout] 460 | | .filter(sources::domain.eq(domain)) [INFO] [stdout] 461 | | .select(sources::id) [INFO] [stdout] 462 | | .first::(conn) [INFO] [stdout] 463 | | .await [INFO] [stdout] | |____________^ cannot infer type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:473:8 [INFO] [stdout] | [INFO] [stdout] 473 | .get_result(conn) [INFO] [stdout] | ^^^^^^^^^^ multiple `get_result` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 470 ~ diesel::RunQueryDsl::get_result(insert_into(sources::table) [INFO] [stdout] 471 + .values(NewSource { source_name: name, domain }) [INFO] [stdout] 472 + .returning(sources::id), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 470 ~ diesel_async::RunQueryDsl::get_result(insert_into(sources::table) [INFO] [stdout] 471 + .values(NewSource { source_name: name, domain }) [INFO] [stdout] 472 + .returning(sources::id), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:521:73 [INFO] [stdout] | [INFO] [stdout] 521 | let inserted = insert_into(tickersentiments::table).values(chunk).execute(conn).await?; [INFO] [stdout] | ^^^^^^^ multiple `execute` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 521 - let inserted = insert_into(tickersentiments::table).values(chunk).execute(conn).await?; [INFO] [stdout] 521 + let inserted = diesel::RunQueryDsl::execute(insert_into(tickersentiments::table).values(chunk), conn).await?; [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 521 - let inserted = insert_into(tickersentiments::table).values(chunk).execute(conn).await?; [INFO] [stdout] 521 + let inserted = diesel_async::RunQueryDsl::execute(insert_into(tickersentiments::table).values(chunk), conn).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:560:6 [INFO] [stdout] | [INFO] [stdout] 560 | .load::(conn) [INFO] [stdout] | ^^^^ multiple `load` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `query_builder::sql_query::UncheckedBind` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 539 ~ diesel_async::RunQueryDsl::load(sql_query(format!( [INFO] [stdout] 540 + r#" [INFO] [stdout] 541 + SELECT [INFO] [stdout] 542 + time_bucket('{}', n.creation) AS bucket, [INFO] [stdout] 543 + AVG(ts.tsentiment) as avg_sentiment, [INFO] [stdout] 544 + AVG(ts.relevance) as avg_relevance, [INFO] [stdout] 545 + COUNT(*)::bigint as mention_count, [INFO] [stdout] 546 + SUM(CASE WHEN ts.sentiment_label = 'Bullish' THEN 1 ELSE 0 END)::float8 / [INFO] [stdout] 547 + NULLIF(COUNT(*), 0) as bullish_ratio [INFO] [stdout] 548 + FROM tickersentiments ts [INFO] [stdout] 549 + JOIN feeds f ON ts.feedid = f.id [INFO] [stdout] 550 + JOIN newsoverviews n ON f.newsoverviewid = n.id [INFO] [stdout] 551 + WHERE ts.sid = $1 [INFO] [stdout] 552 + AND n.creation >= NOW() - INTERVAL '1 day' * $2 [INFO] [stdout] 553 + GROUP BY bucket [INFO] [stdout] 554 + ORDER BY bucket DESC [INFO] [stdout] 555 + "#, [INFO] [stdout] 556 + bucket_size [INFO] [stdout] 557 + )) [INFO] [stdout] 558 + .bind::(sid) [INFO] [stdout] 559 + .bind::(days), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 539 ~ diesel::RunQueryDsl::load(sql_query(format!( [INFO] [stdout] 540 + r#" [INFO] [stdout] 541 + SELECT [INFO] [stdout] 542 + time_bucket('{}', n.creation) AS bucket, [INFO] [stdout] 543 + AVG(ts.tsentiment) as avg_sentiment, [INFO] [stdout] 544 + AVG(ts.relevance) as avg_relevance, [INFO] [stdout] 545 + COUNT(*)::bigint as mention_count, [INFO] [stdout] 546 + SUM(CASE WHEN ts.sentiment_label = 'Bullish' THEN 1 ELSE 0 END)::float8 / [INFO] [stdout] 547 + NULLIF(COUNT(*), 0) as bullish_ratio [INFO] [stdout] 548 + FROM tickersentiments ts [INFO] [stdout] 549 + JOIN feeds f ON ts.feedid = f.id [INFO] [stdout] 550 + JOIN newsoverviews n ON f.newsoverviewid = n.id [INFO] [stdout] 551 + WHERE ts.sid = $1 [INFO] [stdout] 552 + AND n.creation >= NOW() - INTERVAL '1 day' * $2 [INFO] [stdout] 553 + GROUP BY bucket [INFO] [stdout] 554 + ORDER BY bucket DESC [INFO] [stdout] 555 + "#, [INFO] [stdout] 556 + bucket_size [INFO] [stdout] 557 + )) [INFO] [stdout] 558 + .bind::(sid) [INFO] [stdout] 559 + .bind::(days), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:595:8 [INFO] [stdout] | [INFO] [stdout] 595 | .first::(conn) [INFO] [stdout] | ^^^^^ multiple `first` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 592 ~ if let Some(topic) = diesel_async::RunQueryDsl::first(topicrefs::table [INFO] [stdout] 593 + .filter(topicrefs::name.eq(name)) [INFO] [stdout] 594 + .select(topicrefs::id), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 592 ~ if let Some(topic) = diesel::RunQueryDsl::first(topicrefs::table [INFO] [stdout] 593 + .filter(topicrefs::name.eq(name)) [INFO] [stdout] 594 + .select(topicrefs::id), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0282]: type annotations needed [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:592:26 [INFO] [stdout] | [INFO] [stdout] 592 | if let Some(topic) = topicrefs::table [INFO] [stdout] | __________________________^ [INFO] [stdout] 593 | | .filter(topicrefs::name.eq(name)) [INFO] [stdout] 594 | | .select(topicrefs::id) [INFO] [stdout] 595 | | .first::(conn) [INFO] [stdout] 596 | | .await [INFO] [stdout] | |____________^ cannot infer type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:605:8 [INFO] [stdout] | [INFO] [stdout] 605 | .get_result(conn) [INFO] [stdout] | ^^^^^^^^^^ multiple `get_result` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 602 ~ diesel::RunQueryDsl::get_result(insert_into(topicrefs::table) [INFO] [stdout] 603 + .values(NewTopicRef { name }) [INFO] [stdout] 604 + .returning(topicrefs::id), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 602 ~ diesel_async::RunQueryDsl::get_result(insert_into(topicrefs::table) [INFO] [stdout] 603 + .values(NewTopicRef { name }) [INFO] [stdout] 604 + .returning(topicrefs::id), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:650:66 [INFO] [stdout] | [INFO] [stdout] 650 | let inserted = insert_into(topicmaps::table).values(chunk).execute(conn).await?; [INFO] [stdout] | ^^^^^^^ multiple `execute` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 650 - let inserted = insert_into(topicmaps::table).values(chunk).execute(conn).await?; [INFO] [stdout] 650 + let inserted = diesel::RunQueryDsl::execute(insert_into(topicmaps::table).values(chunk), conn).await?; [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 650 - let inserted = insert_into(topicmaps::table).values(chunk).execute(conn).await?; [INFO] [stdout] 650 + let inserted = diesel_async::RunQueryDsl::execute(insert_into(topicmaps::table).values(chunk), conn).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:687:6 [INFO] [stdout] | [INFO] [stdout] 687 | .load::(conn) [INFO] [stdout] | ^^^^ multiple `load` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `query_builder::sql_query::UncheckedBind` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 667 ~ diesel_async::RunQueryDsl::load(sql_query( [INFO] [stdout] 668 + r#" [INFO] [stdout] 669 + SELECT [INFO] [stdout] 670 + tr.name as topic_name, [INFO] [stdout] 671 + COUNT(*)::bigint as mention_count, [INFO] [stdout] 672 + AVG(tm.relscore) as avg_relevance, [INFO] [stdout] 673 + AVG(f.osentiment) as avg_sentiment, [INFO] [stdout] 674 + COUNT(DISTINCT tm.sid)::bigint as unique_symbols [INFO] [stdout] 675 + FROM topicmaps tm [INFO] [stdout] 676 + JOIN topicrefs tr ON tm.topicid = tr.id [INFO] [stdout] 677 + JOIN feeds f ON tm.feedid = f.id [INFO] [stdout] 678 + JOIN newsoverviews n ON f.newsoverviewid = n.id [INFO] [stdout] 679 + WHERE n.creation >= NOW() - INTERVAL '1 day' * $1 [INFO] [stdout] 680 + GROUP BY tr.name [INFO] [stdout] 681 + ORDER BY mention_count DESC [INFO] [stdout] 682 + LIMIT $2 [INFO] [stdout] 683 + "#, [INFO] [stdout] 684 + ) [INFO] [stdout] 685 + .bind::(days) [INFO] [stdout] 686 + .bind::(limit), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 667 ~ diesel::RunQueryDsl::load(sql_query( [INFO] [stdout] 668 + r#" [INFO] [stdout] 669 + SELECT [INFO] [stdout] 670 + tr.name as topic_name, [INFO] [stdout] 671 + COUNT(*)::bigint as mention_count, [INFO] [stdout] 672 + AVG(tm.relscore) as avg_relevance, [INFO] [stdout] 673 + AVG(f.osentiment) as avg_sentiment, [INFO] [stdout] 674 + COUNT(DISTINCT tm.sid)::bigint as unique_symbols [INFO] [stdout] 675 + FROM topicmaps tm [INFO] [stdout] 676 + JOIN topicrefs tr ON tm.topicid = tr.id [INFO] [stdout] 677 + JOIN feeds f ON tm.feedid = f.id [INFO] [stdout] 678 + JOIN newsoverviews n ON f.newsoverviewid = n.id [INFO] [stdout] 679 + WHERE n.creation >= NOW() - INTERVAL '1 day' * $1 [INFO] [stdout] 680 + GROUP BY tr.name [INFO] [stdout] 681 + ORDER BY mention_count DESC [INFO] [stdout] 682 + LIMIT $2 [INFO] [stdout] 683 + "#, [INFO] [stdout] 684 + ) [INFO] [stdout] 685 + .bind::(days) [INFO] [stdout] 686 + .bind::(limit), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:729:6 [INFO] [stdout] | [INFO] [stdout] 729 | .get_result::(conn) [INFO] [stdout] | ^^^^^^^^^^ multiple `get_result` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `query_builder::sql_query::UncheckedBind` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 706 ~ let result = diesel_async::RunQueryDsl::get_result(sql_query( [INFO] [stdout] 707 + r#" [INFO] [stdout] 708 + WITH topic_feeds AS ( [INFO] [stdout] 709 + SELECT [INFO] [stdout] 710 + tm.feedid, [INFO] [stdout] 711 + MAX(CASE WHEN tr.name = $1 THEN 1 ELSE 0 END) as has_topic1, [INFO] [stdout] 712 + MAX(CASE WHEN tr.name = $2 THEN 1 ELSE 0 END) as has_topic2 [INFO] [stdout] 713 + FROM topicmaps tm [INFO] [stdout] 714 + JOIN topicrefs tr ON tm.topicid = tr.id [INFO] [stdout] 715 + JOIN feeds f ON tm.feedid = f.id [INFO] [stdout] 716 + JOIN newsoverviews n ON f.newsoverviewid = n.id [INFO] [stdout] 717 + WHERE n.creation >= NOW() - INTERVAL '1 day' * $3 [INFO] [stdout] 718 + AND tr.name IN ($1, $2) [INFO] [stdout] 719 + GROUP BY tm.feedid [INFO] [stdout] 720 + ) [INFO] [stdout] 721 + SELECT [INFO] [stdout] 722 + CORR(has_topic1::float8, has_topic2::float8) as correlation [INFO] [stdout] 723 + FROM topic_feeds [INFO] [stdout] 724 + "#, [INFO] [stdout] 725 + ) [INFO] [stdout] 726 + .bind::(topic1) [INFO] [stdout] 727 + .bind::(topic2) [INFO] [stdout] 728 + .bind::(days), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 706 ~ let result = diesel::RunQueryDsl::get_result(sql_query( [INFO] [stdout] 707 + r#" [INFO] [stdout] 708 + WITH topic_feeds AS ( [INFO] [stdout] 709 + SELECT [INFO] [stdout] 710 + tm.feedid, [INFO] [stdout] 711 + MAX(CASE WHEN tr.name = $1 THEN 1 ELSE 0 END) as has_topic1, [INFO] [stdout] 712 + MAX(CASE WHEN tr.name = $2 THEN 1 ELSE 0 END) as has_topic2 [INFO] [stdout] 713 + FROM topicmaps tm [INFO] [stdout] 714 + JOIN topicrefs tr ON tm.topicid = tr.id [INFO] [stdout] 715 + JOIN feeds f ON tm.feedid = f.id [INFO] [stdout] 716 + JOIN newsoverviews n ON f.newsoverviewid = n.id [INFO] [stdout] 717 + WHERE n.creation >= NOW() - INTERVAL '1 day' * $3 [INFO] [stdout] 718 + AND tr.name IN ($1, $2) [INFO] [stdout] 719 + GROUP BY tm.feedid [INFO] [stdout] 720 + ) [INFO] [stdout] 721 + SELECT [INFO] [stdout] 722 + CORR(has_topic1::float8, has_topic2::float8) as correlation [INFO] [stdout] 723 + FROM topic_feeds [INFO] [stdout] 724 + "#, [INFO] [stdout] 725 + ) [INFO] [stdout] 726 + .bind::(topic1) [INFO] [stdout] 727 + .bind::(topic2) [INFO] [stdout] 728 + .bind::(days), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:765:14 [INFO] [stdout] | [INFO] [stdout] 765 | .get_result::(conn) [INFO] [stdout] | ^^^^^^^^^^ multiple `get_result` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 757 ~ let overview_id = diesel::RunQueryDsl::get_result(insert_into(newsoverviews::table) [INFO] [stdout] 758 + .values(NewNewsOverview { [INFO] [stdout] 759 + creation: &news.timestamp, [INFO] [stdout] 760 + sid: &news.sid, [INFO] [stdout] 761 + items: &(news.items.len() as i32), [INFO] [stdout] 762 + hashid: &news.hash_id, [INFO] [stdout] 763 + }) [INFO] [stdout] 764 + .returning(newsoverviews::id), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 757 ~ let overview_id = diesel_async::RunQueryDsl::get_result(insert_into(newsoverviews::table) [INFO] [stdout] 758 + .values(NewNewsOverview { [INFO] [stdout] 759 + creation: &news.timestamp, [INFO] [stdout] 760 + sid: &news.sid, [INFO] [stdout] 761 + items: &(news.items.len() as i32), [INFO] [stdout] 762 + hashid: &news.hash_id, [INFO] [stdout] 763 + }) [INFO] [stdout] 764 + .returning(newsoverviews::id), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:803:18 [INFO] [stdout] | [INFO] [stdout] 803 | .execute(conn) [INFO] [stdout] | ^^^^^^^ multiple `execute` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 780 ~ diesel::RunQueryDsl::execute(insert_into(articles::table) [INFO] [stdout] 781 + .values(NewArticle { [INFO] [stdout] 782 + hashid: &item.article_hash, [INFO] [stdout] 783 + sourceid: &source_id, [INFO] [stdout] 784 + category: &item.category, [INFO] [stdout] 785 + title: &item.title, [INFO] [stdout] 786 + url: &item.url, [INFO] [stdout] 787 + summary: &item.summary, [INFO] [stdout] 788 + banner: &item.banner_url, [INFO] [stdout] 789 + author: &author_id, [INFO] [stdout] 790 + ct: &item.published_time, [INFO] [stdout] 791 + // Map available data to new fields intelligently [INFO] [stdout] 792 + source_link: item.source_link.as_deref(), [INFO] [stdout] 793 + release_time: item.release_time.as_ref(), [INFO] [stdout] 794 + author_description: item.author_description.as_deref(), [INFO] [stdout] 795 + author_avatar_url: item.author_avatar_url.as_deref(), [INFO] [stdout] 796 + feature_image: item.feature_image.as_deref().or(if !item.banner_url.is_empty() { [INFO] [stdout] 797 + Some(&item.banner_url) [INFO] [stdout] 798 + } else { [INFO] [stdout] 799 + None [INFO] [stdout] 800 + }), [INFO] [stdout] 801 + author_nick_name: item.author_nick_name.as_deref(), [INFO] [stdout] 802 + }), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 780 ~ diesel_async::RunQueryDsl::execute(insert_into(articles::table) [INFO] [stdout] 781 + .values(NewArticle { [INFO] [stdout] 782 + hashid: &item.article_hash, [INFO] [stdout] 783 + sourceid: &source_id, [INFO] [stdout] 784 + category: &item.category, [INFO] [stdout] 785 + title: &item.title, [INFO] [stdout] 786 + url: &item.url, [INFO] [stdout] 787 + summary: &item.summary, [INFO] [stdout] 788 + banner: &item.banner_url, [INFO] [stdout] 789 + author: &author_id, [INFO] [stdout] 790 + ct: &item.published_time, [INFO] [stdout] 791 + // Map available data to new fields intelligently [INFO] [stdout] 792 + source_link: item.source_link.as_deref(), [INFO] [stdout] 793 + release_time: item.release_time.as_ref(), [INFO] [stdout] 794 + author_description: item.author_description.as_deref(), [INFO] [stdout] 795 + author_avatar_url: item.author_avatar_url.as_deref(), [INFO] [stdout] 796 + feature_image: item.feature_image.as_deref().or(if !item.banner_url.is_empty() { [INFO] [stdout] 797 + Some(&item.banner_url) [INFO] [stdout] 798 + } else { [INFO] [stdout] 799 + None [INFO] [stdout] 800 + }), [INFO] [stdout] 801 + author_nick_name: item.author_nick_name.as_deref(), [INFO] [stdout] 802 + }), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:819:16 [INFO] [stdout] | [INFO] [stdout] 819 | .get_result::(conn) [INFO] [stdout] | ^^^^^^^^^^ multiple `get_result` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 809 ~ let feed_id = diesel::RunQueryDsl::get_result(insert_into(feeds::table) [INFO] [stdout] 810 + .values(NewFeed { [INFO] [stdout] 811 + sid: &news.sid, [INFO] [stdout] 812 + newsoverviewid: &overview_id, [INFO] [stdout] 813 + articleid: &item.article_hash, [INFO] [stdout] 814 + sourceid: &source_id, [INFO] [stdout] 815 + osentiment: &item.overall_sentiment_score, [INFO] [stdout] 816 + sentlabel: &item.overall_sentiment_label, [INFO] [stdout] 817 + }) [INFO] [stdout] 818 + .returning(feeds::id), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 809 ~ let feed_id = diesel_async::RunQueryDsl::get_result(insert_into(feeds::table) [INFO] [stdout] 810 + .values(NewFeed { [INFO] [stdout] 811 + sid: &news.sid, [INFO] [stdout] 812 + newsoverviewid: &overview_id, [INFO] [stdout] 813 + articleid: &item.article_hash, [INFO] [stdout] 814 + sourceid: &source_id, [INFO] [stdout] 815 + osentiment: &item.overall_sentiment_score, [INFO] [stdout] 816 + sentlabel: &item.overall_sentiment_label, [INFO] [stdout] 817 + }) [INFO] [stdout] 818 + .returning(feeds::id), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:833:18 [INFO] [stdout] | [INFO] [stdout] 833 | .execute(conn) [INFO] [stdout] | ^^^^^^^ multiple `execute` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 825 ~ diesel::RunQueryDsl::execute(insert_into(tickersentiments::table) [INFO] [stdout] 826 + .values(NewTickerSentiment { [INFO] [stdout] 827 + feedid: &feed_id, [INFO] [stdout] 828 + sid: &ticker_sent.sid, [INFO] [stdout] 829 + relevance: &ticker_sent.relevance_score, [INFO] [stdout] 830 + tsentiment: &ticker_sent.sentiment_score, [INFO] [stdout] 831 + sentiment_label: &ticker_sent.sentiment_label, [INFO] [stdout] 832 + }), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 825 ~ diesel_async::RunQueryDsl::execute(insert_into(tickersentiments::table) [INFO] [stdout] 826 + .values(NewTickerSentiment { [INFO] [stdout] 827 + feedid: &feed_id, [INFO] [stdout] 828 + sid: &ticker_sent.sid, [INFO] [stdout] 829 + relevance: &ticker_sent.relevance_score, [INFO] [stdout] 830 + tsentiment: &ticker_sent.sentiment_score, [INFO] [stdout] 831 + sentiment_label: &ticker_sent.sentiment_label, [INFO] [stdout] 832 + }), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:849:18 [INFO] [stdout] | [INFO] [stdout] 849 | .execute(conn) [INFO] [stdout] | ^^^^^^^ multiple `execute` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 842 ~ diesel::RunQueryDsl::execute(insert_into(topicmaps::table) [INFO] [stdout] 843 + .values(NewTopicMap { [INFO] [stdout] 844 + sid: &news.sid, [INFO] [stdout] 845 + feedid: &feed_id, [INFO] [stdout] 846 + topicid: &topic_id, [INFO] [stdout] 847 + relscore: &topic.relevance_score, [INFO] [stdout] 848 + }), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 842 ~ diesel_async::RunQueryDsl::execute(insert_into(topicmaps::table) [INFO] [stdout] 843 + .values(NewTopicMap { [INFO] [stdout] 844 + sid: &news.sid, [INFO] [stdout] 845 + feedid: &feed_id, [INFO] [stdout] 846 + topicid: &topic_id, [INFO] [stdout] 847 + relscore: &topic.relevance_score, [INFO] [stdout] 848 + }), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/price.rs:52:71 [INFO] [stdout] | [INFO] [stdout] 52 | let inserted = insert_into(intradayprices::table).values(chunk).execute(conn).await?; [INFO] [stdout] | ^^^^^^^ multiple `execute` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 52 - let inserted = insert_into(intradayprices::table).values(chunk).execute(conn).await?; [INFO] [stdout] 52 + let inserted = diesel::RunQueryDsl::execute(insert_into(intradayprices::table).values(chunk), conn).await?; [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 52 - let inserted = insert_into(intradayprices::table).values(chunk).execute(conn).await?; [INFO] [stdout] 52 + let inserted = diesel_async::RunQueryDsl::execute(insert_into(intradayprices::table).values(chunk), conn).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/price.rs:113:6 [INFO] [stdout] | [INFO] [stdout] 113 | .load::(conn) [INFO] [stdout] | ^^^^ multiple `load` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `query_builder::sql_query::UncheckedBind` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 91 ~ diesel_async::RunQueryDsl::load(sql_query(format!( [INFO] [stdout] 92 + r#" [INFO] [stdout] 93 + SELECT [INFO] [stdout] 94 + time_bucket('{}', tstamp) AS bucket, [INFO] [stdout] 95 + symbol, [INFO] [stdout] 96 + first(open, tstamp) AS open, [INFO] [stdout] 97 + max(high) AS high, [INFO] [stdout] 98 + min(low) AS low, [INFO] [stdout] 99 + last(close, tstamp) AS close, [INFO] [stdout] 100 + sum(volume) AS volume [INFO] [stdout] 101 + FROM intradayprices [INFO] [stdout] 102 + WHERE symbol = $1 [INFO] [stdout] 103 + AND tstamp >= $2 [INFO] [stdout] 104 + AND tstamp <= $3 [INFO] [stdout] 105 + GROUP BY bucket, symbol [INFO] [stdout] 106 + ORDER BY bucket DESC [INFO] [stdout] 107 + "#, [INFO] [stdout] 108 + bucket_size [INFO] [stdout] 109 + )) [INFO] [stdout] 110 + .bind::(symbol) [INFO] [stdout] 111 + .bind::(start) [INFO] [stdout] 112 + .bind::(end), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 91 ~ diesel::RunQueryDsl::load(sql_query(format!( [INFO] [stdout] 92 + r#" [INFO] [stdout] 93 + SELECT [INFO] [stdout] 94 + time_bucket('{}', tstamp) AS bucket, [INFO] [stdout] 95 + symbol, [INFO] [stdout] 96 + first(open, tstamp) AS open, [INFO] [stdout] 97 + max(high) AS high, [INFO] [stdout] 98 + min(low) AS low, [INFO] [stdout] 99 + last(close, tstamp) AS close, [INFO] [stdout] 100 + sum(volume) AS volume [INFO] [stdout] 101 + FROM intradayprices [INFO] [stdout] 102 + WHERE symbol = $1 [INFO] [stdout] 103 + AND tstamp >= $2 [INFO] [stdout] 104 + AND tstamp <= $3 [INFO] [stdout] 105 + GROUP BY bucket, symbol [INFO] [stdout] 106 + ORDER BY bucket DESC [INFO] [stdout] 107 + "#, [INFO] [stdout] 108 + bucket_size [INFO] [stdout] 109 + )) [INFO] [stdout] 110 + .bind::(symbol) [INFO] [stdout] 111 + .bind::(start) [INFO] [stdout] 112 + .bind::(end), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/price.rs:192:70 [INFO] [stdout] | [INFO] [stdout] 192 | let inserted = insert_into(summaryprices::table).values(chunk).execute(conn).await?; [INFO] [stdout] | ^^^^^^^ multiple `execute` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 192 - let inserted = insert_into(summaryprices::table).values(chunk).execute(conn).await?; [INFO] [stdout] 192 + let inserted = diesel::RunQueryDsl::execute(insert_into(summaryprices::table).values(chunk), conn).await?; [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 192 - let inserted = insert_into(summaryprices::table).values(chunk).execute(conn).await?; [INFO] [stdout] 192 + let inserted = diesel_async::RunQueryDsl::execute(insert_into(summaryprices::table).values(chunk), conn).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/price.rs:227:70 [INFO] [stdout] | [INFO] [stdout] 227 | let inserted = insert_into(summaryprices::table).values(chunk).execute(conn).await?; [INFO] [stdout] | ^^^^^^^ multiple `execute` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 227 - let inserted = insert_into(summaryprices::table).values(chunk).execute(conn).await?; [INFO] [stdout] 227 + let inserted = diesel::RunQueryDsl::execute(insert_into(summaryprices::table).values(chunk), conn).await?; [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 227 - let inserted = insert_into(summaryprices::table).values(chunk).execute(conn).await?; [INFO] [stdout] 227 + let inserted = diesel_async::RunQueryDsl::execute(insert_into(summaryprices::table).values(chunk), conn).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/price.rs:244:8 [INFO] [stdout] | [INFO] [stdout] 244 | .first(conn) [INFO] [stdout] | ^^^^^ multiple `first` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 241 ~ diesel_async::RunQueryDsl::first(summaryprices::table [INFO] [stdout] 242 + .filter(summaryprices::symbol.eq(symbol)) [INFO] [stdout] 243 + .order(summaryprices::date.desc()), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 241 ~ diesel::RunQueryDsl::first(summaryprices::table [INFO] [stdout] 242 + .filter(summaryprices::symbol.eq(symbol)) [INFO] [stdout] 243 + .order(summaryprices::date.desc()), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/price.rs:260:8 [INFO] [stdout] | [INFO] [stdout] 260 | .load(conn) [INFO] [stdout] | ^^^^ multiple `load` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 255 ~ diesel_async::RunQueryDsl::load(summaryprices::table [INFO] [stdout] 256 + .filter(summaryprices::symbol.eq(symbol)) [INFO] [stdout] 257 + .filter(summaryprices::date.ge(start_date)) [INFO] [stdout] 258 + .filter(summaryprices::date.le(end_date)) [INFO] [stdout] 259 + .order(summaryprices::date.desc()), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 255 ~ diesel::RunQueryDsl::load(summaryprices::table [INFO] [stdout] 256 + .filter(summaryprices::symbol.eq(symbol)) [INFO] [stdout] 257 + .filter(summaryprices::date.ge(start_date)) [INFO] [stdout] 258 + .filter(summaryprices::date.le(end_date)) [INFO] [stdout] 259 + .order(summaryprices::date.desc()), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/price.rs:296:6 [INFO] [stdout] | [INFO] [stdout] 296 | .load::(conn) [INFO] [stdout] | ^^^^ multiple `load` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `query_builder::sql_query::UncheckedBind` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 274 ~ diesel_async::RunQueryDsl::load(sql_query( [INFO] [stdout] 275 + r#" [INFO] [stdout] 276 + SELECT [INFO] [stdout] 277 + date, [INFO] [stdout] 278 + close, [INFO] [stdout] 279 + AVG(close) OVER ( [INFO] [stdout] 280 + ORDER BY date [INFO] [stdout] 281 + ROWS BETWEEN $3 PRECEDING AND CURRENT ROW [INFO] [stdout] 282 + ) as ma, [INFO] [stdout] 283 + AVG(volume::float4) OVER ( [INFO] [stdout] 284 + ORDER BY date [INFO] [stdout] 285 + ROWS BETWEEN $3 PRECEDING AND CURRENT ROW [INFO] [stdout] 286 + ) as volume_ma [INFO] [stdout] 287 + FROM summaryprices [INFO] [stdout] 288 + WHERE symbol = $1 [INFO] [stdout] 289 + AND date >= CURRENT_DATE - INTERVAL '1 day' * $2 [INFO] [stdout] 290 + ORDER BY date DESC [INFO] [stdout] 291 + "#, [INFO] [stdout] 292 + ) [INFO] [stdout] 293 + .bind::(symbol) [INFO] [stdout] 294 + .bind::(days) [INFO] [stdout] 295 + .bind::(ma_period - 1), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 274 ~ diesel::RunQueryDsl::load(sql_query( [INFO] [stdout] 275 + r#" [INFO] [stdout] 276 + SELECT [INFO] [stdout] 277 + date, [INFO] [stdout] 278 + close, [INFO] [stdout] 279 + AVG(close) OVER ( [INFO] [stdout] 280 + ORDER BY date [INFO] [stdout] 281 + ROWS BETWEEN $3 PRECEDING AND CURRENT ROW [INFO] [stdout] 282 + ) as ma, [INFO] [stdout] 283 + AVG(volume::float4) OVER ( [INFO] [stdout] 284 + ORDER BY date [INFO] [stdout] 285 + ROWS BETWEEN $3 PRECEDING AND CURRENT ROW [INFO] [stdout] 286 + ) as volume_ma [INFO] [stdout] 287 + FROM summaryprices [INFO] [stdout] 288 + WHERE symbol = $1 [INFO] [stdout] 289 + AND date >= CURRENT_DATE - INTERVAL '1 day' * $2 [INFO] [stdout] 290 + ORDER BY date DESC [INFO] [stdout] 291 + "#, [INFO] [stdout] 292 + ) [INFO] [stdout] 293 + .bind::(symbol) [INFO] [stdout] 294 + .bind::(days) [INFO] [stdout] 295 + .bind::(ma_period - 1), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/price.rs:384:65 [INFO] [stdout] | [INFO] [stdout] 384 | let inserted = insert_into(topstats::table).values(chunk).execute(conn).await?; [INFO] [stdout] | ^^^^^^^ multiple `execute` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 384 - let inserted = insert_into(topstats::table).values(chunk).execute(conn).await?; [INFO] [stdout] 384 + let inserted = diesel::RunQueryDsl::execute(insert_into(topstats::table).values(chunk), conn).await?; [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 384 - let inserted = insert_into(topstats::table).values(chunk).execute(conn).await?; [INFO] [stdout] 384 + let inserted = diesel_async::RunQueryDsl::execute(insert_into(topstats::table).values(chunk), conn).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/price.rs:416:65 [INFO] [stdout] | [INFO] [stdout] 416 | let inserted = insert_into(topstats::table).values(chunk).execute(conn).await?; [INFO] [stdout] | ^^^^^^^ multiple `execute` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 416 - let inserted = insert_into(topstats::table).values(chunk).execute(conn).await?; [INFO] [stdout] 416 + let inserted = diesel::RunQueryDsl::execute(insert_into(topstats::table).values(chunk), conn).await?; [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 416 - let inserted = insert_into(topstats::table).values(chunk).execute(conn).await?; [INFO] [stdout] 416 + let inserted = diesel_async::RunQueryDsl::execute(insert_into(topstats::table).values(chunk), conn).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/price.rs:436:8 [INFO] [stdout] | [INFO] [stdout] 436 | .load(conn) [INFO] [stdout] | ^^^^ multiple `load` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 431 ~ diesel_async::RunQueryDsl::load(topstats::table [INFO] [stdout] 432 + .filter(topstats::event_type.eq(event_type)) [INFO] [stdout] 433 + .filter(topstats::date.ge(chrono::Utc::now() - chrono::Duration::days(1))) [INFO] [stdout] 434 + .order(topstats::change_pct.desc()) [INFO] [stdout] 435 + .limit(limit), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 431 ~ diesel::RunQueryDsl::load(topstats::table [INFO] [stdout] 432 + .filter(topstats::event_type.eq(event_type)) [INFO] [stdout] 433 + .filter(topstats::date.ge(chrono::Utc::now() - chrono::Duration::days(1))) [INFO] [stdout] 434 + .order(topstats::change_pct.desc()) [INFO] [stdout] 435 + .limit(limit), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/price.rs:454:8 [INFO] [stdout] | [INFO] [stdout] 454 | .get_result::(conn) [INFO] [stdout] | ^^^^^^^^^^ multiple `get_result` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 450 ~ let total = diesel_async::RunQueryDsl::get_result(topstats::table [INFO] [stdout] 451 + .filter(topstats::event_type.eq(event_type)) [INFO] [stdout] 452 + .filter(topstats::date.ge(chrono::Utc::now() - chrono::Duration::days(1))) [INFO] [stdout] 453 + .count(), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 450 ~ let total = diesel::RunQueryDsl::get_result(topstats::table [INFO] [stdout] 451 + .filter(topstats::event_type.eq(event_type)) [INFO] [stdout] 452 + .filter(topstats::date.ge(chrono::Utc::now() - chrono::Duration::days(1))) [INFO] [stdout] 453 + .count(), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/price.rs:464:8 [INFO] [stdout] | [INFO] [stdout] 464 | .load(conn) [INFO] [stdout] | ^^^^ multiple `load` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 458 ~ let results = diesel_async::RunQueryDsl::load(topstats::table [INFO] [stdout] 459 + .filter(topstats::event_type.eq(event_type)) [INFO] [stdout] 460 + .filter(topstats::date.ge(chrono::Utc::now() - chrono::Duration::days(1))) [INFO] [stdout] 461 + .order(topstats::change_pct.desc()) [INFO] [stdout] 462 + .limit(per_page) [INFO] [stdout] 463 + .offset(offset), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 458 ~ let results = diesel::RunQueryDsl::load(topstats::table [INFO] [stdout] 459 + .filter(topstats::event_type.eq(event_type)) [INFO] [stdout] 460 + .filter(topstats::date.ge(chrono::Utc::now() - chrono::Duration::days(1))) [INFO] [stdout] 461 + .order(topstats::change_pct.desc()) [INFO] [stdout] 462 + .limit(per_page) [INFO] [stdout] 463 + .offset(offset), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/price.rs:511:6 [INFO] [stdout] | [INFO] [stdout] 511 | .load::(conn) [INFO] [stdout] | ^^^^ multiple `load` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `query_builder::sql_query::UncheckedBind` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 480 ~ diesel_async::RunQueryDsl::load(sql_query(format!( [INFO] [stdout] 481 + r#" [INFO] [stdout] 482 + WITH bucketed_stats AS ( [INFO] [stdout] 483 + SELECT [INFO] [stdout] 484 + time_bucket('{}', date) AS bucket, [INFO] [stdout] 485 + event_type, [INFO] [stdout] 486 + symbol, [INFO] [stdout] 487 + change_pct, [INFO] [stdout] 488 + ROW_NUMBER() OVER ( [INFO] [stdout] 489 + PARTITION BY time_bucket('{}', date), event_type [INFO] [stdout] 490 + ORDER BY change_pct DESC [INFO] [stdout] 491 + ) as rn [INFO] [stdout] 492 + FROM topstats [INFO] [stdout] 493 + WHERE event_type = $1 [INFO] [stdout] 494 + AND date >= NOW() - INTERVAL '1 day' * $2 [INFO] [stdout] 495 + ) [INFO] [stdout] 496 + SELECT [INFO] [stdout] 497 + bucket, [INFO] [stdout] 498 + event_type, [INFO] [stdout] 499 + COUNT(*)::integer as mover_count, [INFO] [stdout] 500 + AVG(change_pct) as avg_change_pct, [INFO] [stdout] 501 + MAX(change_pct) as max_change_pct, [INFO] [stdout] 502 + MAX(CASE WHEN rn = 1 THEN symbol END) as top_symbol [INFO] [stdout] 503 + FROM bucketed_stats [INFO] [stdout] 504 + GROUP BY bucket, event_type [INFO] [stdout] 505 + ORDER BY bucket DESC [INFO] [stdout] 506 + "#, [INFO] [stdout] 507 + bucket_size, bucket_size [INFO] [stdout] 508 + )) [INFO] [stdout] 509 + .bind::(event_type) [INFO] [stdout] 510 + .bind::(days_back), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 480 ~ diesel::RunQueryDsl::load(sql_query(format!( [INFO] [stdout] 481 + r#" [INFO] [stdout] 482 + WITH bucketed_stats AS ( [INFO] [stdout] 483 + SELECT [INFO] [stdout] 484 + time_bucket('{}', date) AS bucket, [INFO] [stdout] 485 + event_type, [INFO] [stdout] 486 + symbol, [INFO] [stdout] 487 + change_pct, [INFO] [stdout] 488 + ROW_NUMBER() OVER ( [INFO] [stdout] 489 + PARTITION BY time_bucket('{}', date), event_type [INFO] [stdout] 490 + ORDER BY change_pct DESC [INFO] [stdout] 491 + ) as rn [INFO] [stdout] 492 + FROM topstats [INFO] [stdout] 493 + WHERE event_type = $1 [INFO] [stdout] 494 + AND date >= NOW() - INTERVAL '1 day' * $2 [INFO] [stdout] 495 + ) [INFO] [stdout] 496 + SELECT [INFO] [stdout] 497 + bucket, [INFO] [stdout] 498 + event_type, [INFO] [stdout] 499 + COUNT(*)::integer as mover_count, [INFO] [stdout] 500 + AVG(change_pct) as avg_change_pct, [INFO] [stdout] 501 + MAX(change_pct) as max_change_pct, [INFO] [stdout] 502 + MAX(CASE WHEN rn = 1 THEN symbol END) as top_symbol [INFO] [stdout] 503 + FROM bucketed_stats [INFO] [stdout] 504 + GROUP BY bucket, event_type [INFO] [stdout] 505 + ORDER BY bucket DESC [INFO] [stdout] 506 + "#, [INFO] [stdout] 507 + bucket_size, bucket_size [INFO] [stdout] 508 + )) [INFO] [stdout] 509 + .bind::(event_type) [INFO] [stdout] 510 + .bind::(days_back), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/price.rs:539:6 [INFO] [stdout] | [INFO] [stdout] 539 | .load::(conn) [INFO] [stdout] | ^^^^ multiple `load` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `query_builder::sql_query::UncheckedBind` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 523 ~ diesel_async::RunQueryDsl::load(sql_query( [INFO] [stdout] 524 + r#" [INFO] [stdout] 525 + SELECT [INFO] [stdout] 526 + o.sector, [INFO] [stdout] 527 + COUNT(CASE WHEN t.event_type = 'gainers' THEN 1 END)::integer as gainer_count, [INFO] [stdout] 528 + COUNT(CASE WHEN t.event_type = 'losers' THEN 1 END)::integer as loser_count, [INFO] [stdout] 529 + AVG(CASE WHEN t.event_type = 'gainers' THEN t.change_pct END) as avg_gain, [INFO] [stdout] 530 + AVG(CASE WHEN t.event_type = 'losers' THEN t.change_pct END) as avg_loss [INFO] [stdout] 531 + FROM topstats t [INFO] [stdout] 532 + JOIN overviews o ON t.sid = o.sid [INFO] [stdout] 533 + WHERE t.date = $1 [INFO] [stdout] 534 + GROUP BY o.sector [INFO] [stdout] 535 + ORDER BY gainer_count DESC [INFO] [stdout] 536 + "#, [INFO] [stdout] 537 + ) [INFO] [stdout] 538 + .bind::(date), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 523 ~ diesel::RunQueryDsl::load(sql_query( [INFO] [stdout] 524 + r#" [INFO] [stdout] 525 + SELECT [INFO] [stdout] 526 + o.sector, [INFO] [stdout] 527 + COUNT(CASE WHEN t.event_type = 'gainers' THEN 1 END)::integer as gainer_count, [INFO] [stdout] 528 + COUNT(CASE WHEN t.event_type = 'losers' THEN 1 END)::integer as loser_count, [INFO] [stdout] 529 + AVG(CASE WHEN t.event_type = 'gainers' THEN t.change_pct END) as avg_gain, [INFO] [stdout] 530 + AVG(CASE WHEN t.event_type = 'losers' THEN t.change_pct END) as avg_loss [INFO] [stdout] 531 + FROM topstats t [INFO] [stdout] 532 + JOIN overviews o ON t.sid = o.sid [INFO] [stdout] 533 + WHERE t.date = $1 [INFO] [stdout] 534 + GROUP BY o.sector [INFO] [stdout] 535 + ORDER BY gainer_count DESC [INFO] [stdout] 536 + "#, [INFO] [stdout] 537 + ) [INFO] [stdout] 538 + .bind::(date), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/security.rs:49:30 [INFO] [stdout] | [INFO] [stdout] 49 | symbols::table.find(sid).first(conn).await [INFO] [stdout] | ^^^^^ multiple `first` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 49 - symbols::table.find(sid).first(conn).await [INFO] [stdout] 49 + diesel_async::RunQueryDsl::first(symbols::table.find(sid), conn).await [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 49 - symbols::table.find(sid).first(conn).await [INFO] [stdout] 49 + diesel::RunQueryDsl::first(symbols::table.find(sid), conn).await [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:104:67 [INFO] [stdout] | [INFO] [stdout] 104 | newsoverviews::table.filter(newsoverviews::hashid.eq(hashid)).first(conn).await.optional() [INFO] [stdout] | ^^^^^ multiple `first` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 104 - newsoverviews::table.filter(newsoverviews::hashid.eq(hashid)).first(conn).await.optional() [INFO] [stdout] 104 + diesel_async::RunQueryDsl::first(newsoverviews::table.filter(newsoverviews::hashid.eq(hashid)), conn).await.optional() [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 104 - newsoverviews::table.filter(newsoverviews::hashid.eq(hashid)).first(conn).await.optional() [INFO] [stdout] 104 + diesel::RunQueryDsl::first(newsoverviews::table.filter(newsoverviews::hashid.eq(hashid)), conn).await.optional() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/security.rs:56:55 [INFO] [stdout] | [INFO] [stdout] 56 | symbols::table.filter(symbols::symbol.eq(symbol)).first(conn).await [INFO] [stdout] | ^^^^^ multiple `first` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 56 - symbols::table.filter(symbols::symbol.eq(symbol)).first(conn).await [INFO] [stdout] 56 + diesel_async::RunQueryDsl::first(symbols::table.filter(symbols::symbol.eq(symbol)), conn).await [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 56 - symbols::table.filter(symbols::symbol.eq(symbol)).first(conn).await [INFO] [stdout] 56 + diesel::RunQueryDsl::first(symbols::table.filter(symbols::symbol.eq(symbol)), conn).await [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0282]: type annotations needed [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:104:5 [INFO] [stdout] | [INFO] [stdout] 104 | newsoverviews::table.filter(newsoverviews::hashid.eq(hashid)).first(conn).await.optional() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/security.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 66 | .load(conn) [INFO] [stdout] | ^^^^ multiple `load` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 62 ~ diesel_async::RunQueryDsl::load(symbols::table [INFO] [stdout] 63 + .filter(symbols::overview.eq(true)) [INFO] [stdout] 64 + .or_filter(symbols::intraday.eq(true)) [INFO] [stdout] 65 + .or_filter(symbols::summary.eq(true)), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 62 ~ diesel::RunQueryDsl::load(symbols::table [INFO] [stdout] 63 + .filter(symbols::overview.eq(true)) [INFO] [stdout] 64 + .or_filter(symbols::intraday.eq(true)) [INFO] [stdout] 65 + .or_filter(symbols::summary.eq(true)), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/security.rs:137:32 [INFO] [stdout] | [INFO] [stdout] 137 | overviews::table.find(sid).first(conn).await [INFO] [stdout] | ^^^^^ multiple `first` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 137 - overviews::table.find(sid).first(conn).await [INFO] [stdout] 137 + diesel_async::RunQueryDsl::first(overviews::table.find(sid), conn).await [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 137 - overviews::table.find(sid).first(conn).await [INFO] [stdout] 137 + diesel::RunQueryDsl::first(overviews::table.find(sid), conn).await [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:116:8 [INFO] [stdout] | [INFO] [stdout] 116 | .load(conn) [INFO] [stdout] | ^^^^ multiple `load` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 112 ~ diesel_async::RunQueryDsl::load(newsoverviews::table [INFO] [stdout] 113 + .filter(newsoverviews::sid.eq(sid)) [INFO] [stdout] 114 + .filter(newsoverviews::creation.ge(chrono::Utc::now() - chrono::Duration::days(days as i64))) [INFO] [stdout] 115 + .order(newsoverviews::creation.desc()), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 112 ~ diesel::RunQueryDsl::load(newsoverviews::table [INFO] [stdout] 113 + .filter(newsoverviews::sid.eq(sid)) [INFO] [stdout] 114 + .filter(newsoverviews::creation.ge(chrono::Utc::now() - chrono::Duration::days(days as i64))) [INFO] [stdout] 115 + .order(newsoverviews::creation.desc()), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/security.rs:144:59 [INFO] [stdout] | [INFO] [stdout] 144 | overviews::table.filter(overviews::symbol.eq(symbol)).first(conn).await [INFO] [stdout] | ^^^^^ multiple `first` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 144 - overviews::table.filter(overviews::symbol.eq(symbol)).first(conn).await [INFO] [stdout] 144 + diesel_async::RunQueryDsl::first(overviews::table.filter(overviews::symbol.eq(symbol)), conn).await [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 144 - overviews::table.filter(overviews::symbol.eq(symbol)).first(conn).await [INFO] [stdout] 144 + diesel::RunQueryDsl::first(overviews::table.filter(overviews::symbol.eq(symbol)), conn).await [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/security.rs:151:59 [INFO] [stdout] | [INFO] [stdout] 151 | overviews::table.filter(overviews::sector.eq(sector)).load(conn).await [INFO] [stdout] | ^^^^ multiple `load` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 151 - overviews::table.filter(overviews::sector.eq(sector)).load(conn).await [INFO] [stdout] 151 + diesel_async::RunQueryDsl::load(overviews::table.filter(overviews::sector.eq(sector)), conn).await [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 151 - overviews::table.filter(overviews::sector.eq(sector)).load(conn).await [INFO] [stdout] 151 + diesel::RunQueryDsl::load(overviews::table.filter(overviews::sector.eq(sector)), conn).await [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:179:6 [INFO] [stdout] | [INFO] [stdout] 179 | .load::(conn) [INFO] [stdout] | ^^^^ multiple `load` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `query_builder::sql_query::UncheckedBind` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 128 ~ diesel_async::RunQueryDsl::load(sql_query( [INFO] [stdout] 129 + r#" [INFO] [stdout] 130 + WITH recent_news AS ( [INFO] [stdout] 131 + SELECT n.*, f.osentiment, f.sentlabel [INFO] [stdout] 132 + FROM newsoverviews n [INFO] [stdout] 133 + JOIN feeds f ON n.id = f.newsoverviewid [INFO] [stdout] 134 + WHERE n.sid = $1 [INFO] [stdout] 135 + AND n.creation >= NOW() - INTERVAL '1 day' * $2 [INFO] [stdout] 136 + ), [INFO] [stdout] 137 + sentiment_counts AS ( [INFO] [stdout] 138 + SELECT [INFO] [stdout] 139 + COUNT(*) as total, [INFO] [stdout] 140 + COUNT(CASE WHEN sentlabel = 'Bullish' THEN 1 END) as bullish, [INFO] [stdout] 141 + COUNT(CASE WHEN sentlabel = 'Bearish' THEN 1 END) as bearish, [INFO] [stdout] 142 + COUNT(CASE WHEN sentlabel = 'Neutral' THEN 1 END) as neutral [INFO] [stdout] 143 + FROM recent_news [INFO] [stdout] 144 + ) [INFO] [stdout] 145 + SELECT [INFO] [stdout] 146 + $1 as sid, [INFO] [stdout] 147 + AVG(rn.osentiment) as avg_sentiment, [INFO] [stdout] 148 + COUNT(DISTINCT rn.id) as article_count, [INFO] [stdout] 149 + (sc.bullish::float8 / NULLIF(sc.total, 0) * 100) as bullish_pct, [INFO] [stdout] 150 + (sc.bearish::float8 / NULLIF(sc.total, 0) * 100) as bearish_pct, [INFO] [stdout] 151 + (sc.neutral::float8 / NULLIF(sc.total, 0) * 100) as neutral_pct, [INFO] [stdout] 152 + COALESCE( [INFO] [stdout] 153 + jsonb_agg(DISTINCT [INFO] [stdout] 154 + jsonb_build_object( [INFO] [stdout] 155 + 'topic', tr.name, [INFO] [stdout] 156 + 'avg_relevance', tm.avg_relevance [INFO] [stdout] 157 + ) [INFO] [stdout] 158 + ) FILTER (WHERE tr.name IS NOT NULL), [INFO] [stdout] 159 + '[]'::jsonb [INFO] [stdout] 160 + ) as topics [INFO] [stdout] 161 + FROM recent_news rn [INFO] [stdout] 162 + CROSS JOIN sentiment_counts sc [INFO] [stdout] 163 + LEFT JOIN ( [INFO] [stdout] 164 + SELECT [INFO] [stdout] 165 + f.newsoverviewid, [INFO] [stdout] 166 + tm.topicid, [INFO] [stdout] 167 + AVG(tm.relscore) as avg_relevance [INFO] [stdout] 168 + FROM feeds f [INFO] [stdout] 169 + JOIN topicmaps tm ON f.id = tm.feedid [INFO] [stdout] 170 + WHERE f.newsoverviewid IN (SELECT id FROM recent_news) [INFO] [stdout] 171 + GROUP BY f.newsoverviewid, tm.topicid [INFO] [stdout] 172 + ) tm ON rn.id = tm.newsoverviewid [INFO] [stdout] 173 + LEFT JOIN topicrefs tr ON tm.topicid = tr.id [INFO] [stdout] 174 + GROUP BY sc.bullish, sc.bearish, sc.neutral, sc.total [INFO] [stdout] 175 + "#, [INFO] [stdout] 176 + ) [INFO] [stdout] 177 + .bind::(sid) [INFO] [stdout] 178 + .bind::(days), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 128 ~ diesel::RunQueryDsl::load(sql_query( [INFO] [stdout] 129 + r#" [INFO] [stdout] 130 + WITH recent_news AS ( [INFO] [stdout] 131 + SELECT n.*, f.osentiment, f.sentlabel [INFO] [stdout] 132 + FROM newsoverviews n [INFO] [stdout] 133 + JOIN feeds f ON n.id = f.newsoverviewid [INFO] [stdout] 134 + WHERE n.sid = $1 [INFO] [stdout] 135 + AND n.creation >= NOW() - INTERVAL '1 day' * $2 [INFO] [stdout] 136 + ), [INFO] [stdout] 137 + sentiment_counts AS ( [INFO] [stdout] 138 + SELECT [INFO] [stdout] 139 + COUNT(*) as total, [INFO] [stdout] 140 + COUNT(CASE WHEN sentlabel = 'Bullish' THEN 1 END) as bullish, [INFO] [stdout] 141 + COUNT(CASE WHEN sentlabel = 'Bearish' THEN 1 END) as bearish, [INFO] [stdout] 142 + COUNT(CASE WHEN sentlabel = 'Neutral' THEN 1 END) as neutral [INFO] [stdout] 143 + FROM recent_news [INFO] [stdout] 144 + ) [INFO] [stdout] 145 + SELECT [INFO] [stdout] 146 + $1 as sid, [INFO] [stdout] 147 + AVG(rn.osentiment) as avg_sentiment, [INFO] [stdout] 148 + COUNT(DISTINCT rn.id) as article_count, [INFO] [stdout] 149 + (sc.bullish::float8 / NULLIF(sc.total, 0) * 100) as bullish_pct, [INFO] [stdout] 150 + (sc.bearish::float8 / NULLIF(sc.total, 0) * 100) as bearish_pct, [INFO] [stdout] 151 + (sc.neutral::float8 / NULLIF(sc.total, 0) * 100) as neutral_pct, [INFO] [stdout] 152 + COALESCE( [INFO] [stdout] 153 + jsonb_agg(DISTINCT [INFO] [stdout] 154 + jsonb_build_object( [INFO] [stdout] 155 + 'topic', tr.name, [INFO] [stdout] 156 + 'avg_relevance', tm.avg_relevance [INFO] [stdout] 157 + ) [INFO] [stdout] 158 + ) FILTER (WHERE tr.name IS NOT NULL), [INFO] [stdout] 159 + '[]'::jsonb [INFO] [stdout] 160 + ) as topics [INFO] [stdout] 161 + FROM recent_news rn [INFO] [stdout] 162 + CROSS JOIN sentiment_counts sc [INFO] [stdout] 163 + LEFT JOIN ( [INFO] [stdout] 164 + SELECT [INFO] [stdout] 165 + f.newsoverviewid, [INFO] [stdout] 166 + tm.topicid, [INFO] [stdout] 167 + AVG(tm.relscore) as avg_relevance [INFO] [stdout] 168 + FROM feeds f [INFO] [stdout] 169 + JOIN topicmaps tm ON f.id = tm.feedid [INFO] [stdout] 170 + WHERE f.newsoverviewid IN (SELECT id FROM recent_news) [INFO] [stdout] 171 + GROUP BY f.newsoverviewid, tm.topicid [INFO] [stdout] 172 + ) tm ON rn.id = tm.newsoverviewid [INFO] [stdout] 173 + LEFT JOIN topicrefs tr ON tm.topicid = tr.id [INFO] [stdout] 174 + GROUP BY sc.bullish, sc.bearish, sc.neutral, sc.total [INFO] [stdout] 175 + "#, [INFO] [stdout] 176 + ) [INFO] [stdout] 177 + .bind::(sid) [INFO] [stdout] 178 + .bind::(days), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/security.rs:231:35 [INFO] [stdout] | [INFO] [stdout] 231 | overviewexts::table.find(sid).first(conn).await [INFO] [stdout] | ^^^^^ multiple `first` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 231 - overviewexts::table.find(sid).first(conn).await [INFO] [stdout] 231 + diesel_async::RunQueryDsl::first(overviewexts::table.find(sid), conn).await [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 231 - overviewexts::table.find(sid).first(conn).await [INFO] [stdout] 231 + diesel::RunQueryDsl::first(overviewexts::table.find(sid), conn).await [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:233:70 [INFO] [stdout] | [INFO] [stdout] 233 | insert_into(feeds::table).values(chunk).returning(feeds::id).get_results(conn).await?; [INFO] [stdout] | ^^^^^^^^^^^ multiple `get_results` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 233 - insert_into(feeds::table).values(chunk).returning(feeds::id).get_results(conn).await?; [INFO] [stdout] 233 + diesel::RunQueryDsl::get_results(insert_into(feeds::table).values(chunk).returning(feeds::id), conn).await?; [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 233 - insert_into(feeds::table).values(chunk).returning(feeds::id).get_results(conn).await?; [INFO] [stdout] 233 + diesel_async::RunQueryDsl::get_results(insert_into(feeds::table).values(chunk).returning(feeds::id), conn).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/security.rs:238:65 [INFO] [stdout] | [INFO] [stdout] 238 | overviewexts::table.filter(overviewexts::beta.ge(min_beta)).load(conn).await [INFO] [stdout] | ^^^^ multiple `load` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 238 - overviewexts::table.filter(overviewexts::beta.ge(min_beta)).load(conn).await [INFO] [stdout] 238 + diesel_async::RunQueryDsl::load(overviewexts::table.filter(overviewexts::beta.ge(min_beta)), conn).await [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 238 - overviewexts::table.filter(overviewexts::beta.ge(min_beta)).load(conn).await [INFO] [stdout] 238 + diesel::RunQueryDsl::load(overviewexts::table.filter(overviewexts::beta.ge(min_beta)), conn).await [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/security.rs:244:75 [INFO] [stdout] | [INFO] [stdout] 244 | overviewexts::table.filter(overviewexts::dividend_date.is_not_null()).load(conn).await [INFO] [stdout] | ^^^^ multiple `load` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 244 - overviewexts::table.filter(overviewexts::dividend_date.is_not_null()).load(conn).await [INFO] [stdout] 244 + diesel_async::RunQueryDsl::load(overviewexts::table.filter(overviewexts::dividend_date.is_not_null()), conn).await [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 244 - overviewexts::table.filter(overviewexts::dividend_date.is_not_null()).load(conn).await [INFO] [stdout] 244 + diesel::RunQueryDsl::load(overviewexts::table.filter(overviewexts::dividend_date.is_not_null()), conn).await [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:264:70 [INFO] [stdout] | [INFO] [stdout] 264 | insert_into(feeds::table).values(chunk).returning(feeds::id).get_results(conn).await?; [INFO] [stdout] | ^^^^^^^^^^^ multiple `get_results` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 264 - insert_into(feeds::table).values(chunk).returning(feeds::id).get_results(conn).await?; [INFO] [stdout] 264 + diesel::RunQueryDsl::get_results(insert_into(feeds::table).values(chunk).returning(feeds::id), conn).await?; [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 264 - insert_into(feeds::table).values(chunk).returning(feeds::id).get_results(conn).await?; [INFO] [stdout] 264 + diesel_async::RunQueryDsl::get_results(insert_into(feeds::table).values(chunk).returning(feeds::id), conn).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/security.rs:488:37 [INFO] [stdout] | [INFO] [stdout] 488 | equity_details::table.find(sid).first(conn).await [INFO] [stdout] | ^^^^^ multiple `first` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 488 - equity_details::table.find(sid).first(conn).await [INFO] [stdout] 488 + diesel_async::RunQueryDsl::first(equity_details::table.find(sid), conn).await [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 488 - equity_details::table.find(sid).first(conn).await [INFO] [stdout] 488 + diesel::RunQueryDsl::first(equity_details::table.find(sid), conn).await [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:339:34 [INFO] [stdout] | [INFO] [stdout] 339 | articles::table.find(hashid).first(conn).await.optional() [INFO] [stdout] | ^^^^^ multiple `first` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 339 - articles::table.find(hashid).first(conn).await.optional() [INFO] [stdout] 339 + diesel_async::RunQueryDsl::first(articles::table.find(hashid), conn).await.optional() [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 339 - articles::table.find(hashid).first(conn).await.optional() [INFO] [stdout] 339 + diesel::RunQueryDsl::first(articles::table.find(hashid), conn).await.optional() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0282]: type annotations needed [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:339:5 [INFO] [stdout] | [INFO] [stdout] 339 | articles::table.find(hashid).first(conn).await.optional() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:351:8 [INFO] [stdout] | [INFO] [stdout] 351 | .load(conn) [INFO] [stdout] | ^^^^ multiple `load` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 347 ~ diesel_async::RunQueryDsl::load(articles::table [INFO] [stdout] 348 + .filter(articles::category.eq(category)) [INFO] [stdout] 349 + .order(articles::ct.desc()) [INFO] [stdout] 350 + .limit(limit), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 347 ~ diesel::RunQueryDsl::load(articles::table [INFO] [stdout] 348 + .filter(articles::category.eq(category)) [INFO] [stdout] 349 + .order(articles::ct.desc()) [INFO] [stdout] 350 + .limit(limit), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:387:8 [INFO] [stdout] | [INFO] [stdout] 387 | .first::(conn) [INFO] [stdout] | ^^^^^ multiple `first` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 384 ~ if let Some(author) = diesel_async::RunQueryDsl::first(authors::table [INFO] [stdout] 385 + .filter(authors::author_name.eq(name)) [INFO] [stdout] 386 + .select(authors::id), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 384 ~ if let Some(author) = diesel::RunQueryDsl::first(authors::table [INFO] [stdout] 385 + .filter(authors::author_name.eq(name)) [INFO] [stdout] 386 + .select(authors::id), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0282]: type annotations needed [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:384:27 [INFO] [stdout] | [INFO] [stdout] 384 | if let Some(author) = authors::table [INFO] [stdout] | ___________________________^ [INFO] [stdout] 385 | | .filter(authors::author_name.eq(name)) [INFO] [stdout] 386 | | .select(authors::id) [INFO] [stdout] 387 | | .first::(conn) [INFO] [stdout] 388 | | .await [INFO] [stdout] | |____________^ cannot infer type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:398:8 [INFO] [stdout] | [INFO] [stdout] 398 | .get_result(conn) [INFO] [stdout] | ^^^^^^^^^^ multiple `get_result` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 395 ~ diesel::RunQueryDsl::get_result(insert_into(authors::table) [INFO] [stdout] 396 + .values(NewAuthor { author_name: name }) [INFO] [stdout] 397 + .returning(authors::id), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 395 ~ diesel_async::RunQueryDsl::get_result(insert_into(authors::table) [INFO] [stdout] 396 + .values(NewAuthor { author_name: name }) [INFO] [stdout] 397 + .returning(authors::id), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:462:8 [INFO] [stdout] | [INFO] [stdout] 462 | .first::(conn) [INFO] [stdout] | ^^^^^ multiple `first` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 458 ~ if let Some(source) = diesel_async::RunQueryDsl::first(sources::table [INFO] [stdout] 459 + .filter(sources::source_name.eq(name)) [INFO] [stdout] 460 + .filter(sources::domain.eq(domain)) [INFO] [stdout] 461 + .select(sources::id), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 458 ~ if let Some(source) = diesel::RunQueryDsl::first(sources::table [INFO] [stdout] 459 + .filter(sources::source_name.eq(name)) [INFO] [stdout] 460 + .filter(sources::domain.eq(domain)) [INFO] [stdout] 461 + .select(sources::id), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0282]: type annotations needed [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:458:27 [INFO] [stdout] | [INFO] [stdout] 458 | if let Some(source) = sources::table [INFO] [stdout] | ___________________________^ [INFO] [stdout] 459 | | .filter(sources::source_name.eq(name)) [INFO] [stdout] 460 | | .filter(sources::domain.eq(domain)) [INFO] [stdout] 461 | | .select(sources::id) [INFO] [stdout] 462 | | .first::(conn) [INFO] [stdout] 463 | | .await [INFO] [stdout] | |____________^ cannot infer type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:473:8 [INFO] [stdout] | [INFO] [stdout] 473 | .get_result(conn) [INFO] [stdout] | ^^^^^^^^^^ multiple `get_result` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 470 ~ diesel::RunQueryDsl::get_result(insert_into(sources::table) [INFO] [stdout] 471 + .values(NewSource { source_name: name, domain }) [INFO] [stdout] 472 + .returning(sources::id), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 470 ~ diesel_async::RunQueryDsl::get_result(insert_into(sources::table) [INFO] [stdout] 471 + .values(NewSource { source_name: name, domain }) [INFO] [stdout] 472 + .returning(sources::id), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:521:73 [INFO] [stdout] | [INFO] [stdout] 521 | let inserted = insert_into(tickersentiments::table).values(chunk).execute(conn).await?; [INFO] [stdout] | ^^^^^^^ multiple `execute` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 521 - let inserted = insert_into(tickersentiments::table).values(chunk).execute(conn).await?; [INFO] [stdout] 521 + let inserted = diesel::RunQueryDsl::execute(insert_into(tickersentiments::table).values(chunk), conn).await?; [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 521 - let inserted = insert_into(tickersentiments::table).values(chunk).execute(conn).await?; [INFO] [stdout] 521 + let inserted = diesel_async::RunQueryDsl::execute(insert_into(tickersentiments::table).values(chunk), conn).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:560:6 [INFO] [stdout] | [INFO] [stdout] 560 | .load::(conn) [INFO] [stdout] | ^^^^ multiple `load` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `query_builder::sql_query::UncheckedBind` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 539 ~ diesel_async::RunQueryDsl::load(sql_query(format!( [INFO] [stdout] 540 + r#" [INFO] [stdout] 541 + SELECT [INFO] [stdout] 542 + time_bucket('{}', n.creation) AS bucket, [INFO] [stdout] 543 + AVG(ts.tsentiment) as avg_sentiment, [INFO] [stdout] 544 + AVG(ts.relevance) as avg_relevance, [INFO] [stdout] 545 + COUNT(*)::bigint as mention_count, [INFO] [stdout] 546 + SUM(CASE WHEN ts.sentiment_label = 'Bullish' THEN 1 ELSE 0 END)::float8 / [INFO] [stdout] 547 + NULLIF(COUNT(*), 0) as bullish_ratio [INFO] [stdout] 548 + FROM tickersentiments ts [INFO] [stdout] 549 + JOIN feeds f ON ts.feedid = f.id [INFO] [stdout] 550 + JOIN newsoverviews n ON f.newsoverviewid = n.id [INFO] [stdout] 551 + WHERE ts.sid = $1 [INFO] [stdout] 552 + AND n.creation >= NOW() - INTERVAL '1 day' * $2 [INFO] [stdout] 553 + GROUP BY bucket [INFO] [stdout] 554 + ORDER BY bucket DESC [INFO] [stdout] 555 + "#, [INFO] [stdout] 556 + bucket_size [INFO] [stdout] 557 + )) [INFO] [stdout] 558 + .bind::(sid) [INFO] [stdout] 559 + .bind::(days), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 539 ~ diesel::RunQueryDsl::load(sql_query(format!( [INFO] [stdout] 540 + r#" [INFO] [stdout] 541 + SELECT [INFO] [stdout] 542 + time_bucket('{}', n.creation) AS bucket, [INFO] [stdout] 543 + AVG(ts.tsentiment) as avg_sentiment, [INFO] [stdout] 544 + AVG(ts.relevance) as avg_relevance, [INFO] [stdout] 545 + COUNT(*)::bigint as mention_count, [INFO] [stdout] 546 + SUM(CASE WHEN ts.sentiment_label = 'Bullish' THEN 1 ELSE 0 END)::float8 / [INFO] [stdout] 547 + NULLIF(COUNT(*), 0) as bullish_ratio [INFO] [stdout] 548 + FROM tickersentiments ts [INFO] [stdout] 549 + JOIN feeds f ON ts.feedid = f.id [INFO] [stdout] 550 + JOIN newsoverviews n ON f.newsoverviewid = n.id [INFO] [stdout] 551 + WHERE ts.sid = $1 [INFO] [stdout] 552 + AND n.creation >= NOW() - INTERVAL '1 day' * $2 [INFO] [stdout] 553 + GROUP BY bucket [INFO] [stdout] 554 + ORDER BY bucket DESC [INFO] [stdout] 555 + "#, [INFO] [stdout] 556 + bucket_size [INFO] [stdout] 557 + )) [INFO] [stdout] 558 + .bind::(sid) [INFO] [stdout] 559 + .bind::(days), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:595:8 [INFO] [stdout] | [INFO] [stdout] 595 | .first::(conn) [INFO] [stdout] | ^^^^^ multiple `first` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 592 ~ if let Some(topic) = diesel_async::RunQueryDsl::first(topicrefs::table [INFO] [stdout] 593 + .filter(topicrefs::name.eq(name)) [INFO] [stdout] 594 + .select(topicrefs::id), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 592 ~ if let Some(topic) = diesel::RunQueryDsl::first(topicrefs::table [INFO] [stdout] 593 + .filter(topicrefs::name.eq(name)) [INFO] [stdout] 594 + .select(topicrefs::id), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0282]: type annotations needed [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:592:26 [INFO] [stdout] | [INFO] [stdout] 592 | if let Some(topic) = topicrefs::table [INFO] [stdout] | __________________________^ [INFO] [stdout] 593 | | .filter(topicrefs::name.eq(name)) [INFO] [stdout] 594 | | .select(topicrefs::id) [INFO] [stdout] 595 | | .first::(conn) [INFO] [stdout] 596 | | .await [INFO] [stdout] | |____________^ cannot infer type [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:605:8 [INFO] [stdout] | [INFO] [stdout] 605 | .get_result(conn) [INFO] [stdout] | ^^^^^^^^^^ multiple `get_result` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 602 ~ diesel::RunQueryDsl::get_result(insert_into(topicrefs::table) [INFO] [stdout] 603 + .values(NewTopicRef { name }) [INFO] [stdout] 604 + .returning(topicrefs::id), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 602 ~ diesel_async::RunQueryDsl::get_result(insert_into(topicrefs::table) [INFO] [stdout] 603 + .values(NewTopicRef { name }) [INFO] [stdout] 604 + .returning(topicrefs::id), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:650:66 [INFO] [stdout] | [INFO] [stdout] 650 | let inserted = insert_into(topicmaps::table).values(chunk).execute(conn).await?; [INFO] [stdout] | ^^^^^^^ multiple `execute` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 650 - let inserted = insert_into(topicmaps::table).values(chunk).execute(conn).await?; [INFO] [stdout] 650 + let inserted = diesel::RunQueryDsl::execute(insert_into(topicmaps::table).values(chunk), conn).await?; [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 650 - let inserted = insert_into(topicmaps::table).values(chunk).execute(conn).await?; [INFO] [stdout] 650 + let inserted = diesel_async::RunQueryDsl::execute(insert_into(topicmaps::table).values(chunk), conn).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:687:6 [INFO] [stdout] | [INFO] [stdout] 687 | .load::(conn) [INFO] [stdout] | ^^^^ multiple `load` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `query_builder::sql_query::UncheckedBind` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 667 ~ diesel_async::RunQueryDsl::load(sql_query( [INFO] [stdout] 668 + r#" [INFO] [stdout] 669 + SELECT [INFO] [stdout] 670 + tr.name as topic_name, [INFO] [stdout] 671 + COUNT(*)::bigint as mention_count, [INFO] [stdout] 672 + AVG(tm.relscore) as avg_relevance, [INFO] [stdout] 673 + AVG(f.osentiment) as avg_sentiment, [INFO] [stdout] 674 + COUNT(DISTINCT tm.sid)::bigint as unique_symbols [INFO] [stdout] 675 + FROM topicmaps tm [INFO] [stdout] 676 + JOIN topicrefs tr ON tm.topicid = tr.id [INFO] [stdout] 677 + JOIN feeds f ON tm.feedid = f.id [INFO] [stdout] 678 + JOIN newsoverviews n ON f.newsoverviewid = n.id [INFO] [stdout] 679 + WHERE n.creation >= NOW() - INTERVAL '1 day' * $1 [INFO] [stdout] 680 + GROUP BY tr.name [INFO] [stdout] 681 + ORDER BY mention_count DESC [INFO] [stdout] 682 + LIMIT $2 [INFO] [stdout] 683 + "#, [INFO] [stdout] 684 + ) [INFO] [stdout] 685 + .bind::(days) [INFO] [stdout] 686 + .bind::(limit), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 667 ~ diesel::RunQueryDsl::load(sql_query( [INFO] [stdout] 668 + r#" [INFO] [stdout] 669 + SELECT [INFO] [stdout] 670 + tr.name as topic_name, [INFO] [stdout] 671 + COUNT(*)::bigint as mention_count, [INFO] [stdout] 672 + AVG(tm.relscore) as avg_relevance, [INFO] [stdout] 673 + AVG(f.osentiment) as avg_sentiment, [INFO] [stdout] 674 + COUNT(DISTINCT tm.sid)::bigint as unique_symbols [INFO] [stdout] 675 + FROM topicmaps tm [INFO] [stdout] 676 + JOIN topicrefs tr ON tm.topicid = tr.id [INFO] [stdout] 677 + JOIN feeds f ON tm.feedid = f.id [INFO] [stdout] 678 + JOIN newsoverviews n ON f.newsoverviewid = n.id [INFO] [stdout] 679 + WHERE n.creation >= NOW() - INTERVAL '1 day' * $1 [INFO] [stdout] 680 + GROUP BY tr.name [INFO] [stdout] 681 + ORDER BY mention_count DESC [INFO] [stdout] 682 + LIMIT $2 [INFO] [stdout] 683 + "#, [INFO] [stdout] 684 + ) [INFO] [stdout] 685 + .bind::(days) [INFO] [stdout] 686 + .bind::(limit), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:729:6 [INFO] [stdout] | [INFO] [stdout] 729 | .get_result::(conn) [INFO] [stdout] | ^^^^^^^^^^ multiple `get_result` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `query_builder::sql_query::UncheckedBind` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 706 ~ let result = diesel_async::RunQueryDsl::get_result(sql_query( [INFO] [stdout] 707 + r#" [INFO] [stdout] 708 + WITH topic_feeds AS ( [INFO] [stdout] 709 + SELECT [INFO] [stdout] 710 + tm.feedid, [INFO] [stdout] 711 + MAX(CASE WHEN tr.name = $1 THEN 1 ELSE 0 END) as has_topic1, [INFO] [stdout] 712 + MAX(CASE WHEN tr.name = $2 THEN 1 ELSE 0 END) as has_topic2 [INFO] [stdout] 713 + FROM topicmaps tm [INFO] [stdout] 714 + JOIN topicrefs tr ON tm.topicid = tr.id [INFO] [stdout] 715 + JOIN feeds f ON tm.feedid = f.id [INFO] [stdout] 716 + JOIN newsoverviews n ON f.newsoverviewid = n.id [INFO] [stdout] 717 + WHERE n.creation >= NOW() - INTERVAL '1 day' * $3 [INFO] [stdout] 718 + AND tr.name IN ($1, $2) [INFO] [stdout] 719 + GROUP BY tm.feedid [INFO] [stdout] 720 + ) [INFO] [stdout] 721 + SELECT [INFO] [stdout] 722 + CORR(has_topic1::float8, has_topic2::float8) as correlation [INFO] [stdout] 723 + FROM topic_feeds [INFO] [stdout] 724 + "#, [INFO] [stdout] 725 + ) [INFO] [stdout] 726 + .bind::(topic1) [INFO] [stdout] 727 + .bind::(topic2) [INFO] [stdout] 728 + .bind::(days), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 706 ~ let result = diesel::RunQueryDsl::get_result(sql_query( [INFO] [stdout] 707 + r#" [INFO] [stdout] 708 + WITH topic_feeds AS ( [INFO] [stdout] 709 + SELECT [INFO] [stdout] 710 + tm.feedid, [INFO] [stdout] 711 + MAX(CASE WHEN tr.name = $1 THEN 1 ELSE 0 END) as has_topic1, [INFO] [stdout] 712 + MAX(CASE WHEN tr.name = $2 THEN 1 ELSE 0 END) as has_topic2 [INFO] [stdout] 713 + FROM topicmaps tm [INFO] [stdout] 714 + JOIN topicrefs tr ON tm.topicid = tr.id [INFO] [stdout] 715 + JOIN feeds f ON tm.feedid = f.id [INFO] [stdout] 716 + JOIN newsoverviews n ON f.newsoverviewid = n.id [INFO] [stdout] 717 + WHERE n.creation >= NOW() - INTERVAL '1 day' * $3 [INFO] [stdout] 718 + AND tr.name IN ($1, $2) [INFO] [stdout] 719 + GROUP BY tm.feedid [INFO] [stdout] 720 + ) [INFO] [stdout] 721 + SELECT [INFO] [stdout] 722 + CORR(has_topic1::float8, has_topic2::float8) as correlation [INFO] [stdout] 723 + FROM topic_feeds [INFO] [stdout] 724 + "#, [INFO] [stdout] 725 + ) [INFO] [stdout] 726 + .bind::(topic1) [INFO] [stdout] 727 + .bind::(topic2) [INFO] [stdout] 728 + .bind::(days), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:765:14 [INFO] [stdout] | [INFO] [stdout] 765 | .get_result::(conn) [INFO] [stdout] | ^^^^^^^^^^ multiple `get_result` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 757 ~ let overview_id = diesel::RunQueryDsl::get_result(insert_into(newsoverviews::table) [INFO] [stdout] 758 + .values(NewNewsOverview { [INFO] [stdout] 759 + creation: &news.timestamp, [INFO] [stdout] 760 + sid: &news.sid, [INFO] [stdout] 761 + items: &(news.items.len() as i32), [INFO] [stdout] 762 + hashid: &news.hash_id, [INFO] [stdout] 763 + }) [INFO] [stdout] 764 + .returning(newsoverviews::id), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 757 ~ let overview_id = diesel_async::RunQueryDsl::get_result(insert_into(newsoverviews::table) [INFO] [stdout] 758 + .values(NewNewsOverview { [INFO] [stdout] 759 + creation: &news.timestamp, [INFO] [stdout] 760 + sid: &news.sid, [INFO] [stdout] 761 + items: &(news.items.len() as i32), [INFO] [stdout] 762 + hashid: &news.hash_id, [INFO] [stdout] 763 + }) [INFO] [stdout] 764 + .returning(newsoverviews::id), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:803:18 [INFO] [stdout] | [INFO] [stdout] 803 | .execute(conn) [INFO] [stdout] | ^^^^^^^ multiple `execute` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 780 ~ diesel::RunQueryDsl::execute(insert_into(articles::table) [INFO] [stdout] 781 + .values(NewArticle { [INFO] [stdout] 782 + hashid: &item.article_hash, [INFO] [stdout] 783 + sourceid: &source_id, [INFO] [stdout] 784 + category: &item.category, [INFO] [stdout] 785 + title: &item.title, [INFO] [stdout] 786 + url: &item.url, [INFO] [stdout] 787 + summary: &item.summary, [INFO] [stdout] 788 + banner: &item.banner_url, [INFO] [stdout] 789 + author: &author_id, [INFO] [stdout] 790 + ct: &item.published_time, [INFO] [stdout] 791 + // Map available data to new fields intelligently [INFO] [stdout] 792 + source_link: item.source_link.as_deref(), [INFO] [stdout] 793 + release_time: item.release_time.as_ref(), [INFO] [stdout] 794 + author_description: item.author_description.as_deref(), [INFO] [stdout] 795 + author_avatar_url: item.author_avatar_url.as_deref(), [INFO] [stdout] 796 + feature_image: item.feature_image.as_deref().or(if !item.banner_url.is_empty() { [INFO] [stdout] 797 + Some(&item.banner_url) [INFO] [stdout] 798 + } else { [INFO] [stdout] 799 + None [INFO] [stdout] 800 + }), [INFO] [stdout] 801 + author_nick_name: item.author_nick_name.as_deref(), [INFO] [stdout] 802 + }), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 780 ~ diesel_async::RunQueryDsl::execute(insert_into(articles::table) [INFO] [stdout] 781 + .values(NewArticle { [INFO] [stdout] 782 + hashid: &item.article_hash, [INFO] [stdout] 783 + sourceid: &source_id, [INFO] [stdout] 784 + category: &item.category, [INFO] [stdout] 785 + title: &item.title, [INFO] [stdout] 786 + url: &item.url, [INFO] [stdout] 787 + summary: &item.summary, [INFO] [stdout] 788 + banner: &item.banner_url, [INFO] [stdout] 789 + author: &author_id, [INFO] [stdout] 790 + ct: &item.published_time, [INFO] [stdout] 791 + // Map available data to new fields intelligently [INFO] [stdout] 792 + source_link: item.source_link.as_deref(), [INFO] [stdout] 793 + release_time: item.release_time.as_ref(), [INFO] [stdout] 794 + author_description: item.author_description.as_deref(), [INFO] [stdout] 795 + author_avatar_url: item.author_avatar_url.as_deref(), [INFO] [stdout] 796 + feature_image: item.feature_image.as_deref().or(if !item.banner_url.is_empty() { [INFO] [stdout] 797 + Some(&item.banner_url) [INFO] [stdout] 798 + } else { [INFO] [stdout] 799 + None [INFO] [stdout] 800 + }), [INFO] [stdout] 801 + author_nick_name: item.author_nick_name.as_deref(), [INFO] [stdout] 802 + }), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:819:16 [INFO] [stdout] | [INFO] [stdout] 819 | .get_result::(conn) [INFO] [stdout] | ^^^^^^^^^^ multiple `get_result` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 809 ~ let feed_id = diesel::RunQueryDsl::get_result(insert_into(feeds::table) [INFO] [stdout] 810 + .values(NewFeed { [INFO] [stdout] 811 + sid: &news.sid, [INFO] [stdout] 812 + newsoverviewid: &overview_id, [INFO] [stdout] 813 + articleid: &item.article_hash, [INFO] [stdout] 814 + sourceid: &source_id, [INFO] [stdout] 815 + osentiment: &item.overall_sentiment_score, [INFO] [stdout] 816 + sentlabel: &item.overall_sentiment_label, [INFO] [stdout] 817 + }) [INFO] [stdout] 818 + .returning(feeds::id), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 809 ~ let feed_id = diesel_async::RunQueryDsl::get_result(insert_into(feeds::table) [INFO] [stdout] 810 + .values(NewFeed { [INFO] [stdout] 811 + sid: &news.sid, [INFO] [stdout] 812 + newsoverviewid: &overview_id, [INFO] [stdout] 813 + articleid: &item.article_hash, [INFO] [stdout] 814 + sourceid: &source_id, [INFO] [stdout] 815 + osentiment: &item.overall_sentiment_score, [INFO] [stdout] 816 + sentlabel: &item.overall_sentiment_label, [INFO] [stdout] 817 + }) [INFO] [stdout] 818 + .returning(feeds::id), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:833:18 [INFO] [stdout] | [INFO] [stdout] 833 | .execute(conn) [INFO] [stdout] | ^^^^^^^ multiple `execute` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 825 ~ diesel::RunQueryDsl::execute(insert_into(tickersentiments::table) [INFO] [stdout] 826 + .values(NewTickerSentiment { [INFO] [stdout] 827 + feedid: &feed_id, [INFO] [stdout] 828 + sid: &ticker_sent.sid, [INFO] [stdout] 829 + relevance: &ticker_sent.relevance_score, [INFO] [stdout] 830 + tsentiment: &ticker_sent.sentiment_score, [INFO] [stdout] 831 + sentiment_label: &ticker_sent.sentiment_label, [INFO] [stdout] 832 + }), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 825 ~ diesel_async::RunQueryDsl::execute(insert_into(tickersentiments::table) [INFO] [stdout] 826 + .values(NewTickerSentiment { [INFO] [stdout] 827 + feedid: &feed_id, [INFO] [stdout] 828 + sid: &ticker_sent.sid, [INFO] [stdout] 829 + relevance: &ticker_sent.relevance_score, [INFO] [stdout] 830 + tsentiment: &ticker_sent.sentiment_score, [INFO] [stdout] 831 + sentiment_label: &ticker_sent.sentiment_label, [INFO] [stdout] 832 + }), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/news.rs:849:18 [INFO] [stdout] | [INFO] [stdout] 849 | .execute(conn) [INFO] [stdout] | ^^^^^^^ multiple `execute` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 842 ~ diesel::RunQueryDsl::execute(insert_into(topicmaps::table) [INFO] [stdout] 843 + .values(NewTopicMap { [INFO] [stdout] 844 + sid: &news.sid, [INFO] [stdout] 845 + feedid: &feed_id, [INFO] [stdout] 846 + topicid: &topic_id, [INFO] [stdout] 847 + relscore: &topic.relevance_score, [INFO] [stdout] 848 + }), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 842 ~ diesel_async::RunQueryDsl::execute(insert_into(topicmaps::table) [INFO] [stdout] 843 + .values(NewTopicMap { [INFO] [stdout] 844 + sid: &news.sid, [INFO] [stdout] 845 + feedid: &feed_id, [INFO] [stdout] 846 + topicid: &topic_id, [INFO] [stdout] 847 + relscore: &topic.relevance_score, [INFO] [stdout] 848 + }), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/price.rs:52:71 [INFO] [stdout] | [INFO] [stdout] 52 | let inserted = insert_into(intradayprices::table).values(chunk).execute(conn).await?; [INFO] [stdout] | ^^^^^^^ multiple `execute` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 52 - let inserted = insert_into(intradayprices::table).values(chunk).execute(conn).await?; [INFO] [stdout] 52 + let inserted = diesel::RunQueryDsl::execute(insert_into(intradayprices::table).values(chunk), conn).await?; [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 52 - let inserted = insert_into(intradayprices::table).values(chunk).execute(conn).await?; [INFO] [stdout] 52 + let inserted = diesel_async::RunQueryDsl::execute(insert_into(intradayprices::table).values(chunk), conn).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/price.rs:113:6 [INFO] [stdout] | [INFO] [stdout] 113 | .load::(conn) [INFO] [stdout] | ^^^^ multiple `load` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `query_builder::sql_query::UncheckedBind` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 91 ~ diesel_async::RunQueryDsl::load(sql_query(format!( [INFO] [stdout] 92 + r#" [INFO] [stdout] 93 + SELECT [INFO] [stdout] 94 + time_bucket('{}', tstamp) AS bucket, [INFO] [stdout] 95 + symbol, [INFO] [stdout] 96 + first(open, tstamp) AS open, [INFO] [stdout] 97 + max(high) AS high, [INFO] [stdout] 98 + min(low) AS low, [INFO] [stdout] 99 + last(close, tstamp) AS close, [INFO] [stdout] 100 + sum(volume) AS volume [INFO] [stdout] 101 + FROM intradayprices [INFO] [stdout] 102 + WHERE symbol = $1 [INFO] [stdout] 103 + AND tstamp >= $2 [INFO] [stdout] 104 + AND tstamp <= $3 [INFO] [stdout] 105 + GROUP BY bucket, symbol [INFO] [stdout] 106 + ORDER BY bucket DESC [INFO] [stdout] 107 + "#, [INFO] [stdout] 108 + bucket_size [INFO] [stdout] 109 + )) [INFO] [stdout] 110 + .bind::(symbol) [INFO] [stdout] 111 + .bind::(start) [INFO] [stdout] 112 + .bind::(end), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 91 ~ diesel::RunQueryDsl::load(sql_query(format!( [INFO] [stdout] 92 + r#" [INFO] [stdout] 93 + SELECT [INFO] [stdout] 94 + time_bucket('{}', tstamp) AS bucket, [INFO] [stdout] 95 + symbol, [INFO] [stdout] 96 + first(open, tstamp) AS open, [INFO] [stdout] 97 + max(high) AS high, [INFO] [stdout] 98 + min(low) AS low, [INFO] [stdout] 99 + last(close, tstamp) AS close, [INFO] [stdout] 100 + sum(volume) AS volume [INFO] [stdout] 101 + FROM intradayprices [INFO] [stdout] 102 + WHERE symbol = $1 [INFO] [stdout] 103 + AND tstamp >= $2 [INFO] [stdout] 104 + AND tstamp <= $3 [INFO] [stdout] 105 + GROUP BY bucket, symbol [INFO] [stdout] 106 + ORDER BY bucket DESC [INFO] [stdout] 107 + "#, [INFO] [stdout] 108 + bucket_size [INFO] [stdout] 109 + )) [INFO] [stdout] 110 + .bind::(symbol) [INFO] [stdout] 111 + .bind::(start) [INFO] [stdout] 112 + .bind::(end), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/price.rs:192:70 [INFO] [stdout] | [INFO] [stdout] 192 | let inserted = insert_into(summaryprices::table).values(chunk).execute(conn).await?; [INFO] [stdout] | ^^^^^^^ multiple `execute` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 192 - let inserted = insert_into(summaryprices::table).values(chunk).execute(conn).await?; [INFO] [stdout] 192 + let inserted = diesel::RunQueryDsl::execute(insert_into(summaryprices::table).values(chunk), conn).await?; [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 192 - let inserted = insert_into(summaryprices::table).values(chunk).execute(conn).await?; [INFO] [stdout] 192 + let inserted = diesel_async::RunQueryDsl::execute(insert_into(summaryprices::table).values(chunk), conn).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/price.rs:227:70 [INFO] [stdout] | [INFO] [stdout] 227 | let inserted = insert_into(summaryprices::table).values(chunk).execute(conn).await?; [INFO] [stdout] | ^^^^^^^ multiple `execute` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 227 - let inserted = insert_into(summaryprices::table).values(chunk).execute(conn).await?; [INFO] [stdout] 227 + let inserted = diesel::RunQueryDsl::execute(insert_into(summaryprices::table).values(chunk), conn).await?; [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 227 - let inserted = insert_into(summaryprices::table).values(chunk).execute(conn).await?; [INFO] [stdout] 227 + let inserted = diesel_async::RunQueryDsl::execute(insert_into(summaryprices::table).values(chunk), conn).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/price.rs:244:8 [INFO] [stdout] | [INFO] [stdout] 244 | .first(conn) [INFO] [stdout] | ^^^^^ multiple `first` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 241 ~ diesel_async::RunQueryDsl::first(summaryprices::table [INFO] [stdout] 242 + .filter(summaryprices::symbol.eq(symbol)) [INFO] [stdout] 243 + .order(summaryprices::date.desc()), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 241 ~ diesel::RunQueryDsl::first(summaryprices::table [INFO] [stdout] 242 + .filter(summaryprices::symbol.eq(symbol)) [INFO] [stdout] 243 + .order(summaryprices::date.desc()), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/price.rs:260:8 [INFO] [stdout] | [INFO] [stdout] 260 | .load(conn) [INFO] [stdout] | ^^^^ multiple `load` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 255 ~ diesel_async::RunQueryDsl::load(summaryprices::table [INFO] [stdout] 256 + .filter(summaryprices::symbol.eq(symbol)) [INFO] [stdout] 257 + .filter(summaryprices::date.ge(start_date)) [INFO] [stdout] 258 + .filter(summaryprices::date.le(end_date)) [INFO] [stdout] 259 + .order(summaryprices::date.desc()), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 255 ~ diesel::RunQueryDsl::load(summaryprices::table [INFO] [stdout] 256 + .filter(summaryprices::symbol.eq(symbol)) [INFO] [stdout] 257 + .filter(summaryprices::date.ge(start_date)) [INFO] [stdout] 258 + .filter(summaryprices::date.le(end_date)) [INFO] [stdout] 259 + .order(summaryprices::date.desc()), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/price.rs:296:6 [INFO] [stdout] | [INFO] [stdout] 296 | .load::(conn) [INFO] [stdout] | ^^^^ multiple `load` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `query_builder::sql_query::UncheckedBind` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 274 ~ diesel_async::RunQueryDsl::load(sql_query( [INFO] [stdout] 275 + r#" [INFO] [stdout] 276 + SELECT [INFO] [stdout] 277 + date, [INFO] [stdout] 278 + close, [INFO] [stdout] 279 + AVG(close) OVER ( [INFO] [stdout] 280 + ORDER BY date [INFO] [stdout] 281 + ROWS BETWEEN $3 PRECEDING AND CURRENT ROW [INFO] [stdout] 282 + ) as ma, [INFO] [stdout] 283 + AVG(volume::float4) OVER ( [INFO] [stdout] 284 + ORDER BY date [INFO] [stdout] 285 + ROWS BETWEEN $3 PRECEDING AND CURRENT ROW [INFO] [stdout] 286 + ) as volume_ma [INFO] [stdout] 287 + FROM summaryprices [INFO] [stdout] 288 + WHERE symbol = $1 [INFO] [stdout] 289 + AND date >= CURRENT_DATE - INTERVAL '1 day' * $2 [INFO] [stdout] 290 + ORDER BY date DESC [INFO] [stdout] 291 + "#, [INFO] [stdout] 292 + ) [INFO] [stdout] 293 + .bind::(symbol) [INFO] [stdout] 294 + .bind::(days) [INFO] [stdout] 295 + .bind::(ma_period - 1), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 274 ~ diesel::RunQueryDsl::load(sql_query( [INFO] [stdout] 275 + r#" [INFO] [stdout] 276 + SELECT [INFO] [stdout] 277 + date, [INFO] [stdout] 278 + close, [INFO] [stdout] 279 + AVG(close) OVER ( [INFO] [stdout] 280 + ORDER BY date [INFO] [stdout] 281 + ROWS BETWEEN $3 PRECEDING AND CURRENT ROW [INFO] [stdout] 282 + ) as ma, [INFO] [stdout] 283 + AVG(volume::float4) OVER ( [INFO] [stdout] 284 + ORDER BY date [INFO] [stdout] 285 + ROWS BETWEEN $3 PRECEDING AND CURRENT ROW [INFO] [stdout] 286 + ) as volume_ma [INFO] [stdout] 287 + FROM summaryprices [INFO] [stdout] 288 + WHERE symbol = $1 [INFO] [stdout] 289 + AND date >= CURRENT_DATE - INTERVAL '1 day' * $2 [INFO] [stdout] 290 + ORDER BY date DESC [INFO] [stdout] 291 + "#, [INFO] [stdout] 292 + ) [INFO] [stdout] 293 + .bind::(symbol) [INFO] [stdout] 294 + .bind::(days) [INFO] [stdout] 295 + .bind::(ma_period - 1), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/price.rs:384:65 [INFO] [stdout] | [INFO] [stdout] 384 | let inserted = insert_into(topstats::table).values(chunk).execute(conn).await?; [INFO] [stdout] | ^^^^^^^ multiple `execute` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 384 - let inserted = insert_into(topstats::table).values(chunk).execute(conn).await?; [INFO] [stdout] 384 + let inserted = diesel::RunQueryDsl::execute(insert_into(topstats::table).values(chunk), conn).await?; [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 384 - let inserted = insert_into(topstats::table).values(chunk).execute(conn).await?; [INFO] [stdout] 384 + let inserted = diesel_async::RunQueryDsl::execute(insert_into(topstats::table).values(chunk), conn).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/price.rs:416:65 [INFO] [stdout] | [INFO] [stdout] 416 | let inserted = insert_into(topstats::table).values(chunk).execute(conn).await?; [INFO] [stdout] | ^^^^^^^ multiple `execute` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `InsertStatement` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 416 - let inserted = insert_into(topstats::table).values(chunk).execute(conn).await?; [INFO] [stdout] 416 + let inserted = diesel::RunQueryDsl::execute(insert_into(topstats::table).values(chunk), conn).await?; [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 416 - let inserted = insert_into(topstats::table).values(chunk).execute(conn).await?; [INFO] [stdout] 416 + let inserted = diesel_async::RunQueryDsl::execute(insert_into(topstats::table).values(chunk), conn).await?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/price.rs:436:8 [INFO] [stdout] | [INFO] [stdout] 436 | .load(conn) [INFO] [stdout] | ^^^^ multiple `load` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 431 ~ diesel_async::RunQueryDsl::load(topstats::table [INFO] [stdout] 432 + .filter(topstats::event_type.eq(event_type)) [INFO] [stdout] 433 + .filter(topstats::date.ge(chrono::Utc::now() - chrono::Duration::days(1))) [INFO] [stdout] 434 + .order(topstats::change_pct.desc()) [INFO] [stdout] 435 + .limit(limit), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 431 ~ diesel::RunQueryDsl::load(topstats::table [INFO] [stdout] 432 + .filter(topstats::event_type.eq(event_type)) [INFO] [stdout] 433 + .filter(topstats::date.ge(chrono::Utc::now() - chrono::Duration::days(1))) [INFO] [stdout] 434 + .order(topstats::change_pct.desc()) [INFO] [stdout] 435 + .limit(limit), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/price.rs:454:8 [INFO] [stdout] | [INFO] [stdout] 454 | .get_result::(conn) [INFO] [stdout] | ^^^^^^^^^^ multiple `get_result` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 450 ~ let total = diesel_async::RunQueryDsl::get_result(topstats::table [INFO] [stdout] 451 + .filter(topstats::event_type.eq(event_type)) [INFO] [stdout] 452 + .filter(topstats::date.ge(chrono::Utc::now() - chrono::Duration::days(1))) [INFO] [stdout] 453 + .count(), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 450 ~ let total = diesel::RunQueryDsl::get_result(topstats::table [INFO] [stdout] 451 + .filter(topstats::event_type.eq(event_type)) [INFO] [stdout] 452 + .filter(topstats::date.ge(chrono::Utc::now() - chrono::Duration::days(1))) [INFO] [stdout] 453 + .count(), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/price.rs:464:8 [INFO] [stdout] | [INFO] [stdout] 464 | .load(conn) [INFO] [stdout] | ^^^^ multiple `load` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 458 ~ let results = diesel_async::RunQueryDsl::load(topstats::table [INFO] [stdout] 459 + .filter(topstats::event_type.eq(event_type)) [INFO] [stdout] 460 + .filter(topstats::date.ge(chrono::Utc::now() - chrono::Duration::days(1))) [INFO] [stdout] 461 + .order(topstats::change_pct.desc()) [INFO] [stdout] 462 + .limit(per_page) [INFO] [stdout] 463 + .offset(offset), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 458 ~ let results = diesel::RunQueryDsl::load(topstats::table [INFO] [stdout] 459 + .filter(topstats::event_type.eq(event_type)) [INFO] [stdout] 460 + .filter(topstats::date.ge(chrono::Utc::now() - chrono::Duration::days(1))) [INFO] [stdout] 461 + .order(topstats::change_pct.desc()) [INFO] [stdout] 462 + .limit(per_page) [INFO] [stdout] 463 + .offset(offset), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/price.rs:511:6 [INFO] [stdout] | [INFO] [stdout] 511 | .load::(conn) [INFO] [stdout] | ^^^^ multiple `load` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `query_builder::sql_query::UncheckedBind` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 480 ~ diesel_async::RunQueryDsl::load(sql_query(format!( [INFO] [stdout] 481 + r#" [INFO] [stdout] 482 + WITH bucketed_stats AS ( [INFO] [stdout] 483 + SELECT [INFO] [stdout] 484 + time_bucket('{}', date) AS bucket, [INFO] [stdout] 485 + event_type, [INFO] [stdout] 486 + symbol, [INFO] [stdout] 487 + change_pct, [INFO] [stdout] 488 + ROW_NUMBER() OVER ( [INFO] [stdout] 489 + PARTITION BY time_bucket('{}', date), event_type [INFO] [stdout] 490 + ORDER BY change_pct DESC [INFO] [stdout] 491 + ) as rn [INFO] [stdout] 492 + FROM topstats [INFO] [stdout] 493 + WHERE event_type = $1 [INFO] [stdout] 494 + AND date >= NOW() - INTERVAL '1 day' * $2 [INFO] [stdout] 495 + ) [INFO] [stdout] 496 + SELECT [INFO] [stdout] 497 + bucket, [INFO] [stdout] 498 + event_type, [INFO] [stdout] 499 + COUNT(*)::integer as mover_count, [INFO] [stdout] 500 + AVG(change_pct) as avg_change_pct, [INFO] [stdout] 501 + MAX(change_pct) as max_change_pct, [INFO] [stdout] 502 + MAX(CASE WHEN rn = 1 THEN symbol END) as top_symbol [INFO] [stdout] 503 + FROM bucketed_stats [INFO] [stdout] 504 + GROUP BY bucket, event_type [INFO] [stdout] 505 + ORDER BY bucket DESC [INFO] [stdout] 506 + "#, [INFO] [stdout] 507 + bucket_size, bucket_size [INFO] [stdout] 508 + )) [INFO] [stdout] 509 + .bind::(event_type) [INFO] [stdout] 510 + .bind::(days_back), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 480 ~ diesel::RunQueryDsl::load(sql_query(format!( [INFO] [stdout] 481 + r#" [INFO] [stdout] 482 + WITH bucketed_stats AS ( [INFO] [stdout] 483 + SELECT [INFO] [stdout] 484 + time_bucket('{}', date) AS bucket, [INFO] [stdout] 485 + event_type, [INFO] [stdout] 486 + symbol, [INFO] [stdout] 487 + change_pct, [INFO] [stdout] 488 + ROW_NUMBER() OVER ( [INFO] [stdout] 489 + PARTITION BY time_bucket('{}', date), event_type [INFO] [stdout] 490 + ORDER BY change_pct DESC [INFO] [stdout] 491 + ) as rn [INFO] [stdout] 492 + FROM topstats [INFO] [stdout] 493 + WHERE event_type = $1 [INFO] [stdout] 494 + AND date >= NOW() - INTERVAL '1 day' * $2 [INFO] [stdout] 495 + ) [INFO] [stdout] 496 + SELECT [INFO] [stdout] 497 + bucket, [INFO] [stdout] 498 + event_type, [INFO] [stdout] 499 + COUNT(*)::integer as mover_count, [INFO] [stdout] 500 + AVG(change_pct) as avg_change_pct, [INFO] [stdout] 501 + MAX(change_pct) as max_change_pct, [INFO] [stdout] 502 + MAX(CASE WHEN rn = 1 THEN symbol END) as top_symbol [INFO] [stdout] 503 + FROM bucketed_stats [INFO] [stdout] 504 + GROUP BY bucket, event_type [INFO] [stdout] 505 + ORDER BY bucket DESC [INFO] [stdout] 506 + "#, [INFO] [stdout] 507 + bucket_size, bucket_size [INFO] [stdout] 508 + )) [INFO] [stdout] 509 + .bind::(event_type) [INFO] [stdout] 510 + .bind::(days_back), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/price.rs:539:6 [INFO] [stdout] | [INFO] [stdout] 539 | .load::(conn) [INFO] [stdout] | ^^^^ multiple `load` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `query_builder::sql_query::UncheckedBind` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 523 ~ diesel_async::RunQueryDsl::load(sql_query( [INFO] [stdout] 524 + r#" [INFO] [stdout] 525 + SELECT [INFO] [stdout] 526 + o.sector, [INFO] [stdout] 527 + COUNT(CASE WHEN t.event_type = 'gainers' THEN 1 END)::integer as gainer_count, [INFO] [stdout] 528 + COUNT(CASE WHEN t.event_type = 'losers' THEN 1 END)::integer as loser_count, [INFO] [stdout] 529 + AVG(CASE WHEN t.event_type = 'gainers' THEN t.change_pct END) as avg_gain, [INFO] [stdout] 530 + AVG(CASE WHEN t.event_type = 'losers' THEN t.change_pct END) as avg_loss [INFO] [stdout] 531 + FROM topstats t [INFO] [stdout] 532 + JOIN overviews o ON t.sid = o.sid [INFO] [stdout] 533 + WHERE t.date = $1 [INFO] [stdout] 534 + GROUP BY o.sector [INFO] [stdout] 535 + ORDER BY gainer_count DESC [INFO] [stdout] 536 + "#, [INFO] [stdout] 537 + ) [INFO] [stdout] 538 + .bind::(date), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 523 ~ diesel::RunQueryDsl::load(sql_query( [INFO] [stdout] 524 + r#" [INFO] [stdout] 525 + SELECT [INFO] [stdout] 526 + o.sector, [INFO] [stdout] 527 + COUNT(CASE WHEN t.event_type = 'gainers' THEN 1 END)::integer as gainer_count, [INFO] [stdout] 528 + COUNT(CASE WHEN t.event_type = 'losers' THEN 1 END)::integer as loser_count, [INFO] [stdout] 529 + AVG(CASE WHEN t.event_type = 'gainers' THEN t.change_pct END) as avg_gain, [INFO] [stdout] 530 + AVG(CASE WHEN t.event_type = 'losers' THEN t.change_pct END) as avg_loss [INFO] [stdout] 531 + FROM topstats t [INFO] [stdout] 532 + JOIN overviews o ON t.sid = o.sid [INFO] [stdout] 533 + WHERE t.date = $1 [INFO] [stdout] 534 + GROUP BY o.sector [INFO] [stdout] 535 + ORDER BY gainer_count DESC [INFO] [stdout] 536 + "#, [INFO] [stdout] 537 + ) [INFO] [stdout] 538 + .bind::(date), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/security.rs:49:30 [INFO] [stdout] | [INFO] [stdout] 49 | symbols::table.find(sid).first(conn).await [INFO] [stdout] | ^^^^^ multiple `first` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 49 - symbols::table.find(sid).first(conn).await [INFO] [stdout] 49 + diesel_async::RunQueryDsl::first(symbols::table.find(sid), conn).await [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 49 - symbols::table.find(sid).first(conn).await [INFO] [stdout] 49 + diesel::RunQueryDsl::first(symbols::table.find(sid), conn).await [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/security.rs:56:55 [INFO] [stdout] | [INFO] [stdout] 56 | symbols::table.filter(symbols::symbol.eq(symbol)).first(conn).await [INFO] [stdout] | ^^^^^ multiple `first` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 56 - symbols::table.filter(symbols::symbol.eq(symbol)).first(conn).await [INFO] [stdout] 56 + diesel_async::RunQueryDsl::first(symbols::table.filter(symbols::symbol.eq(symbol)), conn).await [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 56 - symbols::table.filter(symbols::symbol.eq(symbol)).first(conn).await [INFO] [stdout] 56 + diesel::RunQueryDsl::first(symbols::table.filter(symbols::symbol.eq(symbol)), conn).await [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/security.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 66 | .load(conn) [INFO] [stdout] | ^^^^ multiple `load` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 62 ~ diesel_async::RunQueryDsl::load(symbols::table [INFO] [stdout] 63 + .filter(symbols::overview.eq(true)) [INFO] [stdout] 64 + .or_filter(symbols::intraday.eq(true)) [INFO] [stdout] 65 + .or_filter(symbols::summary.eq(true)), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 62 ~ diesel::RunQueryDsl::load(symbols::table [INFO] [stdout] 63 + .filter(symbols::overview.eq(true)) [INFO] [stdout] 64 + .or_filter(symbols::intraday.eq(true)) [INFO] [stdout] 65 + .or_filter(symbols::summary.eq(true)), conn) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/security.rs:137:32 [INFO] [stdout] | [INFO] [stdout] 137 | overviews::table.find(sid).first(conn).await [INFO] [stdout] | ^^^^^ multiple `first` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 137 - overviews::table.find(sid).first(conn).await [INFO] [stdout] 137 + diesel_async::RunQueryDsl::first(overviews::table.find(sid), conn).await [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 137 - overviews::table.find(sid).first(conn).await [INFO] [stdout] 137 + diesel::RunQueryDsl::first(overviews::table.find(sid), conn).await [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/security.rs:144:59 [INFO] [stdout] | [INFO] [stdout] 144 | overviews::table.filter(overviews::symbol.eq(symbol)).first(conn).await [INFO] [stdout] | ^^^^^ multiple `first` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 144 - overviews::table.filter(overviews::symbol.eq(symbol)).first(conn).await [INFO] [stdout] 144 + diesel_async::RunQueryDsl::first(overviews::table.filter(overviews::symbol.eq(symbol)), conn).await [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 144 - overviews::table.filter(overviews::symbol.eq(symbol)).first(conn).await [INFO] [stdout] 144 + diesel::RunQueryDsl::first(overviews::table.filter(overviews::symbol.eq(symbol)), conn).await [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/security.rs:151:59 [INFO] [stdout] | [INFO] [stdout] 151 | overviews::table.filter(overviews::sector.eq(sector)).load(conn).await [INFO] [stdout] | ^^^^ multiple `load` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 151 - overviews::table.filter(overviews::sector.eq(sector)).load(conn).await [INFO] [stdout] 151 + diesel_async::RunQueryDsl::load(overviews::table.filter(overviews::sector.eq(sector)), conn).await [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 151 - overviews::table.filter(overviews::sector.eq(sector)).load(conn).await [INFO] [stdout] 151 + diesel::RunQueryDsl::load(overviews::table.filter(overviews::sector.eq(sector)), conn).await [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/security.rs:231:35 [INFO] [stdout] | [INFO] [stdout] 231 | overviewexts::table.find(sid).first(conn).await [INFO] [stdout] | ^^^^^ multiple `first` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 231 - overviewexts::table.find(sid).first(conn).await [INFO] [stdout] 231 + diesel_async::RunQueryDsl::first(overviewexts::table.find(sid), conn).await [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 231 - overviewexts::table.find(sid).first(conn).await [INFO] [stdout] 231 + diesel::RunQueryDsl::first(overviewexts::table.find(sid), conn).await [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/security.rs:238:65 [INFO] [stdout] | [INFO] [stdout] 238 | overviewexts::table.filter(overviewexts::beta.ge(min_beta)).load(conn).await [INFO] [stdout] | ^^^^ multiple `load` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 238 - overviewexts::table.filter(overviewexts::beta.ge(min_beta)).load(conn).await [INFO] [stdout] 238 + diesel_async::RunQueryDsl::load(overviewexts::table.filter(overviewexts::beta.ge(min_beta)), conn).await [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 238 - overviewexts::table.filter(overviewexts::beta.ge(min_beta)).load(conn).await [INFO] [stdout] 238 + diesel::RunQueryDsl::load(overviewexts::table.filter(overviewexts::beta.ge(min_beta)), conn).await [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/security.rs:244:75 [INFO] [stdout] | [INFO] [stdout] 244 | overviewexts::table.filter(overviewexts::dividend_date.is_not_null()).load(conn).await [INFO] [stdout] | ^^^^ multiple `load` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 244 - overviewexts::table.filter(overviewexts::dividend_date.is_not_null()).load(conn).await [INFO] [stdout] 244 + diesel_async::RunQueryDsl::load(overviewexts::table.filter(overviewexts::dividend_date.is_not_null()), conn).await [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 244 - overviewexts::table.filter(overviewexts::dividend_date.is_not_null()).load(conn).await [INFO] [stdout] 244 + diesel::RunQueryDsl::load(overviewexts::table.filter(overviewexts::dividend_date.is_not_null()), conn).await [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0034]: multiple applicable items in scope [INFO] [stdout] --> crates/av-database/postgres/src/models/security.rs:488:37 [INFO] [stdout] | [INFO] [stdout] 488 | equity_details::table.find(sid).first(conn).await [INFO] [stdout] | ^^^^^ multiple `first` found [INFO] [stdout] | [INFO] [stdout] = note: candidate #1 is defined in an impl of the trait `diesel_async::RunQueryDsl` for the type `T` [INFO] [stdout] = note: candidate #2 is defined in an impl of the trait `diesel::RunQueryDsl` for the type `SelectStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 488 - equity_details::table.find(sid).first(conn).await [INFO] [stdout] 488 + diesel_async::RunQueryDsl::first(equity_details::table.find(sid), conn).await [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 488 - equity_details::table.find(sid).first(conn).await [INFO] [stdout] 488 + diesel::RunQueryDsl::first(equity_details::table.find(sid), conn).await [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0034, E0282. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0034`. [INFO] [stdout] [INFO] [stderr] error: could not compile `av-database-postgres` (lib test) due to 52 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] Some errors have detailed explanations: E0034, E0282. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0034`. [INFO] [stdout] [INFO] [stderr] error: could not compile `av-database-postgres` (lib) due to 52 previous errors [INFO] running `Command { std: "docker" "inspect" "63ee66adca9286ea7d62d00cebc9828ae1c0839816c32258a77b8db79e6c6f6c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "63ee66adca9286ea7d62d00cebc9828ae1c0839816c32258a77b8db79e6c6f6c", kill_on_drop: false }` [INFO] [stdout] 63ee66adca9286ea7d62d00cebc9828ae1c0839816c32258a77b8db79e6c6f6c