1use diesel_table_macro_syntax::{ColumnDef, TableDecl};
2use proc_macro2::{Span, TokenStream};
3use syn::Ident;
4use syn::parse_quote;
5
6const DEFAULT_PRIMARY_KEY_NAME: &str = "id";
7
8#[derive(#[automatically_derived]
impl ::core::clone::Clone for QuerySourceMacroKind {
#[inline]
fn clone(&self) -> QuerySourceMacroKind { *self }
}Clone, #[automatically_derived]
impl ::core::marker::Copy for QuerySourceMacroKind { }Copy)]
9pub enum QuerySourceMacroKind {
10 Table,
11 View,
12}
13
14impl QuerySourceMacroKind {
15 fn macro_name(&self) -> &'static str {
16 match self {
17 QuerySourceMacroKind::Table => "table",
18 QuerySourceMacroKind::View => "view",
19 }
20 }
21}
22
23pub fn query_source_macro(
24 tokenstream2: proc_macro2::TokenStream,
25 kind: QuerySourceMacroKind,
26) -> proc_macro2::TokenStream {
27 match syn::parse2::<TableDecl>(tokenstream2.clone()) {
29 Ok(input) => {
30 if input.view.column_defs.len() > super::diesel_for_each_tuple::MAX_TUPLE_SIZE as usize
31 {
32 let kind = kind.macro_name();
33 let txt = if input.view.column_defs.len() > 128 {
34 ::alloc::__export::must_use({
::alloc::fmt::format(format_args!("you reached the end. \nhelp: diesel does not support {0}s with more than 128 columns.\nhelp: consider using less columns.",
kind))
})format!(
35 "you reached the end. \nhelp: diesel does not support {kind}s with \
36 more than 128 columns.\nhelp: consider using less columns."
37 )
38 } else if input.view.column_defs.len() > 64 {
39 ::alloc::__export::must_use({
::alloc::fmt::format(format_args!("{0} contains more than 64 columns. \n consider enabling the `128-column-tables` feature to enable diesels support for tables with more than 64 columns.",
kind))
})format!(
40 "{kind} contains more than 64 columns. \n consider enabling the \
41 `128-column-tables` feature to enable diesels support for \
42 tables with more than 64 columns."
43 )
44 } else if input.view.column_defs.len() > 32 {
45 ::alloc::__export::must_use({
::alloc::fmt::format(format_args!("{0} contains more than 32 columns. \nhelp: consider enabling the `64-column-tables` feature to enable diesels support for tables with more than 32 columns.",
kind))
})format!(
46 "{kind} contains more than 32 columns. \nhelp: consider enabling the \
47 `64-column-tables` feature to enable diesels support for \
48 tables with more than 32 columns."
49 )
50 } else {
51 ::alloc::__export::must_use({
::alloc::fmt::format(format_args!("{0} contains more than 16 columns. \nhelp: consider enabling the `32-column-tables` feature to enable diesels support for tables with more than 16 columns.",
kind))
})format!(
52 "{kind} contains more than 16 columns. \nhelp: consider enabling the \
53 `32-column-tables` feature to enable diesels support for \
54 tables with more than 16 columns."
55 )
56 };
57 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "compile_error");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&txt, &mut _s);
_s
});
::quote::__private::push_semi(&mut _s);
_s
}quote::quote! {
58 compile_error!(#txt);
59 }
60 } else {
61 expand(input, kind)
62 }
63 }
64 Err(_) => {
65 let kind = kind.macro_name();
66 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "compile_error");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "concat");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::parse(&mut _s, "\"invalid `\"");
::quote::__private::push_comma(&mut _s);
::quote::ToTokens::to_tokens(&kind, &mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::parse(&mut _s,
"\"!` syntax \\nhelp: please see the `\"");
::quote::__private::push_comma(&mut _s);
::quote::ToTokens::to_tokens(&kind, &mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::parse(&mut _s,
"\"!` macro docs for more info\\n\\\n help: docs available at: `https://docs.diesel.rs/\"");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "env");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::parse(&mut _s,
"\"CARGO_PKG_VERSION_MAJOR\"");
_s
});
::quote::__private::push_comma(&mut _s);
::quote::__private::parse(&mut _s, "\".\"");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "env");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::parse(&mut _s,
"\"CARGO_PKG_VERSION_MINOR\"");
_s
});
::quote::__private::push_comma(&mut _s);
::quote::__private::parse(&mut _s, "\".x/diesel/macro.\"");
::quote::__private::push_comma(&mut _s);
::quote::ToTokens::to_tokens(&kind, &mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::parse(&mut _s, "\".html`\\n\"");
_s
});
_s
});
::quote::__private::push_semi(&mut _s);
::quote::ToTokens::to_tokens(&tokenstream2, &mut _s);
_s
}quote::quote! {
67 compile_error!(
68 concat!("invalid `", #kind, "!` syntax \nhelp: please see the `", #kind, "!` macro docs for more info\n\
69 help: docs available at: `https://docs.diesel.rs/", env!("CARGO_PKG_VERSION_MAJOR"), ".", env!("CARGO_PKG_VERSION_MINOR"), ".x/diesel/macro.", #kind, ".html`\n"
70 ));
71 #tokenstream2
72 }
73 }
74 }
75}
76
77fn expand(input: TableDecl, kind: QuerySourceMacroKind) -> TokenStream {
78 let kind_name = kind.macro_name();
79
80 let meta = &input.view.meta;
81 let table_name = &input.view.table_name;
82 let imports = if input.view.use_statements.is_empty() {
83 <[_]>::into_vec(::alloc::boxed::box_new([::syn::__private::parse_quote({
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_star(&mut _s);
::quote::__private::push_semi(&mut _s);
_s
})]))vec![parse_quote!(
84 use diesel::sql_types::*;
85 )]
86 } else {
87 input.view.use_statements.clone()
88 };
89 let column_names = input
90 .view
91 .column_defs
92 .iter()
93 .map(|c| &c.column_name)
94 .collect::<Vec<_>>();
95 let column_names = &column_names;
96 let primary_key: Option<TokenStream> = if #[allow(non_exhaustive_omitted_patterns)] match kind {
QuerySourceMacroKind::Table => true,
_ => false,
}matches!(kind, QuerySourceMacroKind::Table) {
97 let primary_key = match input.primary_keys.as_ref() {
98 None if column_names.contains(&&syn::Ident::new(
99 DEFAULT_PRIMARY_KEY_NAME,
100 proc_macro2::Span::mixed_site(),
101 )) =>
102 {
103 let id = syn::Ident::new(DEFAULT_PRIMARY_KEY_NAME, proc_macro2::Span::mixed_site());
104 ::syn::__private::parse_quote({
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&id, &mut _s);
_s
});parse_quote! {
105 #id
106 }
107 }
108 None => {
109 let mut message = ::alloc::__export::must_use({
::alloc::fmt::format(format_args!("neither an explicit primary key found nor does an `id` column exist.\nconsider explicitly defining a primary key. \nfor example for specifying `{0}` as primary key:\n\n{2}! {{\n\n {1}({0}){{\n",
column_names[0], input.view.table_name, kind_name))
})format!(
110 "neither an explicit primary key found nor does an `id` column exist.\n\
111 consider explicitly defining a primary key. \n\
112 for example for specifying `{key}` as primary key:\n\n\
113 {kind_name}! {{\n
114 {table}({key}){{\n",
115 key = column_names[0],
116 table = input.view.table_name,
117 );
118 message += &::alloc::__export::must_use({
::alloc::fmt::format(format_args!("\t{1} ({0}) {{\n",
&column_names[0], table_name))
})format!("\t{table_name} ({}) {{\n", &column_names[0]);
119 for c in &input.view.column_defs {
120 let tpe = c
121 .tpe
122 .path
123 .segments
124 .iter()
125 .map(|p| p.ident.to_string())
126 .collect::<Vec<_>>()
127 .join("::");
128 message += &::alloc::__export::must_use({
::alloc::fmt::format(format_args!("\t\t{0} -> {1},\n", c.column_name,
tpe))
})format!("\t\t{} -> {tpe},\n", c.column_name);
129 }
130 message += "\t}\n}";
131
132 let span = Span::mixed_site().located_at(input.view.table_name.span());
133 return {
let mut _s = ::quote::__private::TokenStream::new();
let _span: ::quote::__private::Span =
::quote::__private::get_span(span).__into_span();
::quote::__private::push_ident_spanned(&mut _s, _span, "compile_error");
::quote::__private::push_bang_spanned(&mut _s, _span);
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
let _: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::ToTokens::to_tokens(&message, &mut _s);
_s
});
::quote::__private::push_semi_spanned(&mut _s, _span);
_s
}quote::quote_spanned! {span=>
134 compile_error!(#message);
135 };
136 }
137 Some(a) if a.keys.len() == 1 => {
138 let k = a.keys.first().unwrap();
139 ::syn::__private::parse_quote({
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&k, &mut _s);
_s
});parse_quote! {
140 #k
141 }
142 }
143 Some(a) => {
144 let keys = a.keys.iter();
145
146 ::syn::__private::parse_quote({
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut keys, i) = keys.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let keys =
match keys.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&keys, &mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});parse_quote! {
147 (#(#keys,)*)
148 }
149 }
150 };
151 Some(primary_key)
152 } else {
153 None
154 };
155
156 let query_source_ident = match kind {
157 QuerySourceMacroKind::Table => syn::Ident::new("table", input.view.table_name.span()),
158 QuerySourceMacroKind::View => syn::Ident::new("view", input.view.table_name.span()),
159 };
160
161 let column_defs = input
162 .view
163 .column_defs
164 .iter()
165 .map(|c| expand_column_def(c, &query_source_ident, kind));
166 let column_ty = input.view.column_defs.iter().map(|c| &c.tpe);
167 let valid_grouping_for_table_columns = generate_valid_grouping_for_table_columns(&input);
168
169 let sql_name = &input.view.sql_name;
170 let static_query_fragment_impl_for_table = if let Some(schema) = input.view.schema {
171 let schema_name = schema.to_string();
172 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "StaticQueryFragment");
::quote::__private::push_ident(&mut _s, "for");
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "Component");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "InfixNode");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Identifier");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'static");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Identifier");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'static");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'static");
::quote::__private::push_ident(&mut _s, "str");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "const");
::quote::__private::push_ident(&mut _s, "STATIC_COMPONENT");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'static");
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Component");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "InfixNode");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "new");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Identifier");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&schema_name, &mut _s);
_s
});
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Identifier");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&sql_name, &mut _s);
_s
});
::quote::__private::push_comma(&mut _s);
::quote::__private::parse(&mut _s, "\".\"");
_s
});
::quote::__private::push_semi(&mut _s);
_s
});
_s
}quote::quote! {
173 impl diesel::internal::table_macro::StaticQueryFragment for #query_source_ident {
174 type Component = diesel::internal::table_macro::InfixNode<
175 diesel::internal::table_macro::Identifier<'static>,
176 diesel::internal::table_macro::Identifier<'static>,
177 &'static str
178 >;
179 const STATIC_COMPONENT: &'static Self::Component = &diesel::internal::table_macro::InfixNode::new(
180 diesel::internal::table_macro::Identifier(#schema_name),
181 diesel::internal::table_macro::Identifier(#sql_name),
182 "."
183 );
184 }
185 }
186 } else {
187 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "StaticQueryFragment");
::quote::__private::push_ident(&mut _s, "for");
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "Component");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Identifier");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'static");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "const");
::quote::__private::push_ident(&mut _s, "STATIC_COMPONENT");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'static");
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Component");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Identifier");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&sql_name, &mut _s);
_s
});
::quote::__private::push_semi(&mut _s);
_s
});
_s
}quote::quote! {
188 impl diesel::internal::table_macro::StaticQueryFragment for #query_source_ident {
189 type Component = diesel::internal::table_macro::Identifier<'static>;
190 const STATIC_COMPONENT: &'static Self::Component = &diesel::internal::table_macro::Identifier(#sql_name);
191 }
192 }
193 };
194
195 let reexport_column_from_dsl = input.view.column_defs.iter().map(|c| {
196 let column_name = &c.column_name;
197 if c.column_name == *table_name {
198 let span = Span::mixed_site().located_at(c.column_name.span());
199 let message = ::alloc::__export::must_use({
::alloc::fmt::format(format_args!("column `{1}` cannot be named the same as it\'s {2}.\nyou may use `#[sql_name = \"{1}\"]` to reference the {2}\'s `{1}` column \ndocs available at: `https://docs.diesel.rs/{0}.x/diesel/macro.{2}.html`\n",
"2.3.7".rsplit_once('.').expect("This is a valid version").0,
column_name, kind_name))
})format!(
200 "column `{column_name}` cannot be named the same as it's {kind_name}.\n\
201 you may use `#[sql_name = \"{column_name}\"]` to reference the {kind_name}'s \
202 `{column_name}` column \n\
203 docs available at: `https://docs.diesel.rs/{}.x/diesel/macro.{kind_name}.html`\n",
204 env!("CARGO_PKG_VERSION")
205 .rsplit_once('.')
206 .expect("This is a valid version")
207 .0
208 );
209 {
let mut _s = ::quote::__private::TokenStream::new();
let _span: ::quote::__private::Span =
::quote::__private::get_span(span).__into_span();
::quote::__private::push_ident_spanned(&mut _s, _span, "compile_error");
::quote::__private::push_bang_spanned(&mut _s, _span);
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
let _: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::ToTokens::to_tokens(&message, &mut _s);
_s
});
::quote::__private::push_semi_spanned(&mut _s, _span);
_s
}quote::quote_spanned! { span =>
210 compile_error!(#message);
211 }
212 } else {
213 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "columns");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&column_name, &mut _s);
::quote::__private::push_semi(&mut _s);
_s
}quote::quote! {
214 pub use super::columns::#column_name;
215 }
216 }
217 });
218 let kind_specific_impls = match kind {
219 QuerySourceMacroKind::Table => {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Table");
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "table");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "PrimaryKey");
::quote::__private::push_eq(&mut _s);
::quote::ToTokens::to_tokens(&primary_key, &mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "AllColumns");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut column_names, i) = column_names.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let column_names =
match column_names.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&column_names, &mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "primary_key");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "PrimaryKey");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&primary_key, &mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "all_columns");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AllColumns");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut column_names, i) = column_names.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let column_names =
match column_names.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&column_names, &mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "associations");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "HasTable");
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "table");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "Table");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "table");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Table");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "table");
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "IntoUpdateTarget");
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "table");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "WhereClause");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_shl(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AsQuery");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Query");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "IntoUpdateTarget");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "WhereClause");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "into_update_target");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "self");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "UpdateTarget");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Table");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "WhereClause");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AsQuery");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_ident(&mut _s, "q");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "SelectStatement");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "FromClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "table");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "as_query");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "q");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s,
"into_update_target");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "insertable");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Insertable");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "table");
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "table");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AsQuery");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Query");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "insertable");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Insertable");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "Values");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_shl(&mut _s);
::quote::__private::push_ident(&mut _s, "table");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AsQuery");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Query");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "insertable");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Insertable");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Values");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "values");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "self");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Values");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AsQuery");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "as_query");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "values");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "insertable");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Insertable");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_ident(&mut _s, "table");
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "table");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "insertable");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Insertable");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "Values");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "table");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "insertable");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Insertable");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Values");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "values");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "self");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Values");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_star(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
_s
});
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "values");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
_s
});
_s
}quote::quote! {
220 impl diesel::Table for table {
221 type PrimaryKey = #primary_key;
222 type AllColumns = (#(#column_names,)*);
223
224 fn primary_key(&self) -> Self::PrimaryKey {
225 #primary_key
226 }
227
228 fn all_columns() -> Self::AllColumns {
229 (#(#column_names,)*)
230 }
231 }
232
233 impl diesel::associations::HasTable for table {
234 type Table = Self;
235
236 fn table() -> Self::Table {
237 table
238 }
239 }
240
241 impl diesel::query_builder::IntoUpdateTarget for table {
242 type WhereClause = <<Self as diesel::query_builder::AsQuery>::Query as diesel::query_builder::IntoUpdateTarget>::WhereClause;
243
244 fn into_update_target(self) -> diesel::query_builder::UpdateTarget<Self::Table, Self::WhereClause> {
245 use diesel::query_builder::AsQuery;
246 let q: diesel::internal::table_macro::SelectStatement<diesel::internal::table_macro::FromClause<table>> = self.as_query();
247 q.into_update_target()
248 }
249 }
250
251 impl<T> diesel::insertable::Insertable<T> for table
255 where
256 <table as diesel::query_builder::AsQuery>::Query: diesel::insertable::Insertable<T>,
257 {
258 type Values = <<table as diesel::query_builder::AsQuery>::Query as diesel::insertable::Insertable<T>>::Values;
259
260 fn values(self) -> Self::Values {
261 use diesel::query_builder::AsQuery;
262 self.as_query().values()
263 }
264 }
265
266 impl<'a, T> diesel::insertable::Insertable<T> for &'a table
267 where
268 table: diesel::insertable::Insertable<T>,
269 {
270 type Values = <table as diesel::insertable::Insertable<T>>::Values;
271
272 fn values(self) -> Self::Values {
273 (*self).values()
274 }
275 }
276 },
277 QuerySourceMacroKind::View => {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_pound(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "doc");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "hidden");
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "view");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "table");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryRelation");
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "view");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "AllColumns");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut column_names, i) = column_names.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let column_names =
match column_names.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&column_names, &mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "all_columns");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AllColumns");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut column_names, i) = column_names.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let column_names =
match column_names.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&column_names, &mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Sealed");
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "view");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
::quote::__private::TokenStream::new());
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "View");
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "view");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
::quote::__private::TokenStream::new());
_s
}quote::quote! {
278 #[doc(hidden)]
280 pub use self::view as table;
281
282 impl diesel::query_source::QueryRelation for view {
283 type AllColumns = (#(#column_names,)*);
284
285 fn all_columns() -> Self::AllColumns {
286 (#(#column_names,)*)
287 }
288 }
289
290 impl diesel::internal::table_macro::Sealed for view {}
291 impl diesel::query_source::View for view {}
292 },
293 };
294
295 let backend_specific_table_impls = if truecfg!(feature = "postgres")
296 && #[allow(non_exhaustive_omitted_patterns)] match kind {
QuerySourceMacroKind::Table => true,
_ => false,
}matches!(kind, QuerySourceMacroKind::Table)
297 {
298 Some({
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "JoinTo");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Only");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "table");
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Only");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "JoinTo");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "table");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "FromClause");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Only");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "OnClause");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Only");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "JoinTo");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "table");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "OnClause");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "join_target");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s,
"__diesel_internal_rhs");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Only");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_gt(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "FromClause");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "OnClause");
_s
});
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_underscore(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s,
"__diesel_internal_on_clause");
_s
});
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Only");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "join_target");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "table");
_s
});
::quote::__private::push_semi(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s,
"__diesel_internal_rhs");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s,
"__diesel_internal_on_clause");
_s
});
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AppearsInFromClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Only");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "table");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "table");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "Count");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Once");
::quote::__private::push_semi(&mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AppearsInFromClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "table");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Only");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "table");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "Count");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Once");
::quote::__private::push_semi(&mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "TSM");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "JoinTo");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Tablesample");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "TSM");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "table");
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Tablesample");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "TSM");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "JoinTo");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "table");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "TSM");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "TablesampleMethod");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "FromClause");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Tablesample");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "TSM");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "OnClause");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Tablesample");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "TSM");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "JoinTo");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "table");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "OnClause");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "join_target");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s,
"__diesel_internal_rhs");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Tablesample");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "TSM");
::quote::__private::push_gt(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "FromClause");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "OnClause");
_s
});
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_underscore(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s,
"__diesel_internal_on_clause");
_s
});
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Tablesample");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "TSM");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "join_target");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "table");
_s
});
::quote::__private::push_semi(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s,
"__diesel_internal_rhs");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s,
"__diesel_internal_on_clause");
_s
});
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "TSM");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AppearsInFromClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Tablesample");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "table");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "TSM");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "table");
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "TSM");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "TablesampleMethod");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "Count");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Once");
::quote::__private::push_semi(&mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "TSM");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AppearsInFromClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "table");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Tablesample");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "table");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "TSM");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "TSM");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "TablesampleMethod");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "Count");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Once");
::quote::__private::push_semi(&mut _s);
_s
});
_s
}quote::quote! {
299 impl<S> diesel::JoinTo<diesel::query_builder::Only<S>> for table
300 where
301 diesel::query_builder::Only<S>: diesel::JoinTo<table>,
302 {
303 type FromClause = diesel::query_builder::Only<S>;
304 type OnClause = <diesel::query_builder::Only<S> as diesel::JoinTo<table>>::OnClause;
305
306 fn join_target(__diesel_internal_rhs: diesel::query_builder::Only<S>) -> (Self::FromClause, Self::OnClause) {
307 let (_, __diesel_internal_on_clause) = diesel::query_builder::Only::<S>::join_target(table);
308 (__diesel_internal_rhs, __diesel_internal_on_clause)
309 }
310 }
311
312 impl diesel::query_source::AppearsInFromClause<diesel::query_builder::Only<table>>
313 for table
314 {
315 type Count = diesel::query_source::Once;
316 }
317
318 impl diesel::query_source::AppearsInFromClause<table>
319 for diesel::query_builder::Only<table>
320 {
321 type Count = diesel::query_source::Once;
322 }
323
324 impl<S, TSM> diesel::JoinTo<diesel::query_builder::Tablesample<S, TSM>> for table
325 where
326 diesel::query_builder::Tablesample<S, TSM>: diesel::JoinTo<table>,
327 TSM: diesel::internal::table_macro::TablesampleMethod
328 {
329 type FromClause = diesel::query_builder::Tablesample<S, TSM>;
330 type OnClause = <diesel::query_builder::Tablesample<S, TSM> as diesel::JoinTo<table>>::OnClause;
331
332 fn join_target(__diesel_internal_rhs: diesel::query_builder::Tablesample<S, TSM>) -> (Self::FromClause, Self::OnClause) {
333 let (_, __diesel_internal_on_clause) = diesel::query_builder::Tablesample::<S, TSM>::join_target(table);
334 (__diesel_internal_rhs, __diesel_internal_on_clause)
335 }
336 }
337
338 impl<TSM> diesel::query_source::AppearsInFromClause<diesel::query_builder::Tablesample<table, TSM>>
339 for table
340 where
341 TSM: diesel::internal::table_macro::TablesampleMethod
342 {
343 type Count = diesel::query_source::Once;
344 }
345
346 impl<TSM> diesel::query_source::AppearsInFromClause<table>
347 for diesel::query_builder::Tablesample<table, TSM>
348 where
349 TSM: diesel::internal::table_macro::TablesampleMethod
350 {
351 type Count = diesel::query_source::Once;
352 }
353 })
354 } else {
355 None
356 };
357
358 let imports_for_column_module = imports.iter().map(fix_import_for_submodule);
359
360 {
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut meta, i) = meta.quote_into_iter();
let has_iter = has_iter | i;
<_ as ::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let meta =
match meta.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&meta, &mut _s);
}
}
::quote::__private::push_pound(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "allow");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "unused_imports");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "dead_code");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "unreachable_pub");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s,
"unused_qualifications");
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "mod");
::quote::ToTokens::to_tokens(&table_name, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "columns");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_star(&mut _s);
::quote::__private::push_semi(&mut _s);
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut imports, i) = imports.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let imports =
match imports.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&imports, &mut _s);
}
}
::quote::__private::push_pound(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "doc");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "concat");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::parse(&mut _s,
"\"Re-exports all of the columns of this \"");
::quote::__private::push_comma(&mut _s);
::quote::ToTokens::to_tokens(&kind_name, &mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::parse(&mut _s, "\", as well as the\"");
_s
});
_s
});
::quote::__private::push_pound(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "doc");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "concat");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&kind_name, &mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::parse(&mut _s,
"\" struct renamed to the module name. This is meant to be\"");
_s
});
_s
});
::quote::__private::push_pound(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "doc");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "concat");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::parse(&mut _s,
"\"glob imported for functions which only deal with one \"");
::quote::__private::push_comma(&mut _s);
::quote::ToTokens::to_tokens(&kind_name, &mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::parse(&mut _s, "\".\"");
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "mod");
::quote::__private::push_ident(&mut _s, "dsl");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut reexport_column_from_dsl, i) =
reexport_column_from_dsl.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let reexport_column_from_dsl =
match reexport_column_from_dsl.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&reexport_column_from_dsl,
&mut _s);
}
}
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&table_name, &mut _s);
::quote::__private::push_semi(&mut _s);
_s
});
::quote::__private::push_pound(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "allow");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s,
"non_upper_case_globals");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "dead_code");
_s
});
_s
});
::quote::__private::push_pound(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "doc");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "concat");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::parse(&mut _s,
"\"A tuple of all of the columns on this\"");
::quote::__private::push_comma(&mut _s);
::quote::ToTokens::to_tokens(&kind_name, &mut _s);
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "const");
::quote::__private::push_ident(&mut _s, "all_columns");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut column_names, i) = column_names.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let column_names =
match column_names.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&column_names, &mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
::quote::__private::push_eq(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut column_names, i) = column_names.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let column_names =
match column_names.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&column_names, &mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
::quote::__private::push_semi(&mut _s);
::quote::__private::push_pound(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "allow");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s,
"non_camel_case_types");
_s
});
_s
});
::quote::__private::push_pound(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "derive");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Debug");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Clone");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Copy");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryId");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Default");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "PartialEq");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Eq");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "PartialOrd");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Ord");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Hash");
_s
});
_s
});
::quote::__private::push_pound(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "doc");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "concat");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::parse(&mut _s, "\"The actual \"");
::quote::__private::push_comma(&mut _s);
::quote::ToTokens::to_tokens(&kind_name, &mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::parse(&mut _s, "\" struct\"");
_s
});
_s
});
::quote::__private::push_pound(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "doc");
::quote::__private::push_eq(&mut _s);
::quote::__private::parse(&mut _s, "r\"\"");
_s
});
::quote::__private::push_pound(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "doc");
::quote::__private::push_eq(&mut _s);
::quote::__private::parse(&mut _s,
"r\" This is the type which provides the base methods of the query\"");
_s
});
::quote::__private::push_pound(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "doc");
::quote::__private::push_eq(&mut _s);
::quote::__private::parse(&mut _s,
"r\" builder, such as `.select` and `.filter`.\"");
_s
});
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "struct");
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "impl");
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_pound(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "allow");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "dead_code");
_s
});
_s
});
::quote::__private::push_pound(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "doc");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "concat");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::parse(&mut _s, "\"Represents `\"");
::quote::__private::push_comma(&mut _s);
::quote::ToTokens::to_tokens(&kind_name, &mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::parse(&mut _s,
"\"_name.*`, which is sometimes necessary\"");
_s
});
_s
});
::quote::__private::push_pound(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "doc");
::quote::__private::push_eq(&mut _s);
::quote::__private::parse(&mut _s,
"r\" for efficient count queries. It cannot be used in place of\"");
_s
});
::quote::__private::push_pound(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "doc");
::quote::__private::push_eq(&mut _s);
::quote::__private::parse(&mut _s, "r\" `all_columns`\"");
_s
});
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "star");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "star");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "star");
_s
});
_s
});
::quote::__private::push_pound(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "doc");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "concat");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::parse(&mut _s,
"\"The SQL type of all of the columns on this \"");
::quote::__private::push_comma(&mut _s);
::quote::ToTokens::to_tokens(&kind_name, &mut _s);
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "SqlType");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut column_ty, i) = column_ty.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let column_ty =
match column_ty.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&column_ty, &mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
::quote::__private::push_semi(&mut _s);
::quote::__private::push_pound(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "doc");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "concat");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::parse(&mut _s,
"\"Helper type for representing a boxed query from this \"");
::quote::__private::push_comma(&mut _s);
::quote::ToTokens::to_tokens(&kind_name, &mut _s);
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "BoxedQuery");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "SqlType");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BoxedSelectStatement");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "FromClause");
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QuerySource");
::quote::__private::push_ident(&mut _s, "for");
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "FromClause");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"StaticQueryFragmentInstance");
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "DefaultSelection");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryRelation");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AllColumns");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "from_clause");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "FromClause");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"StaticQueryFragmentInstance");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "new");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s,
"default_selection");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "DefaultSelection");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryRelation");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "all_columns");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "PlainQuerySource");
::quote::__private::push_ident(&mut _s, "for");
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
::quote::__private::TokenStream::new());
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "StaticQueryFragment");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Component");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "walk_ast");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s,
"__diesel_internal_pass");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AstPass");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'_");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_gt(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "result");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"StaticQueryFragment");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "STATIC_COMPONENT");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "walk_ast");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s,
"__diesel_internal_pass");
_s
});
_s
});
_s
});
::quote::ToTokens::to_tokens(&static_query_fragment_impl_for_table,
&mut _s);
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AsQuery");
::quote::__private::push_ident(&mut _s, "for");
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "SqlType");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "SqlType");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "Query");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "SelectStatement");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "FromClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "as_query");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "self");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Query");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "SelectStatement");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "simple");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "self");
_s
});
_s
});
_s
});
::quote::ToTokens::to_tokens(&kind_specific_impls, &mut _s);
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AppearsInFromClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "Count");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Once");
::quote::__private::push_semi(&mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"AliasAppearsInFromClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AliasSource");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Target");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "Count");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Never");
::quote::__private::push_semi(&mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S1");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "S2");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"AliasAliasAppearsInFromClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "S2");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "S1");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "S1");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AliasSource");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Target");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "S2");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AliasSource");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Target");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "S1");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"AliasAliasAppearsInFromClauseSameTable");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S2");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "Count");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S1");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"AliasAliasAppearsInFromClauseSameTable");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S2");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Count");
::quote::__private::push_semi(&mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AppearsInFromClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Alias");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AliasSource");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "Count");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Never");
::quote::__private::push_semi(&mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "C");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"FieldAliasMapperAssociatedTypesDisjointnessTrick");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "C");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AliasSource");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Target");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_add(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "core");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "clone");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Clone");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "C");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryRelationField");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryRelation");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "Out");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AliasedField");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "C");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "map");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s,
"__diesel_internal_column");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "C");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s,
"__diesel_internal_alias");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Alias");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_gt(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Out");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s,
"__diesel_internal_alias");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "field");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s,
"__diesel_internal_column");
_s
});
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AppearsInFromClause");
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "NoFromClause");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "Count");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Never");
::quote::__private::push_semi(&mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Left");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Right");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Kind");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "JoinTo");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Join");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Left");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Right");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Kind");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Join");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Left");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Right");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Kind");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "JoinTo");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Left");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QuerySource");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Right");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QuerySource");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "FromClause");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Join");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Left");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Right");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Kind");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "OnClause");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Join");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Left");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Right");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Kind");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "JoinTo");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "OnClause");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "join_target");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s,
"__diesel_internal_rhs");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Join");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Left");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Right");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Kind");
::quote::__private::push_gt(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "FromClause");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "OnClause");
_s
});
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_underscore(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s,
"__diesel_internal_on_clause");
_s
});
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Join");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "join_target");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
_s
});
::quote::__private::push_semi(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s,
"__diesel_internal_rhs");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s,
"__diesel_internal_on_clause");
_s
});
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Join");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "On");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "JoinTo");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "JoinOn");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Join");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "On");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "JoinOn");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Join");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "On");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "JoinTo");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "FromClause");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "JoinOn");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Join");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "On");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "OnClause");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "JoinOn");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Join");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "On");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "JoinTo");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "OnClause");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "join_target");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s,
"__diesel_internal_rhs");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "JoinOn");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Join");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "On");
::quote::__private::push_gt(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "FromClause");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "OnClause");
_s
});
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_underscore(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s,
"__diesel_internal_on_clause");
_s
});
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "JoinOn");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "join_target");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
_s
});
::quote::__private::push_semi(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s,
"__diesel_internal_rhs");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s,
"__diesel_internal_on_clause");
_s
});
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "F");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "D");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "W");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "O");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "L");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Of");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "G");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "JoinTo");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "SelectStatement");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "FromClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "F");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "D");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "W");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "O");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "L");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Of");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "G");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "SelectStatement");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "FromClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "F");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "D");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "W");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "O");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "L");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Of");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "G");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "JoinTo");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "F");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QuerySource");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "FromClause");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "SelectStatement");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "FromClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "F");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "D");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "W");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "O");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "L");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Of");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "G");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "OnClause");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "SelectStatement");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "FromClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "F");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "D");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "W");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "O");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "L");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Of");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "G");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "JoinTo");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "OnClause");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "join_target");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s,
"__diesel_internal_rhs");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "SelectStatement");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "FromClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "F");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "D");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "W");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "O");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "L");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Of");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "G");
::quote::__private::push_gt(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "FromClause");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "OnClause");
_s
});
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_underscore(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s,
"__diesel_internal_on_clause");
_s
});
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "SelectStatement");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "join_target");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
_s
});
::quote::__private::push_semi(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s,
"__diesel_internal_rhs");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s,
"__diesel_internal_on_clause");
_s
});
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "QS");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "JoinTo");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BoxedSelectStatement");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "FromClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "QS");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BoxedSelectStatement");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "FromClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "QS");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "JoinTo");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "QS");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QuerySource");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "FromClause");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"BoxedSelectStatement");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "FromClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "QS");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "OnClause");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"BoxedSelectStatement");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "FromClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "QS");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "JoinTo");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "OnClause");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "join_target");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s,
"__diesel_internal_rhs");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"BoxedSelectStatement");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "FromClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "QS");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_gt(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "FromClause");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "OnClause");
_s
});
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_underscore(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s,
"__diesel_internal_on_clause");
_s
});
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"BoxedSelectStatement");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "join_target");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
_s
});
::quote::__private::push_semi(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s,
"__diesel_internal_rhs");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s,
"__diesel_internal_on_clause");
_s
});
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "JoinTo");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Alias");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Alias");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "JoinTo");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "FromClause");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Alias");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "OnClause");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Alias");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "JoinTo");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "OnClause");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "join_target");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s,
"__diesel_internal_rhs");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Alias");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_gt(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "FromClause");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "OnClause");
_s
});
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_underscore(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s,
"__diesel_internal_on_clause");
_s
});
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Alias");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "join_target");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
_s
});
::quote::__private::push_semi(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s,
"__diesel_internal_rhs");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s,
"__diesel_internal_on_clause");
_s
});
_s
});
_s
});
::quote::ToTokens::to_tokens(&backend_specific_table_impls,
&mut _s);
::quote::__private::push_pound(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "doc");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "concat");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::parse(&mut _s,
"\"Contains all of the columns of this \"");
::quote::__private::push_comma(&mut _s);
::quote::ToTokens::to_tokens(&kind_name, &mut _s);
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "mod");
::quote::__private::push_ident(&mut _s, "columns");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_semi(&mut _s);
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut imports_for_column_module, i) =
imports_for_column_module.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let imports_for_column_module =
match imports_for_column_module.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&imports_for_column_module,
&mut _s);
}
}
::quote::__private::push_pound(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "allow");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s,
"non_camel_case_types");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "dead_code");
_s
});
_s
});
::quote::__private::push_pound(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "derive");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Debug");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Clone");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Copy");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryId");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "PartialEq");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Eq");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "PartialOrd");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Ord");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Hash");
_s
});
_s
});
::quote::__private::push_pound(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "doc");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "concat");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::parse(&mut _s, "\"Represents `\"");
::quote::__private::push_comma(&mut _s);
::quote::ToTokens::to_tokens(&kind_name, &mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::parse(&mut _s,
"\"_name.*`, which is sometimes needed for\"");
_s
});
_s
});
::quote::__private::push_pound(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "doc");
::quote::__private::push_eq(&mut _s);
::quote::__private::parse(&mut _s,
"r\" efficient count queries. It cannot be used in place of\"");
_s
});
::quote::__private::push_pound(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "doc");
::quote::__private::push_eq(&mut _s);
::quote::__private::parse(&mut _s,
"r\" `all_columns`, and has a `SqlType` of `()` to prevent it\"");
_s
});
::quote::__private::push_pound(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "doc");
::quote::__private::push_eq(&mut _s);
::quote::__private::parse(&mut _s,
"r\" being used that way\"");
_s
});
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "struct");
::quote::__private::push_ident(&mut _s, "star");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "__GB");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "expression");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "ValidGrouping");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "__GB");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "star");
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut column_names, i) = column_names.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let column_names =
match column_names.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&column_names, &mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "expression");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "ValidGrouping");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "__GB");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "IsAggregate");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut column_names, i) = column_names.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let column_names =
match column_names.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&column_names, &mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "expression");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "ValidGrouping");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "__GB");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "IsAggregate");
::quote::__private::push_semi(&mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Expression");
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "star");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "SqlType");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "expression");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "expression_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "NotSelectable");
::quote::__private::push_semi(&mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "star");
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QuerySource");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "FromClause");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_pound(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "allow");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "non_snake_case");
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "walk_ast");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s,
"__diesel_internal_out");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AstPass");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'_");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_gt(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "result");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QuerySource");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "if");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_ident(&mut _s,
"__diesel_internal_out");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "should_skip_from");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "const");
::quote::__private::push_ident(&mut _s, "FROM_CLAUSE");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"StaticQueryFragmentInstance");
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"StaticQueryFragmentInstance");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "new");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "FROM_CLAUSE");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "walk_ast");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s,
"__diesel_internal_out");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "reborrow");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
::quote::__private::push_question(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s,
"__diesel_internal_out");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "push_sql");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::parse(&mut _s, "\".\"");
_s
});
::quote::__private::push_semi(&mut _s);
_s
});
::quote::__private::push_ident(&mut _s,
"__diesel_internal_out");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "push_sql");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::parse(&mut _s, "\"*\"");
_s
});
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "Ok");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"SelectableExpression");
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "star");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
::quote::__private::TokenStream::new());
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AppearsOnTable");
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "star");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
::quote::__private::TokenStream::new());
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut column_defs, i) = column_defs.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let column_defs =
match column_defs.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&column_defs, &mut _s);
}
}
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut valid_grouping_for_table_columns, i) =
valid_grouping_for_table_columns.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let valid_grouping_for_table_columns =
match valid_grouping_for_table_columns.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&valid_grouping_for_table_columns,
&mut _s);
}
}
_s
});
_s
});
_s
}quote::quote! {
361 #(#meta)*
362 #[allow(unused_imports, dead_code, unreachable_pub, unused_qualifications)]
363 pub mod #table_name {
364 use ::diesel;
365 pub use self::columns::*;
366 #(#imports)*
367
368 #[doc = concat!("Re-exports all of the columns of this ", #kind_name, ", as well as the")]
369 #[doc = concat!(#kind_name, " struct renamed to the module name. This is meant to be")]
370 #[doc = concat!("glob imported for functions which only deal with one ", #kind_name, ".")]
371 pub mod dsl {
372 #(#reexport_column_from_dsl)*
373 pub use super::#query_source_ident as #table_name;
374 }
375
376 #[allow(non_upper_case_globals, dead_code)]
377 #[doc = concat!("A tuple of all of the columns on this", #kind_name)]
378 pub const all_columns: (#(#column_names,)*) = (#(#column_names,)*);
379
380 #[allow(non_camel_case_types)]
381 #[derive(Debug, Clone, Copy, diesel::query_builder::QueryId, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
382 #[doc = concat!("The actual ", #kind_name, " struct")]
383 pub struct #query_source_ident;
387
388 impl #query_source_ident {
389 #[allow(dead_code)]
390 #[doc = concat!("Represents `", #kind_name, "_name.*`, which is sometimes necessary")]
391 pub fn star(&self) -> star {
394 star
395 }
396 }
397
398 #[doc = concat!("The SQL type of all of the columns on this ", #kind_name)]
399 pub type SqlType = (#(#column_ty,)*);
400
401 #[doc = concat!("Helper type for representing a boxed query from this ", #kind_name)]
402 pub type BoxedQuery<'a, DB, ST = SqlType> = diesel::internal::table_macro::BoxedSelectStatement<'a, ST, diesel::internal::table_macro::FromClause<#query_source_ident>, DB>;
403
404 impl diesel::QuerySource for #query_source_ident {
405 type FromClause = diesel::internal::table_macro::StaticQueryFragmentInstance<#query_source_ident>;
406 type DefaultSelection = <Self as diesel::query_source::QueryRelation>::AllColumns;
407
408 fn from_clause(&self) -> Self::FromClause {
409 diesel::internal::table_macro::StaticQueryFragmentInstance::new()
410 }
411
412 fn default_selection(&self) -> Self::DefaultSelection {
413 <Self as diesel::query_source::QueryRelation>::all_columns()
414 }
415 }
416
417 impl diesel::internal::table_macro::PlainQuerySource for #query_source_ident {}
418
419 impl<DB> diesel::query_builder::QueryFragment<DB> for #query_source_ident where
420 DB: diesel::backend::Backend,
421 <Self as diesel::internal::table_macro::StaticQueryFragment>::Component: diesel::query_builder::QueryFragment<DB>
422 {
423 fn walk_ast<'b>(&'b self, __diesel_internal_pass: diesel::query_builder::AstPass<'_, 'b, DB>) -> diesel::result::QueryResult<()> {
424 <Self as diesel::internal::table_macro::StaticQueryFragment>::STATIC_COMPONENT.walk_ast(__diesel_internal_pass)
425 }
426 }
427
428 #static_query_fragment_impl_for_table
429
430 impl diesel::query_builder::AsQuery for #query_source_ident {
431 type SqlType = SqlType;
432 type Query = diesel::internal::table_macro::SelectStatement<diesel::internal::table_macro::FromClause<Self>>;
433
434 fn as_query(self) -> Self::Query {
435 diesel::internal::table_macro::SelectStatement::simple(self)
436 }
437 }
438
439 #kind_specific_impls
440
441 impl diesel::query_source::AppearsInFromClause<Self> for #query_source_ident {
442 type Count = diesel::query_source::Once;
443 }
444
445 impl<S> diesel::internal::table_macro::AliasAppearsInFromClause<S, Self> for #query_source_ident
447 where S: diesel::query_source::AliasSource<Target = Self>,
448 {
449 type Count = diesel::query_source::Never;
450 }
451
452 impl<S1, S2> diesel::internal::table_macro::AliasAliasAppearsInFromClause<Self, S2, S1> for #query_source_ident
456 where S1: diesel::query_source::AliasSource<Target = Self>,
457 S2: diesel::query_source::AliasSource<Target = Self>,
458 S1: diesel::internal::table_macro::AliasAliasAppearsInFromClauseSameTable<S2, Self>,
459 {
460 type Count = <S1 as diesel::internal::table_macro::AliasAliasAppearsInFromClauseSameTable<S2, Self>>::Count;
461 }
462
463 impl<S> diesel::query_source::AppearsInFromClause<diesel::query_source::Alias<S>> for #query_source_ident
464 where S: diesel::query_source::AliasSource,
465 {
466 type Count = diesel::query_source::Never;
467 }
468
469 impl<S, C> diesel::internal::table_macro::FieldAliasMapperAssociatedTypesDisjointnessTrick<Self, S, C> for #query_source_ident
470 where
471 S: diesel::query_source::AliasSource<Target = Self> + ::core::clone::Clone,
472 C: diesel::query_source::QueryRelationField<QueryRelation = Self>,
473 {
474 type Out = diesel::query_source::AliasedField<S, C>;
475
476 fn map(__diesel_internal_column: C, __diesel_internal_alias: &diesel::query_source::Alias<S>) -> Self::Out {
477 __diesel_internal_alias.field(__diesel_internal_column)
478 }
479 }
480
481 impl diesel::query_source::AppearsInFromClause<#query_source_ident> for diesel::internal::table_macro::NoFromClause {
482 type Count = diesel::query_source::Never;
483 }
484
485 impl<Left, Right, Kind> diesel::JoinTo<diesel::internal::table_macro::Join<Left, Right, Kind>> for #query_source_ident where
486 diesel::internal::table_macro::Join<Left, Right, Kind>: diesel::JoinTo<Self>,
487 Left: diesel::query_source::QuerySource,
488 Right: diesel::query_source::QuerySource,
489 {
490 type FromClause = diesel::internal::table_macro::Join<Left, Right, Kind>;
491 type OnClause = <diesel::internal::table_macro::Join<Left, Right, Kind> as diesel::JoinTo<Self>>::OnClause;
492
493 fn join_target(__diesel_internal_rhs: diesel::internal::table_macro::Join<Left, Right, Kind>) -> (Self::FromClause, Self::OnClause) {
494 let (_, __diesel_internal_on_clause) = diesel::internal::table_macro::Join::join_target(Self);
495 (__diesel_internal_rhs, __diesel_internal_on_clause)
496 }
497 }
498
499 impl<Join, On> diesel::JoinTo<diesel::internal::table_macro::JoinOn<Join, On>> for #query_source_ident where
500 diesel::internal::table_macro::JoinOn<Join, On>: diesel::JoinTo<Self>,
501 {
502 type FromClause = diesel::internal::table_macro::JoinOn<Join, On>;
503 type OnClause = <diesel::internal::table_macro::JoinOn<Join, On> as diesel::JoinTo<Self>>::OnClause;
504
505 fn join_target(__diesel_internal_rhs: diesel::internal::table_macro::JoinOn<Join, On>) -> (Self::FromClause, Self::OnClause) {
506 let (_, __diesel_internal_on_clause) = diesel::internal::table_macro::JoinOn::join_target(Self);
507 (__diesel_internal_rhs, __diesel_internal_on_clause)
508 }
509 }
510
511 impl<F, S, D, W, O, L, Of, G> diesel::JoinTo<diesel::internal::table_macro::SelectStatement<diesel::internal::table_macro::FromClause<F>, S, D, W, O, L, Of, G>> for #query_source_ident where
512 diesel::internal::table_macro::SelectStatement<diesel::internal::table_macro::FromClause<F>, S, D, W, O, L, Of, G>: diesel::JoinTo<Self>,
513 F: diesel::query_source::QuerySource
514 {
515 type FromClause = diesel::internal::table_macro::SelectStatement<diesel::internal::table_macro::FromClause<F>, S, D, W, O, L, Of, G>;
516 type OnClause = <diesel::internal::table_macro::SelectStatement<diesel::internal::table_macro::FromClause<F>, S, D, W, O, L, Of, G> as diesel::JoinTo<Self>>::OnClause;
517
518 fn join_target(__diesel_internal_rhs: diesel::internal::table_macro::SelectStatement<diesel::internal::table_macro::FromClause<F>, S, D, W, O, L, Of, G>) -> (Self::FromClause, Self::OnClause) {
519 let (_, __diesel_internal_on_clause) = diesel::internal::table_macro::SelectStatement::join_target(Self);
520 (__diesel_internal_rhs, __diesel_internal_on_clause)
521 }
522 }
523
524 impl<'a, QS, ST, DB> diesel::JoinTo<diesel::internal::table_macro::BoxedSelectStatement<'a, diesel::internal::table_macro::FromClause<QS>, ST, DB>> for #query_source_ident where
525 diesel::internal::table_macro::BoxedSelectStatement<'a, diesel::internal::table_macro::FromClause<QS>, ST, DB>: diesel::JoinTo<Self>,
526 QS: diesel::query_source::QuerySource,
527 {
528 type FromClause = diesel::internal::table_macro::BoxedSelectStatement<'a, diesel::internal::table_macro::FromClause<QS>, ST, DB>;
529 type OnClause = <diesel::internal::table_macro::BoxedSelectStatement<'a, diesel::internal::table_macro::FromClause<QS>, ST, DB> as diesel::JoinTo<Self>>::OnClause;
530 fn join_target(__diesel_internal_rhs: diesel::internal::table_macro::BoxedSelectStatement<'a, diesel::internal::table_macro::FromClause<QS>, ST, DB>) -> (Self::FromClause, Self::OnClause) {
531 let (_, __diesel_internal_on_clause) = diesel::internal::table_macro::BoxedSelectStatement::join_target(Self);
532 (__diesel_internal_rhs, __diesel_internal_on_clause)
533 }
534 }
535
536 impl<S> diesel::JoinTo<diesel::query_source::Alias<S>> for #query_source_ident
537 where
538 diesel::query_source::Alias<S>: diesel::JoinTo<Self>,
539 {
540 type FromClause = diesel::query_source::Alias<S>;
541 type OnClause = <diesel::query_source::Alias<S> as diesel::JoinTo<Self>>::OnClause;
542
543 fn join_target(__diesel_internal_rhs: diesel::query_source::Alias<S>) -> (Self::FromClause, Self::OnClause) {
544 let (_, __diesel_internal_on_clause) = diesel::query_source::Alias::<S>::join_target(Self);
545 (__diesel_internal_rhs, __diesel_internal_on_clause)
546 }
547 }
548
549 #backend_specific_table_impls
550
551 #[doc = concat!("Contains all of the columns of this ", #kind_name)]
552 pub mod columns {
553 use ::diesel;
554 use super::#query_source_ident;
555 #(#imports_for_column_module)*
556
557 #[allow(non_camel_case_types, dead_code)]
558 #[derive(Debug, Clone, Copy, diesel::query_builder::QueryId, PartialEq, Eq, PartialOrd, Ord, Hash)]
559 #[doc = concat!("Represents `", #kind_name, "_name.*`, which is sometimes needed for")]
560 pub struct star;
564
565 impl<__GB> diesel::expression::ValidGrouping<__GB> for star
566 where
567 (#(#column_names,)*): diesel::expression::ValidGrouping<__GB>,
568 {
569 type IsAggregate = <(#(#column_names,)*) as diesel::expression::ValidGrouping<__GB>>::IsAggregate;
570 }
571
572 impl diesel::Expression for star {
573 type SqlType = diesel::expression::expression_types::NotSelectable;
574 }
575
576 impl<DB: diesel::backend::Backend> diesel::query_builder::QueryFragment<DB> for star where
577 <#query_source_ident as diesel::QuerySource>::FromClause: diesel::query_builder::QueryFragment<DB>,
578 {
579 #[allow(non_snake_case)]
580 fn walk_ast<'b>(&'b self, mut __diesel_internal_out: diesel::query_builder::AstPass<'_, 'b, DB>) -> diesel::result::QueryResult<()>
581 {
582 use diesel::QuerySource;
583
584 if !__diesel_internal_out.should_skip_from() {
585 const FROM_CLAUSE: diesel::internal::table_macro::StaticQueryFragmentInstance<#query_source_ident> = diesel::internal::table_macro::StaticQueryFragmentInstance::new();
586
587 FROM_CLAUSE.walk_ast(__diesel_internal_out.reborrow())?;
588 __diesel_internal_out.push_sql(".");
589 }
590 __diesel_internal_out.push_sql("*");
591 Ok(())
592 }
593 }
594
595 impl diesel::SelectableExpression<#query_source_ident> for star {}
596
597 impl diesel::AppearsOnTable<#query_source_ident> for star {}
598
599 #(#column_defs)*
600
601 #(#valid_grouping_for_table_columns)*
602 }
603 }
604 }
605}
606
607fn generate_valid_grouping_for_table_columns(table: &TableDecl) -> Vec<TokenStream> {
608 let mut ret = Vec::with_capacity(table.view.column_defs.len() * table.view.column_defs.len());
609
610 let primary_key = if let Some(ref pk) = table.primary_keys {
611 if pk.keys.len() == 1 {
612 pk.keys.first().map(ToString::to_string)
613 } else {
614 None
615 }
616 } else {
617 Some(DEFAULT_PRIMARY_KEY_NAME.into())
618 };
619
620 for (id, right_col) in table.view.column_defs.iter().enumerate() {
621 for left_col in table.view.column_defs.iter().skip(id) {
622 let right_to_left = if Some(left_col.column_name.to_string()) == primary_key {
623 Ident::new("Yes", proc_macro2::Span::mixed_site())
624 } else {
625 Ident::new("No", proc_macro2::Span::mixed_site())
626 };
627
628 let left_to_right = if Some(right_col.column_name.to_string()) == primary_key {
629 Ident::new("Yes", proc_macro2::Span::mixed_site())
630 } else {
631 Ident::new("No", proc_macro2::Span::mixed_site())
632 };
633
634 let left_col = &left_col.column_name;
635 let right_col = &right_col.column_name;
636
637 if left_col != right_col {
638 ret.push({
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "expression");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "IsContainedInGroupBy");
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&right_col, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::ToTokens::to_tokens(&left_col, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "Output");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "expression");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"is_contained_in_group_by");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&right_to_left, &mut _s);
::quote::__private::push_semi(&mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "expression");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "IsContainedInGroupBy");
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&left_col, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::ToTokens::to_tokens(&right_col, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "Output");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "expression");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"is_contained_in_group_by");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&left_to_right, &mut _s);
::quote::__private::push_semi(&mut _s);
_s
});
_s
}quote::quote! {
639 impl diesel::expression::IsContainedInGroupBy<#right_col> for #left_col {
640 type Output = diesel::expression::is_contained_in_group_by::#right_to_left;
641 }
642
643 impl diesel::expression::IsContainedInGroupBy<#left_col> for #right_col {
644 type Output = diesel::expression::is_contained_in_group_by::#left_to_right;
645 }
646 });
647 }
648 }
649 }
650 ret
651}
652
653fn fix_import_for_submodule(import: &syn::ItemUse) -> syn::ItemUse {
654 let mut ret = import.clone();
655
656 if let syn::UseTree::Path(ref mut path) = ret.tree {
657 if path.ident == "super" {
661 let inner = path.clone();
662 *path.tree = syn::UseTree::Path(inner);
663 }
664 }
665
666 ret
667}
668
669fn is_numeric(ty: &syn::TypePath) -> bool {
670 const NUMERIC_TYPES: &[&str] = &[
671 "SmallInt",
672 "Int2",
673 "Smallint",
674 "SmallSerial",
675 "Integer",
676 "Int4",
677 "Serial",
678 "BigInt",
679 "Int8",
680 "Bigint",
681 "BigSerial",
682 "Decimal",
683 "Float",
684 "Float4",
685 "Float8",
686 "Double",
687 "Numeric",
688 ];
689
690 if let Some(last) = ty.path.segments.last() {
691 match &last.arguments {
692 syn::PathArguments::AngleBracketed(t)
693 if (last.ident == "Nullable" || last.ident == "Unsigned") && t.args.len() == 1 =>
694 {
695 if let Some(syn::GenericArgument::Type(syn::Type::Path(t))) = t.args.first() {
696 NUMERIC_TYPES.iter().any(|i| {
697 t.path.segments.last().map(|s| s.ident.to_string())
698 == Some(String::from(*i))
699 })
700 } else {
701 false
702 }
703 }
704 _ => NUMERIC_TYPES.iter().any(|i| last.ident == *i),
705 }
706 } else {
707 false
708 }
709}
710
711fn is_date_time(ty: &syn::TypePath) -> bool {
712 const DATE_TYPES: &[&str] = &["Time", "Date", "Timestamp", "Timestamptz"];
713 if let Some(last) = ty.path.segments.last() {
714 match &last.arguments {
715 syn::PathArguments::AngleBracketed(t)
716 if last.ident == "Nullable" && t.args.len() == 1 =>
717 {
718 if let Some(syn::GenericArgument::Type(syn::Type::Path(t))) = t.args.first() {
719 DATE_TYPES.iter().any(|i| {
720 t.path.segments.last().map(|s| s.ident.to_string())
721 == Some(String::from(*i))
722 })
723 } else {
724 false
725 }
726 }
727 _ => DATE_TYPES.iter().any(|i| last.ident == *i),
728 }
729 } else {
730 false
731 }
732}
733
734fn is_network(ty: &syn::TypePath) -> bool {
735 const NETWORK_TYPES: &[&str] = &["Cidr", "Inet"];
736
737 if let Some(last) = ty.path.segments.last() {
738 match &last.arguments {
739 syn::PathArguments::AngleBracketed(t)
740 if last.ident == "Nullable" && t.args.len() == 1 =>
741 {
742 if let Some(syn::GenericArgument::Type(syn::Type::Path(t))) = t.args.first() {
743 NETWORK_TYPES.iter().any(|i| {
744 t.path.segments.last().map(|s| s.ident.to_string())
745 == Some(String::from(*i))
746 })
747 } else {
748 false
749 }
750 }
751 _ => NETWORK_TYPES.iter().any(|i| last.ident == *i),
752 }
753 } else {
754 false
755 }
756}
757
758fn generate_op_impl(op: &str, tpe: &syn::Ident) -> TokenStream {
759 let fn_name = syn::Ident::new(&op.to_lowercase(), tpe.span());
760 let op = syn::Ident::new(op, tpe.span());
761 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Rhs");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "core");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "ops");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&op, &mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Rhs");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::ToTokens::to_tokens(&tpe, &mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "Rhs");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "expression");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AsExpression");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_shl(&mut _s);
::quote::ToTokens::to_tokens(&tpe, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Expression");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "SqlType");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "ops");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&op, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Rhs");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "Output");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "ops");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&op, &mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Rhs");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Expression");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "fn");
::quote::ToTokens::to_tokens(&fn_name, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s,
"__diesel_internal_rhs");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "Rhs");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Output");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "ops");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&op, &mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "new");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s,
"__diesel_internal_rhs");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "as_expression");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
_s
});
_s
});
_s
}quote::quote! {
762 impl<Rhs> ::core::ops::#op<Rhs> for #tpe
763 where
764 Rhs: diesel::expression::AsExpression<
765 <<#tpe as diesel::Expression>::SqlType as diesel::sql_types::ops::#op>::Rhs,
766 >,
767 {
768 type Output = diesel::internal::table_macro::ops::#op<Self, Rhs::Expression>;
769
770 fn #fn_name(self, __diesel_internal_rhs: Rhs) -> Self::Output {
771 diesel::internal::table_macro::ops::#op::new(self, __diesel_internal_rhs.as_expression())
772 }
773 }
774 }
775}
776
777fn expand_column_def(
778 column_def: &ColumnDef,
779 query_source_ident: &Ident,
780 kind: QuerySourceMacroKind,
781) -> TokenStream {
782 let span = Span::mixed_site().located_at(column_def.column_name.span());
785 let meta = &column_def.meta;
786 let column_name = &column_def.column_name;
787 let sql_name = &column_def.sql_name;
788 let sql_type = &column_def.tpe;
789
790 let backend_specific_column_impl = if truecfg!(feature = "postgres")
791 && #[allow(non_exhaustive_omitted_patterns)] match kind {
QuerySourceMacroKind::Table => true,
_ => false,
}matches!(kind, QuerySourceMacroKind::Table)
792 {
793 Some({
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AppearsInFromClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Only");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::ToTokens::to_tokens(&column_name, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "Count");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Once");
::quote::__private::push_semi(&mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "SelectableExpression");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Only");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::ToTokens::to_tokens(&column_name, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
::quote::__private::TokenStream::new());
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "TSM");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AppearsInFromClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Tablesample");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "TSM");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::ToTokens::to_tokens(&column_name, &mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "TSM");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "TablesampleMethod");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "Count");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Once");
::quote::__private::push_semi(&mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "TSM");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "SelectableExpression");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Tablesample");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "TSM");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::ToTokens::to_tokens(&column_name, &mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "TSM");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table_macro");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "TablesampleMethod");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
::quote::__private::TokenStream::new());
_s
}quote::quote! {
794 impl diesel::query_source::AppearsInFromClause<diesel::query_builder::Only<super::table>>
795 for #column_name
796 {
797 type Count = diesel::query_source::Once;
798 }
799 impl diesel::SelectableExpression<diesel::query_builder::Only<super::table>> for #column_name {}
800
801 impl<TSM> diesel::query_source::AppearsInFromClause<diesel::query_builder::Tablesample<super::table, TSM>>
802 for #column_name
803 where
804 TSM: diesel::internal::table_macro::TablesampleMethod
805 {
806 type Count = diesel::query_source::Once;
807 }
808 impl<TSM> diesel::SelectableExpression<diesel::query_builder::Tablesample<super::table, TSM>>
809 for #column_name where TSM: diesel::internal::table_macro::TablesampleMethod {}
810 })
811 } else {
812 None
813 };
814
815 let ops_impls = if is_numeric(&column_def.tpe) {
816 let add = generate_op_impl("Add", column_name);
817 let sub = generate_op_impl("Sub", column_name);
818 let div = generate_op_impl("Div", column_name);
819 let mul = generate_op_impl("Mul", column_name);
820 Some({
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&add, &mut _s);
::quote::ToTokens::to_tokens(&sub, &mut _s);
::quote::ToTokens::to_tokens(&div, &mut _s);
::quote::ToTokens::to_tokens(&mul, &mut _s);
_s
}quote::quote! {
821 #add
822 #sub
823 #div
824 #mul
825 })
826 } else if is_date_time(&column_def.tpe) || is_network(&column_def.tpe) {
827 let add = generate_op_impl("Add", column_name);
828 let sub = generate_op_impl("Sub", column_name);
829 Some({
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&add, &mut _s);
::quote::ToTokens::to_tokens(&sub, &mut _s);
_s
}quote::quote! {
830 #add
831 #sub
832 })
833 } else {
834 None
835 };
836
837 let max_length = column_def.max_length.as_ref().map(|column_max_length| {
838 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "SizeRestrictedColumn");
::quote::__private::push_ident(&mut _s, "for");
::quote::ToTokens::to_tokens(&column_name, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "const");
::quote::__private::push_ident(&mut _s, "MAX_LENGTH");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "usize");
::quote::__private::push_eq(&mut _s);
::quote::ToTokens::to_tokens(&column_max_length, &mut _s);
::quote::__private::push_semi(&mut _s);
_s
});
_s
}quote::quote! {
839 impl self::diesel::query_source::SizeRestrictedColumn for #column_name {
840 const MAX_LENGTH: usize = #column_max_length;
841 }
842 }
843 });
844
845 let table_specific_impls = if #[allow(non_exhaustive_omitted_patterns)] match kind {
QuerySourceMacroKind::Table => true,
_ => false,
}matches!(kind, QuerySourceMacroKind::Table) {
846 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Column");
::quote::__private::push_ident(&mut _s, "for");
::quote::ToTokens::to_tokens(&column_name, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "Table");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "table");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "const");
::quote::__private::push_ident(&mut _s, "NAME");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'static");
::quote::__private::push_ident(&mut _s, "str");
::quote::__private::push_eq(&mut _s);
::quote::ToTokens::to_tokens(&sql_name, &mut _s);
::quote::__private::push_semi(&mut _s);
_s
});
_s
}quote::quote! {
847 impl diesel::query_source::Column for #column_name {
848 type Table = super::table;
849
850 const NAME: &'static str = #sql_name;
851 }
852 }
853 } else {
854 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryRelationField");
::quote::__private::push_ident(&mut _s, "for");
::quote::ToTokens::to_tokens(&column_name, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "QueryRelation");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "view");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "const");
::quote::__private::push_ident(&mut _s, "NAME");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'static");
::quote::__private::push_ident(&mut _s, "str");
::quote::__private::push_eq(&mut _s);
::quote::ToTokens::to_tokens(&sql_name, &mut _s);
::quote::__private::push_semi(&mut _s);
_s
});
_s
}quote::quote! {
855 impl diesel::query_source::QueryRelationField for #column_name {
856 type QueryRelation = super::view;
857
858 const NAME: &'static str = #sql_name;
859 }
860 }
861 };
862
863 {
let mut _s = ::quote::__private::TokenStream::new();
let _span: ::quote::__private::Span =
::quote::__private::get_span(span).__into_span();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut meta, i) = meta.quote_into_iter();
let has_iter = has_iter | i;
<_ as ::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let meta =
match meta.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&meta, &mut _s);
}
}
::quote::__private::push_pound_spanned(&mut _s, _span);
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
let _span: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::__private::push_ident_spanned(&mut _s, _span, "allow");
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
let _span: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::__private::push_ident_spanned(&mut _s, _span,
"non_camel_case_types");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"dead_code");
_s
});
_s
});
::quote::__private::push_pound_spanned(&mut _s, _span);
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
let _span: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::__private::push_ident_spanned(&mut _s, _span, "derive");
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
let _span: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::__private::push_ident_spanned(&mut _s, _span,
"Debug");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"Clone");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"Copy");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"query_builder");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"QueryId");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"Default");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"PartialEq");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"Eq");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"PartialOrd");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"Ord");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"Hash");
_s
});
_s
});
::quote::__private::push_ident_spanned(&mut _s, _span, "pub");
::quote::__private::push_ident_spanned(&mut _s, _span, "struct");
::quote::ToTokens::to_tokens(&column_name, &mut _s);
::quote::__private::push_semi_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "impl");
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "expression");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Expression");
::quote::__private::push_ident_spanned(&mut _s, _span, "for");
::quote::ToTokens::to_tokens(&column_name, &mut _s);
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
let _span: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::__private::push_ident_spanned(&mut _s, _span, "type");
::quote::__private::push_ident_spanned(&mut _s, _span, "SqlType");
::quote::__private::push_eq_spanned(&mut _s, _span);
::quote::ToTokens::to_tokens(&sql_type, &mut _s);
::quote::__private::push_semi_spanned(&mut _s, _span);
_s
});
::quote::__private::push_ident_spanned(&mut _s, _span, "impl");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "DB");
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "query_builder");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "QueryFragment");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "DB");
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "for");
::quote::ToTokens::to_tokens(&column_name, &mut _s);
::quote::__private::push_ident_spanned(&mut _s, _span, "where");
::quote::__private::push_ident_spanned(&mut _s, _span, "DB");
::quote::__private::push_colon_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "backend");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Backend");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "internal");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "table_macro");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"StaticQueryFragmentInstance");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_colon_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "query_builder");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "QueryFragment");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "DB");
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
let _span: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::__private::push_pound_spanned(&mut _s, _span);
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
let _span: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::__private::push_ident_spanned(&mut _s, _span,
"allow");
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
let _span: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::__private::push_ident_spanned(&mut _s, _span,
"non_snake_case");
_s
});
_s
});
::quote::__private::push_ident_spanned(&mut _s, _span, "fn");
::quote::__private::push_ident_spanned(&mut _s, _span,
"walk_ast");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_lifetime_spanned(&mut _s, _span, "\'b");
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
let _span: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::__private::push_and_spanned(&mut _s, _span);
::quote::__private::push_lifetime_spanned(&mut _s, _span,
"\'b");
::quote::__private::push_ident_spanned(&mut _s, _span,
"self");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"mut");
::quote::__private::push_ident_spanned(&mut _s, _span,
"__diesel_internal_out");
::quote::__private::push_colon_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"query_builder");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"AstPass");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_lifetime_spanned(&mut _s, _span,
"\'_");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_lifetime_spanned(&mut _s, _span,
"\'b");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"DB");
::quote::__private::push_gt_spanned(&mut _s, _span);
_s
});
::quote::__private::push_rarrow_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "result");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"QueryResult");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Parenthesis,
{
let _: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::__private::TokenStream::new()
});
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
let _span: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::__private::push_ident_spanned(&mut _s, _span,
"if");
::quote::__private::push_bang_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"__diesel_internal_out");
::quote::__private::push_dot_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"should_skip_from");
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Parenthesis,
{
let _: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::__private::TokenStream::new()
});
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
let _span: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::__private::push_ident_spanned(&mut _s, _span,
"const");
::quote::__private::push_ident_spanned(&mut _s, _span,
"FROM_CLAUSE");
::quote::__private::push_colon_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"internal");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"table_macro");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"StaticQueryFragmentInstance");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_eq_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"internal");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"table_macro");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"StaticQueryFragmentInstance");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"new");
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Parenthesis,
{
let _: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::__private::TokenStream::new()
});
::quote::__private::push_semi_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"FROM_CLAUSE");
::quote::__private::push_dot_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"walk_ast");
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
let _span: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::__private::push_ident_spanned(&mut _s, _span,
"__diesel_internal_out");
::quote::__private::push_dot_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"reborrow");
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Parenthesis,
{
let _: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::__private::TokenStream::new()
});
_s
});
::quote::__private::push_question_spanned(&mut _s, _span);
::quote::__private::push_semi_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"__diesel_internal_out");
::quote::__private::push_dot_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"push_sql");
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
let _span: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::__private::parse_spanned(&mut _s, _span, "\".\"");
_s
});
::quote::__private::push_semi_spanned(&mut _s, _span);
_s
});
::quote::__private::push_ident_spanned(&mut _s, _span,
"__diesel_internal_out");
::quote::__private::push_dot_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"push_identifier");
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
let _: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::ToTokens::to_tokens(&sql_name, &mut _s);
_s
});
_s
});
_s
});
::quote::__private::push_ident_spanned(&mut _s, _span, "impl");
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"SelectableExpression");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "super");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "for");
::quote::ToTokens::to_tokens(&column_name, &mut _s);
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Brace,
{
let _: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::__private::TokenStream::new()
});
::quote::__private::push_ident_spanned(&mut _s, _span, "impl");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "QS");
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "AppearsOnTable");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "QS");
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "for");
::quote::ToTokens::to_tokens(&column_name, &mut _s);
::quote::__private::push_ident_spanned(&mut _s, _span, "where");
::quote::__private::push_ident_spanned(&mut _s, _span, "QS");
::quote::__private::push_colon_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "query_source");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"AppearsInFromClause");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "super");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Count");
::quote::__private::push_eq_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "query_source");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Once");
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Brace,
{
let _: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::__private::TokenStream::new()
});
::quote::__private::push_ident_spanned(&mut _s, _span, "impl");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Left");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Right");
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"SelectableExpression");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "internal");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "table_macro");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Join");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Left");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Right");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "internal");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "table_macro");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "LeftOuter");
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "for");
::quote::ToTokens::to_tokens(&column_name, &mut _s);
::quote::__private::push_ident_spanned(&mut _s, _span, "where");
::quote::ToTokens::to_tokens(&column_name, &mut _s);
::quote::__private::push_colon_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "AppearsOnTable");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "internal");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "table_macro");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Join");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Left");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Right");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "internal");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "table_macro");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "LeftOuter");
::quote::__private::push_shr_spanned(&mut _s, _span);
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Self");
::quote::__private::push_colon_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"SelectableExpression");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Left");
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Right");
::quote::__private::push_colon_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "query_source");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"AppearsInFromClause");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "super");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Count");
::quote::__private::push_eq_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "query_source");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Never");
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_add_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "query_source");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "QuerySource");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Left");
::quote::__private::push_colon_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "query_source");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "QuerySource");
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Brace,
{
let _: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::__private::TokenStream::new()
});
::quote::__private::push_ident_spanned(&mut _s, _span, "impl");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Left");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Right");
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"SelectableExpression");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "internal");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "table_macro");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Join");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Left");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Right");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "internal");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "table_macro");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Inner");
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "for");
::quote::ToTokens::to_tokens(&column_name, &mut _s);
::quote::__private::push_ident_spanned(&mut _s, _span, "where");
::quote::ToTokens::to_tokens(&column_name, &mut _s);
::quote::__private::push_colon_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "AppearsOnTable");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "internal");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "table_macro");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Join");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Left");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Right");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "internal");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "table_macro");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Inner");
::quote::__private::push_shr_spanned(&mut _s, _span);
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Left");
::quote::__private::push_colon_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "query_source");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"AppearsInFromClause");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "super");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_add_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "query_source");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "QuerySource");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Right");
::quote::__private::push_colon_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "query_source");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"AppearsInFromClause");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "super");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::ToTokens::to_tokens(&query_source_ident, &mut _s);
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_add_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "query_source");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "QuerySource");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
let _span: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::__private::push_ident_spanned(&mut _s, _span, "Left");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Count");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Right");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Count");
_s
});
::quote::__private::push_colon_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "internal");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "table_macro");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Pick");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Left");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Right");
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Self");
::quote::__private::push_colon_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"SelectableExpression");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
let _span: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::__private::push_ident_spanned(&mut _s, _span, "Left");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Count");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Right");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Count");
_s
});
::quote::__private::push_ident_spanned(&mut _s, _span, "as");
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "internal");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "table_macro");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Pick");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Left");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Right");
::quote::__private::push_shr_spanned(&mut _s, _span);
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Selection");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Brace,
{
let _: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::__private::TokenStream::new()
});
::quote::__private::push_ident_spanned(&mut _s, _span, "impl");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Join");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "On");
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"SelectableExpression");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "internal");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "table_macro");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "JoinOn");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Join");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "On");
::quote::__private::push_shr_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "for");
::quote::ToTokens::to_tokens(&column_name, &mut _s);
::quote::__private::push_ident_spanned(&mut _s, _span, "where");
::quote::ToTokens::to_tokens(&column_name, &mut _s);
::quote::__private::push_colon_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"SelectableExpression");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Join");
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_add_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "AppearsOnTable");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "internal");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "table_macro");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "JoinOn");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Join");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "On");
::quote::__private::push_shr_spanned(&mut _s, _span);
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Brace,
{
let _: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::__private::TokenStream::new()
});
::quote::__private::push_ident_spanned(&mut _s, _span, "impl");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "From");
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"SelectableExpression");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "internal");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "table_macro");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "SelectStatement");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "internal");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "table_macro");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "FromClause");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "From");
::quote::__private::push_shr_spanned(&mut _s, _span);
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "for");
::quote::ToTokens::to_tokens(&column_name, &mut _s);
::quote::__private::push_ident_spanned(&mut _s, _span, "where");
::quote::__private::push_ident_spanned(&mut _s, _span, "From");
::quote::__private::push_colon_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "query_source");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "QuerySource");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::ToTokens::to_tokens(&column_name, &mut _s);
::quote::__private::push_colon_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"SelectableExpression");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "From");
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_add_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "AppearsOnTable");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "internal");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "table_macro");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "SelectStatement");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "internal");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "table_macro");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "FromClause");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "From");
::quote::__private::push_shr_spanned(&mut _s, _span);
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Brace,
{
let _: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::__private::TokenStream::new()
});
::quote::__private::push_ident_spanned(&mut _s, _span, "impl");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "__GB");
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "expression");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "ValidGrouping");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "__GB");
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "for");
::quote::ToTokens::to_tokens(&column_name, &mut _s);
::quote::__private::push_ident_spanned(&mut _s, _span, "where");
::quote::__private::push_ident_spanned(&mut _s, _span, "__GB");
::quote::__private::push_colon_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "expression");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"IsContainedInGroupBy");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::ToTokens::to_tokens(&column_name, &mut _s);
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Output");
::quote::__private::push_eq_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "expression");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"is_contained_in_group_by");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Yes");
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
let _span: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::__private::push_ident_spanned(&mut _s, _span, "type");
::quote::__private::push_ident_spanned(&mut _s, _span,
"IsAggregate");
::quote::__private::push_eq_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"expression");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"is_aggregate");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Yes");
::quote::__private::push_semi_spanned(&mut _s, _span);
_s
});
::quote::__private::push_ident_spanned(&mut _s, _span, "impl");
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "expression");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "ValidGrouping");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Parenthesis,
{
let _: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::__private::TokenStream::new()
});
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "for");
::quote::ToTokens::to_tokens(&column_name, &mut _s);
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
let _span: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::__private::push_ident_spanned(&mut _s, _span, "type");
::quote::__private::push_ident_spanned(&mut _s, _span,
"IsAggregate");
::quote::__private::push_eq_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"expression");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"is_aggregate");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "No");
::quote::__private::push_semi_spanned(&mut _s, _span);
_s
});
::quote::__private::push_ident_spanned(&mut _s, _span, "impl");
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "expression");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"IsContainedInGroupBy");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::ToTokens::to_tokens(&column_name, &mut _s);
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "for");
::quote::ToTokens::to_tokens(&column_name, &mut _s);
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
let _span: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::__private::push_ident_spanned(&mut _s, _span, "type");
::quote::__private::push_ident_spanned(&mut _s, _span, "Output");
::quote::__private::push_eq_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"expression");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"is_contained_in_group_by");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Yes");
::quote::__private::push_semi_spanned(&mut _s, _span);
_s
});
::quote::__private::push_ident_spanned(&mut _s, _span, "impl");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "T");
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "EqAll");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "T");
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "for");
::quote::ToTokens::to_tokens(&column_name, &mut _s);
::quote::__private::push_ident_spanned(&mut _s, _span, "where");
::quote::__private::push_ident_spanned(&mut _s, _span, "T");
::quote::__private::push_colon_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "expression");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "AsExpression");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::ToTokens::to_tokens(&sql_type, &mut _s);
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "dsl");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Eq");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::ToTokens::to_tokens(&column_name, &mut _s);
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "T");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Expression");
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_colon_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Expression");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "SqlType");
::quote::__private::push_eq_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "sql_types");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Bool");
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
let _span: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::__private::push_ident_spanned(&mut _s, _span, "type");
::quote::__private::push_ident_spanned(&mut _s, _span, "Output");
::quote::__private::push_eq_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "dsl");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Eq");
::quote::__private::push_lt_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Self");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "T");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"Expression");
::quote::__private::push_gt_spanned(&mut _s, _span);
::quote::__private::push_semi_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "fn");
::quote::__private::push_ident_spanned(&mut _s, _span, "eq_all");
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
let _span: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::__private::push_ident_spanned(&mut _s, _span,
"self");
::quote::__private::push_comma_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"__diesel_internal_rhs");
::quote::__private::push_colon_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "T");
_s
});
::quote::__private::push_rarrow_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Self");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span, "Output");
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
let _span: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::__private::push_ident_spanned(&mut _s, _span,
"use");
::quote::__private::push_ident_spanned(&mut _s, _span,
"diesel");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"expression_methods");
::quote::__private::push_colon2_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"ExpressionMethods");
::quote::__private::push_semi_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"self");
::quote::__private::push_dot_spanned(&mut _s, _span);
::quote::__private::push_ident_spanned(&mut _s, _span,
"eq");
::quote::__private::push_group_spanned(&mut _s, _span,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
let _span: ::quote::__private::Span =
::quote::__private::get_span(_span).__into_span();
::quote::__private::push_ident_spanned(&mut _s, _span,
"__diesel_internal_rhs");
_s
});
_s
});
_s
});
::quote::ToTokens::to_tokens(&max_length, &mut _s);
::quote::ToTokens::to_tokens(&ops_impls, &mut _s);
::quote::ToTokens::to_tokens(&backend_specific_column_impl, &mut _s);
::quote::ToTokens::to_tokens(&table_specific_impls, &mut _s);
_s
}quote::quote_spanned! {span=>
864 #(#meta)*
865 #[allow(non_camel_case_types, dead_code)]
866 #[derive(Debug, Clone, Copy, diesel::query_builder::QueryId, Default, PartialEq, Eq, PartialOrd, Ord, Hash)]
867 pub struct #column_name;
868
869 impl diesel::expression::Expression for #column_name {
870 type SqlType = #sql_type;
871 }
872
873 impl<DB> diesel::query_builder::QueryFragment<DB> for #column_name where
874 DB: diesel::backend::Backend,
875 diesel::internal::table_macro::StaticQueryFragmentInstance<#query_source_ident>: diesel::query_builder::QueryFragment<DB>,
876 {
877 #[allow(non_snake_case)]
878 fn walk_ast<'b>(&'b self, mut __diesel_internal_out: diesel::query_builder::AstPass<'_, 'b, DB>) -> diesel::result::QueryResult<()>
879 {
880 if !__diesel_internal_out.should_skip_from() {
881 const FROM_CLAUSE: diesel::internal::table_macro::StaticQueryFragmentInstance<#query_source_ident> = diesel::internal::table_macro::StaticQueryFragmentInstance::new();
882
883 FROM_CLAUSE.walk_ast(__diesel_internal_out.reborrow())?;
884 __diesel_internal_out.push_sql(".");
885 }
886 __diesel_internal_out.push_identifier(#sql_name)
887 }
888 }
889
890 impl diesel::SelectableExpression<super::#query_source_ident> for #column_name {
891 }
892
893 impl<QS> diesel::AppearsOnTable<QS> for #column_name where
894 QS: diesel::query_source::AppearsInFromClause<super::#query_source_ident, Count=diesel::query_source::Once>,
895 {
896 }
897
898 impl<Left, Right> diesel::SelectableExpression<
899 diesel::internal::table_macro::Join<Left, Right, diesel::internal::table_macro::LeftOuter>,
900 > for #column_name where
901 #column_name: diesel::AppearsOnTable<diesel::internal::table_macro::Join<Left, Right, diesel::internal::table_macro::LeftOuter>>,
902 Self: diesel::SelectableExpression<Left>,
903 Right: diesel::query_source::AppearsInFromClause<super::#query_source_ident, Count=diesel::query_source::Never> + diesel::query_source::QuerySource,
906 Left: diesel::query_source::QuerySource
907 {
908 }
909
910 impl<Left, Right> diesel::SelectableExpression<
911 diesel::internal::table_macro::Join<Left, Right, diesel::internal::table_macro::Inner>,
912 > for #column_name where
913 #column_name: diesel::AppearsOnTable<diesel::internal::table_macro::Join<Left, Right, diesel::internal::table_macro::Inner>>,
914 Left: diesel::query_source::AppearsInFromClause<super::#query_source_ident> + diesel::query_source::QuerySource,
915 Right: diesel::query_source::AppearsInFromClause<super::#query_source_ident> + diesel::query_source::QuerySource,
916 (Left::Count, Right::Count): diesel::internal::table_macro::Pick<Left, Right>,
917 Self: diesel::SelectableExpression<
918 <(Left::Count, Right::Count) as diesel::internal::table_macro::Pick<Left, Right>>::Selection,
919 >,
920 {
921 }
922
923 impl<Join, On> diesel::SelectableExpression<diesel::internal::table_macro::JoinOn<Join, On>> for #column_name where
925 #column_name: diesel::SelectableExpression<Join> + diesel::AppearsOnTable<diesel::internal::table_macro::JoinOn<Join, On>>,
926 {
927 }
928
929 impl<From> diesel::SelectableExpression<diesel::internal::table_macro::SelectStatement<diesel::internal::table_macro::FromClause<From>>> for #column_name where
931 From: diesel::query_source::QuerySource,
932 #column_name: diesel::SelectableExpression<From> + diesel::AppearsOnTable<diesel::internal::table_macro::SelectStatement<diesel::internal::table_macro::FromClause<From>>>,
933 {
934 }
935
936 impl<__GB> diesel::expression::ValidGrouping<__GB> for #column_name
937 where __GB: diesel::expression::IsContainedInGroupBy<#column_name, Output = diesel::expression::is_contained_in_group_by::Yes>,
938 {
939 type IsAggregate = diesel::expression::is_aggregate::Yes;
940 }
941
942 impl diesel::expression::ValidGrouping<()> for #column_name {
943 type IsAggregate = diesel::expression::is_aggregate::No;
944 }
945
946 impl diesel::expression::IsContainedInGroupBy<#column_name> for #column_name {
947 type Output = diesel::expression::is_contained_in_group_by::Yes;
948 }
949
950
951
952 impl<T> diesel::EqAll<T> for #column_name where
953 T: diesel::expression::AsExpression<#sql_type>,
954 diesel::dsl::Eq<#column_name, T::Expression>: diesel::Expression<SqlType=diesel::sql_types::Bool>,
955 {
956 type Output = diesel::dsl::Eq<Self, T::Expression>;
957
958 fn eq_all(self, __diesel_internal_rhs: T) -> Self::Output {
959 use diesel::expression_methods::ExpressionMethods;
960 self.eq(__diesel_internal_rhs)
961 }
962 }
963
964 #max_length
965
966 #ops_impls
967 #backend_specific_column_impl
968 #table_specific_impls
969 }
970}