<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="ExDoc v0.40.1">
<meta name="project" content="deciduex v0.14.0-beta.3">
<title>Deciduex.Repo — deciduex v0.14.0-beta.3</title>
<link rel="stylesheet" href="dist/html-elixir-YJO4MOOW.css" />
<script defer src="dist/sidebar_items-CC54D512.js"></script>
<script defer src="docs_config.js"></script>
<script defer src="dist/html-YU4BZFVS.js"></script>
</head>
<body>
<script>(()=>{var t="ex_doc:settings",e="dark";var o="dark",s="light";var E="sidebar_state",n="closed";var r="sidebar_width";var a="sidebar-open";var i=new URLSearchParams(window.location.search),S=i.get("theme")||JSON.parse(localStorage.getItem(t)||"{}").theme;(S===o||S!==s&&window.matchMedia("(prefers-color-scheme: dark)").matches)&&document.body.classList.add(e);var d=sessionStorage.getItem(E),A=d!==n&&!window.matchMedia(`screen and (max-width: ${768}px)`).matches;document.body.classList.toggle(a,A);var c=sessionStorage.getItem(r);c&&document.body.style.setProperty("--sidebarWidth",`${c}px`);var p=/(Macintosh|iPhone|iPad|iPod)/.test(window.navigator.userAgent);document.documentElement.classList.toggle("apple-os",p);})();
</script>
<div class="body-wrapper">
<button id="sidebar-menu" class="sidebar-button sidebar-toggle" aria-label="toggle sidebar" aria-controls="sidebar">
<i class="ri-menu-line ri-lg" title="Collapse/expand sidebar"></i>
</button>
<nav id="sidebar" class="sidebar">
<div class="sidebar-header">
<div class="sidebar-projectInfo">
<div>
<a href="https://notactuallytreyanastasio.github.io/deciduous/" class="sidebar-projectName" translate="no">
deciduex
</a>
<div class="sidebar-projectVersion" translate="no">
v0.14.0-beta.3
</div>
</div>
</div>
<ul id="sidebar-list-nav" class="sidebar-list-nav" role="tablist" data-extras="Pages"></ul>
</div>
</nav>
<output role="status" id="toast"></output>
<main class="content page-module" id="main" data-type="modules">
<div id="content" class="content-inner">
<div class="top-search">
<div class="search-settings">
<form class="search-bar" action="search.html">
<label class="search-label">
<span class="sr-only">Search documentation of deciduex</span>
<div class="search-input-wrapper">
<input name="q" type="text" class="search-input" placeholder="Press / to search" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
<button type="button" tabindex="-1" class="search-close-button" aria-hidden="true">
<i class="ri-close-line ri-lg" title="Cancel search"></i>
</button>
</div>
</label>
</form>
<div class="autocomplete">
</div>
<div class="engine-selector" data-multiple="false">
<button type="button" class="engine-button" aria-label="Select search engine" aria-haspopup="true" aria-expanded="false">
<i class="ri-search-2-line" aria-hidden="true"></i>
<span class="engine-name">Default</span>
<i class="ri-arrow-down-s-line" aria-hidden="true"></i>
</button>
<div class="engine-dropdown" hidden role="menu">
<button type="button"
class="engine-option"
data-engine-url="search.html?q="
role="menuitemradio"
aria-checked="true">
<span class="name">Default</span>
<span class="help">In-browser search</span>
</button>
</div>
</div>
<button class="icon-settings display-settings">
<i class="ri-settings-3-line"></i>
<span class="sr-only">Settings</span>
</button>
</div>
</div>
<div id="top-content">
<div class="heading-with-actions top-heading">
<h1>
<span translate="no">Deciduex.<wbr>Repo</span>
<small class="app-vsn" translate="no">(deciduex v0.14.0-beta.3)</small>
</h1>
<a href="Deciduex.Repo.md" title="Copy Markdown (hold Ctrl/Cmd and click it to open as Markdown)" class="copy-markdown icon-action" rel="help">
<i class="ri-markdown-line" aria-hidden="true"></i>
<span class="sr-only">Copy Markdown</span>
</a>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L1" title="View Source" class="icon-action" rel="help">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
<span class="sr-only">View Source</span>
</a>
</div>
</div>
<section id="summary" class="details-list">
<h2 class="section-heading">
<a class="hover-link" href="#summary">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<span class="text">Summary</span>
</h2>
<div class="summary-functions summary">
<h3>
<a href="#functions">Functions</a>
</h3>
<div class="summary-row">
<div class="summary-signature">
<a href="#aggregate/3" data-no-tooltip="" translate="no">aggregate(queryable, aggregate, opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:aggregate/3"><code class="inline">Ecto.Repo.aggregate/3</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#aggregate/4" data-no-tooltip="" translate="no">aggregate(queryable, aggregate, field, opts)</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:aggregate/4"><code class="inline">Ecto.Repo.aggregate/4</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#all/2" data-no-tooltip="" translate="no">all(queryable, opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:all/2"><code class="inline">Ecto.Repo.all/2</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#all_by/3" data-no-tooltip="" translate="no">all_by(queryable, clauses, opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:all_by/3"><code class="inline">Ecto.Repo.all_by/3</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#checked_out?/0" data-no-tooltip="" translate="no">checked_out?()</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:checked_out?/0"><code class="inline">Ecto.Repo.checked_out?/0</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#checkout/2" data-no-tooltip="" translate="no">checkout(fun, opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:checkout/2"><code class="inline">Ecto.Repo.checkout/2</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#child_spec/1" data-no-tooltip="" translate="no">child_spec(opts)</a>
</div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#config/0" data-no-tooltip="" translate="no">config()</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:config/0"><code class="inline">Ecto.Repo.config/0</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#default_options/1" data-no-tooltip="" translate="no">default_options(operation)</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:default_options/1"><code class="inline">Ecto.Repo.default_options/1</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#delete/2" data-no-tooltip="" translate="no">delete(struct, opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:delete/2"><code class="inline">Ecto.Repo.delete/2</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#delete!/2" data-no-tooltip="" translate="no">delete!(struct, opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:delete!/2"><code class="inline">Ecto.Repo.delete!/2</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#delete_all/2" data-no-tooltip="" translate="no">delete_all(queryable, opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:delete_all/2"><code class="inline">Ecto.Repo.delete_all/2</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#disconnect_all/2" data-no-tooltip="" translate="no">disconnect_all(interval, opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Forces all connections in the repo pool to disconnect within the given interval.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#exists?/2" data-no-tooltip="" translate="no">exists?(queryable, opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:exists?/2"><code class="inline">Ecto.Repo.exists?/2</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#explain/3" data-no-tooltip="" translate="no">explain(operation, queryable, opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Executes an EXPLAIN statement or similar for the given query according to its kind and the
adapter in the given repository.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#get/3" data-no-tooltip="" translate="no">get(queryable, id, opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:get/3"><code class="inline">Ecto.Repo.get/3</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#get!/3" data-no-tooltip="" translate="no">get!(queryable, id, opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:get!/3"><code class="inline">Ecto.Repo.get!/3</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#get_by/3" data-no-tooltip="" translate="no">get_by(queryable, clauses, opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:get_by/3"><code class="inline">Ecto.Repo.get_by/3</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#get_by!/3" data-no-tooltip="" translate="no">get_by!(queryable, clauses, opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:get_by!/3"><code class="inline">Ecto.Repo.get_by!/3</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#get_dynamic_repo/0" data-no-tooltip="" translate="no">get_dynamic_repo()</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:get_dynamic_repo/0"><code class="inline">Ecto.Repo.get_dynamic_repo/0</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#in_transaction?/0" data-no-tooltip="" translate="no">in_transaction?()</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:in_transaction?/0"><code class="inline">Ecto.Repo.in_transaction?/0</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#insert/2" data-no-tooltip="" translate="no">insert(struct, opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:insert/2"><code class="inline">Ecto.Repo.insert/2</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#insert!/2" data-no-tooltip="" translate="no">insert!(struct, opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:insert!/2"><code class="inline">Ecto.Repo.insert!/2</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#insert_all/3" data-no-tooltip="" translate="no">insert_all(schema_or_source, entries, opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:insert_all/3"><code class="inline">Ecto.Repo.insert_all/3</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#insert_or_update/2" data-no-tooltip="" translate="no">insert_or_update(changeset, opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:insert_or_update/2"><code class="inline">Ecto.Repo.insert_or_update/2</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#insert_or_update!/2" data-no-tooltip="" translate="no">insert_or_update!(changeset, opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:insert_or_update!/2"><code class="inline">Ecto.Repo.insert_or_update!/2</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#load/2" data-no-tooltip="" translate="no">load(schema_or_types, data)</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:load/2"><code class="inline">Ecto.Repo.load/2</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#one/2" data-no-tooltip="" translate="no">one(queryable, opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:one/2"><code class="inline">Ecto.Repo.one/2</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#one!/2" data-no-tooltip="" translate="no">one!(queryable, opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:one!/2"><code class="inline">Ecto.Repo.one!/2</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#preload/3" data-no-tooltip="" translate="no">preload(struct_or_structs_or_nil, preloads, opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:preload/3"><code class="inline">Ecto.Repo.preload/3</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#prepare_query/3" data-no-tooltip="" translate="no">prepare_query(operation, query, opts)</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:prepare_query/3"><code class="inline">Ecto.Repo.prepare_query/3</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#prepare_transaction/2" data-no-tooltip="" translate="no">prepare_transaction(fun_or_multi, opts)</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:prepare_transaction/2"><code class="inline">Ecto.Repo.prepare_transaction/2</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#put_dynamic_repo/1" data-no-tooltip="" translate="no">put_dynamic_repo(dynamic)</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:put_dynamic_repo/1"><code class="inline">Ecto.Repo.put_dynamic_repo/1</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#query/3" data-no-tooltip="" translate="no">query(sql, params \\ [], opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Runs a custom SQL query.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#query!/3" data-no-tooltip="" translate="no">query!(sql, params \\ [], opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Same as <a href="#query/3"><code class="inline">query/3</code></a> but returns result directly without <code class="inline">:ok</code> tuple
and raises on invalid queries</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#query_many/3" data-no-tooltip="" translate="no">query_many(sql, params \\ [], opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Runs a custom SQL query that returns multiple results on the given repo.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#query_many!/3" data-no-tooltip="" translate="no">query_many!(sql, params \\ [], opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Same as <code class="inline">query_many/4</code> but returns result directly without <code class="inline">:ok</code> tuple
and raises on invalid queries</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#reload/2" data-no-tooltip="" translate="no">reload(queryable, opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:reload/2"><code class="inline">Ecto.Repo.reload/2</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#reload!/2" data-no-tooltip="" translate="no">reload!(queryable, opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:reload!/2"><code class="inline">Ecto.Repo.reload!/2</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#rollback/1" data-no-tooltip="" translate="no">rollback(value)</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:rollback/1"><code class="inline">Ecto.Repo.rollback/1</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#start_link/1" data-no-tooltip="" translate="no">start_link(opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:start_link/1"><code class="inline">Ecto.Repo.start_link/1</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#stop/1" data-no-tooltip="" translate="no">stop(timeout \\ 5000)</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:stop/1"><code class="inline">Ecto.Repo.stop/1</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#stream/2" data-no-tooltip="" translate="no">stream(queryable, opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:stream/2"><code class="inline">Ecto.Repo.stream/2</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#to_sql/2" data-no-tooltip="" translate="no">to_sql(operation, queryable)</a>
</div>
<div class="summary-synopsis"><p>Converts the given query to SQL according to its kind and the
adapter in the given repository.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#transact/2" data-no-tooltip="" translate="no">transact(fun_or_multi, opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:transact/2"><code class="inline">Ecto.Repo.transact/2</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#transaction/2" data-no-tooltip="" translate="no">transaction(fun_or_multi, opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:transaction/2"><code class="inline">Ecto.Repo.transaction/2</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#update/2" data-no-tooltip="" translate="no">update(struct, opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:update/2"><code class="inline">Ecto.Repo.update/2</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#update!/2" data-no-tooltip="" translate="no">update!(struct, opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:update!/2"><code class="inline">Ecto.Repo.update!/2</code></a>.</p></div>
</div>
<div class="summary-row">
<div class="summary-signature">
<a href="#update_all/3" data-no-tooltip="" translate="no">update_all(queryable, updates, opts \\ [])</a>
</div>
<div class="summary-synopsis"><p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:update_all/3"><code class="inline">Ecto.Repo.update_all/3</code></a>.</p></div>
</div>
</div>
</section>
<section id="functions" class="details-list">
<h2 class="section-heading">
<a class="hover-link" href="#functions">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<span class="text">Functions</span>
</h2>
<div class="functions-list">
<section class="detail" id="aggregate/3">
<span id="aggregate/2"></span>
<div class="detail-header">
<a href="#aggregate/3" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">aggregate(queryable, aggregate, opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:aggregate/3"><code class="inline">Ecto.Repo.aggregate/3</code></a>.</p>
</section>
</section>
<section class="detail" id="aggregate/4">
<div class="detail-header">
<a href="#aggregate/4" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">aggregate(queryable, aggregate, field, opts)</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:aggregate/4"><code class="inline">Ecto.Repo.aggregate/4</code></a>.</p>
</section>
</section>
<section class="detail" id="all/2">
<span id="all/1"></span>
<div class="detail-header">
<a href="#all/2" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">all(queryable, opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:all/2"><code class="inline">Ecto.Repo.all/2</code></a>.</p>
</section>
</section>
<section class="detail" id="all_by/3">
<span id="all_by/2"></span>
<div class="detail-header">
<a href="#all_by/3" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">all_by(queryable, clauses, opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:all_by/3"><code class="inline">Ecto.Repo.all_by/3</code></a>.</p>
</section>
</section>
<section class="detail" id="checked_out?/0">
<div class="detail-header">
<a href="#checked_out?/0" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">checked_out?()</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:checked_out?/0"><code class="inline">Ecto.Repo.checked_out?/0</code></a>.</p>
</section>
</section>
<section class="detail" id="checkout/2">
<span id="checkout/1"></span>
<div class="detail-header">
<a href="#checkout/2" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">checkout(fun, opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:checkout/2"><code class="inline">Ecto.Repo.checkout/2</code></a>.</p>
</section>
</section>
<section class="detail" id="child_spec/1">
<div class="detail-header">
<a href="#child_spec/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">child_spec(opts)</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
</section>
</section>
<section class="detail" id="config/0">
<div class="detail-header">
<a href="#config/0" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">config()</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:config/0"><code class="inline">Ecto.Repo.config/0</code></a>.</p>
</section>
</section>
<section class="detail" id="default_options/1">
<div class="detail-header">
<a href="#default_options/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">default_options(operation)</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:default_options/1"><code class="inline">Ecto.Repo.default_options/1</code></a>.</p>
</section>
</section>
<section class="detail" id="delete/2">
<span id="delete/1"></span>
<div class="detail-header">
<a href="#delete/2" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">delete(struct, opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:delete/2"><code class="inline">Ecto.Repo.delete/2</code></a>.</p>
</section>
</section>
<section class="detail" id="delete!/2">
<span id="delete!/1"></span>
<div class="detail-header">
<a href="#delete!/2" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">delete!(struct, opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:delete!/2"><code class="inline">Ecto.Repo.delete!/2</code></a>.</p>
</section>
</section>
<section class="detail" id="delete_all/2">
<span id="delete_all/1"></span>
<div class="detail-header">
<a href="#delete_all/2" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">delete_all(queryable, opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:delete_all/2"><code class="inline">Ecto.Repo.delete_all/2</code></a>.</p>
</section>
</section>
<section class="detail" id="disconnect_all/2">
<span id="disconnect_all/1"></span>
<div class="detail-header">
<a href="#disconnect_all/2" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">disconnect_all(interval, opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L1" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<div class="specs">
<pre translate="no"><span class="attribute">@spec</span> disconnect_all(<a href="https://hexdocs.pm/elixir/typespecs.html#basic-types">non_neg_integer</a>(), opts :: <a href="https://hexdocs.pm/elixir/Keyword.html#t:t/0">Keyword.t</a>()) :: :ok</pre>
</div>
<p>Forces all connections in the repo pool to disconnect within the given interval.</p><p>Once this function is called, the pool will disconnect all of its connections
as they are checked in or as they are pinged. Checked in connections will be
randomly disconnected within the given time interval. Pinged connections are
immediately disconnected - as they are idle (according to <code class="inline">:idle_interval</code>).</p><p>If the connection has a backoff configured (which is the case by default),
disconnecting means an attempt at a new connection will be done immediately
after, without starting a new process for each connection. However, if backoff
has been disabled, the connection process will terminate. In such cases,
disconnecting all connections may cause the pool supervisor to restart
depending on the max_restarts/max_seconds configuration of the pool,
so you will want to set those carefully.</p>
</section>
</section>
<section class="detail" id="exists?/2">
<span id="exists?/1"></span>
<div class="detail-header">
<a href="#exists?/2" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">exists?(queryable, opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:exists?/2"><code class="inline">Ecto.Repo.exists?/2</code></a>.</p>
</section>
</section>
<section class="detail" id="explain/3">
<span id="explain/2"></span>
<div class="detail-header">
<a href="#explain/3" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">explain(operation, queryable, opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L1" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<div class="specs">
<pre translate="no"><span class="attribute">@spec</span> explain(
:all | :update_all | :delete_all,
<a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Queryable.html#t:t/0">Ecto.Queryable.t</a>(),
opts :: <a href="https://hexdocs.pm/elixir/Keyword.html#t:t/0">Keyword.t</a>()
) ::
<a href="https://hexdocs.pm/elixir/String.html#t:t/0">String.t</a>() | <a href="https://hexdocs.pm/elixir/Exception.html#t:t/0">Exception.t</a>() | [<a href="https://hexdocs.pm/elixir/typespecs.html#basic-types">map</a>()]</pre>
</div>
<p>Executes an EXPLAIN statement or similar for the given query according to its kind and the
adapter in the given repository.</p><h2 id="explain/3-examples" class="section-heading"><a href="#explain/3-examples" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i></a><span class="text">Examples</span></h2><pre><code class="makeup elixir" translate="no"><span class="c1"># Postgres</span><span class="w">
</span><span class="gp unselectable">iex> </span><span class="nc">MyRepo</span><span class="o">.</span><span class="n">explain</span><span class="p" data-group-id="5499927530-1">(</span><span class="ss">:all</span><span class="p">,</span><span class="w"> </span><span class="nc">Post</span><span class="p" data-group-id="5499927530-1">)</span><span class="w">
</span><span class="s">"Seq Scan on posts p0 (cost=0.00..12.12 rows=1 width=443)"</span><span class="w">
</span><span class="gp unselectable">iex> </span><span class="nc">Ecto.Adapters.SQL</span><span class="o">.</span><span class="n">explain</span><span class="p" data-group-id="5499927530-2">(</span><span class="nc">Repo</span><span class="p">,</span><span class="w"> </span><span class="ss">:all</span><span class="p">,</span><span class="w"> </span><span class="nc">Post</span><span class="p" data-group-id="5499927530-2">)</span><span class="w">
</span><span class="s">"Seq Scan on posts p0 (cost=0.00..12.12 rows=1 width=443)"</span><span class="w">
</span><span class="c1"># MySQL</span><span class="w">
</span><span class="gp unselectable">iex> </span><span class="nc">MyRepo</span><span class="o">.</span><span class="n">explain</span><span class="p" data-group-id="5499927530-3">(</span><span class="ss">:all</span><span class="p">,</span><span class="w"> </span><span class="n">from</span><span class="p" data-group-id="5499927530-4">(</span><span class="n">p</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="nc">Post</span><span class="p">,</span><span class="w"> </span><span class="ss">where</span><span class="p">:</span><span class="w"> </span><span class="n">p</span><span class="o">.</span><span class="n">title</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="s">"title"</span><span class="p" data-group-id="5499927530-4">)</span><span class="p" data-group-id="5499927530-3">)</span><span class="w"> </span><span class="o">|></span><span class="w"> </span><span class="nc">IO</span><span class="o">.</span><span class="n">puts</span><span class="p" data-group-id="5499927530-5">(</span><span class="p" data-group-id="5499927530-5">)</span><span class="w">
</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">-</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">-</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">-</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">-</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">-</span><span class="o">+</span><span class="w">
</span><span class="o">|</span><span class="w"> </span><span class="n">id</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">select_type</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">table</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">partitions</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">type</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">possible_keys</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">key</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">key_len</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">ref</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">rows</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">filtered</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="nc">Extra</span><span class="w"> </span><span class="o">|</span><span class="w">
</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">-</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">-</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">-</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">-</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">-</span><span class="o">+</span><span class="w">
</span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="nc">SIMPLE</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">p0</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="nc">NULL</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="nc">ALL</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="nc">NULL</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="nc">NULL</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="nc">NULL</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="nc">NULL</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mf">100.0</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="nc">Using</span><span class="w"> </span><span class="n">where</span><span class="w"> </span><span class="o">|</span><span class="w">
</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">-</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">-</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">-</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">-</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">+</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">--</span><span class="o">-</span><span class="o">+</span><span class="w">
</span><span class="c1"># Shared opts</span><span class="w">
</span><span class="gp unselectable">iex> </span><span class="nc">MyRepo</span><span class="o">.</span><span class="n">explain</span><span class="p" data-group-id="5499927530-6">(</span><span class="ss">:all</span><span class="p">,</span><span class="w"> </span><span class="nc">Post</span><span class="p">,</span><span class="w"> </span><span class="ss">analyze</span><span class="p">:</span><span class="w"> </span><span class="no">true</span><span class="p">,</span><span class="w"> </span><span class="ss">timeout</span><span class="p">:</span><span class="w"> </span><span class="mi">20_000</span><span class="p" data-group-id="5499927530-6">)</span><span class="w">
</span><span class="s">"Seq Scan on posts p0 (cost=0.00..11.70 rows=170 width=443) (actual time=0.013..0.013 rows=0 loops=1)</span><span class="se">\n</span><span class="s">Planning Time: 0.031 ms</span><span class="se">\n</span><span class="s">Execution Time: 0.021 ms"</span></code></pre><p>It's safe to execute it for updates and deletes, no data change will be committed:</p><pre><code class="makeup elixir" translate="no"><span class="gp unselectable">iex> </span><span class="nc">MyRepo</span><span class="o">.</span><span class="n">explain</span><span class="p" data-group-id="9726917949-1">(</span><span class="nc">Repo</span><span class="p">,</span><span class="w"> </span><span class="ss">:update_all</span><span class="p">,</span><span class="w"> </span><span class="n">from</span><span class="p" data-group-id="9726917949-2">(</span><span class="n">p</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="nc">Post</span><span class="p">,</span><span class="w"> </span><span class="ss">update</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="9726917949-3">[</span><span class="ss">set</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="9726917949-4">[</span><span class="ss">title</span><span class="p">:</span><span class="w"> </span><span class="s">"new title"</span><span class="p" data-group-id="9726917949-4">]</span><span class="p" data-group-id="9726917949-3">]</span><span class="p" data-group-id="9726917949-2">)</span><span class="p" data-group-id="9726917949-1">)</span><span class="w">
</span><span class="s">"Update on posts p0 (cost=0.00..11.70 rows=170 width=449)</span><span class="se">\n</span><span class="s"> -> Seq Scan on posts p0 (cost=0.00..11.70 rows=170 width=449)"</span></code></pre><p>This function is also available under the repository with name <code class="inline">explain</code>:</p><pre><code class="makeup elixir" translate="no"><span class="gp unselectable">iex> </span><span class="nc">MyRepo</span><span class="o">.</span><span class="n">explain</span><span class="p" data-group-id="3344635218-1">(</span><span class="ss">:all</span><span class="p">,</span><span class="w"> </span><span class="n">from</span><span class="p" data-group-id="3344635218-2">(</span><span class="n">p</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="nc">Post</span><span class="p">,</span><span class="w"> </span><span class="ss">where</span><span class="p">:</span><span class="w"> </span><span class="n">p</span><span class="o">.</span><span class="n">title</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="s">"title"</span><span class="p" data-group-id="3344635218-2">)</span><span class="p" data-group-id="3344635218-1">)</span><span class="w">
</span><span class="s">"Seq Scan on posts p0 (cost=0.00..12.12 rows=1 width=443)</span><span class="se">\n</span><span class="s"> Filter: ((title)::text = 'title'::text)"</span></code></pre><h3 id="explain/3-options" class="section-heading"><a href="#explain/3-options" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i></a><span class="text">Options</span></h3><p>Built-in adapters support passing <code class="inline">opts</code> to the EXPLAIN statement according to the following:</p><table><thead><tr><th style="text-align: left;">Adapter</th><th style="text-align: left;">Supported opts</th></tr></thead><tbody><tr><td style="text-align: left;">Postgrex</td><td style="text-align: left;"><code class="inline">analyze</code>, <code class="inline">verbose</code>, <code class="inline">costs</code>, <code class="inline">settings</code>, <code class="inline">buffers</code>, <code class="inline">timing</code>, <code class="inline">summary</code>, <code class="inline">format</code>, <code class="inline">plan</code>, <code class="inline">wrap_in_transaction</code></td></tr><tr><td style="text-align: left;">MyXQL</td><td style="text-align: left;"><code class="inline">format</code>, <code class="inline">wrap_in_transaction</code></td></tr></tbody></table><p>All options except <code class="inline">format</code> are boolean valued and default to <code class="inline">false</code>.</p><p>The allowed <code class="inline">format</code> values are <code class="inline">:map</code>, <code class="inline">:yaml</code>, and <code class="inline">:text</code>:</p><ul><li><code class="inline">:map</code> is the deserialized JSON encoding.</li><li><code class="inline">:yaml</code> and <code class="inline">:text</code> return the result as a string.</li></ul><p>The built-in adapters support the following formats:</p><ul><li>Postgrex: <code class="inline">:map</code>, <code class="inline">:yaml</code> and <code class="inline">:text</code></li><li>MyXQL: <code class="inline">:map</code> and <code class="inline">:text</code></li></ul><p>The <code class="inline">wrap_in_transaction</code> option is a boolean that controls whether the command is run inside of a
transaction that is rolled back. This is useful when, for example, you'd like to use <code class="inline">analyze: true</code>
on an update or delete query without modifying data. Defaults to <code class="inline">true</code>.</p><p>The <code class="inline">:plan</code> option in Postgrex can take the values <code class="inline">:custom</code> or <code class="inline">:fallback_generic</code>. When <code class="inline">:custom</code>
is specified, the explain plan generated will consider the specific values of the query parameters
that are supplied. When using <code class="inline">:fallback_generic</code>, the specific values of the query parameters will
be ignored. <code class="inline">:fallback_generic</code> does not use PostgreSQL's built-in support for a generic explain
plan (available as of PostgreSQL 16), but instead uses a special implementation that works for PostgreSQL
versions 12 and above. Defaults to <code class="inline">:custom</code>.</p><p>Any other value passed to <code class="inline">opts</code> will be forwarded to the underlying adapter query function, including
shared Repo options such as <code class="inline">:timeout</code>. Non built-in adapters may have specific behaviour and you should
consult their documentation for more details.</p><p>For version compatibility, please check your database's documentation:</p><ul><li><em>Postgrex</em>: <a href="https://www.postgresql.org/docs/current/sql-explain.html">PostgreSQL doc</a>.</li><li><em>MyXQL</em>: <a href="https://dev.mysql.com/doc/refman/8.0/en/explain.html">MySQL doc</a>.</li></ul>
</section>
</section>
<section class="detail" id="get/3">
<span id="get/2"></span>
<div class="detail-header">
<a href="#get/3" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">get(queryable, id, opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:get/3"><code class="inline">Ecto.Repo.get/3</code></a>.</p>
</section>
</section>
<section class="detail" id="get!/3">
<span id="get!/2"></span>
<div class="detail-header">
<a href="#get!/3" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">get!(queryable, id, opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:get!/3"><code class="inline">Ecto.Repo.get!/3</code></a>.</p>
</section>
</section>
<section class="detail" id="get_by/3">
<span id="get_by/2"></span>
<div class="detail-header">
<a href="#get_by/3" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">get_by(queryable, clauses, opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:get_by/3"><code class="inline">Ecto.Repo.get_by/3</code></a>.</p>
</section>
</section>
<section class="detail" id="get_by!/3">
<span id="get_by!/2"></span>
<div class="detail-header">
<a href="#get_by!/3" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">get_by!(queryable, clauses, opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:get_by!/3"><code class="inline">Ecto.Repo.get_by!/3</code></a>.</p>
</section>
</section>
<section class="detail" id="get_dynamic_repo/0">
<div class="detail-header">
<a href="#get_dynamic_repo/0" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">get_dynamic_repo()</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:get_dynamic_repo/0"><code class="inline">Ecto.Repo.get_dynamic_repo/0</code></a>.</p>
</section>
</section>
<section class="detail" id="in_transaction?/0">
<div class="detail-header">
<a href="#in_transaction?/0" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">in_transaction?()</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:in_transaction?/0"><code class="inline">Ecto.Repo.in_transaction?/0</code></a>.</p>
</section>
</section>
<section class="detail" id="insert/2">
<span id="insert/1"></span>
<div class="detail-header">
<a href="#insert/2" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">insert(struct, opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:insert/2"><code class="inline">Ecto.Repo.insert/2</code></a>.</p>
</section>
</section>
<section class="detail" id="insert!/2">
<span id="insert!/1"></span>
<div class="detail-header">
<a href="#insert!/2" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">insert!(struct, opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:insert!/2"><code class="inline">Ecto.Repo.insert!/2</code></a>.</p>
</section>
</section>
<section class="detail" id="insert_all/3">
<span id="insert_all/2"></span>
<div class="detail-header">
<a href="#insert_all/3" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">insert_all(schema_or_source, entries, opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:insert_all/3"><code class="inline">Ecto.Repo.insert_all/3</code></a>.</p>
</section>
</section>
<section class="detail" id="insert_or_update/2">
<span id="insert_or_update/1"></span>
<div class="detail-header">
<a href="#insert_or_update/2" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">insert_or_update(changeset, opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:insert_or_update/2"><code class="inline">Ecto.Repo.insert_or_update/2</code></a>.</p>
</section>
</section>
<section class="detail" id="insert_or_update!/2">
<span id="insert_or_update!/1"></span>
<div class="detail-header">
<a href="#insert_or_update!/2" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">insert_or_update!(changeset, opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:insert_or_update!/2"><code class="inline">Ecto.Repo.insert_or_update!/2</code></a>.</p>
</section>
</section>
<section class="detail" id="load/2">
<div class="detail-header">
<a href="#load/2" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">load(schema_or_types, data)</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:load/2"><code class="inline">Ecto.Repo.load/2</code></a>.</p>
</section>
</section>
<section class="detail" id="one/2">
<span id="one/1"></span>
<div class="detail-header">
<a href="#one/2" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">one(queryable, opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:one/2"><code class="inline">Ecto.Repo.one/2</code></a>.</p>
</section>
</section>
<section class="detail" id="one!/2">
<span id="one!/1"></span>
<div class="detail-header">
<a href="#one!/2" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">one!(queryable, opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:one!/2"><code class="inline">Ecto.Repo.one!/2</code></a>.</p>
</section>
</section>
<section class="detail" id="preload/3">
<span id="preload/2"></span>
<div class="detail-header">
<a href="#preload/3" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">preload(struct_or_structs_or_nil, preloads, opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:preload/3"><code class="inline">Ecto.Repo.preload/3</code></a>.</p>
</section>
</section>
<section class="detail" id="prepare_query/3">
<div class="detail-header">
<a href="#prepare_query/3" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">prepare_query(operation, query, opts)</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:prepare_query/3"><code class="inline">Ecto.Repo.prepare_query/3</code></a>.</p>
</section>
</section>
<section class="detail" id="prepare_transaction/2">
<div class="detail-header">
<a href="#prepare_transaction/2" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">prepare_transaction(fun_or_multi, opts)</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:prepare_transaction/2"><code class="inline">Ecto.Repo.prepare_transaction/2</code></a>.</p>
</section>
</section>
<section class="detail" id="put_dynamic_repo/1">
<div class="detail-header">
<a href="#put_dynamic_repo/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">put_dynamic_repo(dynamic)</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:put_dynamic_repo/1"><code class="inline">Ecto.Repo.put_dynamic_repo/1</code></a>.</p>
</section>
</section>
<section class="detail" id="query/3">
<span id="query/1"></span>
<span id="query/2"></span>
<div class="detail-header">
<a href="#query/3" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">query(sql, params \\ [], opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L1" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<div class="specs">
<pre translate="no"><span class="attribute">@spec</span> query(<a href="https://hexdocs.pm/elixir/typespecs.html#built-in-types">iodata</a>(), <a href="https://hexdocs.pm/ecto_sql/3.13.5/Ecto.Adapters.SQL.html#t:query_params/0">Ecto.Adapters.SQL.query_params</a>(), <a href="https://hexdocs.pm/elixir/Keyword.html#t:t/0">Keyword.t</a>()) ::
{:ok, <a href="https://hexdocs.pm/ecto_sql/3.13.5/Ecto.Adapters.SQL.html#t:query_result/0">Ecto.Adapters.SQL.query_result</a>()} | {:error, <a href="https://hexdocs.pm/elixir/Exception.html#t:t/0">Exception.t</a>()}</pre>
</div>
<p>Runs a custom SQL query.</p><p>If the query was successful, it will return an <code class="inline">:ok</code> tuple containing
a map with at least two keys:</p><ul><li><code class="inline">:num_rows</code> - the number of rows affected</li><li><code class="inline">:rows</code> - the result set as a list. <code class="inline">nil</code> may be returned
instead of the list if the command does not yield any row
as result (but still yields the number of affected rows,
like a <code class="inline">delete</code> command without returning would)</li></ul><h2 id="query/3-options" class="section-heading"><a href="#query/3-options" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i></a><span class="text">Options</span></h2><ul><li><code class="inline">:log</code> - When false, does not log the query</li><li><code class="inline">:timeout</code> - Execute request timeout, accepts: <code class="inline">:infinity</code> (default: <code class="inline">15000</code>);</li></ul><h2 id="query/3-examples" class="section-heading"><a href="#query/3-examples" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i></a><span class="text">Examples</span></h2><pre><code class="makeup elixir" translate="no"><span class="gp unselectable">iex> </span><span class="nc">MyRepo</span><span class="o">.</span><span class="n">query</span><span class="p" data-group-id="7880613871-1">(</span><span class="s">"SELECT $1::integer + $2"</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="7880613871-2">[</span><span class="mi">40</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="7880613871-2">]</span><span class="p" data-group-id="7880613871-1">)</span><span class="w">
</span><span class="p" data-group-id="7880613871-3">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="7880613871-4">%{</span><span class="ss">rows</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="7880613871-5">[</span><span class="p" data-group-id="7880613871-6">[</span><span class="mi">42</span><span class="p" data-group-id="7880613871-6">]</span><span class="p" data-group-id="7880613871-5">]</span><span class="p">,</span><span class="w"> </span><span class="ss">num_rows</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="7880613871-4">}</span><span class="p" data-group-id="7880613871-3">}</span><span class="w">
</span><span class="gp unselectable">iex> </span><span class="nc">Ecto.Adapters.SQL</span><span class="o">.</span><span class="n">query</span><span class="p" data-group-id="7880613871-7">(</span><span class="nc">MyRepo</span><span class="p">,</span><span class="w"> </span><span class="s">"SELECT $1::integer + $2"</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="7880613871-8">[</span><span class="mi">40</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="7880613871-8">]</span><span class="p" data-group-id="7880613871-7">)</span><span class="w">
</span><span class="p" data-group-id="7880613871-9">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="7880613871-10">%{</span><span class="ss">rows</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="7880613871-11">[</span><span class="p" data-group-id="7880613871-12">[</span><span class="mi">42</span><span class="p" data-group-id="7880613871-12">]</span><span class="p" data-group-id="7880613871-11">]</span><span class="p">,</span><span class="w"> </span><span class="ss">num_rows</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="7880613871-10">}</span><span class="p" data-group-id="7880613871-9">}</span></code></pre>
</section>
</section>
<section class="detail" id="query!/3">
<span id="query!/1"></span>
<span id="query!/2"></span>
<div class="detail-header">
<a href="#query!/3" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">query!(sql, params \\ [], opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L1" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<div class="specs">
<pre translate="no"><span class="attribute">@spec</span> query!(<a href="https://hexdocs.pm/elixir/typespecs.html#built-in-types">iodata</a>(), <a href="https://hexdocs.pm/ecto_sql/3.13.5/Ecto.Adapters.SQL.html#t:query_params/0">Ecto.Adapters.SQL.query_params</a>(), <a href="https://hexdocs.pm/elixir/Keyword.html#t:t/0">Keyword.t</a>()) ::
<a href="https://hexdocs.pm/ecto_sql/3.13.5/Ecto.Adapters.SQL.html#t:query_result/0">Ecto.Adapters.SQL.query_result</a>()</pre>
</div>
<p>Same as <a href="#query/3"><code class="inline">query/3</code></a> but returns result directly without <code class="inline">:ok</code> tuple
and raises on invalid queries</p>
</section>
</section>
<section class="detail" id="query_many/3">
<span id="query_many/1"></span>
<span id="query_many/2"></span>
<div class="detail-header">
<a href="#query_many/3" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">query_many(sql, params \\ [], opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L1" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<div class="specs">
<pre translate="no"><span class="attribute">@spec</span> query_many(<a href="https://hexdocs.pm/elixir/typespecs.html#built-in-types">iodata</a>(), <a href="https://hexdocs.pm/ecto_sql/3.13.5/Ecto.Adapters.SQL.html#t:query_params/0">Ecto.Adapters.SQL.query_params</a>(), <a href="https://hexdocs.pm/elixir/Keyword.html#t:t/0">Keyword.t</a>()) ::
{:ok, [<a href="https://hexdocs.pm/ecto_sql/3.13.5/Ecto.Adapters.SQL.html#t:query_result/0">Ecto.Adapters.SQL.query_result</a>()]} | {:error, <a href="https://hexdocs.pm/elixir/Exception.html#t:t/0">Exception.t</a>()}</pre>
</div>
<p>Runs a custom SQL query that returns multiple results on the given repo.</p><p>In case of success, it must return an <code class="inline">:ok</code> tuple containing a list of
maps with at least two keys:</p><ul><li><p><code class="inline">:num_rows</code> - the number of rows affected</p></li><li><p><code class="inline">:rows</code> - the result set as a list. <code class="inline">nil</code> may be returned
instead of the list if the command does not yield any row
as result (but still yields the number of affected rows,
like a <code class="inline">delete</code> command without returning would)</p></li></ul><h2 id="query_many/3-options" class="section-heading"><a href="#query_many/3-options" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i></a><span class="text">Options</span></h2><ul><li><code class="inline">:log</code> - When false, does not log the query</li><li><code class="inline">:timeout</code> - Execute request timeout, accepts: <code class="inline">:infinity</code> (default: <code class="inline">15000</code>);</li></ul><h2 id="query_many/3-examples" class="section-heading"><a href="#query_many/3-examples" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i></a><span class="text">Examples</span></h2><pre><code class="makeup elixir" translate="no"><span class="gp unselectable">iex> </span><span class="nc">MyRepo</span><span class="o">.</span><span class="n">query_many</span><span class="p" data-group-id="0992555860-1">(</span><span class="s">"SELECT $1; SELECT $2;"</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="0992555860-2">[</span><span class="mi">40</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="0992555860-2">]</span><span class="p" data-group-id="0992555860-1">)</span><span class="w">
</span><span class="p" data-group-id="0992555860-3">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="0992555860-4">[</span><span class="p" data-group-id="0992555860-5">%{</span><span class="ss">rows</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="0992555860-6">[</span><span class="p" data-group-id="0992555860-7">[</span><span class="mi">40</span><span class="p" data-group-id="0992555860-7">]</span><span class="p" data-group-id="0992555860-6">]</span><span class="p">,</span><span class="w"> </span><span class="ss">num_rows</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="0992555860-5">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="0992555860-8">%{</span><span class="ss">rows</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="0992555860-9">[</span><span class="p" data-group-id="0992555860-10">[</span><span class="mi">2</span><span class="p" data-group-id="0992555860-10">]</span><span class="p" data-group-id="0992555860-9">]</span><span class="p">,</span><span class="w"> </span><span class="ss">num_rows</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="0992555860-8">}</span><span class="p" data-group-id="0992555860-4">]</span><span class="p" data-group-id="0992555860-3">}</span><span class="w">
</span><span class="gp unselectable">iex> </span><span class="nc">Ecto.Adapters.SQL</span><span class="o">.</span><span class="n">query_many</span><span class="p" data-group-id="0992555860-11">(</span><span class="nc">MyRepo</span><span class="p">,</span><span class="w"> </span><span class="s">"SELECT $1; SELECT $2;"</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="0992555860-12">[</span><span class="mi">40</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p" data-group-id="0992555860-12">]</span><span class="p" data-group-id="0992555860-11">)</span><span class="w">
</span><span class="p" data-group-id="0992555860-13">{</span><span class="ss">:ok</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="0992555860-14">[</span><span class="p" data-group-id="0992555860-15">%{</span><span class="ss">rows</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="0992555860-16">[</span><span class="p" data-group-id="0992555860-17">[</span><span class="mi">40</span><span class="p" data-group-id="0992555860-17">]</span><span class="p" data-group-id="0992555860-16">]</span><span class="p">,</span><span class="w"> </span><span class="ss">num_rows</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="0992555860-15">}</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="0992555860-18">%{</span><span class="ss">rows</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="0992555860-19">[</span><span class="p" data-group-id="0992555860-20">[</span><span class="mi">2</span><span class="p" data-group-id="0992555860-20">]</span><span class="p" data-group-id="0992555860-19">]</span><span class="p">,</span><span class="w"> </span><span class="ss">num_rows</span><span class="p">:</span><span class="w"> </span><span class="mi">1</span><span class="p" data-group-id="0992555860-18">}</span><span class="p" data-group-id="0992555860-14">]</span><span class="p" data-group-id="0992555860-13">}</span></code></pre>
</section>
</section>
<section class="detail" id="query_many!/3">
<span id="query_many!/1"></span>
<span id="query_many!/2"></span>
<div class="detail-header">
<a href="#query_many!/3" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">query_many!(sql, params \\ [], opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L1" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<div class="specs">
<pre translate="no"><span class="attribute">@spec</span> query_many!(<a href="https://hexdocs.pm/elixir/typespecs.html#built-in-types">iodata</a>(), <a href="https://hexdocs.pm/ecto_sql/3.13.5/Ecto.Adapters.SQL.html#t:query_params/0">Ecto.Adapters.SQL.query_params</a>(), <a href="https://hexdocs.pm/elixir/Keyword.html#t:t/0">Keyword.t</a>()) :: [
<a href="https://hexdocs.pm/ecto_sql/3.13.5/Ecto.Adapters.SQL.html#t:query_result/0">Ecto.Adapters.SQL.query_result</a>()
]</pre>
</div>
<p>Same as <code class="inline">query_many/4</code> but returns result directly without <code class="inline">:ok</code> tuple
and raises on invalid queries</p>
</section>
</section>
<section class="detail" id="reload/2">
<span id="reload/1"></span>
<div class="detail-header">
<a href="#reload/2" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">reload(queryable, opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:reload/2"><code class="inline">Ecto.Repo.reload/2</code></a>.</p>
</section>
</section>
<section class="detail" id="reload!/2">
<span id="reload!/1"></span>
<div class="detail-header">
<a href="#reload!/2" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">reload!(queryable, opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:reload!/2"><code class="inline">Ecto.Repo.reload!/2</code></a>.</p>
</section>
</section>
<section class="detail" id="rollback/1">
<div class="detail-header">
<a href="#rollback/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">rollback(value)</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<div class="specs">
<pre translate="no"><span class="attribute">@spec</span> rollback(<a href="https://hexdocs.pm/elixir/typespecs.html#built-in-types">term</a>()) :: <a href="https://hexdocs.pm/elixir/typespecs.html#built-in-types">no_return</a>()</pre>
</div>
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:rollback/1"><code class="inline">Ecto.Repo.rollback/1</code></a>.</p>
</section>
</section>
<section class="detail" id="start_link/1">
<span id="start_link/0"></span>
<div class="detail-header">
<a href="#start_link/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">start_link(opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:start_link/1"><code class="inline">Ecto.Repo.start_link/1</code></a>.</p>
</section>
</section>
<section class="detail" id="stop/1">
<span id="stop/0"></span>
<div class="detail-header">
<a href="#stop/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">stop(timeout \\ 5000)</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:stop/1"><code class="inline">Ecto.Repo.stop/1</code></a>.</p>
</section>
</section>
<section class="detail" id="stream/2">
<span id="stream/1"></span>
<div class="detail-header">
<a href="#stream/2" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">stream(queryable, opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:stream/2"><code class="inline">Ecto.Repo.stream/2</code></a>.</p>
</section>
</section>
<section class="detail" id="to_sql/2">
<div class="detail-header">
<a href="#to_sql/2" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">to_sql(operation, queryable)</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L1" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<div class="specs">
<pre translate="no"><span class="attribute">@spec</span> to_sql(:all | :update_all | :delete_all, <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Queryable.html#t:t/0">Ecto.Queryable.t</a>()) ::
{<a href="https://hexdocs.pm/elixir/String.html#t:t/0">String.t</a>(), <a href="https://hexdocs.pm/ecto_sql/3.13.5/Ecto.Adapters.SQL.html#t:query_params/0">Ecto.Adapters.SQL.query_params</a>()}</pre>
</div>
<p>Converts the given query to SQL according to its kind and the
adapter in the given repository.</p><h2 id="to_sql/2-examples" class="section-heading"><a href="#to_sql/2-examples" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i></a><span class="text">Examples</span></h2><p>The examples below are meant for reference. Each adapter will
return a different result:</p><pre><code class="makeup elixir" translate="no"><span class="gp unselectable">iex> </span><span class="nc">MyRepo</span><span class="o">.</span><span class="n">to_sql</span><span class="p" data-group-id="6599472798-1">(</span><span class="ss">:all</span><span class="p">,</span><span class="w"> </span><span class="nc">Post</span><span class="p" data-group-id="6599472798-1">)</span><span class="w">
</span><span class="p" data-group-id="6599472798-2">{</span><span class="s">"SELECT p.id, p.title, p.inserted_at, p.created_at FROM posts as p"</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="6599472798-3">[</span><span class="p" data-group-id="6599472798-3">]</span><span class="p" data-group-id="6599472798-2">}</span><span class="w">
</span><span class="gp unselectable">iex> </span><span class="nc">MyRepo</span><span class="o">.</span><span class="n">to_sql</span><span class="p" data-group-id="6599472798-4">(</span><span class="ss">:update_all</span><span class="p">,</span><span class="w"> </span><span class="n">from</span><span class="p" data-group-id="6599472798-5">(</span><span class="n">p</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="nc">Post</span><span class="p">,</span><span class="w"> </span><span class="ss">update</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="6599472798-6">[</span><span class="ss">set</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="6599472798-7">[</span><span class="ss">title</span><span class="p">:</span><span class="w"> </span><span class="o">^</span><span class="s">"hello"</span><span class="p" data-group-id="6599472798-7">]</span><span class="p" data-group-id="6599472798-6">]</span><span class="p" data-group-id="6599472798-5">)</span><span class="p" data-group-id="6599472798-4">)</span><span class="w">
</span><span class="p" data-group-id="6599472798-8">{</span><span class="s">"UPDATE posts AS p SET title = $1"</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="6599472798-9">[</span><span class="s">"hello"</span><span class="p" data-group-id="6599472798-9">]</span><span class="p" data-group-id="6599472798-8">}</span><span class="w">
</span><span class="gp unselectable">iex> </span><span class="nc">Ecto.Adapters.SQL</span><span class="o">.</span><span class="n">to_sql</span><span class="p" data-group-id="6599472798-10">(</span><span class="ss">:all</span><span class="p">,</span><span class="w"> </span><span class="nc">MyRepo</span><span class="p">,</span><span class="w"> </span><span class="nc">Post</span><span class="p" data-group-id="6599472798-10">)</span><span class="w">
</span><span class="p" data-group-id="6599472798-11">{</span><span class="s">"SELECT p.id, p.title, p.inserted_at, p.created_at FROM posts as p"</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="6599472798-12">[</span><span class="p" data-group-id="6599472798-12">]</span><span class="p" data-group-id="6599472798-11">}</span></code></pre>
</section>
</section>
<section class="detail" id="transact/2">
<span id="transact/1"></span>
<div class="detail-header">
<a href="#transact/2" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">transact(fun_or_multi, opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:transact/2"><code class="inline">Ecto.Repo.transact/2</code></a>.</p>
</section>
</section>
<section class="detail" id="transaction/2">
<span id="transaction/1"></span>
<div class="detail-header">
<a href="#transaction/2" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">transaction(fun_or_multi, opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:transaction/2"><code class="inline">Ecto.Repo.transaction/2</code></a>.</p>
</section>
</section>
<section class="detail" id="update/2">
<span id="update/1"></span>
<div class="detail-header">
<a href="#update/2" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">update(struct, opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:update/2"><code class="inline">Ecto.Repo.update/2</code></a>.</p>
</section>
</section>
<section class="detail" id="update!/2">
<span id="update!/1"></span>
<div class="detail-header">
<a href="#update!/2" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">update!(struct, opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:update!/2"><code class="inline">Ecto.Repo.update!/2</code></a>.</p>
</section>
</section>
<section class="detail" id="update_all/3">
<span id="update_all/2"></span>
<div class="detail-header">
<a href="#update_all/3" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<div class="heading-with-actions">
<h1 class="signature" translate="no">update_all(queryable, updates, opts \\ [])</h1>
<a href="https://github.com/notactuallytreyanastasio/deciduous/blob/main/lib/deciduex/repo.ex#L2" class="icon-action" rel="help" aria-label="View Source">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
</a>
</div>
</div>
<section class="docstring">
<p>Callback implementation for <a href="https://hexdocs.pm/ecto/3.13.5/Ecto.Repo.html#c:update_all/3"><code class="inline">Ecto.Repo.update_all/3</code></a>.</p>
</section>
</section>
</div>
</section>
<footer class="footer">
<p>
<span class="line">
<a href="https://hex.pm/packages/deciduex/0.14.0-beta.3">Hex Package</a>
<a href="https://preview.hex.pm/preview/deciduex/0.14.0-beta.3">Hex Preview</a>
</span>
<span class="line">
<button class="a-main footer-button display-quick-switch" title="Go to package docs">
Go to package docs
</button>
<a href="llms.txt" target="_blank">
View llms.txt
</a>
<a href="deciduex.epub">
Download ePub version
</a>
</span>
</p>
<p class="built-using">
Built using
<a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener" translate="no">ExDoc</a> (v0.40.1) for the
<a href="https://elixir-lang.org" title="Elixir" target="_blank" translate="no">Elixir programming language</a>
</p>
</footer>
</div>
</main>
</div>
</body>
</html>