[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<f64>,
[INFO] [stdout]    |   ^^^^^^^^
[INFO] [stdout] 79 |   dividend_yield: Option<f64>,
[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<String, f64>) {
[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<F, S, D, W, O, LOf, G, H, LC>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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::<SentimentSummary>(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<Query, Value, ST>`
[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::<BigInt, _>(sid)
[INFO] [stdout] 207 +     .bind::<Integer, _>(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::<BigInt, _>(sid)
[INFO] [stdout] 207 +     .bind::<Integer, _>(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<T, U, Op, Ret>`
[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<T, U, Op, Ret>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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::<i32>(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<F, S, D, W, O, LOf, G, H, LC>`
[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::<i32>(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<T, U, Op, Ret>`
[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::<i32>(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<F, S, D, W, O, LOf, G, H, LC>`
[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::<i32>(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<T, U, Op, Ret>`
[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<T, U, Op, Ret>`
[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::<SentimentTrend>(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<Query, Value, ST>`
[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::<BigInt, _>(sid)
[INFO] [stdout] 588 +     .bind::<Integer, _>(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::<BigInt, _>(sid)
[INFO] [stdout] 588 +     .bind::<Integer, _>(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::<i32>(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<F, S, D, W, O, LOf, G, H, LC>`
[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::<i32>(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<T, U, Op, Ret>`
[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<T, U, Op, Ret>`
[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::<TrendingTopic>(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<Query, Value, ST>`
[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::<Integer, _>(days)
[INFO] [stdout] 715 +     .bind::<BigInt, _>(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::<Integer, _>(days)
[INFO] [stdout] 715 +     .bind::<BigInt, _>(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::<Correlation>(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<Query, Value, ST>`
[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::<Text, _>(topic1)
[INFO] [stdout] 756 +     .bind::<Text, _>(topic2)
[INFO] [stdout] 757 +     .bind::<Integer, _>(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::<Text, _>(topic1)
[INFO] [stdout] 756 +     .bind::<Text, _>(topic2)
[INFO] [stdout] 757 +     .bind::<Integer, _>(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::<i32>(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<T, U, Op, Ret>`
[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<T, U, Op, Ret>`
[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::<i32>(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<T, U, Op, Ret>`
[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<T, U, Op, Ret>`
[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<T, U, Op, Ret>`
[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<T, U, Op, Ret>`
[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<T, U, Op, Ret>`
[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::<OhlcBucket>(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<Query, Value, ST>`
[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::<Text, _>(symbol)
[INFO] [stdout] 140 +     .bind::<Timestamptz, _>(start)
[INFO] [stdout] 141 +     .bind::<Timestamptz, _>(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::<Text, _>(symbol)
[INFO] [stdout] 140 +     .bind::<Timestamptz, _>(start)
[INFO] [stdout] 141 +     .bind::<Timestamptz, _>(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<T, U, Op, Ret>`
[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<T, U, Op, Ret>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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::<PriceWithMA>(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<Query, Value, ST>`
[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::<Text, _>(symbol)
[INFO] [stdout] 323 +     .bind::<Integer, _>(days)
[INFO] [stdout] 324 +     .bind::<Integer, _>(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::<Text, _>(symbol)
[INFO] [stdout] 323 +     .bind::<Integer, _>(days)
[INFO] [stdout] 324 +     .bind::<Integer, _>(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<T, U, Op, Ret>`
[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<T, U, Op, Ret>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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::<i64>(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<F, S, D, W, O, LOf, G, H, LC>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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::<HistoricalTopMover>(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<Query, Value, ST>`
[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::<Text, _>(event_type)
[INFO] [stdout] 539 +     .bind::<Integer, _>(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::<Text, _>(event_type)
[INFO] [stdout] 539 +     .bind::<Integer, _>(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::<SectorPerformance>(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<Query, Value, ST>`
[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::<Timestamptz, _>(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::<Timestamptz, _>(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<F, S, D, W, O, LOf, G, H, LC>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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<T, U, V, Ret>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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::<SentimentSummary>(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<Query, Value, ST>`
[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::<BigInt, _>(sid)
[INFO] [stdout] 207 +     .bind::<Integer, _>(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::<BigInt, _>(sid)
[INFO] [stdout] 207 +     .bind::<Integer, _>(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<T, U, Op, Ret>`
[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<T, U, Op, Ret>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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::<i32>(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<F, S, D, W, O, LOf, G, H, LC>`
[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::<i32>(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<T, U, Op, Ret>`
[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::<i32>(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<F, S, D, W, O, LOf, G, H, LC>`
[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::<i32>(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<T, U, Op, Ret>`
[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<T, U, Op, Ret>`
[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::<SentimentTrend>(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<Query, Value, ST>`
[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::<BigInt, _>(sid)
[INFO] [stdout] 588 +     .bind::<Integer, _>(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::<BigInt, _>(sid)
[INFO] [stdout] 588 +     .bind::<Integer, _>(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::<i32>(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<F, S, D, W, O, LOf, G, H, LC>`
[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::<i32>(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<T, U, Op, Ret>`
[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<T, U, Op, Ret>`
[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::<TrendingTopic>(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<Query, Value, ST>`
[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::<Integer, _>(days)
[INFO] [stdout] 715 +     .bind::<BigInt, _>(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::<Integer, _>(days)
[INFO] [stdout] 715 +     .bind::<BigInt, _>(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::<Correlation>(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<Query, Value, ST>`
[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::<Text, _>(topic1)
[INFO] [stdout] 756 +     .bind::<Text, _>(topic2)
[INFO] [stdout] 757 +     .bind::<Integer, _>(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::<Text, _>(topic1)
[INFO] [stdout] 756 +     .bind::<Text, _>(topic2)
[INFO] [stdout] 757 +     .bind::<Integer, _>(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::<i32>(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<T, U, Op, Ret>`
[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<T, U, Op, Ret>`
[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::<i32>(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<T, U, Op, Ret>`
[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<T, U, Op, Ret>`
[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<T, U, Op, Ret>`
[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<T, U, Op, Ret>`
[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<T, U, Op, Ret>`
[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::<OhlcBucket>(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<Query, Value, ST>`
[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::<Text, _>(symbol)
[INFO] [stdout] 140 +     .bind::<Timestamptz, _>(start)
[INFO] [stdout] 141 +     .bind::<Timestamptz, _>(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::<Text, _>(symbol)
[INFO] [stdout] 140 +     .bind::<Timestamptz, _>(start)
[INFO] [stdout] 141 +     .bind::<Timestamptz, _>(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<T, U, Op, Ret>`
[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<T, U, Op, Ret>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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::<PriceWithMA>(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<Query, Value, ST>`
[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::<Text, _>(symbol)
[INFO] [stdout] 323 +     .bind::<Integer, _>(days)
[INFO] [stdout] 324 +     .bind::<Integer, _>(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::<Text, _>(symbol)
[INFO] [stdout] 323 +     .bind::<Integer, _>(days)
[INFO] [stdout] 324 +     .bind::<Integer, _>(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<T, U, Op, Ret>`
[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<T, U, Op, Ret>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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::<i64>(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<F, S, D, W, O, LOf, G, H, LC>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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::<HistoricalTopMover>(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<Query, Value, ST>`
[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::<Text, _>(event_type)
[INFO] [stdout] 539 +     .bind::<Integer, _>(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::<Text, _>(event_type)
[INFO] [stdout] 539 +     .bind::<Integer, _>(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::<SectorPerformance>(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<Query, Value, ST>`
[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::<Timestamptz, _>(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::<Timestamptz, _>(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<F, S, D, W, O, LOf, G, H, LC>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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<F, S, D, W, O, LOf, G, H, LC>`
[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<T, U, V, Ret>`
[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
