[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] 20d17245515cfb1fca740a4190a4fdcbe42b4c76 [INFO] checking dbrowne/alphavantage against try#213ba58857e42241934d114390dfcd0779fc4662 for pr-148943 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdbrowne%2Falphavantage" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-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-0-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/dbrowne/alphavantage on toolchain 213ba58857e42241934d114390dfcd0779fc4662 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+213ba58857e42241934d114390dfcd0779fc4662" "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" "+213ba58857e42241934d114390dfcd0779fc4662" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+213ba58857e42241934d114390dfcd0779fc4662" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 0c504991183e4aeba22be257d69c8518c1ea5c86c6eb78a90eebf53a15f179a6 [INFO] running `Command { std: "docker" "start" "-a" "0c504991183e4aeba22be257d69c8518c1ea5c86c6eb78a90eebf53a15f179a6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "0c504991183e4aeba22be257d69c8518c1ea5c86c6eb78a90eebf53a15f179a6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0c504991183e4aeba22be257d69c8518c1ea5c86c6eb78a90eebf53a15f179a6", kill_on_drop: false }` [INFO] [stdout] 0c504991183e4aeba22be257d69c8518c1ea5c86c6eb78a90eebf53a15f179a6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+213ba58857e42241934d114390dfcd0779fc4662" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] b46a0166b4bc7e73de1135915f0f7d62f9a9399f27129076dc8dec4e908a8d51 [INFO] running `Command { std: "docker" "start" "-a" "b46a0166b4bc7e73de1135915f0f7d62f9a9399f27129076dc8dec4e908a8d51", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.95 [INFO] [stderr] Compiling unicode-ident v1.0.18 [INFO] [stderr] Compiling libc v0.2.174 [INFO] [stderr] Checking cfg-if v1.0.1 [INFO] [stderr] Compiling autocfg v1.5.0 [INFO] [stderr] Checking once_cell v1.21.3 [INFO] [stderr] Checking itoa v1.0.15 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Checking slab v0.4.10 [INFO] [stderr] Checking futures-io v0.3.31 [INFO] [stderr] Checking log v0.4.28 [INFO] [stderr] Compiling zerocopy v0.8.26 [INFO] [stderr] Checking ryu v1.0.20 [INFO] [stderr] Checking litemap v0.8.0 [INFO] [stderr] Checking writeable v0.6.1 [INFO] [stderr] Compiling getrandom v0.3.3 [INFO] [stderr] Compiling icu_properties_data v2.0.1 [INFO] [stderr] Compiling icu_normalizer_data v2.0.0 [INFO] [stderr] Compiling serde_json v1.0.140 [INFO] [stderr] Compiling lock_api v0.4.13 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling cc v1.2.29 [INFO] [stderr] Checking tracing-core v0.1.34 [INFO] [stderr] Compiling pkg-config v0.3.32 [INFO] [stderr] Checking http v1.3.1 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Compiling syn v2.0.104 [INFO] [stderr] Checking parking_lot_core v0.9.11 [INFO] [stderr] Checking signal-hook-registry v1.4.5 [INFO] [stderr] Checking mio v1.0.4 [INFO] [stderr] Checking socket2 v0.5.10 [INFO] [stderr] Checking parking_lot v0.12.4 [INFO] [stderr] Checking equivalent v1.0.2 [INFO] [stderr] Checking foldhash v0.1.5 [INFO] [stderr] Compiling typenum v1.18.0 [INFO] [stderr] Checking rand_core v0.9.3 [INFO] [stderr] Compiling httparse v1.10.1 [INFO] [stderr] Checking hashbrown v0.15.4 [INFO] [stderr] Checking http-body v1.0.1 [INFO] [stderr] Checking iana-time-zone v0.1.63 [INFO] [stderr] Compiling openssl v0.10.73 [INFO] [stderr] Compiling thiserror v2.0.12 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Compiling portable-atomic v1.11.1 [INFO] [stderr] Checking openssl-probe v0.1.6 [INFO] [stderr] Checking regex-automata v0.4.9 [INFO] [stderr] Checking http-body-util v0.1.3 [INFO] [stderr] Checking anstyle v1.0.11 [INFO] [stderr] Compiling openssl-sys v0.9.109 [INFO] [stderr] Compiling rust_decimal v1.37.2 [INFO] [stderr] Checking indexmap v2.10.0 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking generic-array v0.14.7 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking tinyvec_macros v0.1.1 [INFO] [stderr] Checking tinyvec v1.9.0 [INFO] [stderr] Checking rand v0.9.1 [INFO] [stderr] Checking anstyle-parse v0.2.7 [INFO] [stderr] Checking raw-cpuid v11.5.0 [INFO] [stderr] Checking encoding_rs v0.8.35 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Checking digest v0.10.7 [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 dotenvy v0.15.7 [INFO] [stderr] Checking arrayvec v0.7.6 [INFO] [stderr] Checking regex v1.11.1 [INFO] [stderr] Checking anstream v0.6.19 [INFO] [stderr] Checking unicode-normalization v0.1.24 [INFO] [stderr] Checking spinning_top v0.3.0 [INFO] [stderr] Checking unicode-bidi v0.3.18 [INFO] [stderr] Checking unicode-properties v0.1.3 [INFO] [stderr] Checking overload v0.1.1 [INFO] [stderr] Checking futures-timer v3.0.3 [INFO] [stderr] Compiling libm v0.2.15 [INFO] [stderr] Checking nonzero_ext v0.3.0 [INFO] [stderr] Checking nu-ansi-term v0.46.0 [INFO] [stderr] Checking stringprep v0.1.5 [INFO] [stderr] Checking sha2 v0.10.9 [INFO] [stderr] Checking hmac v0.12.1 [INFO] [stderr] Checking quanta v0.12.6 [INFO] [stderr] Checking md-5 v0.10.6 [INFO] [stderr] Checking dashmap v6.1.0 [INFO] [stderr] Checking sharded-slab v0.1.7 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Compiling bigdecimal v0.4.8 [INFO] [stderr] Checking thread_local v1.1.9 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling pq-sys v0.7.2 [INFO] [stderr] Checking web-time v1.1.0 [INFO] [stderr] Checking fallible-iterator v0.2.0 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Checking phf_shared v0.11.3 [INFO] [stderr] Checking colored v2.2.0 [INFO] [stderr] Checking scheduled-thread-pool v0.2.7 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking phf v0.11.3 [INFO] [stderr] Checking r2d2 v0.8.10 [INFO] [stderr] Checking postgres-protocol v0.6.8 [INFO] [stderr] Checking whoami v1.6.0 [INFO] [stderr] Checking uuid v1.17.0 [INFO] [stderr] Checking unicode-width v0.2.1 [INFO] [stderr] Checking scoped-futures v0.1.4 [INFO] [stderr] Checking getrandom v0.2.16 [INFO] [stderr] Checking num_cpus v1.17.0 [INFO] [stderr] Checking regex-automata v0.1.10 [INFO] [stderr] Checking clap_lex v0.7.5 [INFO] [stderr] Compiling rustix v1.0.7 [INFO] [stderr] Checking postgres-types v0.2.9 [INFO] [stderr] Checking deadpool-runtime v0.1.4 [INFO] [stderr] Compiling anyhow v1.0.98 [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 clap_builder v4.5.41 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking console v0.16.0 [INFO] [stderr] Checking env_filter v0.1.3 [INFO] [stderr] Checking csv-core v0.1.12 [INFO] [stderr] Checking unit-prefix v0.5.1 [INFO] [stderr] Checking matchers v0.1.0 [INFO] [stderr] Checking jiff v0.2.15 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking indicatif v0.18.0 [INFO] [stderr] Checking predicates-core v1.0.9 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking console v0.15.11 [INFO] [stderr] Checking dashmap v5.5.3 [INFO] [stderr] Checking termtree v0.5.1 [INFO] [stderr] Checking number_prefix v0.4.0 [INFO] [stderr] Checking no-std-compat v0.4.1 [INFO] [stderr] Checking sdd v3.0.8 [INFO] [stderr] Checking indicatif v0.17.11 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.0 [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] Checking tokio v1.46.1 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking yoke v0.8.0 [INFO] [stderr] Compiling tracing-attributes v0.1.30 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Checking zerotrie v0.2.2 [INFO] [stderr] Checking zerovec v0.11.2 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Compiling thiserror-impl v2.0.12 [INFO] [stderr] Compiling async-trait v0.1.88 [INFO] [stderr] Checking tinystr v0.8.1 [INFO] [stderr] Checking icu_locale_core v2.0.0 [INFO] [stderr] Checking potential_utf v0.1.2 [INFO] [stderr] Checking icu_collections v2.0.0 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Checking tracing-subscriber v0.3.19 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Checking icu_provider v2.0.0 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling dsl_auto_type v0.1.3 [INFO] [stderr] Checking icu_normalizer v2.0.0 [INFO] [stderr] Checking icu_properties v2.0.1 [INFO] [stderr] Compiling diesel_derives v2.2.6 [INFO] [stderr] Checking async-stream v0.3.6 [INFO] [stderr] Compiling clap_derive v4.5.41 [INFO] [stderr] Checking env_logger v0.11.8 [INFO] [stderr] Checking tempfile v3.20.0 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.0.3 [INFO] [stderr] Checking url v2.5.4 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking governor v0.10.0 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Checking governor v0.6.3 [INFO] [stderr] Checking scc v2.3.4 [INFO] [stderr] Compiling mockall_derive v0.12.1 [INFO] [stderr] Compiling serial_test_derive v3.2.0 [INFO] [stderr] Checking tokio-util v0.7.15 [INFO] [stderr] Checking tower v0.5.2 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking h2 v0.4.11 [INFO] [stderr] Checking tokio-postgres v0.7.13 [INFO] [stderr] Checking tower-http v0.6.6 [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 clap v4.5.41 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking predicates-tree v1.0.12 [INFO] [stderr] Checking predicates v3.1.3 [INFO] [stderr] Checking diff v0.1.13 [INFO] [stderr] Checking chrono v0.4.41 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking tokio-test v0.4.4 [INFO] [stderr] Checking assert-json-diff v2.0.2 [INFO] [stderr] Checking csv v1.3.1 [INFO] [stderr] Checking downcast v0.11.0 [INFO] [stderr] Checking yansi v1.0.1 [INFO] [stderr] Checking fragile v2.0.1 [INFO] [stderr] Checking pretty_assertions v1.4.1 [INFO] [stderr] Checking serde_test v1.0.177 [INFO] [stderr] Checking serial_test v3.2.0 [INFO] [stderr] Checking dotenv v0.15.0 [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 mockall v0.12.1 [INFO] [stdout] warning: unused variable: `max_4bit` [INFO] [stdout] --> crates/av-core/src/types/market.rs:887:9 [INFO] [stdout] | [INFO] [stdout] 887 | 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:888:9 [INFO] [stdout] | [INFO] [stdout] 888 | 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:889:9 [INFO] [stdout] | [INFO] [stdout] 889 | 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 diesel v2.2.12 [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 `sentiment_label` and `relevance_score` are never read [INFO] [stdout] --> crates/av-client/examples/news_analysis.rs:72:3 [INFO] [stdout] | [INFO] [stdout] 69 | struct TickerSentimentSummary { [INFO] [stdout] | ---------------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 72 | sentiment_label: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 73 | mention_count: u32, [INFO] [stdout] 74 | 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:83:3 [INFO] [stdout] | [INFO] [stdout] 79 | struct TopicSentiment { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 83 | 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:92:3 [INFO] [stdout] | [INFO] [stdout] 88 | struct Headline { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 92 | sentiment_score: f64, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 93 | time_published: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 94 | 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] [stdout] warning: fields `pe_ratio` and `dividend_yield` are never read [INFO] [stdout] --> crates/av-client/examples/portfolio_tracker.rs:78:3 [INFO] [stdout] | [INFO] [stdout] 68 | struct HoldingAnalysis { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 78 | pe_ratio: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 79 | 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:454:4 [INFO] [stdout] | [INFO] [stdout] 454 | 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:525:4 [INFO] [stdout] | [INFO] [stdout] 525 | 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:542:4 [INFO] [stdout] | [INFO] [stdout] 542 | 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:641:4 [INFO] [stdout] | [INFO] [stdout] 641 | 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:655:4 [INFO] [stdout] | [INFO] [stdout] 655 | 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:676:4 [INFO] [stdout] | [INFO] [stdout] 676 | 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:683:4 [INFO] [stdout] | [INFO] [stdout] 683 | 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:699:4 [INFO] [stdout] | [INFO] [stdout] 699 | fn show_progress(current: usize, total: usize, message: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^ [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:133:67 [INFO] [stdout] | [INFO] [stdout] 133 | 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] 133 - newsoverviews::table.filter(newsoverviews::hashid.eq(hashid)).first(conn).await.optional() [INFO] [stdout] 133 + 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] 133 - newsoverviews::table.filter(newsoverviews::hashid.eq(hashid)).first(conn).await.optional() [INFO] [stdout] 133 + 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:133:5 [INFO] [stdout] | [INFO] [stdout] 133 | 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:145:8 [INFO] [stdout] | [INFO] [stdout] 145 | .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] 141 ~ diesel_async::RunQueryDsl::load(newsoverviews::table [INFO] [stdout] 142 + .filter(newsoverviews::sid.eq(sid)) [INFO] [stdout] 143 + .filter(newsoverviews::creation.ge(chrono::Utc::now() - chrono::Duration::days(days as i64))) [INFO] [stdout] 144 + .order(newsoverviews::creation.desc()), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 141 ~ diesel::RunQueryDsl::load(newsoverviews::table [INFO] [stdout] 142 + .filter(newsoverviews::sid.eq(sid)) [INFO] [stdout] 143 + .filter(newsoverviews::creation.ge(chrono::Utc::now() - chrono::Duration::days(days as i64))) [INFO] [stdout] 144 + .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:208:6 [INFO] [stdout] | [INFO] [stdout] 208 | .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] 157 ~ diesel_async::RunQueryDsl::load(sql_query( [INFO] [stdout] 158 + r#" [INFO] [stdout] 159 + WITH recent_news AS ( [INFO] [stdout] 160 + SELECT n.*, f.osentiment, f.sentlabel [INFO] [stdout] 161 + FROM newsoverviews n [INFO] [stdout] 162 + JOIN feeds f ON n.id = f.newsoverviewid [INFO] [stdout] 163 + WHERE n.sid = $1 [INFO] [stdout] 164 + AND n.creation >= NOW() - INTERVAL '1 day' * $2 [INFO] [stdout] 165 + ), [INFO] [stdout] 166 + sentiment_counts AS ( [INFO] [stdout] 167 + SELECT [INFO] [stdout] 168 + COUNT(*) as total, [INFO] [stdout] 169 + COUNT(CASE WHEN sentlabel = 'Bullish' THEN 1 END) as bullish, [INFO] [stdout] 170 + COUNT(CASE WHEN sentlabel = 'Bearish' THEN 1 END) as bearish, [INFO] [stdout] 171 + COUNT(CASE WHEN sentlabel = 'Neutral' THEN 1 END) as neutral [INFO] [stdout] 172 + FROM recent_news [INFO] [stdout] 173 + ) [INFO] [stdout] 174 + SELECT [INFO] [stdout] 175 + $1 as sid, [INFO] [stdout] 176 + AVG(rn.osentiment) as avg_sentiment, [INFO] [stdout] 177 + COUNT(DISTINCT rn.id) as article_count, [INFO] [stdout] 178 + (sc.bullish::float8 / NULLIF(sc.total, 0) * 100) as bullish_pct, [INFO] [stdout] 179 + (sc.bearish::float8 / NULLIF(sc.total, 0) * 100) as bearish_pct, [INFO] [stdout] 180 + (sc.neutral::float8 / NULLIF(sc.total, 0) * 100) as neutral_pct, [INFO] [stdout] 181 + COALESCE( [INFO] [stdout] 182 + jsonb_agg(DISTINCT [INFO] [stdout] 183 + jsonb_build_object( [INFO] [stdout] 184 + 'topic', tr.name, [INFO] [stdout] 185 + 'avg_relevance', tm.avg_relevance [INFO] [stdout] 186 + ) [INFO] [stdout] 187 + ) FILTER (WHERE tr.name IS NOT NULL), [INFO] [stdout] 188 + '[]'::jsonb [INFO] [stdout] 189 + ) as topics [INFO] [stdout] 190 + FROM recent_news rn [INFO] [stdout] 191 + CROSS JOIN sentiment_counts sc [INFO] [stdout] 192 + LEFT JOIN ( [INFO] [stdout] 193 + SELECT [INFO] [stdout] 194 + f.newsoverviewid, [INFO] [stdout] 195 + tm.topicid, [INFO] [stdout] 196 + AVG(tm.relscore) as avg_relevance [INFO] [stdout] 197 + FROM feeds f [INFO] [stdout] 198 + JOIN topicmaps tm ON f.id = tm.feedid [INFO] [stdout] 199 + WHERE f.newsoverviewid IN (SELECT id FROM recent_news) [INFO] [stdout] 200 + GROUP BY f.newsoverviewid, tm.topicid [INFO] [stdout] 201 + ) tm ON rn.id = tm.newsoverviewid [INFO] [stdout] 202 + LEFT JOIN topicrefs tr ON tm.topicid = tr.id [INFO] [stdout] 203 + GROUP BY sc.bullish, sc.bearish, sc.neutral, sc.total [INFO] [stdout] 204 + "#, [INFO] [stdout] 205 + ) [INFO] [stdout] 206 + .bind::(sid) [INFO] [stdout] 207 + .bind::(days), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 157 ~ diesel::RunQueryDsl::load(sql_query( [INFO] [stdout] 158 + r#" [INFO] [stdout] 159 + WITH recent_news AS ( [INFO] [stdout] 160 + SELECT n.*, f.osentiment, f.sentlabel [INFO] [stdout] 161 + FROM newsoverviews n [INFO] [stdout] 162 + JOIN feeds f ON n.id = f.newsoverviewid [INFO] [stdout] 163 + WHERE n.sid = $1 [INFO] [stdout] 164 + AND n.creation >= NOW() - INTERVAL '1 day' * $2 [INFO] [stdout] 165 + ), [INFO] [stdout] 166 + sentiment_counts AS ( [INFO] [stdout] 167 + SELECT [INFO] [stdout] 168 + COUNT(*) as total, [INFO] [stdout] 169 + COUNT(CASE WHEN sentlabel = 'Bullish' THEN 1 END) as bullish, [INFO] [stdout] 170 + COUNT(CASE WHEN sentlabel = 'Bearish' THEN 1 END) as bearish, [INFO] [stdout] 171 + COUNT(CASE WHEN sentlabel = 'Neutral' THEN 1 END) as neutral [INFO] [stdout] 172 + FROM recent_news [INFO] [stdout] 173 + ) [INFO] [stdout] 174 + SELECT [INFO] [stdout] 175 + $1 as sid, [INFO] [stdout] 176 + AVG(rn.osentiment) as avg_sentiment, [INFO] [stdout] 177 + COUNT(DISTINCT rn.id) as article_count, [INFO] [stdout] 178 + (sc.bullish::float8 / NULLIF(sc.total, 0) * 100) as bullish_pct, [INFO] [stdout] 179 + (sc.bearish::float8 / NULLIF(sc.total, 0) * 100) as bearish_pct, [INFO] [stdout] 180 + (sc.neutral::float8 / NULLIF(sc.total, 0) * 100) as neutral_pct, [INFO] [stdout] 181 + COALESCE( [INFO] [stdout] 182 + jsonb_agg(DISTINCT [INFO] [stdout] 183 + jsonb_build_object( [INFO] [stdout] 184 + 'topic', tr.name, [INFO] [stdout] 185 + 'avg_relevance', tm.avg_relevance [INFO] [stdout] 186 + ) [INFO] [stdout] 187 + ) FILTER (WHERE tr.name IS NOT NULL), [INFO] [stdout] 188 + '[]'::jsonb [INFO] [stdout] 189 + ) as topics [INFO] [stdout] 190 + FROM recent_news rn [INFO] [stdout] 191 + CROSS JOIN sentiment_counts sc [INFO] [stdout] 192 + LEFT JOIN ( [INFO] [stdout] 193 + SELECT [INFO] [stdout] 194 + f.newsoverviewid, [INFO] [stdout] 195 + tm.topicid, [INFO] [stdout] 196 + AVG(tm.relscore) as avg_relevance [INFO] [stdout] 197 + FROM feeds f [INFO] [stdout] 198 + JOIN topicmaps tm ON f.id = tm.feedid [INFO] [stdout] 199 + WHERE f.newsoverviewid IN (SELECT id FROM recent_news) [INFO] [stdout] 200 + GROUP BY f.newsoverviewid, tm.topicid [INFO] [stdout] 201 + ) tm ON rn.id = tm.newsoverviewid [INFO] [stdout] 202 + LEFT JOIN topicrefs tr ON tm.topicid = tr.id [INFO] [stdout] 203 + GROUP BY sc.bullish, sc.bearish, sc.neutral, sc.total [INFO] [stdout] 204 + "#, [INFO] [stdout] 205 + ) [INFO] [stdout] 206 + .bind::(sid) [INFO] [stdout] 207 + .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:262:70 [INFO] [stdout] | [INFO] [stdout] 262 | 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] 262 - insert_into(feeds::table).values(chunk).returning(feeds::id).get_results(conn).await?; [INFO] [stdout] 262 + 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] 262 - insert_into(feeds::table).values(chunk).returning(feeds::id).get_results(conn).await?; [INFO] [stdout] 262 + 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:293:70 [INFO] [stdout] | [INFO] [stdout] 293 | 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] 293 - insert_into(feeds::table).values(chunk).returning(feeds::id).get_results(conn).await?; [INFO] [stdout] 293 + 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] 293 - insert_into(feeds::table).values(chunk).returning(feeds::id).get_results(conn).await?; [INFO] [stdout] 293 + 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:368:34 [INFO] [stdout] | [INFO] [stdout] 368 | 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] 368 - articles::table.find(hashid).first(conn).await.optional() [INFO] [stdout] 368 + 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] 368 - articles::table.find(hashid).first(conn).await.optional() [INFO] [stdout] 368 + 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:368:5 [INFO] [stdout] | [INFO] [stdout] 368 | 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:380:8 [INFO] [stdout] | [INFO] [stdout] 380 | .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] 376 ~ diesel_async::RunQueryDsl::load(articles::table [INFO] [stdout] 377 + .filter(articles::category.eq(category)) [INFO] [stdout] 378 + .order(articles::ct.desc()) [INFO] [stdout] 379 + .limit(limit), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 376 ~ diesel::RunQueryDsl::load(articles::table [INFO] [stdout] 377 + .filter(articles::category.eq(category)) [INFO] [stdout] 378 + .order(articles::ct.desc()) [INFO] [stdout] 379 + .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:416:8 [INFO] [stdout] | [INFO] [stdout] 416 | .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] 413 ~ if let Some(author) = diesel_async::RunQueryDsl::first(authors::table [INFO] [stdout] 414 + .filter(authors::author_name.eq(name)) [INFO] [stdout] 415 + .select(authors::id), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 413 ~ if let Some(author) = diesel::RunQueryDsl::first(authors::table [INFO] [stdout] 414 + .filter(authors::author_name.eq(name)) [INFO] [stdout] 415 + .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:413:27 [INFO] [stdout] | [INFO] [stdout] 413 | if let Some(author) = authors::table [INFO] [stdout] | ___________________________^ [INFO] [stdout] 414 | | .filter(authors::author_name.eq(name)) [INFO] [stdout] 415 | | .select(authors::id) [INFO] [stdout] 416 | | .first::(conn) [INFO] [stdout] 417 | | .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:427:8 [INFO] [stdout] | [INFO] [stdout] 427 | .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] 424 ~ diesel::RunQueryDsl::get_result(insert_into(authors::table) [INFO] [stdout] 425 + .values(NewAuthor { author_name: name }) [INFO] [stdout] 426 + .returning(authors::id), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 424 ~ diesel_async::RunQueryDsl::get_result(insert_into(authors::table) [INFO] [stdout] 425 + .values(NewAuthor { author_name: name }) [INFO] [stdout] 426 + .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:491:8 [INFO] [stdout] | [INFO] [stdout] 491 | .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] 487 ~ if let Some(source) = diesel_async::RunQueryDsl::first(sources::table [INFO] [stdout] 488 + .filter(sources::source_name.eq(name)) [INFO] [stdout] 489 + .filter(sources::domain.eq(domain)) [INFO] [stdout] 490 + .select(sources::id), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 487 ~ if let Some(source) = diesel::RunQueryDsl::first(sources::table [INFO] [stdout] 488 + .filter(sources::source_name.eq(name)) [INFO] [stdout] 489 + .filter(sources::domain.eq(domain)) [INFO] [stdout] 490 + .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:487:27 [INFO] [stdout] | [INFO] [stdout] 487 | if let Some(source) = sources::table [INFO] [stdout] | ___________________________^ [INFO] [stdout] 488 | | .filter(sources::source_name.eq(name)) [INFO] [stdout] 489 | | .filter(sources::domain.eq(domain)) [INFO] [stdout] 490 | | .select(sources::id) [INFO] [stdout] 491 | | .first::(conn) [INFO] [stdout] 492 | | .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:502:8 [INFO] [stdout] | [INFO] [stdout] 502 | .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] 499 ~ diesel::RunQueryDsl::get_result(insert_into(sources::table) [INFO] [stdout] 500 + .values(NewSource { source_name: name, domain }) [INFO] [stdout] 501 + .returning(sources::id), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 499 ~ diesel_async::RunQueryDsl::get_result(insert_into(sources::table) [INFO] [stdout] 500 + .values(NewSource { source_name: name, domain }) [INFO] [stdout] 501 + .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:550:73 [INFO] [stdout] | [INFO] [stdout] 550 | 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] 550 - let inserted = insert_into(tickersentiments::table).values(chunk).execute(conn).await?; [INFO] [stdout] 550 + 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] 550 - let inserted = insert_into(tickersentiments::table).values(chunk).execute(conn).await?; [INFO] [stdout] 550 + 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:589:6 [INFO] [stdout] | [INFO] [stdout] 589 | .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] 568 ~ diesel_async::RunQueryDsl::load(sql_query(format!( [INFO] [stdout] 569 + r#" [INFO] [stdout] 570 + SELECT [INFO] [stdout] 571 + time_bucket('{}', n.creation) AS bucket, [INFO] [stdout] 572 + AVG(ts.tsentiment) as avg_sentiment, [INFO] [stdout] 573 + AVG(ts.relevance) as avg_relevance, [INFO] [stdout] 574 + COUNT(*)::bigint as mention_count, [INFO] [stdout] 575 + SUM(CASE WHEN ts.sentiment_label = 'Bullish' THEN 1 ELSE 0 END)::float8 / [INFO] [stdout] 576 + NULLIF(COUNT(*), 0) as bullish_ratio [INFO] [stdout] 577 + FROM tickersentiments ts [INFO] [stdout] 578 + JOIN feeds f ON ts.feedid = f.id [INFO] [stdout] 579 + JOIN newsoverviews n ON f.newsoverviewid = n.id [INFO] [stdout] 580 + WHERE ts.sid = $1 [INFO] [stdout] 581 + AND n.creation >= NOW() - INTERVAL '1 day' * $2 [INFO] [stdout] 582 + GROUP BY bucket [INFO] [stdout] 583 + ORDER BY bucket DESC [INFO] [stdout] 584 + "#, [INFO] [stdout] 585 + bucket_size [INFO] [stdout] 586 + )) [INFO] [stdout] 587 + .bind::(sid) [INFO] [stdout] 588 + .bind::(days), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 568 ~ diesel::RunQueryDsl::load(sql_query(format!( [INFO] [stdout] 569 + r#" [INFO] [stdout] 570 + SELECT [INFO] [stdout] 571 + time_bucket('{}', n.creation) AS bucket, [INFO] [stdout] 572 + AVG(ts.tsentiment) as avg_sentiment, [INFO] [stdout] 573 + AVG(ts.relevance) as avg_relevance, [INFO] [stdout] 574 + COUNT(*)::bigint as mention_count, [INFO] [stdout] 575 + SUM(CASE WHEN ts.sentiment_label = 'Bullish' THEN 1 ELSE 0 END)::float8 / [INFO] [stdout] 576 + NULLIF(COUNT(*), 0) as bullish_ratio [INFO] [stdout] 577 + FROM tickersentiments ts [INFO] [stdout] 578 + JOIN feeds f ON ts.feedid = f.id [INFO] [stdout] 579 + JOIN newsoverviews n ON f.newsoverviewid = n.id [INFO] [stdout] 580 + WHERE ts.sid = $1 [INFO] [stdout] 581 + AND n.creation >= NOW() - INTERVAL '1 day' * $2 [INFO] [stdout] 582 + GROUP BY bucket [INFO] [stdout] 583 + ORDER BY bucket DESC [INFO] [stdout] 584 + "#, [INFO] [stdout] 585 + bucket_size [INFO] [stdout] 586 + )) [INFO] [stdout] 587 + .bind::(sid) [INFO] [stdout] 588 + .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:624:8 [INFO] [stdout] | [INFO] [stdout] 624 | .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] 621 ~ if let Some(topic) = diesel_async::RunQueryDsl::first(topicrefs::table [INFO] [stdout] 622 + .filter(topicrefs::name.eq(name)) [INFO] [stdout] 623 + .select(topicrefs::id), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 621 ~ if let Some(topic) = diesel::RunQueryDsl::first(topicrefs::table [INFO] [stdout] 622 + .filter(topicrefs::name.eq(name)) [INFO] [stdout] 623 + .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:621:26 [INFO] [stdout] | [INFO] [stdout] 621 | if let Some(topic) = topicrefs::table [INFO] [stdout] | __________________________^ [INFO] [stdout] 622 | | .filter(topicrefs::name.eq(name)) [INFO] [stdout] 623 | | .select(topicrefs::id) [INFO] [stdout] 624 | | .first::(conn) [INFO] [stdout] 625 | | .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:634:8 [INFO] [stdout] | [INFO] [stdout] 634 | .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] 631 ~ diesel::RunQueryDsl::get_result(insert_into(topicrefs::table) [INFO] [stdout] 632 + .values(NewTopicRef { name }) [INFO] [stdout] 633 + .returning(topicrefs::id), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 631 ~ diesel_async::RunQueryDsl::get_result(insert_into(topicrefs::table) [INFO] [stdout] 632 + .values(NewTopicRef { name }) [INFO] [stdout] 633 + .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:679:66 [INFO] [stdout] | [INFO] [stdout] 679 | 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] 679 - let inserted = insert_into(topicmaps::table).values(chunk).execute(conn).await?; [INFO] [stdout] 679 + 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] 679 - let inserted = insert_into(topicmaps::table).values(chunk).execute(conn).await?; [INFO] [stdout] 679 + 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:716:6 [INFO] [stdout] | [INFO] [stdout] 716 | .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] 696 ~ diesel_async::RunQueryDsl::load(sql_query( [INFO] [stdout] 697 + r#" [INFO] [stdout] 698 + SELECT [INFO] [stdout] 699 + tr.name as topic_name, [INFO] [stdout] 700 + COUNT(*)::bigint as mention_count, [INFO] [stdout] 701 + AVG(tm.relscore) as avg_relevance, [INFO] [stdout] 702 + AVG(f.osentiment) as avg_sentiment, [INFO] [stdout] 703 + COUNT(DISTINCT tm.sid)::bigint as unique_symbols [INFO] [stdout] 704 + FROM topicmaps tm [INFO] [stdout] 705 + JOIN topicrefs tr ON tm.topicid = tr.id [INFO] [stdout] 706 + JOIN feeds f ON tm.feedid = f.id [INFO] [stdout] 707 + JOIN newsoverviews n ON f.newsoverviewid = n.id [INFO] [stdout] 708 + WHERE n.creation >= NOW() - INTERVAL '1 day' * $1 [INFO] [stdout] 709 + GROUP BY tr.name [INFO] [stdout] 710 + ORDER BY mention_count DESC [INFO] [stdout] 711 + LIMIT $2 [INFO] [stdout] 712 + "#, [INFO] [stdout] 713 + ) [INFO] [stdout] 714 + .bind::(days) [INFO] [stdout] 715 + .bind::(limit), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 696 ~ diesel::RunQueryDsl::load(sql_query( [INFO] [stdout] 697 + r#" [INFO] [stdout] 698 + SELECT [INFO] [stdout] 699 + tr.name as topic_name, [INFO] [stdout] 700 + COUNT(*)::bigint as mention_count, [INFO] [stdout] 701 + AVG(tm.relscore) as avg_relevance, [INFO] [stdout] 702 + AVG(f.osentiment) as avg_sentiment, [INFO] [stdout] 703 + COUNT(DISTINCT tm.sid)::bigint as unique_symbols [INFO] [stdout] 704 + FROM topicmaps tm [INFO] [stdout] 705 + JOIN topicrefs tr ON tm.topicid = tr.id [INFO] [stdout] 706 + JOIN feeds f ON tm.feedid = f.id [INFO] [stdout] 707 + JOIN newsoverviews n ON f.newsoverviewid = n.id [INFO] [stdout] 708 + WHERE n.creation >= NOW() - INTERVAL '1 day' * $1 [INFO] [stdout] 709 + GROUP BY tr.name [INFO] [stdout] 710 + ORDER BY mention_count DESC [INFO] [stdout] 711 + LIMIT $2 [INFO] [stdout] 712 + "#, [INFO] [stdout] 713 + ) [INFO] [stdout] 714 + .bind::(days) [INFO] [stdout] 715 + .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:758:6 [INFO] [stdout] | [INFO] [stdout] 758 | .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] 735 ~ let result = diesel_async::RunQueryDsl::get_result(sql_query( [INFO] [stdout] 736 + r#" [INFO] [stdout] 737 + WITH topic_feeds AS ( [INFO] [stdout] 738 + SELECT [INFO] [stdout] 739 + tm.feedid, [INFO] [stdout] 740 + MAX(CASE WHEN tr.name = $1 THEN 1 ELSE 0 END) as has_topic1, [INFO] [stdout] 741 + MAX(CASE WHEN tr.name = $2 THEN 1 ELSE 0 END) as has_topic2 [INFO] [stdout] 742 + FROM topicmaps tm [INFO] [stdout] 743 + JOIN topicrefs tr ON tm.topicid = tr.id [INFO] [stdout] 744 + JOIN feeds f ON tm.feedid = f.id [INFO] [stdout] 745 + JOIN newsoverviews n ON f.newsoverviewid = n.id [INFO] [stdout] 746 + WHERE n.creation >= NOW() - INTERVAL '1 day' * $3 [INFO] [stdout] 747 + AND tr.name IN ($1, $2) [INFO] [stdout] 748 + GROUP BY tm.feedid [INFO] [stdout] 749 + ) [INFO] [stdout] 750 + SELECT [INFO] [stdout] 751 + CORR(has_topic1::float8, has_topic2::float8) as correlation [INFO] [stdout] 752 + FROM topic_feeds [INFO] [stdout] 753 + "#, [INFO] [stdout] 754 + ) [INFO] [stdout] 755 + .bind::(topic1) [INFO] [stdout] 756 + .bind::(topic2) [INFO] [stdout] 757 + .bind::(days), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 735 ~ let result = diesel::RunQueryDsl::get_result(sql_query( [INFO] [stdout] 736 + r#" [INFO] [stdout] 737 + WITH topic_feeds AS ( [INFO] [stdout] 738 + SELECT [INFO] [stdout] 739 + tm.feedid, [INFO] [stdout] 740 + MAX(CASE WHEN tr.name = $1 THEN 1 ELSE 0 END) as has_topic1, [INFO] [stdout] 741 + MAX(CASE WHEN tr.name = $2 THEN 1 ELSE 0 END) as has_topic2 [INFO] [stdout] 742 + FROM topicmaps tm [INFO] [stdout] 743 + JOIN topicrefs tr ON tm.topicid = tr.id [INFO] [stdout] 744 + JOIN feeds f ON tm.feedid = f.id [INFO] [stdout] 745 + JOIN newsoverviews n ON f.newsoverviewid = n.id [INFO] [stdout] 746 + WHERE n.creation >= NOW() - INTERVAL '1 day' * $3 [INFO] [stdout] 747 + AND tr.name IN ($1, $2) [INFO] [stdout] 748 + GROUP BY tm.feedid [INFO] [stdout] 749 + ) [INFO] [stdout] 750 + SELECT [INFO] [stdout] 751 + CORR(has_topic1::float8, has_topic2::float8) as correlation [INFO] [stdout] 752 + FROM topic_feeds [INFO] [stdout] 753 + "#, [INFO] [stdout] 754 + ) [INFO] [stdout] 755 + .bind::(topic1) [INFO] [stdout] 756 + .bind::(topic2) [INFO] [stdout] 757 + .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:794:14 [INFO] [stdout] | [INFO] [stdout] 794 | .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] 786 ~ let overview_id = diesel::RunQueryDsl::get_result(insert_into(newsoverviews::table) [INFO] [stdout] 787 + .values(NewNewsOverview { [INFO] [stdout] 788 + creation: &news.timestamp, [INFO] [stdout] 789 + sid: &news.sid, [INFO] [stdout] 790 + items: &(news.items.len() as i32), [INFO] [stdout] 791 + hashid: &news.hash_id, [INFO] [stdout] 792 + }) [INFO] [stdout] 793 + .returning(newsoverviews::id), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 786 ~ let overview_id = diesel_async::RunQueryDsl::get_result(insert_into(newsoverviews::table) [INFO] [stdout] 787 + .values(NewNewsOverview { [INFO] [stdout] 788 + creation: &news.timestamp, [INFO] [stdout] 789 + sid: &news.sid, [INFO] [stdout] 790 + items: &(news.items.len() as i32), [INFO] [stdout] 791 + hashid: &news.hash_id, [INFO] [stdout] 792 + }) [INFO] [stdout] 793 + .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:832:18 [INFO] [stdout] | [INFO] [stdout] 832 | .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] 809 ~ diesel::RunQueryDsl::execute(insert_into(articles::table) [INFO] [stdout] 810 + .values(NewArticle { [INFO] [stdout] 811 + hashid: &item.article_hash, [INFO] [stdout] 812 + sourceid: &source_id, [INFO] [stdout] 813 + category: &item.category, [INFO] [stdout] 814 + title: &item.title, [INFO] [stdout] 815 + url: &item.url, [INFO] [stdout] 816 + summary: &item.summary, [INFO] [stdout] 817 + banner: &item.banner_url, [INFO] [stdout] 818 + author: &author_id, [INFO] [stdout] 819 + ct: &item.published_time, [INFO] [stdout] 820 + // Map available data to new fields intelligently [INFO] [stdout] 821 + source_link: item.source_link.as_deref(), [INFO] [stdout] 822 + release_time: item.release_time.as_ref(), [INFO] [stdout] 823 + author_description: item.author_description.as_deref(), [INFO] [stdout] 824 + author_avatar_url: item.author_avatar_url.as_deref(), [INFO] [stdout] 825 + feature_image: item.feature_image.as_deref().or(if !item.banner_url.is_empty() { [INFO] [stdout] 826 + Some(&item.banner_url) [INFO] [stdout] 827 + } else { [INFO] [stdout] 828 + None [INFO] [stdout] 829 + }), [INFO] [stdout] 830 + author_nick_name: item.author_nick_name.as_deref(), [INFO] [stdout] 831 + }), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 809 ~ diesel_async::RunQueryDsl::execute(insert_into(articles::table) [INFO] [stdout] 810 + .values(NewArticle { [INFO] [stdout] 811 + hashid: &item.article_hash, [INFO] [stdout] 812 + sourceid: &source_id, [INFO] [stdout] 813 + category: &item.category, [INFO] [stdout] 814 + title: &item.title, [INFO] [stdout] 815 + url: &item.url, [INFO] [stdout] 816 + summary: &item.summary, [INFO] [stdout] 817 + banner: &item.banner_url, [INFO] [stdout] 818 + author: &author_id, [INFO] [stdout] 819 + ct: &item.published_time, [INFO] [stdout] 820 + // Map available data to new fields intelligently [INFO] [stdout] 821 + source_link: item.source_link.as_deref(), [INFO] [stdout] 822 + release_time: item.release_time.as_ref(), [INFO] [stdout] 823 + author_description: item.author_description.as_deref(), [INFO] [stdout] 824 + author_avatar_url: item.author_avatar_url.as_deref(), [INFO] [stdout] 825 + feature_image: item.feature_image.as_deref().or(if !item.banner_url.is_empty() { [INFO] [stdout] 826 + Some(&item.banner_url) [INFO] [stdout] 827 + } else { [INFO] [stdout] 828 + None [INFO] [stdout] 829 + }), [INFO] [stdout] 830 + author_nick_name: item.author_nick_name.as_deref(), [INFO] [stdout] 831 + }), 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:848:16 [INFO] [stdout] | [INFO] [stdout] 848 | .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] 838 ~ let feed_id = diesel::RunQueryDsl::get_result(insert_into(feeds::table) [INFO] [stdout] 839 + .values(NewFeed { [INFO] [stdout] 840 + sid: &news.sid, [INFO] [stdout] 841 + newsoverviewid: &overview_id, [INFO] [stdout] 842 + articleid: &item.article_hash, [INFO] [stdout] 843 + sourceid: &source_id, [INFO] [stdout] 844 + osentiment: &item.overall_sentiment_score, [INFO] [stdout] 845 + sentlabel: &item.overall_sentiment_label, [INFO] [stdout] 846 + }) [INFO] [stdout] 847 + .returning(feeds::id), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 838 ~ let feed_id = diesel_async::RunQueryDsl::get_result(insert_into(feeds::table) [INFO] [stdout] 839 + .values(NewFeed { [INFO] [stdout] 840 + sid: &news.sid, [INFO] [stdout] 841 + newsoverviewid: &overview_id, [INFO] [stdout] 842 + articleid: &item.article_hash, [INFO] [stdout] 843 + sourceid: &source_id, [INFO] [stdout] 844 + osentiment: &item.overall_sentiment_score, [INFO] [stdout] 845 + sentlabel: &item.overall_sentiment_label, [INFO] [stdout] 846 + }) [INFO] [stdout] 847 + .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:855:16 [INFO] [stdout] | [INFO] [stdout] 855 | .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] 853 ~ diesel::RunQueryDsl::execute(insert_into(authormaps::table) [INFO] [stdout] 854 + .values(NewAuthorMap { feedid: &feed_id, authorid: &author_id }), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 853 ~ diesel_async::RunQueryDsl::execute(insert_into(authormaps::table) [INFO] [stdout] 854 + .values(NewAuthorMap { feedid: &feed_id, authorid: &author_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:868:18 [INFO] [stdout] | [INFO] [stdout] 868 | .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] 860 ~ diesel::RunQueryDsl::execute(insert_into(tickersentiments::table) [INFO] [stdout] 861 + .values(NewTickerSentiment { [INFO] [stdout] 862 + feedid: &feed_id, [INFO] [stdout] 863 + sid: &ticker_sent.sid, [INFO] [stdout] 864 + relevance: &ticker_sent.relevance_score, [INFO] [stdout] 865 + tsentiment: &ticker_sent.sentiment_score, [INFO] [stdout] 866 + sentiment_label: &ticker_sent.sentiment_label, [INFO] [stdout] 867 + }), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 860 ~ diesel_async::RunQueryDsl::execute(insert_into(tickersentiments::table) [INFO] [stdout] 861 + .values(NewTickerSentiment { [INFO] [stdout] 862 + feedid: &feed_id, [INFO] [stdout] 863 + sid: &ticker_sent.sid, [INFO] [stdout] 864 + relevance: &ticker_sent.relevance_score, [INFO] [stdout] 865 + tsentiment: &ticker_sent.sentiment_score, [INFO] [stdout] 866 + sentiment_label: &ticker_sent.sentiment_label, [INFO] [stdout] 867 + }), 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:884:18 [INFO] [stdout] | [INFO] [stdout] 884 | .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] 877 ~ diesel::RunQueryDsl::execute(insert_into(topicmaps::table) [INFO] [stdout] 878 + .values(NewTopicMap { [INFO] [stdout] 879 + sid: &news.sid, [INFO] [stdout] 880 + feedid: &feed_id, [INFO] [stdout] 881 + topicid: &topic_id, [INFO] [stdout] 882 + relscore: &topic.relevance_score, [INFO] [stdout] 883 + }), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 877 ~ diesel_async::RunQueryDsl::execute(insert_into(topicmaps::table) [INFO] [stdout] 878 + .values(NewTopicMap { [INFO] [stdout] 879 + sid: &news.sid, [INFO] [stdout] 880 + feedid: &feed_id, [INFO] [stdout] 881 + topicid: &topic_id, [INFO] [stdout] 882 + relscore: &topic.relevance_score, [INFO] [stdout] 883 + }), 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:81:71 [INFO] [stdout] | [INFO] [stdout] 81 | 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] 81 - let inserted = insert_into(intradayprices::table).values(chunk).execute(conn).await?; [INFO] [stdout] 81 + 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] 81 - let inserted = insert_into(intradayprices::table).values(chunk).execute(conn).await?; [INFO] [stdout] 81 + 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:142:6 [INFO] [stdout] | [INFO] [stdout] 142 | .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] 120 ~ diesel_async::RunQueryDsl::load(sql_query(format!( [INFO] [stdout] 121 + r#" [INFO] [stdout] 122 + SELECT [INFO] [stdout] 123 + time_bucket('{}', tstamp) AS bucket, [INFO] [stdout] 124 + symbol, [INFO] [stdout] 125 + first(open, tstamp) AS open, [INFO] [stdout] 126 + max(high) AS high, [INFO] [stdout] 127 + min(low) AS low, [INFO] [stdout] 128 + last(close, tstamp) AS close, [INFO] [stdout] 129 + sum(volume) AS volume [INFO] [stdout] 130 + FROM intradayprices [INFO] [stdout] 131 + WHERE symbol = $1 [INFO] [stdout] 132 + AND tstamp >= $2 [INFO] [stdout] 133 + AND tstamp <= $3 [INFO] [stdout] 134 + GROUP BY bucket, symbol [INFO] [stdout] 135 + ORDER BY bucket DESC [INFO] [stdout] 136 + "#, [INFO] [stdout] 137 + bucket_size [INFO] [stdout] 138 + )) [INFO] [stdout] 139 + .bind::(symbol) [INFO] [stdout] 140 + .bind::(start) [INFO] [stdout] 141 + .bind::(end), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 120 ~ diesel::RunQueryDsl::load(sql_query(format!( [INFO] [stdout] 121 + r#" [INFO] [stdout] 122 + SELECT [INFO] [stdout] 123 + time_bucket('{}', tstamp) AS bucket, [INFO] [stdout] 124 + symbol, [INFO] [stdout] 125 + first(open, tstamp) AS open, [INFO] [stdout] 126 + max(high) AS high, [INFO] [stdout] 127 + min(low) AS low, [INFO] [stdout] 128 + last(close, tstamp) AS close, [INFO] [stdout] 129 + sum(volume) AS volume [INFO] [stdout] 130 + FROM intradayprices [INFO] [stdout] 131 + WHERE symbol = $1 [INFO] [stdout] 132 + AND tstamp >= $2 [INFO] [stdout] 133 + AND tstamp <= $3 [INFO] [stdout] 134 + GROUP BY bucket, symbol [INFO] [stdout] 135 + ORDER BY bucket DESC [INFO] [stdout] 136 + "#, [INFO] [stdout] 137 + bucket_size [INFO] [stdout] 138 + )) [INFO] [stdout] 139 + .bind::(symbol) [INFO] [stdout] 140 + .bind::(start) [INFO] [stdout] 141 + .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:221:70 [INFO] [stdout] | [INFO] [stdout] 221 | 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] 221 - let inserted = insert_into(summaryprices::table).values(chunk).execute(conn).await?; [INFO] [stdout] 221 + 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] 221 - let inserted = insert_into(summaryprices::table).values(chunk).execute(conn).await?; [INFO] [stdout] 221 + 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:256:70 [INFO] [stdout] | [INFO] [stdout] 256 | 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] 256 - let inserted = insert_into(summaryprices::table).values(chunk).execute(conn).await?; [INFO] [stdout] 256 + 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] 256 - let inserted = insert_into(summaryprices::table).values(chunk).execute(conn).await?; [INFO] [stdout] 256 + 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:273:8 [INFO] [stdout] | [INFO] [stdout] 273 | .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] 270 ~ diesel_async::RunQueryDsl::first(summaryprices::table [INFO] [stdout] 271 + .filter(summaryprices::symbol.eq(symbol)) [INFO] [stdout] 272 + .order(summaryprices::date.desc()), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 270 ~ diesel::RunQueryDsl::first(summaryprices::table [INFO] [stdout] 271 + .filter(summaryprices::symbol.eq(symbol)) [INFO] [stdout] 272 + .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:289:8 [INFO] [stdout] | [INFO] [stdout] 289 | .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] 284 ~ diesel_async::RunQueryDsl::load(summaryprices::table [INFO] [stdout] 285 + .filter(summaryprices::symbol.eq(symbol)) [INFO] [stdout] 286 + .filter(summaryprices::date.ge(start_date)) [INFO] [stdout] 287 + .filter(summaryprices::date.le(end_date)) [INFO] [stdout] 288 + .order(summaryprices::date.desc()), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 284 ~ diesel::RunQueryDsl::load(summaryprices::table [INFO] [stdout] 285 + .filter(summaryprices::symbol.eq(symbol)) [INFO] [stdout] 286 + .filter(summaryprices::date.ge(start_date)) [INFO] [stdout] 287 + .filter(summaryprices::date.le(end_date)) [INFO] [stdout] 288 + .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:325:6 [INFO] [stdout] | [INFO] [stdout] 325 | .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] 303 ~ diesel_async::RunQueryDsl::load(sql_query( [INFO] [stdout] 304 + r#" [INFO] [stdout] 305 + SELECT [INFO] [stdout] 306 + date, [INFO] [stdout] 307 + close, [INFO] [stdout] 308 + AVG(close) OVER ( [INFO] [stdout] 309 + ORDER BY date [INFO] [stdout] 310 + ROWS BETWEEN $3 PRECEDING AND CURRENT ROW [INFO] [stdout] 311 + ) as ma, [INFO] [stdout] 312 + AVG(volume::float4) OVER ( [INFO] [stdout] 313 + ORDER BY date [INFO] [stdout] 314 + ROWS BETWEEN $3 PRECEDING AND CURRENT ROW [INFO] [stdout] 315 + ) as volume_ma [INFO] [stdout] 316 + FROM summaryprices [INFO] [stdout] 317 + WHERE symbol = $1 [INFO] [stdout] 318 + AND date >= CURRENT_DATE - INTERVAL '1 day' * $2 [INFO] [stdout] 319 + ORDER BY date DESC [INFO] [stdout] 320 + "#, [INFO] [stdout] 321 + ) [INFO] [stdout] 322 + .bind::(symbol) [INFO] [stdout] 323 + .bind::(days) [INFO] [stdout] 324 + .bind::(ma_period - 1), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 303 ~ diesel::RunQueryDsl::load(sql_query( [INFO] [stdout] 304 + r#" [INFO] [stdout] 305 + SELECT [INFO] [stdout] 306 + date, [INFO] [stdout] 307 + close, [INFO] [stdout] 308 + AVG(close) OVER ( [INFO] [stdout] 309 + ORDER BY date [INFO] [stdout] 310 + ROWS BETWEEN $3 PRECEDING AND CURRENT ROW [INFO] [stdout] 311 + ) as ma, [INFO] [stdout] 312 + AVG(volume::float4) OVER ( [INFO] [stdout] 313 + ORDER BY date [INFO] [stdout] 314 + ROWS BETWEEN $3 PRECEDING AND CURRENT ROW [INFO] [stdout] 315 + ) as volume_ma [INFO] [stdout] 316 + FROM summaryprices [INFO] [stdout] 317 + WHERE symbol = $1 [INFO] [stdout] 318 + AND date >= CURRENT_DATE - INTERVAL '1 day' * $2 [INFO] [stdout] 319 + ORDER BY date DESC [INFO] [stdout] 320 + "#, [INFO] [stdout] 321 + ) [INFO] [stdout] 322 + .bind::(symbol) [INFO] [stdout] 323 + .bind::(days) [INFO] [stdout] 324 + .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:413:65 [INFO] [stdout] | [INFO] [stdout] 413 | 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] 413 - let inserted = insert_into(topstats::table).values(chunk).execute(conn).await?; [INFO] [stdout] 413 + 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] 413 - let inserted = insert_into(topstats::table).values(chunk).execute(conn).await?; [INFO] [stdout] 413 + 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:445:65 [INFO] [stdout] | [INFO] [stdout] 445 | 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] 445 - let inserted = insert_into(topstats::table).values(chunk).execute(conn).await?; [INFO] [stdout] 445 + 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] 445 - let inserted = insert_into(topstats::table).values(chunk).execute(conn).await?; [INFO] [stdout] 445 + 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:465:8 [INFO] [stdout] | [INFO] [stdout] 465 | .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] 460 ~ diesel_async::RunQueryDsl::load(topstats::table [INFO] [stdout] 461 + .filter(topstats::event_type.eq(event_type)) [INFO] [stdout] 462 + .filter(topstats::date.ge(chrono::Utc::now() - chrono::Duration::days(1))) [INFO] [stdout] 463 + .order(topstats::change_pct.desc()) [INFO] [stdout] 464 + .limit(limit), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 460 ~ diesel::RunQueryDsl::load(topstats::table [INFO] [stdout] 461 + .filter(topstats::event_type.eq(event_type)) [INFO] [stdout] 462 + .filter(topstats::date.ge(chrono::Utc::now() - chrono::Duration::days(1))) [INFO] [stdout] 463 + .order(topstats::change_pct.desc()) [INFO] [stdout] 464 + .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:483:8 [INFO] [stdout] | [INFO] [stdout] 483 | .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] 479 ~ let total = diesel_async::RunQueryDsl::get_result(topstats::table [INFO] [stdout] 480 + .filter(topstats::event_type.eq(event_type)) [INFO] [stdout] 481 + .filter(topstats::date.ge(chrono::Utc::now() - chrono::Duration::days(1))) [INFO] [stdout] 482 + .count(), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 479 ~ let total = diesel::RunQueryDsl::get_result(topstats::table [INFO] [stdout] 480 + .filter(topstats::event_type.eq(event_type)) [INFO] [stdout] 481 + .filter(topstats::date.ge(chrono::Utc::now() - chrono::Duration::days(1))) [INFO] [stdout] 482 + .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:493:8 [INFO] [stdout] | [INFO] [stdout] 493 | .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] 487 ~ let results = diesel_async::RunQueryDsl::load(topstats::table [INFO] [stdout] 488 + .filter(topstats::event_type.eq(event_type)) [INFO] [stdout] 489 + .filter(topstats::date.ge(chrono::Utc::now() - chrono::Duration::days(1))) [INFO] [stdout] 490 + .order(topstats::change_pct.desc()) [INFO] [stdout] 491 + .limit(per_page) [INFO] [stdout] 492 + .offset(offset), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 487 ~ let results = diesel::RunQueryDsl::load(topstats::table [INFO] [stdout] 488 + .filter(topstats::event_type.eq(event_type)) [INFO] [stdout] 489 + .filter(topstats::date.ge(chrono::Utc::now() - chrono::Duration::days(1))) [INFO] [stdout] 490 + .order(topstats::change_pct.desc()) [INFO] [stdout] 491 + .limit(per_page) [INFO] [stdout] 492 + .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:540:6 [INFO] [stdout] | [INFO] [stdout] 540 | .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] 509 ~ diesel_async::RunQueryDsl::load(sql_query(format!( [INFO] [stdout] 510 + r#" [INFO] [stdout] 511 + WITH bucketed_stats AS ( [INFO] [stdout] 512 + SELECT [INFO] [stdout] 513 + time_bucket('{}', date) AS bucket, [INFO] [stdout] 514 + event_type, [INFO] [stdout] 515 + symbol, [INFO] [stdout] 516 + change_pct, [INFO] [stdout] 517 + ROW_NUMBER() OVER ( [INFO] [stdout] 518 + PARTITION BY time_bucket('{}', date), event_type [INFO] [stdout] 519 + ORDER BY change_pct DESC [INFO] [stdout] 520 + ) as rn [INFO] [stdout] 521 + FROM topstats [INFO] [stdout] 522 + WHERE event_type = $1 [INFO] [stdout] 523 + AND date >= NOW() - INTERVAL '1 day' * $2 [INFO] [stdout] 524 + ) [INFO] [stdout] 525 + SELECT [INFO] [stdout] 526 + bucket, [INFO] [stdout] 527 + event_type, [INFO] [stdout] 528 + COUNT(*)::integer as mover_count, [INFO] [stdout] 529 + AVG(change_pct) as avg_change_pct, [INFO] [stdout] 530 + MAX(change_pct) as max_change_pct, [INFO] [stdout] 531 + MAX(CASE WHEN rn = 1 THEN symbol END) as top_symbol [INFO] [stdout] 532 + FROM bucketed_stats [INFO] [stdout] 533 + GROUP BY bucket, event_type [INFO] [stdout] 534 + ORDER BY bucket DESC [INFO] [stdout] 535 + "#, [INFO] [stdout] 536 + bucket_size, bucket_size [INFO] [stdout] 537 + )) [INFO] [stdout] 538 + .bind::(event_type) [INFO] [stdout] 539 + .bind::(days_back), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 509 ~ diesel::RunQueryDsl::load(sql_query(format!( [INFO] [stdout] 510 + r#" [INFO] [stdout] 511 + WITH bucketed_stats AS ( [INFO] [stdout] 512 + SELECT [INFO] [stdout] 513 + time_bucket('{}', date) AS bucket, [INFO] [stdout] 514 + event_type, [INFO] [stdout] 515 + symbol, [INFO] [stdout] 516 + change_pct, [INFO] [stdout] 517 + ROW_NUMBER() OVER ( [INFO] [stdout] 518 + PARTITION BY time_bucket('{}', date), event_type [INFO] [stdout] 519 + ORDER BY change_pct DESC [INFO] [stdout] 520 + ) as rn [INFO] [stdout] 521 + FROM topstats [INFO] [stdout] 522 + WHERE event_type = $1 [INFO] [stdout] 523 + AND date >= NOW() - INTERVAL '1 day' * $2 [INFO] [stdout] 524 + ) [INFO] [stdout] 525 + SELECT [INFO] [stdout] 526 + bucket, [INFO] [stdout] 527 + event_type, [INFO] [stdout] 528 + COUNT(*)::integer as mover_count, [INFO] [stdout] 529 + AVG(change_pct) as avg_change_pct, [INFO] [stdout] 530 + MAX(change_pct) as max_change_pct, [INFO] [stdout] 531 + MAX(CASE WHEN rn = 1 THEN symbol END) as top_symbol [INFO] [stdout] 532 + FROM bucketed_stats [INFO] [stdout] 533 + GROUP BY bucket, event_type [INFO] [stdout] 534 + ORDER BY bucket DESC [INFO] [stdout] 535 + "#, [INFO] [stdout] 536 + bucket_size, bucket_size [INFO] [stdout] 537 + )) [INFO] [stdout] 538 + .bind::(event_type) [INFO] [stdout] 539 + .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:568:6 [INFO] [stdout] | [INFO] [stdout] 568 | .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] 552 ~ diesel_async::RunQueryDsl::load(sql_query( [INFO] [stdout] 553 + r#" [INFO] [stdout] 554 + SELECT [INFO] [stdout] 555 + o.sector, [INFO] [stdout] 556 + COUNT(CASE WHEN t.event_type = 'gainers' THEN 1 END)::integer as gainer_count, [INFO] [stdout] 557 + COUNT(CASE WHEN t.event_type = 'losers' THEN 1 END)::integer as loser_count, [INFO] [stdout] 558 + AVG(CASE WHEN t.event_type = 'gainers' THEN t.change_pct END) as avg_gain, [INFO] [stdout] 559 + AVG(CASE WHEN t.event_type = 'losers' THEN t.change_pct END) as avg_loss [INFO] [stdout] 560 + FROM topstats t [INFO] [stdout] 561 + JOIN overviews o ON t.sid = o.sid [INFO] [stdout] 562 + WHERE t.date = $1 [INFO] [stdout] 563 + GROUP BY o.sector [INFO] [stdout] 564 + ORDER BY gainer_count DESC [INFO] [stdout] 565 + "#, [INFO] [stdout] 566 + ) [INFO] [stdout] 567 + .bind::(date), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 552 ~ diesel::RunQueryDsl::load(sql_query( [INFO] [stdout] 553 + r#" [INFO] [stdout] 554 + SELECT [INFO] [stdout] 555 + o.sector, [INFO] [stdout] 556 + COUNT(CASE WHEN t.event_type = 'gainers' THEN 1 END)::integer as gainer_count, [INFO] [stdout] 557 + COUNT(CASE WHEN t.event_type = 'losers' THEN 1 END)::integer as loser_count, [INFO] [stdout] 558 + AVG(CASE WHEN t.event_type = 'gainers' THEN t.change_pct END) as avg_gain, [INFO] [stdout] 559 + AVG(CASE WHEN t.event_type = 'losers' THEN t.change_pct END) as avg_loss [INFO] [stdout] 560 + FROM topstats t [INFO] [stdout] 561 + JOIN overviews o ON t.sid = o.sid [INFO] [stdout] 562 + WHERE t.date = $1 [INFO] [stdout] 563 + GROUP BY o.sector [INFO] [stdout] 564 + ORDER BY gainer_count DESC [INFO] [stdout] 565 + "#, [INFO] [stdout] 566 + ) [INFO] [stdout] 567 + .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:78:30 [INFO] [stdout] | [INFO] [stdout] 78 | 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] 78 - symbols::table.find(sid).first(conn).await [INFO] [stdout] 78 + 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] 78 - symbols::table.find(sid).first(conn).await [INFO] [stdout] 78 + 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:85:55 [INFO] [stdout] | [INFO] [stdout] 85 | 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] 85 - symbols::table.filter(symbols::symbol.eq(symbol)).first(conn).await [INFO] [stdout] 85 + 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] 85 - symbols::table.filter(symbols::symbol.eq(symbol)).first(conn).await [INFO] [stdout] 85 + 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:95:8 [INFO] [stdout] | [INFO] [stdout] 95 | .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] 91 ~ diesel_async::RunQueryDsl::load(symbols::table [INFO] [stdout] 92 + .filter(symbols::overview.eq(true)) [INFO] [stdout] 93 + .or_filter(symbols::intraday.eq(true)) [INFO] [stdout] 94 + .or_filter(symbols::summary.eq(true)), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 91 ~ diesel::RunQueryDsl::load(symbols::table [INFO] [stdout] 92 + .filter(symbols::overview.eq(true)) [INFO] [stdout] 93 + .or_filter(symbols::intraday.eq(true)) [INFO] [stdout] 94 + .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:166:32 [INFO] [stdout] | [INFO] [stdout] 166 | 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] 166 - overviews::table.find(sid).first(conn).await [INFO] [stdout] 166 + 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] 166 - overviews::table.find(sid).first(conn).await [INFO] [stdout] 166 + 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:173:59 [INFO] [stdout] | [INFO] [stdout] 173 | 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] 173 - overviews::table.filter(overviews::symbol.eq(symbol)).first(conn).await [INFO] [stdout] 173 + 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] 173 - overviews::table.filter(overviews::symbol.eq(symbol)).first(conn).await [INFO] [stdout] 173 + 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:180:59 [INFO] [stdout] | [INFO] [stdout] 180 | 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] 180 - overviews::table.filter(overviews::sector.eq(sector)).load(conn).await [INFO] [stdout] 180 + 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] 180 - overviews::table.filter(overviews::sector.eq(sector)).load(conn).await [INFO] [stdout] 180 + 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:260:35 [INFO] [stdout] | [INFO] [stdout] 260 | 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] 260 - overviewexts::table.find(sid).first(conn).await [INFO] [stdout] 260 + 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] 260 - overviewexts::table.find(sid).first(conn).await [INFO] [stdout] 260 + 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:267:65 [INFO] [stdout] | [INFO] [stdout] 267 | 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] 267 - overviewexts::table.filter(overviewexts::beta.ge(min_beta)).load(conn).await [INFO] [stdout] 267 + 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] 267 - overviewexts::table.filter(overviewexts::beta.ge(min_beta)).load(conn).await [INFO] [stdout] 267 + 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:273:75 [INFO] [stdout] | [INFO] [stdout] 273 | 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] 273 - overviewexts::table.filter(overviewexts::dividend_date.is_not_null()).load(conn).await [INFO] [stdout] 273 + 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] 273 - overviewexts::table.filter(overviewexts::dividend_date.is_not_null()).load(conn).await [INFO] [stdout] 273 + 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:537:37 [INFO] [stdout] | [INFO] [stdout] 537 | 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] 537 - equity_details::table.find(sid).first(conn).await [INFO] [stdout] 537 + 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] 537 - equity_details::table.find(sid).first(conn).await [INFO] [stdout] 537 + 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/security.rs:579:8 [INFO] [stdout] | [INFO] [stdout] 579 | .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] 576 ~ diesel_async::RunQueryDsl::first(symbol_mappings::table [INFO] [stdout] 577 + .filter(symbol_mappings::sid.eq(sid)) [INFO] [stdout] 578 + .filter(symbol_mappings::source_name.eq(source)), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 576 ~ diesel::RunQueryDsl::first(symbol_mappings::table [INFO] [stdout] 577 + .filter(symbol_mappings::sid.eq(sid)) [INFO] [stdout] 578 + .filter(symbol_mappings::source_name.eq(source)), 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:588:65 [INFO] [stdout] | [INFO] [stdout] 588 | symbol_mappings::table.filter(symbol_mappings::sid.eq(sid)).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] 588 - symbol_mappings::table.filter(symbol_mappings::sid.eq(sid)).load(conn).await [INFO] [stdout] 588 + diesel_async::RunQueryDsl::load(symbol_mappings::table.filter(symbol_mappings::sid.eq(sid)), conn).await [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 588 - symbol_mappings::table.filter(symbol_mappings::sid.eq(sid)).load(conn).await [INFO] [stdout] 588 + diesel::RunQueryDsl::load(symbol_mappings::table.filter(symbol_mappings::sid.eq(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:600:8 [INFO] [stdout] | [INFO] [stdout] 600 | .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] 597 ~ diesel_async::RunQueryDsl::first(symbol_mappings::table [INFO] [stdout] 598 + .filter(symbol_mappings::source_name.eq(source)) [INFO] [stdout] 599 + .filter(symbol_mappings::source_identifier.eq(identifier)), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 597 ~ diesel::RunQueryDsl::first(symbol_mappings::table [INFO] [stdout] 598 + .filter(symbol_mappings::source_name.eq(source)) [INFO] [stdout] 599 + .filter(symbol_mappings::source_identifier.eq(identifier)), 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:617:8 [INFO] [stdout] | [INFO] [stdout] 617 | .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 `UpdateStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 612 ~ diesel_async::RunQueryDsl::get_result(diesel::update(symbol_mappings::table.find(mapping_id)) [INFO] [stdout] 613 + .set(( [INFO] [stdout] 614 + symbol_mappings::verified.eq(true), [INFO] [stdout] 615 + symbol_mappings::last_verified_at.eq(chrono::Utc::now().naive_utc()), [INFO] [stdout] 616 + )), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 612 ~ diesel::RunQueryDsl::get_result(diesel::update(symbol_mappings::table.find(mapping_id)) [INFO] [stdout] 613 + .set(( [INFO] [stdout] 614 + symbol_mappings::verified.eq(true), [INFO] [stdout] 615 + symbol_mappings::last_verified_at.eq(chrono::Utc::now().naive_utc()), [INFO] [stdout] 616 + )), 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:133:67 [INFO] [stdout] | [INFO] [stdout] 133 | 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] 133 - newsoverviews::table.filter(newsoverviews::hashid.eq(hashid)).first(conn).await.optional() [INFO] [stdout] 133 + 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] 133 - newsoverviews::table.filter(newsoverviews::hashid.eq(hashid)).first(conn).await.optional() [INFO] [stdout] 133 + 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:133:5 [INFO] [stdout] | [INFO] [stdout] 133 | 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:145:8 [INFO] [stdout] | [INFO] [stdout] 145 | .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] 141 ~ diesel_async::RunQueryDsl::load(newsoverviews::table [INFO] [stdout] 142 + .filter(newsoverviews::sid.eq(sid)) [INFO] [stdout] 143 + .filter(newsoverviews::creation.ge(chrono::Utc::now() - chrono::Duration::days(days as i64))) [INFO] [stdout] 144 + .order(newsoverviews::creation.desc()), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 141 ~ diesel::RunQueryDsl::load(newsoverviews::table [INFO] [stdout] 142 + .filter(newsoverviews::sid.eq(sid)) [INFO] [stdout] 143 + .filter(newsoverviews::creation.ge(chrono::Utc::now() - chrono::Duration::days(days as i64))) [INFO] [stdout] 144 + .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:208:6 [INFO] [stdout] | [INFO] [stdout] 208 | .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] 157 ~ diesel_async::RunQueryDsl::load(sql_query( [INFO] [stdout] 158 + r#" [INFO] [stdout] 159 + WITH recent_news AS ( [INFO] [stdout] 160 + SELECT n.*, f.osentiment, f.sentlabel [INFO] [stdout] 161 + FROM newsoverviews n [INFO] [stdout] 162 + JOIN feeds f ON n.id = f.newsoverviewid [INFO] [stdout] 163 + WHERE n.sid = $1 [INFO] [stdout] 164 + AND n.creation >= NOW() - INTERVAL '1 day' * $2 [INFO] [stdout] 165 + ), [INFO] [stdout] 166 + sentiment_counts AS ( [INFO] [stdout] 167 + SELECT [INFO] [stdout] 168 + COUNT(*) as total, [INFO] [stdout] 169 + COUNT(CASE WHEN sentlabel = 'Bullish' THEN 1 END) as bullish, [INFO] [stdout] 170 + COUNT(CASE WHEN sentlabel = 'Bearish' THEN 1 END) as bearish, [INFO] [stdout] 171 + COUNT(CASE WHEN sentlabel = 'Neutral' THEN 1 END) as neutral [INFO] [stdout] 172 + FROM recent_news [INFO] [stdout] 173 + ) [INFO] [stdout] 174 + SELECT [INFO] [stdout] 175 + $1 as sid, [INFO] [stdout] 176 + AVG(rn.osentiment) as avg_sentiment, [INFO] [stdout] 177 + COUNT(DISTINCT rn.id) as article_count, [INFO] [stdout] 178 + (sc.bullish::float8 / NULLIF(sc.total, 0) * 100) as bullish_pct, [INFO] [stdout] 179 + (sc.bearish::float8 / NULLIF(sc.total, 0) * 100) as bearish_pct, [INFO] [stdout] 180 + (sc.neutral::float8 / NULLIF(sc.total, 0) * 100) as neutral_pct, [INFO] [stdout] 181 + COALESCE( [INFO] [stdout] 182 + jsonb_agg(DISTINCT [INFO] [stdout] 183 + jsonb_build_object( [INFO] [stdout] 184 + 'topic', tr.name, [INFO] [stdout] 185 + 'avg_relevance', tm.avg_relevance [INFO] [stdout] 186 + ) [INFO] [stdout] 187 + ) FILTER (WHERE tr.name IS NOT NULL), [INFO] [stdout] 188 + '[]'::jsonb [INFO] [stdout] 189 + ) as topics [INFO] [stdout] 190 + FROM recent_news rn [INFO] [stdout] 191 + CROSS JOIN sentiment_counts sc [INFO] [stdout] 192 + LEFT JOIN ( [INFO] [stdout] 193 + SELECT [INFO] [stdout] 194 + f.newsoverviewid, [INFO] [stdout] 195 + tm.topicid, [INFO] [stdout] 196 + AVG(tm.relscore) as avg_relevance [INFO] [stdout] 197 + FROM feeds f [INFO] [stdout] 198 + JOIN topicmaps tm ON f.id = tm.feedid [INFO] [stdout] 199 + WHERE f.newsoverviewid IN (SELECT id FROM recent_news) [INFO] [stdout] 200 + GROUP BY f.newsoverviewid, tm.topicid [INFO] [stdout] 201 + ) tm ON rn.id = tm.newsoverviewid [INFO] [stdout] 202 + LEFT JOIN topicrefs tr ON tm.topicid = tr.id [INFO] [stdout] 203 + GROUP BY sc.bullish, sc.bearish, sc.neutral, sc.total [INFO] [stdout] 204 + "#, [INFO] [stdout] 205 + ) [INFO] [stdout] 206 + .bind::(sid) [INFO] [stdout] 207 + .bind::(days), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 157 ~ diesel::RunQueryDsl::load(sql_query( [INFO] [stdout] 158 + r#" [INFO] [stdout] 159 + WITH recent_news AS ( [INFO] [stdout] 160 + SELECT n.*, f.osentiment, f.sentlabel [INFO] [stdout] 161 + FROM newsoverviews n [INFO] [stdout] 162 + JOIN feeds f ON n.id = f.newsoverviewid [INFO] [stdout] 163 + WHERE n.sid = $1 [INFO] [stdout] 164 + AND n.creation >= NOW() - INTERVAL '1 day' * $2 [INFO] [stdout] 165 + ), [INFO] [stdout] 166 + sentiment_counts AS ( [INFO] [stdout] 167 + SELECT [INFO] [stdout] 168 + COUNT(*) as total, [INFO] [stdout] 169 + COUNT(CASE WHEN sentlabel = 'Bullish' THEN 1 END) as bullish, [INFO] [stdout] 170 + COUNT(CASE WHEN sentlabel = 'Bearish' THEN 1 END) as bearish, [INFO] [stdout] 171 + COUNT(CASE WHEN sentlabel = 'Neutral' THEN 1 END) as neutral [INFO] [stdout] 172 + FROM recent_news [INFO] [stdout] 173 + ) [INFO] [stdout] 174 + SELECT [INFO] [stdout] 175 + $1 as sid, [INFO] [stdout] 176 + AVG(rn.osentiment) as avg_sentiment, [INFO] [stdout] 177 + COUNT(DISTINCT rn.id) as article_count, [INFO] [stdout] 178 + (sc.bullish::float8 / NULLIF(sc.total, 0) * 100) as bullish_pct, [INFO] [stdout] 179 + (sc.bearish::float8 / NULLIF(sc.total, 0) * 100) as bearish_pct, [INFO] [stdout] 180 + (sc.neutral::float8 / NULLIF(sc.total, 0) * 100) as neutral_pct, [INFO] [stdout] 181 + COALESCE( [INFO] [stdout] 182 + jsonb_agg(DISTINCT [INFO] [stdout] 183 + jsonb_build_object( [INFO] [stdout] 184 + 'topic', tr.name, [INFO] [stdout] 185 + 'avg_relevance', tm.avg_relevance [INFO] [stdout] 186 + ) [INFO] [stdout] 187 + ) FILTER (WHERE tr.name IS NOT NULL), [INFO] [stdout] 188 + '[]'::jsonb [INFO] [stdout] 189 + ) as topics [INFO] [stdout] 190 + FROM recent_news rn [INFO] [stdout] 191 + CROSS JOIN sentiment_counts sc [INFO] [stdout] 192 + LEFT JOIN ( [INFO] [stdout] 193 + SELECT [INFO] [stdout] 194 + f.newsoverviewid, [INFO] [stdout] 195 + tm.topicid, [INFO] [stdout] 196 + AVG(tm.relscore) as avg_relevance [INFO] [stdout] 197 + FROM feeds f [INFO] [stdout] 198 + JOIN topicmaps tm ON f.id = tm.feedid [INFO] [stdout] 199 + WHERE f.newsoverviewid IN (SELECT id FROM recent_news) [INFO] [stdout] 200 + GROUP BY f.newsoverviewid, tm.topicid [INFO] [stdout] 201 + ) tm ON rn.id = tm.newsoverviewid [INFO] [stdout] 202 + LEFT JOIN topicrefs tr ON tm.topicid = tr.id [INFO] [stdout] 203 + GROUP BY sc.bullish, sc.bearish, sc.neutral, sc.total [INFO] [stdout] 204 + "#, [INFO] [stdout] 205 + ) [INFO] [stdout] 206 + .bind::(sid) [INFO] [stdout] 207 + .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:262:70 [INFO] [stdout] | [INFO] [stdout] 262 | 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] 262 - insert_into(feeds::table).values(chunk).returning(feeds::id).get_results(conn).await?; [INFO] [stdout] 262 + 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] 262 - insert_into(feeds::table).values(chunk).returning(feeds::id).get_results(conn).await?; [INFO] [stdout] 262 + 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:293:70 [INFO] [stdout] | [INFO] [stdout] 293 | 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] 293 - insert_into(feeds::table).values(chunk).returning(feeds::id).get_results(conn).await?; [INFO] [stdout] 293 + 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] 293 - insert_into(feeds::table).values(chunk).returning(feeds::id).get_results(conn).await?; [INFO] [stdout] 293 + 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:368:34 [INFO] [stdout] | [INFO] [stdout] 368 | 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] 368 - articles::table.find(hashid).first(conn).await.optional() [INFO] [stdout] 368 + 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] 368 - articles::table.find(hashid).first(conn).await.optional() [INFO] [stdout] 368 + 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:368:5 [INFO] [stdout] | [INFO] [stdout] 368 | 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:380:8 [INFO] [stdout] | [INFO] [stdout] 380 | .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] 376 ~ diesel_async::RunQueryDsl::load(articles::table [INFO] [stdout] 377 + .filter(articles::category.eq(category)) [INFO] [stdout] 378 + .order(articles::ct.desc()) [INFO] [stdout] 379 + .limit(limit), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 376 ~ diesel::RunQueryDsl::load(articles::table [INFO] [stdout] 377 + .filter(articles::category.eq(category)) [INFO] [stdout] 378 + .order(articles::ct.desc()) [INFO] [stdout] 379 + .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:416:8 [INFO] [stdout] | [INFO] [stdout] 416 | .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] 413 ~ if let Some(author) = diesel_async::RunQueryDsl::first(authors::table [INFO] [stdout] 414 + .filter(authors::author_name.eq(name)) [INFO] [stdout] 415 + .select(authors::id), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 413 ~ if let Some(author) = diesel::RunQueryDsl::first(authors::table [INFO] [stdout] 414 + .filter(authors::author_name.eq(name)) [INFO] [stdout] 415 + .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:413:27 [INFO] [stdout] | [INFO] [stdout] 413 | if let Some(author) = authors::table [INFO] [stdout] | ___________________________^ [INFO] [stdout] 414 | | .filter(authors::author_name.eq(name)) [INFO] [stdout] 415 | | .select(authors::id) [INFO] [stdout] 416 | | .first::(conn) [INFO] [stdout] 417 | | .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:427:8 [INFO] [stdout] | [INFO] [stdout] 427 | .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] 424 ~ diesel::RunQueryDsl::get_result(insert_into(authors::table) [INFO] [stdout] 425 + .values(NewAuthor { author_name: name }) [INFO] [stdout] 426 + .returning(authors::id), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 424 ~ diesel_async::RunQueryDsl::get_result(insert_into(authors::table) [INFO] [stdout] 425 + .values(NewAuthor { author_name: name }) [INFO] [stdout] 426 + .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:491:8 [INFO] [stdout] | [INFO] [stdout] 491 | .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] 487 ~ if let Some(source) = diesel_async::RunQueryDsl::first(sources::table [INFO] [stdout] 488 + .filter(sources::source_name.eq(name)) [INFO] [stdout] 489 + .filter(sources::domain.eq(domain)) [INFO] [stdout] 490 + .select(sources::id), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 487 ~ if let Some(source) = diesel::RunQueryDsl::first(sources::table [INFO] [stdout] 488 + .filter(sources::source_name.eq(name)) [INFO] [stdout] 489 + .filter(sources::domain.eq(domain)) [INFO] [stdout] 490 + .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:487:27 [INFO] [stdout] | [INFO] [stdout] 487 | if let Some(source) = sources::table [INFO] [stdout] | ___________________________^ [INFO] [stdout] 488 | | .filter(sources::source_name.eq(name)) [INFO] [stdout] 489 | | .filter(sources::domain.eq(domain)) [INFO] [stdout] 490 | | .select(sources::id) [INFO] [stdout] 491 | | .first::(conn) [INFO] [stdout] 492 | | .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:502:8 [INFO] [stdout] | [INFO] [stdout] 502 | .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] 499 ~ diesel::RunQueryDsl::get_result(insert_into(sources::table) [INFO] [stdout] 500 + .values(NewSource { source_name: name, domain }) [INFO] [stdout] 501 + .returning(sources::id), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 499 ~ diesel_async::RunQueryDsl::get_result(insert_into(sources::table) [INFO] [stdout] 500 + .values(NewSource { source_name: name, domain }) [INFO] [stdout] 501 + .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:550:73 [INFO] [stdout] | [INFO] [stdout] 550 | 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] 550 - let inserted = insert_into(tickersentiments::table).values(chunk).execute(conn).await?; [INFO] [stdout] 550 + 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] 550 - let inserted = insert_into(tickersentiments::table).values(chunk).execute(conn).await?; [INFO] [stdout] 550 + 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:589:6 [INFO] [stdout] | [INFO] [stdout] 589 | .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] 568 ~ diesel_async::RunQueryDsl::load(sql_query(format!( [INFO] [stdout] 569 + r#" [INFO] [stdout] 570 + SELECT [INFO] [stdout] 571 + time_bucket('{}', n.creation) AS bucket, [INFO] [stdout] 572 + AVG(ts.tsentiment) as avg_sentiment, [INFO] [stdout] 573 + AVG(ts.relevance) as avg_relevance, [INFO] [stdout] 574 + COUNT(*)::bigint as mention_count, [INFO] [stdout] 575 + SUM(CASE WHEN ts.sentiment_label = 'Bullish' THEN 1 ELSE 0 END)::float8 / [INFO] [stdout] 576 + NULLIF(COUNT(*), 0) as bullish_ratio [INFO] [stdout] 577 + FROM tickersentiments ts [INFO] [stdout] 578 + JOIN feeds f ON ts.feedid = f.id [INFO] [stdout] 579 + JOIN newsoverviews n ON f.newsoverviewid = n.id [INFO] [stdout] 580 + WHERE ts.sid = $1 [INFO] [stdout] 581 + AND n.creation >= NOW() - INTERVAL '1 day' * $2 [INFO] [stdout] 582 + GROUP BY bucket [INFO] [stdout] 583 + ORDER BY bucket DESC [INFO] [stdout] 584 + "#, [INFO] [stdout] 585 + bucket_size [INFO] [stdout] 586 + )) [INFO] [stdout] 587 + .bind::(sid) [INFO] [stdout] 588 + .bind::(days), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 568 ~ diesel::RunQueryDsl::load(sql_query(format!( [INFO] [stdout] 569 + r#" [INFO] [stdout] 570 + SELECT [INFO] [stdout] 571 + time_bucket('{}', n.creation) AS bucket, [INFO] [stdout] 572 + AVG(ts.tsentiment) as avg_sentiment, [INFO] [stdout] 573 + AVG(ts.relevance) as avg_relevance, [INFO] [stdout] 574 + COUNT(*)::bigint as mention_count, [INFO] [stdout] 575 + SUM(CASE WHEN ts.sentiment_label = 'Bullish' THEN 1 ELSE 0 END)::float8 / [INFO] [stdout] 576 + NULLIF(COUNT(*), 0) as bullish_ratio [INFO] [stdout] 577 + FROM tickersentiments ts [INFO] [stdout] 578 + JOIN feeds f ON ts.feedid = f.id [INFO] [stdout] 579 + JOIN newsoverviews n ON f.newsoverviewid = n.id [INFO] [stdout] 580 + WHERE ts.sid = $1 [INFO] [stdout] 581 + AND n.creation >= NOW() - INTERVAL '1 day' * $2 [INFO] [stdout] 582 + GROUP BY bucket [INFO] [stdout] 583 + ORDER BY bucket DESC [INFO] [stdout] 584 + "#, [INFO] [stdout] 585 + bucket_size [INFO] [stdout] 586 + )) [INFO] [stdout] 587 + .bind::(sid) [INFO] [stdout] 588 + .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:624:8 [INFO] [stdout] | [INFO] [stdout] 624 | .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] 621 ~ if let Some(topic) = diesel_async::RunQueryDsl::first(topicrefs::table [INFO] [stdout] 622 + .filter(topicrefs::name.eq(name)) [INFO] [stdout] 623 + .select(topicrefs::id), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 621 ~ if let Some(topic) = diesel::RunQueryDsl::first(topicrefs::table [INFO] [stdout] 622 + .filter(topicrefs::name.eq(name)) [INFO] [stdout] 623 + .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:621:26 [INFO] [stdout] | [INFO] [stdout] 621 | if let Some(topic) = topicrefs::table [INFO] [stdout] | __________________________^ [INFO] [stdout] 622 | | .filter(topicrefs::name.eq(name)) [INFO] [stdout] 623 | | .select(topicrefs::id) [INFO] [stdout] 624 | | .first::(conn) [INFO] [stdout] 625 | | .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:634:8 [INFO] [stdout] | [INFO] [stdout] 634 | .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] 631 ~ diesel::RunQueryDsl::get_result(insert_into(topicrefs::table) [INFO] [stdout] 632 + .values(NewTopicRef { name }) [INFO] [stdout] 633 + .returning(topicrefs::id), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 631 ~ diesel_async::RunQueryDsl::get_result(insert_into(topicrefs::table) [INFO] [stdout] 632 + .values(NewTopicRef { name }) [INFO] [stdout] 633 + .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:679:66 [INFO] [stdout] | [INFO] [stdout] 679 | 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] 679 - let inserted = insert_into(topicmaps::table).values(chunk).execute(conn).await?; [INFO] [stdout] 679 + 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] 679 - let inserted = insert_into(topicmaps::table).values(chunk).execute(conn).await?; [INFO] [stdout] 679 + 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:716:6 [INFO] [stdout] | [INFO] [stdout] 716 | .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] 696 ~ diesel_async::RunQueryDsl::load(sql_query( [INFO] [stdout] 697 + r#" [INFO] [stdout] 698 + SELECT [INFO] [stdout] 699 + tr.name as topic_name, [INFO] [stdout] 700 + COUNT(*)::bigint as mention_count, [INFO] [stdout] 701 + AVG(tm.relscore) as avg_relevance, [INFO] [stdout] 702 + AVG(f.osentiment) as avg_sentiment, [INFO] [stdout] 703 + COUNT(DISTINCT tm.sid)::bigint as unique_symbols [INFO] [stdout] 704 + FROM topicmaps tm [INFO] [stdout] 705 + JOIN topicrefs tr ON tm.topicid = tr.id [INFO] [stdout] 706 + JOIN feeds f ON tm.feedid = f.id [INFO] [stdout] 707 + JOIN newsoverviews n ON f.newsoverviewid = n.id [INFO] [stdout] 708 + WHERE n.creation >= NOW() - INTERVAL '1 day' * $1 [INFO] [stdout] 709 + GROUP BY tr.name [INFO] [stdout] 710 + ORDER BY mention_count DESC [INFO] [stdout] 711 + LIMIT $2 [INFO] [stdout] 712 + "#, [INFO] [stdout] 713 + ) [INFO] [stdout] 714 + .bind::(days) [INFO] [stdout] 715 + .bind::(limit), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 696 ~ diesel::RunQueryDsl::load(sql_query( [INFO] [stdout] 697 + r#" [INFO] [stdout] 698 + SELECT [INFO] [stdout] 699 + tr.name as topic_name, [INFO] [stdout] 700 + COUNT(*)::bigint as mention_count, [INFO] [stdout] 701 + AVG(tm.relscore) as avg_relevance, [INFO] [stdout] 702 + AVG(f.osentiment) as avg_sentiment, [INFO] [stdout] 703 + COUNT(DISTINCT tm.sid)::bigint as unique_symbols [INFO] [stdout] 704 + FROM topicmaps tm [INFO] [stdout] 705 + JOIN topicrefs tr ON tm.topicid = tr.id [INFO] [stdout] 706 + JOIN feeds f ON tm.feedid = f.id [INFO] [stdout] 707 + JOIN newsoverviews n ON f.newsoverviewid = n.id [INFO] [stdout] 708 + WHERE n.creation >= NOW() - INTERVAL '1 day' * $1 [INFO] [stdout] 709 + GROUP BY tr.name [INFO] [stdout] 710 + ORDER BY mention_count DESC [INFO] [stdout] 711 + LIMIT $2 [INFO] [stdout] 712 + "#, [INFO] [stdout] 713 + ) [INFO] [stdout] 714 + .bind::(days) [INFO] [stdout] 715 + .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:758:6 [INFO] [stdout] | [INFO] [stdout] 758 | .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] 735 ~ let result = diesel_async::RunQueryDsl::get_result(sql_query( [INFO] [stdout] 736 + r#" [INFO] [stdout] 737 + WITH topic_feeds AS ( [INFO] [stdout] 738 + SELECT [INFO] [stdout] 739 + tm.feedid, [INFO] [stdout] 740 + MAX(CASE WHEN tr.name = $1 THEN 1 ELSE 0 END) as has_topic1, [INFO] [stdout] 741 + MAX(CASE WHEN tr.name = $2 THEN 1 ELSE 0 END) as has_topic2 [INFO] [stdout] 742 + FROM topicmaps tm [INFO] [stdout] 743 + JOIN topicrefs tr ON tm.topicid = tr.id [INFO] [stdout] 744 + JOIN feeds f ON tm.feedid = f.id [INFO] [stdout] 745 + JOIN newsoverviews n ON f.newsoverviewid = n.id [INFO] [stdout] 746 + WHERE n.creation >= NOW() - INTERVAL '1 day' * $3 [INFO] [stdout] 747 + AND tr.name IN ($1, $2) [INFO] [stdout] 748 + GROUP BY tm.feedid [INFO] [stdout] 749 + ) [INFO] [stdout] 750 + SELECT [INFO] [stdout] 751 + CORR(has_topic1::float8, has_topic2::float8) as correlation [INFO] [stdout] 752 + FROM topic_feeds [INFO] [stdout] 753 + "#, [INFO] [stdout] 754 + ) [INFO] [stdout] 755 + .bind::(topic1) [INFO] [stdout] 756 + .bind::(topic2) [INFO] [stdout] 757 + .bind::(days), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 735 ~ let result = diesel::RunQueryDsl::get_result(sql_query( [INFO] [stdout] 736 + r#" [INFO] [stdout] 737 + WITH topic_feeds AS ( [INFO] [stdout] 738 + SELECT [INFO] [stdout] 739 + tm.feedid, [INFO] [stdout] 740 + MAX(CASE WHEN tr.name = $1 THEN 1 ELSE 0 END) as has_topic1, [INFO] [stdout] 741 + MAX(CASE WHEN tr.name = $2 THEN 1 ELSE 0 END) as has_topic2 [INFO] [stdout] 742 + FROM topicmaps tm [INFO] [stdout] 743 + JOIN topicrefs tr ON tm.topicid = tr.id [INFO] [stdout] 744 + JOIN feeds f ON tm.feedid = f.id [INFO] [stdout] 745 + JOIN newsoverviews n ON f.newsoverviewid = n.id [INFO] [stdout] 746 + WHERE n.creation >= NOW() - INTERVAL '1 day' * $3 [INFO] [stdout] 747 + AND tr.name IN ($1, $2) [INFO] [stdout] 748 + GROUP BY tm.feedid [INFO] [stdout] 749 + ) [INFO] [stdout] 750 + SELECT [INFO] [stdout] 751 + CORR(has_topic1::float8, has_topic2::float8) as correlation [INFO] [stdout] 752 + FROM topic_feeds [INFO] [stdout] 753 + "#, [INFO] [stdout] 754 + ) [INFO] [stdout] 755 + .bind::(topic1) [INFO] [stdout] 756 + .bind::(topic2) [INFO] [stdout] 757 + .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:794:14 [INFO] [stdout] | [INFO] [stdout] 794 | .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] 786 ~ let overview_id = diesel::RunQueryDsl::get_result(insert_into(newsoverviews::table) [INFO] [stdout] 787 + .values(NewNewsOverview { [INFO] [stdout] 788 + creation: &news.timestamp, [INFO] [stdout] 789 + sid: &news.sid, [INFO] [stdout] 790 + items: &(news.items.len() as i32), [INFO] [stdout] 791 + hashid: &news.hash_id, [INFO] [stdout] 792 + }) [INFO] [stdout] 793 + .returning(newsoverviews::id), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 786 ~ let overview_id = diesel_async::RunQueryDsl::get_result(insert_into(newsoverviews::table) [INFO] [stdout] 787 + .values(NewNewsOverview { [INFO] [stdout] 788 + creation: &news.timestamp, [INFO] [stdout] 789 + sid: &news.sid, [INFO] [stdout] 790 + items: &(news.items.len() as i32), [INFO] [stdout] 791 + hashid: &news.hash_id, [INFO] [stdout] 792 + }) [INFO] [stdout] 793 + .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:832:18 [INFO] [stdout] | [INFO] [stdout] 832 | .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] 809 ~ diesel::RunQueryDsl::execute(insert_into(articles::table) [INFO] [stdout] 810 + .values(NewArticle { [INFO] [stdout] 811 + hashid: &item.article_hash, [INFO] [stdout] 812 + sourceid: &source_id, [INFO] [stdout] 813 + category: &item.category, [INFO] [stdout] 814 + title: &item.title, [INFO] [stdout] 815 + url: &item.url, [INFO] [stdout] 816 + summary: &item.summary, [INFO] [stdout] 817 + banner: &item.banner_url, [INFO] [stdout] 818 + author: &author_id, [INFO] [stdout] 819 + ct: &item.published_time, [INFO] [stdout] 820 + // Map available data to new fields intelligently [INFO] [stdout] 821 + source_link: item.source_link.as_deref(), [INFO] [stdout] 822 + release_time: item.release_time.as_ref(), [INFO] [stdout] 823 + author_description: item.author_description.as_deref(), [INFO] [stdout] 824 + author_avatar_url: item.author_avatar_url.as_deref(), [INFO] [stdout] 825 + feature_image: item.feature_image.as_deref().or(if !item.banner_url.is_empty() { [INFO] [stdout] 826 + Some(&item.banner_url) [INFO] [stdout] 827 + } else { [INFO] [stdout] 828 + None [INFO] [stdout] 829 + }), [INFO] [stdout] 830 + author_nick_name: item.author_nick_name.as_deref(), [INFO] [stdout] 831 + }), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 809 ~ diesel_async::RunQueryDsl::execute(insert_into(articles::table) [INFO] [stdout] 810 + .values(NewArticle { [INFO] [stdout] 811 + hashid: &item.article_hash, [INFO] [stdout] 812 + sourceid: &source_id, [INFO] [stdout] 813 + category: &item.category, [INFO] [stdout] 814 + title: &item.title, [INFO] [stdout] 815 + url: &item.url, [INFO] [stdout] 816 + summary: &item.summary, [INFO] [stdout] 817 + banner: &item.banner_url, [INFO] [stdout] 818 + author: &author_id, [INFO] [stdout] 819 + ct: &item.published_time, [INFO] [stdout] 820 + // Map available data to new fields intelligently [INFO] [stdout] 821 + source_link: item.source_link.as_deref(), [INFO] [stdout] 822 + release_time: item.release_time.as_ref(), [INFO] [stdout] 823 + author_description: item.author_description.as_deref(), [INFO] [stdout] 824 + author_avatar_url: item.author_avatar_url.as_deref(), [INFO] [stdout] 825 + feature_image: item.feature_image.as_deref().or(if !item.banner_url.is_empty() { [INFO] [stdout] 826 + Some(&item.banner_url) [INFO] [stdout] 827 + } else { [INFO] [stdout] 828 + None [INFO] [stdout] 829 + }), [INFO] [stdout] 830 + author_nick_name: item.author_nick_name.as_deref(), [INFO] [stdout] 831 + }), 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:848:16 [INFO] [stdout] | [INFO] [stdout] 848 | .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] 838 ~ let feed_id = diesel::RunQueryDsl::get_result(insert_into(feeds::table) [INFO] [stdout] 839 + .values(NewFeed { [INFO] [stdout] 840 + sid: &news.sid, [INFO] [stdout] 841 + newsoverviewid: &overview_id, [INFO] [stdout] 842 + articleid: &item.article_hash, [INFO] [stdout] 843 + sourceid: &source_id, [INFO] [stdout] 844 + osentiment: &item.overall_sentiment_score, [INFO] [stdout] 845 + sentlabel: &item.overall_sentiment_label, [INFO] [stdout] 846 + }) [INFO] [stdout] 847 + .returning(feeds::id), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 838 ~ let feed_id = diesel_async::RunQueryDsl::get_result(insert_into(feeds::table) [INFO] [stdout] 839 + .values(NewFeed { [INFO] [stdout] 840 + sid: &news.sid, [INFO] [stdout] 841 + newsoverviewid: &overview_id, [INFO] [stdout] 842 + articleid: &item.article_hash, [INFO] [stdout] 843 + sourceid: &source_id, [INFO] [stdout] 844 + osentiment: &item.overall_sentiment_score, [INFO] [stdout] 845 + sentlabel: &item.overall_sentiment_label, [INFO] [stdout] 846 + }) [INFO] [stdout] 847 + .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:855:16 [INFO] [stdout] | [INFO] [stdout] 855 | .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] 853 ~ diesel::RunQueryDsl::execute(insert_into(authormaps::table) [INFO] [stdout] 854 + .values(NewAuthorMap { feedid: &feed_id, authorid: &author_id }), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 853 ~ diesel_async::RunQueryDsl::execute(insert_into(authormaps::table) [INFO] [stdout] 854 + .values(NewAuthorMap { feedid: &feed_id, authorid: &author_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:868:18 [INFO] [stdout] | [INFO] [stdout] 868 | .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] 860 ~ diesel::RunQueryDsl::execute(insert_into(tickersentiments::table) [INFO] [stdout] 861 + .values(NewTickerSentiment { [INFO] [stdout] 862 + feedid: &feed_id, [INFO] [stdout] 863 + sid: &ticker_sent.sid, [INFO] [stdout] 864 + relevance: &ticker_sent.relevance_score, [INFO] [stdout] 865 + tsentiment: &ticker_sent.sentiment_score, [INFO] [stdout] 866 + sentiment_label: &ticker_sent.sentiment_label, [INFO] [stdout] 867 + }), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 860 ~ diesel_async::RunQueryDsl::execute(insert_into(tickersentiments::table) [INFO] [stdout] 861 + .values(NewTickerSentiment { [INFO] [stdout] 862 + feedid: &feed_id, [INFO] [stdout] 863 + sid: &ticker_sent.sid, [INFO] [stdout] 864 + relevance: &ticker_sent.relevance_score, [INFO] [stdout] 865 + tsentiment: &ticker_sent.sentiment_score, [INFO] [stdout] 866 + sentiment_label: &ticker_sent.sentiment_label, [INFO] [stdout] 867 + }), 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:884:18 [INFO] [stdout] | [INFO] [stdout] 884 | .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] 877 ~ diesel::RunQueryDsl::execute(insert_into(topicmaps::table) [INFO] [stdout] 878 + .values(NewTopicMap { [INFO] [stdout] 879 + sid: &news.sid, [INFO] [stdout] 880 + feedid: &feed_id, [INFO] [stdout] 881 + topicid: &topic_id, [INFO] [stdout] 882 + relscore: &topic.relevance_score, [INFO] [stdout] 883 + }), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 877 ~ diesel_async::RunQueryDsl::execute(insert_into(topicmaps::table) [INFO] [stdout] 878 + .values(NewTopicMap { [INFO] [stdout] 879 + sid: &news.sid, [INFO] [stdout] 880 + feedid: &feed_id, [INFO] [stdout] 881 + topicid: &topic_id, [INFO] [stdout] 882 + relscore: &topic.relevance_score, [INFO] [stdout] 883 + }), 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:81:71 [INFO] [stdout] | [INFO] [stdout] 81 | 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] 81 - let inserted = insert_into(intradayprices::table).values(chunk).execute(conn).await?; [INFO] [stdout] 81 + 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] 81 - let inserted = insert_into(intradayprices::table).values(chunk).execute(conn).await?; [INFO] [stdout] 81 + 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:142:6 [INFO] [stdout] | [INFO] [stdout] 142 | .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] 120 ~ diesel_async::RunQueryDsl::load(sql_query(format!( [INFO] [stdout] 121 + r#" [INFO] [stdout] 122 + SELECT [INFO] [stdout] 123 + time_bucket('{}', tstamp) AS bucket, [INFO] [stdout] 124 + symbol, [INFO] [stdout] 125 + first(open, tstamp) AS open, [INFO] [stdout] 126 + max(high) AS high, [INFO] [stdout] 127 + min(low) AS low, [INFO] [stdout] 128 + last(close, tstamp) AS close, [INFO] [stdout] 129 + sum(volume) AS volume [INFO] [stdout] 130 + FROM intradayprices [INFO] [stdout] 131 + WHERE symbol = $1 [INFO] [stdout] 132 + AND tstamp >= $2 [INFO] [stdout] 133 + AND tstamp <= $3 [INFO] [stdout] 134 + GROUP BY bucket, symbol [INFO] [stdout] 135 + ORDER BY bucket DESC [INFO] [stdout] 136 + "#, [INFO] [stdout] 137 + bucket_size [INFO] [stdout] 138 + )) [INFO] [stdout] 139 + .bind::(symbol) [INFO] [stdout] 140 + .bind::(start) [INFO] [stdout] 141 + .bind::(end), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 120 ~ diesel::RunQueryDsl::load(sql_query(format!( [INFO] [stdout] 121 + r#" [INFO] [stdout] 122 + SELECT [INFO] [stdout] 123 + time_bucket('{}', tstamp) AS bucket, [INFO] [stdout] 124 + symbol, [INFO] [stdout] 125 + first(open, tstamp) AS open, [INFO] [stdout] 126 + max(high) AS high, [INFO] [stdout] 127 + min(low) AS low, [INFO] [stdout] 128 + last(close, tstamp) AS close, [INFO] [stdout] 129 + sum(volume) AS volume [INFO] [stdout] 130 + FROM intradayprices [INFO] [stdout] 131 + WHERE symbol = $1 [INFO] [stdout] 132 + AND tstamp >= $2 [INFO] [stdout] 133 + AND tstamp <= $3 [INFO] [stdout] 134 + GROUP BY bucket, symbol [INFO] [stdout] 135 + ORDER BY bucket DESC [INFO] [stdout] 136 + "#, [INFO] [stdout] 137 + bucket_size [INFO] [stdout] 138 + )) [INFO] [stdout] 139 + .bind::(symbol) [INFO] [stdout] 140 + .bind::(start) [INFO] [stdout] 141 + .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:221:70 [INFO] [stdout] | [INFO] [stdout] 221 | 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] 221 - let inserted = insert_into(summaryprices::table).values(chunk).execute(conn).await?; [INFO] [stdout] 221 + 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] 221 - let inserted = insert_into(summaryprices::table).values(chunk).execute(conn).await?; [INFO] [stdout] 221 + 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:256:70 [INFO] [stdout] | [INFO] [stdout] 256 | 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] 256 - let inserted = insert_into(summaryprices::table).values(chunk).execute(conn).await?; [INFO] [stdout] 256 + 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] 256 - let inserted = insert_into(summaryprices::table).values(chunk).execute(conn).await?; [INFO] [stdout] 256 + 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:273:8 [INFO] [stdout] | [INFO] [stdout] 273 | .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] 270 ~ diesel_async::RunQueryDsl::first(summaryprices::table [INFO] [stdout] 271 + .filter(summaryprices::symbol.eq(symbol)) [INFO] [stdout] 272 + .order(summaryprices::date.desc()), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 270 ~ diesel::RunQueryDsl::first(summaryprices::table [INFO] [stdout] 271 + .filter(summaryprices::symbol.eq(symbol)) [INFO] [stdout] 272 + .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:289:8 [INFO] [stdout] | [INFO] [stdout] 289 | .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] 284 ~ diesel_async::RunQueryDsl::load(summaryprices::table [INFO] [stdout] 285 + .filter(summaryprices::symbol.eq(symbol)) [INFO] [stdout] 286 + .filter(summaryprices::date.ge(start_date)) [INFO] [stdout] 287 + .filter(summaryprices::date.le(end_date)) [INFO] [stdout] 288 + .order(summaryprices::date.desc()), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 284 ~ diesel::RunQueryDsl::load(summaryprices::table [INFO] [stdout] 285 + .filter(summaryprices::symbol.eq(symbol)) [INFO] [stdout] 286 + .filter(summaryprices::date.ge(start_date)) [INFO] [stdout] 287 + .filter(summaryprices::date.le(end_date)) [INFO] [stdout] 288 + .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:325:6 [INFO] [stdout] | [INFO] [stdout] 325 | .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] 303 ~ diesel_async::RunQueryDsl::load(sql_query( [INFO] [stdout] 304 + r#" [INFO] [stdout] 305 + SELECT [INFO] [stdout] 306 + date, [INFO] [stdout] 307 + close, [INFO] [stdout] 308 + AVG(close) OVER ( [INFO] [stdout] 309 + ORDER BY date [INFO] [stdout] 310 + ROWS BETWEEN $3 PRECEDING AND CURRENT ROW [INFO] [stdout] 311 + ) as ma, [INFO] [stdout] 312 + AVG(volume::float4) OVER ( [INFO] [stdout] 313 + ORDER BY date [INFO] [stdout] 314 + ROWS BETWEEN $3 PRECEDING AND CURRENT ROW [INFO] [stdout] 315 + ) as volume_ma [INFO] [stdout] 316 + FROM summaryprices [INFO] [stdout] 317 + WHERE symbol = $1 [INFO] [stdout] 318 + AND date >= CURRENT_DATE - INTERVAL '1 day' * $2 [INFO] [stdout] 319 + ORDER BY date DESC [INFO] [stdout] 320 + "#, [INFO] [stdout] 321 + ) [INFO] [stdout] 322 + .bind::(symbol) [INFO] [stdout] 323 + .bind::(days) [INFO] [stdout] 324 + .bind::(ma_period - 1), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 303 ~ diesel::RunQueryDsl::load(sql_query( [INFO] [stdout] 304 + r#" [INFO] [stdout] 305 + SELECT [INFO] [stdout] 306 + date, [INFO] [stdout] 307 + close, [INFO] [stdout] 308 + AVG(close) OVER ( [INFO] [stdout] 309 + ORDER BY date [INFO] [stdout] 310 + ROWS BETWEEN $3 PRECEDING AND CURRENT ROW [INFO] [stdout] 311 + ) as ma, [INFO] [stdout] 312 + AVG(volume::float4) OVER ( [INFO] [stdout] 313 + ORDER BY date [INFO] [stdout] 314 + ROWS BETWEEN $3 PRECEDING AND CURRENT ROW [INFO] [stdout] 315 + ) as volume_ma [INFO] [stdout] 316 + FROM summaryprices [INFO] [stdout] 317 + WHERE symbol = $1 [INFO] [stdout] 318 + AND date >= CURRENT_DATE - INTERVAL '1 day' * $2 [INFO] [stdout] 319 + ORDER BY date DESC [INFO] [stdout] 320 + "#, [INFO] [stdout] 321 + ) [INFO] [stdout] 322 + .bind::(symbol) [INFO] [stdout] 323 + .bind::(days) [INFO] [stdout] 324 + .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:413:65 [INFO] [stdout] | [INFO] [stdout] 413 | 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] 413 - let inserted = insert_into(topstats::table).values(chunk).execute(conn).await?; [INFO] [stdout] 413 + 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] 413 - let inserted = insert_into(topstats::table).values(chunk).execute(conn).await?; [INFO] [stdout] 413 + 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:445:65 [INFO] [stdout] | [INFO] [stdout] 445 | 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] 445 - let inserted = insert_into(topstats::table).values(chunk).execute(conn).await?; [INFO] [stdout] 445 + 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] 445 - let inserted = insert_into(topstats::table).values(chunk).execute(conn).await?; [INFO] [stdout] 445 + 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:465:8 [INFO] [stdout] | [INFO] [stdout] 465 | .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] 460 ~ diesel_async::RunQueryDsl::load(topstats::table [INFO] [stdout] 461 + .filter(topstats::event_type.eq(event_type)) [INFO] [stdout] 462 + .filter(topstats::date.ge(chrono::Utc::now() - chrono::Duration::days(1))) [INFO] [stdout] 463 + .order(topstats::change_pct.desc()) [INFO] [stdout] 464 + .limit(limit), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 460 ~ diesel::RunQueryDsl::load(topstats::table [INFO] [stdout] 461 + .filter(topstats::event_type.eq(event_type)) [INFO] [stdout] 462 + .filter(topstats::date.ge(chrono::Utc::now() - chrono::Duration::days(1))) [INFO] [stdout] 463 + .order(topstats::change_pct.desc()) [INFO] [stdout] 464 + .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:483:8 [INFO] [stdout] | [INFO] [stdout] 483 | .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] 479 ~ let total = diesel_async::RunQueryDsl::get_result(topstats::table [INFO] [stdout] 480 + .filter(topstats::event_type.eq(event_type)) [INFO] [stdout] 481 + .filter(topstats::date.ge(chrono::Utc::now() - chrono::Duration::days(1))) [INFO] [stdout] 482 + .count(), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 479 ~ let total = diesel::RunQueryDsl::get_result(topstats::table [INFO] [stdout] 480 + .filter(topstats::event_type.eq(event_type)) [INFO] [stdout] 481 + .filter(topstats::date.ge(chrono::Utc::now() - chrono::Duration::days(1))) [INFO] [stdout] 482 + .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:493:8 [INFO] [stdout] | [INFO] [stdout] 493 | .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] 487 ~ let results = diesel_async::RunQueryDsl::load(topstats::table [INFO] [stdout] 488 + .filter(topstats::event_type.eq(event_type)) [INFO] [stdout] 489 + .filter(topstats::date.ge(chrono::Utc::now() - chrono::Duration::days(1))) [INFO] [stdout] 490 + .order(topstats::change_pct.desc()) [INFO] [stdout] 491 + .limit(per_page) [INFO] [stdout] 492 + .offset(offset), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 487 ~ let results = diesel::RunQueryDsl::load(topstats::table [INFO] [stdout] 488 + .filter(topstats::event_type.eq(event_type)) [INFO] [stdout] 489 + .filter(topstats::date.ge(chrono::Utc::now() - chrono::Duration::days(1))) [INFO] [stdout] 490 + .order(topstats::change_pct.desc()) [INFO] [stdout] 491 + .limit(per_page) [INFO] [stdout] 492 + .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:540:6 [INFO] [stdout] | [INFO] [stdout] 540 | .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] 509 ~ diesel_async::RunQueryDsl::load(sql_query(format!( [INFO] [stdout] 510 + r#" [INFO] [stdout] 511 + WITH bucketed_stats AS ( [INFO] [stdout] 512 + SELECT [INFO] [stdout] 513 + time_bucket('{}', date) AS bucket, [INFO] [stdout] 514 + event_type, [INFO] [stdout] 515 + symbol, [INFO] [stdout] 516 + change_pct, [INFO] [stdout] 517 + ROW_NUMBER() OVER ( [INFO] [stdout] 518 + PARTITION BY time_bucket('{}', date), event_type [INFO] [stdout] 519 + ORDER BY change_pct DESC [INFO] [stdout] 520 + ) as rn [INFO] [stdout] 521 + FROM topstats [INFO] [stdout] 522 + WHERE event_type = $1 [INFO] [stdout] 523 + AND date >= NOW() - INTERVAL '1 day' * $2 [INFO] [stdout] 524 + ) [INFO] [stdout] 525 + SELECT [INFO] [stdout] 526 + bucket, [INFO] [stdout] 527 + event_type, [INFO] [stdout] 528 + COUNT(*)::integer as mover_count, [INFO] [stdout] 529 + AVG(change_pct) as avg_change_pct, [INFO] [stdout] 530 + MAX(change_pct) as max_change_pct, [INFO] [stdout] 531 + MAX(CASE WHEN rn = 1 THEN symbol END) as top_symbol [INFO] [stdout] 532 + FROM bucketed_stats [INFO] [stdout] 533 + GROUP BY bucket, event_type [INFO] [stdout] 534 + ORDER BY bucket DESC [INFO] [stdout] 535 + "#, [INFO] [stdout] 536 + bucket_size, bucket_size [INFO] [stdout] 537 + )) [INFO] [stdout] 538 + .bind::(event_type) [INFO] [stdout] 539 + .bind::(days_back), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 509 ~ diesel::RunQueryDsl::load(sql_query(format!( [INFO] [stdout] 510 + r#" [INFO] [stdout] 511 + WITH bucketed_stats AS ( [INFO] [stdout] 512 + SELECT [INFO] [stdout] 513 + time_bucket('{}', date) AS bucket, [INFO] [stdout] 514 + event_type, [INFO] [stdout] 515 + symbol, [INFO] [stdout] 516 + change_pct, [INFO] [stdout] 517 + ROW_NUMBER() OVER ( [INFO] [stdout] 518 + PARTITION BY time_bucket('{}', date), event_type [INFO] [stdout] 519 + ORDER BY change_pct DESC [INFO] [stdout] 520 + ) as rn [INFO] [stdout] 521 + FROM topstats [INFO] [stdout] 522 + WHERE event_type = $1 [INFO] [stdout] 523 + AND date >= NOW() - INTERVAL '1 day' * $2 [INFO] [stdout] 524 + ) [INFO] [stdout] 525 + SELECT [INFO] [stdout] 526 + bucket, [INFO] [stdout] 527 + event_type, [INFO] [stdout] 528 + COUNT(*)::integer as mover_count, [INFO] [stdout] 529 + AVG(change_pct) as avg_change_pct, [INFO] [stdout] 530 + MAX(change_pct) as max_change_pct, [INFO] [stdout] 531 + MAX(CASE WHEN rn = 1 THEN symbol END) as top_symbol [INFO] [stdout] 532 + FROM bucketed_stats [INFO] [stdout] 533 + GROUP BY bucket, event_type [INFO] [stdout] 534 + ORDER BY bucket DESC [INFO] [stdout] 535 + "#, [INFO] [stdout] 536 + bucket_size, bucket_size [INFO] [stdout] 537 + )) [INFO] [stdout] 538 + .bind::(event_type) [INFO] [stdout] 539 + .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:568:6 [INFO] [stdout] | [INFO] [stdout] 568 | .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] 552 ~ diesel_async::RunQueryDsl::load(sql_query( [INFO] [stdout] 553 + r#" [INFO] [stdout] 554 + SELECT [INFO] [stdout] 555 + o.sector, [INFO] [stdout] 556 + COUNT(CASE WHEN t.event_type = 'gainers' THEN 1 END)::integer as gainer_count, [INFO] [stdout] 557 + COUNT(CASE WHEN t.event_type = 'losers' THEN 1 END)::integer as loser_count, [INFO] [stdout] 558 + AVG(CASE WHEN t.event_type = 'gainers' THEN t.change_pct END) as avg_gain, [INFO] [stdout] 559 + AVG(CASE WHEN t.event_type = 'losers' THEN t.change_pct END) as avg_loss [INFO] [stdout] 560 + FROM topstats t [INFO] [stdout] 561 + JOIN overviews o ON t.sid = o.sid [INFO] [stdout] 562 + WHERE t.date = $1 [INFO] [stdout] 563 + GROUP BY o.sector [INFO] [stdout] 564 + ORDER BY gainer_count DESC [INFO] [stdout] 565 + "#, [INFO] [stdout] 566 + ) [INFO] [stdout] 567 + .bind::(date), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 552 ~ diesel::RunQueryDsl::load(sql_query( [INFO] [stdout] 553 + r#" [INFO] [stdout] 554 + SELECT [INFO] [stdout] 555 + o.sector, [INFO] [stdout] 556 + COUNT(CASE WHEN t.event_type = 'gainers' THEN 1 END)::integer as gainer_count, [INFO] [stdout] 557 + COUNT(CASE WHEN t.event_type = 'losers' THEN 1 END)::integer as loser_count, [INFO] [stdout] 558 + AVG(CASE WHEN t.event_type = 'gainers' THEN t.change_pct END) as avg_gain, [INFO] [stdout] 559 + AVG(CASE WHEN t.event_type = 'losers' THEN t.change_pct END) as avg_loss [INFO] [stdout] 560 + FROM topstats t [INFO] [stdout] 561 + JOIN overviews o ON t.sid = o.sid [INFO] [stdout] 562 + WHERE t.date = $1 [INFO] [stdout] 563 + GROUP BY o.sector [INFO] [stdout] 564 + ORDER BY gainer_count DESC [INFO] [stdout] 565 + "#, [INFO] [stdout] 566 + ) [INFO] [stdout] 567 + .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:78:30 [INFO] [stdout] | [INFO] [stdout] 78 | 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] 78 - symbols::table.find(sid).first(conn).await [INFO] [stdout] 78 + 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] 78 - symbols::table.find(sid).first(conn).await [INFO] [stdout] 78 + 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:85:55 [INFO] [stdout] | [INFO] [stdout] 85 | 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] 85 - symbols::table.filter(symbols::symbol.eq(symbol)).first(conn).await [INFO] [stdout] 85 + 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] 85 - symbols::table.filter(symbols::symbol.eq(symbol)).first(conn).await [INFO] [stdout] 85 + 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:95:8 [INFO] [stdout] | [INFO] [stdout] 95 | .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] 91 ~ diesel_async::RunQueryDsl::load(symbols::table [INFO] [stdout] 92 + .filter(symbols::overview.eq(true)) [INFO] [stdout] 93 + .or_filter(symbols::intraday.eq(true)) [INFO] [stdout] 94 + .or_filter(symbols::summary.eq(true)), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 91 ~ diesel::RunQueryDsl::load(symbols::table [INFO] [stdout] 92 + .filter(symbols::overview.eq(true)) [INFO] [stdout] 93 + .or_filter(symbols::intraday.eq(true)) [INFO] [stdout] 94 + .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:166:32 [INFO] [stdout] | [INFO] [stdout] 166 | 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] 166 - overviews::table.find(sid).first(conn).await [INFO] [stdout] 166 + 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] 166 - overviews::table.find(sid).first(conn).await [INFO] [stdout] 166 + 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:173:59 [INFO] [stdout] | [INFO] [stdout] 173 | 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] 173 - overviews::table.filter(overviews::symbol.eq(symbol)).first(conn).await [INFO] [stdout] 173 + 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] 173 - overviews::table.filter(overviews::symbol.eq(symbol)).first(conn).await [INFO] [stdout] 173 + 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:180:59 [INFO] [stdout] | [INFO] [stdout] 180 | 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] 180 - overviews::table.filter(overviews::sector.eq(sector)).load(conn).await [INFO] [stdout] 180 + 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] 180 - overviews::table.filter(overviews::sector.eq(sector)).load(conn).await [INFO] [stdout] 180 + 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:260:35 [INFO] [stdout] | [INFO] [stdout] 260 | 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] 260 - overviewexts::table.find(sid).first(conn).await [INFO] [stdout] 260 + 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] 260 - overviewexts::table.find(sid).first(conn).await [INFO] [stdout] 260 + 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:267:65 [INFO] [stdout] | [INFO] [stdout] 267 | 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] 267 - overviewexts::table.filter(overviewexts::beta.ge(min_beta)).load(conn).await [INFO] [stdout] 267 + 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] 267 - overviewexts::table.filter(overviewexts::beta.ge(min_beta)).load(conn).await [INFO] [stdout] 267 + 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:273:75 [INFO] [stdout] | [INFO] [stdout] 273 | 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] 273 - overviewexts::table.filter(overviewexts::dividend_date.is_not_null()).load(conn).await [INFO] [stdout] 273 + 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] 273 - overviewexts::table.filter(overviewexts::dividend_date.is_not_null()).load(conn).await [INFO] [stdout] 273 + 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:537:37 [INFO] [stdout] | [INFO] [stdout] 537 | 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] 537 - equity_details::table.find(sid).first(conn).await [INFO] [stdout] 537 + 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] 537 - equity_details::table.find(sid).first(conn).await [INFO] [stdout] 537 + 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/security.rs:579:8 [INFO] [stdout] | [INFO] [stdout] 579 | .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] 576 ~ diesel_async::RunQueryDsl::first(symbol_mappings::table [INFO] [stdout] 577 + .filter(symbol_mappings::sid.eq(sid)) [INFO] [stdout] 578 + .filter(symbol_mappings::source_name.eq(source)), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 576 ~ diesel::RunQueryDsl::first(symbol_mappings::table [INFO] [stdout] 577 + .filter(symbol_mappings::sid.eq(sid)) [INFO] [stdout] 578 + .filter(symbol_mappings::source_name.eq(source)), 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:588:65 [INFO] [stdout] | [INFO] [stdout] 588 | symbol_mappings::table.filter(symbol_mappings::sid.eq(sid)).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] 588 - symbol_mappings::table.filter(symbol_mappings::sid.eq(sid)).load(conn).await [INFO] [stdout] 588 + diesel_async::RunQueryDsl::load(symbol_mappings::table.filter(symbol_mappings::sid.eq(sid)), conn).await [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 588 - symbol_mappings::table.filter(symbol_mappings::sid.eq(sid)).load(conn).await [INFO] [stdout] 588 + diesel::RunQueryDsl::load(symbol_mappings::table.filter(symbol_mappings::sid.eq(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:600:8 [INFO] [stdout] | [INFO] [stdout] 600 | .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] 597 ~ diesel_async::RunQueryDsl::first(symbol_mappings::table [INFO] [stdout] 598 + .filter(symbol_mappings::source_name.eq(source)) [INFO] [stdout] 599 + .filter(symbol_mappings::source_identifier.eq(identifier)), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 597 ~ diesel::RunQueryDsl::first(symbol_mappings::table [INFO] [stdout] 598 + .filter(symbol_mappings::source_name.eq(source)) [INFO] [stdout] 599 + .filter(symbol_mappings::source_identifier.eq(identifier)), 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:617:8 [INFO] [stdout] | [INFO] [stdout] 617 | .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 `UpdateStatement` [INFO] [stdout] help: disambiguate the method for candidate #1 [INFO] [stdout] | [INFO] [stdout] 612 ~ diesel_async::RunQueryDsl::get_result(diesel::update(symbol_mappings::table.find(mapping_id)) [INFO] [stdout] 613 + .set(( [INFO] [stdout] 614 + symbol_mappings::verified.eq(true), [INFO] [stdout] 615 + symbol_mappings::last_verified_at.eq(chrono::Utc::now().naive_utc()), [INFO] [stdout] 616 + )), conn) [INFO] [stdout] | [INFO] [stdout] help: disambiguate the method for candidate #2 [INFO] [stdout] | [INFO] [stdout] 612 ~ diesel::RunQueryDsl::get_result(diesel::update(symbol_mappings::table.find(mapping_id)) [INFO] [stdout] 613 + .set(( [INFO] [stdout] 614 + symbol_mappings::verified.eq(true), [INFO] [stdout] 615 + symbol_mappings::last_verified_at.eq(chrono::Utc::now().naive_utc()), [INFO] [stdout] 616 + )), conn) [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 57 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 57 previous errors [INFO] running `Command { std: "docker" "inspect" "b46a0166b4bc7e73de1135915f0f7d62f9a9399f27129076dc8dec4e908a8d51", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b46a0166b4bc7e73de1135915f0f7d62f9a9399f27129076dc8dec4e908a8d51", kill_on_drop: false }` [INFO] [stdout] b46a0166b4bc7e73de1135915f0f7d62f9a9399f27129076dc8dec4e908a8d51