Compare commits
5 Commits
091007006d
...
1.0.73
| Author | SHA1 | Date | |
|---|---|---|---|
| 885b9b5e44 | |||
| 298645ffdb | |||
| 330280ba48 | |||
| 02e661d219 | |||
| f7163e2689 |
@ -1024,7 +1024,7 @@
|
|||||||
" JOIN agreego.entity entity_6 ON entity_6.id = relationship_5.id",
|
" JOIN agreego.entity entity_6 ON entity_6.id = relationship_5.id",
|
||||||
" WHERE",
|
" WHERE",
|
||||||
" NOT entity_6.archived",
|
" NOT entity_6.archived",
|
||||||
" AND contact_4.parent_id = entity_3.id),",
|
" AND contact_4.source_id = entity_3.id),",
|
||||||
" 'age', person_1.age,",
|
" 'age', person_1.age,",
|
||||||
" 'archived', entity_3.archived,",
|
" 'archived', entity_3.archived,",
|
||||||
" 'contacts',",
|
" 'contacts',",
|
||||||
@ -1085,7 +1085,7 @@
|
|||||||
" JOIN agreego.entity entity_11 ON entity_11.id = relationship_10.id",
|
" JOIN agreego.entity entity_11 ON entity_11.id = relationship_10.id",
|
||||||
" WHERE",
|
" WHERE",
|
||||||
" NOT entity_11.archived",
|
" NOT entity_11.archived",
|
||||||
" AND contact_9.parent_id = entity_3.id),",
|
" AND contact_9.source_id = entity_3.id),",
|
||||||
" 'created_at', entity_3.created_at,",
|
" 'created_at', entity_3.created_at,",
|
||||||
" 'email_addresses',",
|
" 'email_addresses',",
|
||||||
" (SELECT COALESCE(jsonb_agg(jsonb_build_object(",
|
" (SELECT COALESCE(jsonb_agg(jsonb_build_object(",
|
||||||
@ -1115,7 +1115,7 @@
|
|||||||
" JOIN agreego.entity entity_20 ON entity_20.id = relationship_19.id",
|
" JOIN agreego.entity entity_20 ON entity_20.id = relationship_19.id",
|
||||||
" WHERE",
|
" WHERE",
|
||||||
" NOT entity_20.archived",
|
" NOT entity_20.archived",
|
||||||
" AND contact_18.parent_id = entity_3.id),",
|
" AND contact_18.source_id = entity_3.id),",
|
||||||
" 'first_name', person_1.first_name,",
|
" 'first_name', person_1.first_name,",
|
||||||
" 'id', entity_3.id,",
|
" 'id', entity_3.id,",
|
||||||
" 'last_name', person_1.last_name,",
|
" 'last_name', person_1.last_name,",
|
||||||
@ -1148,7 +1148,7 @@
|
|||||||
" JOIN agreego.entity entity_25 ON entity_25.id = relationship_24.id",
|
" JOIN agreego.entity entity_25 ON entity_25.id = relationship_24.id",
|
||||||
" WHERE",
|
" WHERE",
|
||||||
" NOT entity_25.archived",
|
" NOT entity_25.archived",
|
||||||
" AND contact_23.parent_id = entity_3.id),",
|
" AND contact_23.source_id = entity_3.id),",
|
||||||
" 'type', entity_3.type",
|
" 'type', entity_3.type",
|
||||||
")",
|
")",
|
||||||
"FROM agreego.person person_1",
|
"FROM agreego.person person_1",
|
||||||
@ -1261,7 +1261,7 @@
|
|||||||
" JOIN agreego.entity entity_6 ON entity_6.id = relationship_5.id",
|
" JOIN agreego.entity entity_6 ON entity_6.id = relationship_5.id",
|
||||||
" WHERE",
|
" WHERE",
|
||||||
" NOT entity_6.archived",
|
" NOT entity_6.archived",
|
||||||
" AND contact_4.parent_id = entity_3.id),",
|
" AND contact_4.source_id = entity_3.id),",
|
||||||
" 'age', person_1.age,",
|
" 'age', person_1.age,",
|
||||||
" 'archived', entity_3.archived,",
|
" 'archived', entity_3.archived,",
|
||||||
" 'contacts',",
|
" 'contacts',",
|
||||||
@ -1323,7 +1323,7 @@
|
|||||||
" WHERE",
|
" WHERE",
|
||||||
" NOT entity_11.archived",
|
" NOT entity_11.archived",
|
||||||
" AND contact_9.is_primary = ($11#>>'{}')::boolean",
|
" AND contact_9.is_primary = ($11#>>'{}')::boolean",
|
||||||
" AND contact_9.parent_id = entity_3.id),",
|
" AND contact_9.source_id = entity_3.id),",
|
||||||
" 'created_at', entity_3.created_at,",
|
" 'created_at', entity_3.created_at,",
|
||||||
" 'email_addresses',",
|
" 'email_addresses',",
|
||||||
" (SELECT COALESCE(jsonb_agg(jsonb_build_object(",
|
" (SELECT COALESCE(jsonb_agg(jsonb_build_object(",
|
||||||
@ -1353,7 +1353,7 @@
|
|||||||
" JOIN agreego.entity entity_20 ON entity_20.id = relationship_19.id",
|
" JOIN agreego.entity entity_20 ON entity_20.id = relationship_19.id",
|
||||||
" WHERE",
|
" WHERE",
|
||||||
" NOT entity_20.archived",
|
" NOT entity_20.archived",
|
||||||
" AND contact_18.parent_id = entity_3.id),",
|
" AND contact_18.source_id = entity_3.id),",
|
||||||
" 'first_name', person_1.first_name,",
|
" 'first_name', person_1.first_name,",
|
||||||
" 'id', entity_3.id,",
|
" 'id', entity_3.id,",
|
||||||
" 'last_name', person_1.last_name,",
|
" 'last_name', person_1.last_name,",
|
||||||
@ -1387,7 +1387,7 @@
|
|||||||
" JOIN agreego.entity entity_25 ON entity_25.id = relationship_24.id",
|
" JOIN agreego.entity entity_25 ON entity_25.id = relationship_24.id",
|
||||||
" WHERE",
|
" WHERE",
|
||||||
" NOT entity_25.archived",
|
" NOT entity_25.archived",
|
||||||
" AND contact_23.parent_id = entity_3.id),",
|
" AND contact_23.source_id = entity_3.id),",
|
||||||
" 'type', entity_3.type",
|
" 'type', entity_3.type",
|
||||||
")",
|
")",
|
||||||
"FROM agreego.person person_1",
|
"FROM agreego.person person_1",
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -97,7 +97,13 @@ impl Queryer {
|
|||||||
return Ok(cached_sql.value().clone());
|
return Ok(cached_sql.value().clone());
|
||||||
}
|
}
|
||||||
|
|
||||||
let compiler = compiler::SqlCompiler::new(self.db.clone());
|
let compiler = compiler::Compiler {
|
||||||
|
db: &self.db,
|
||||||
|
filter_keys: filter_keys,
|
||||||
|
is_stem_query: stem_opt.is_some(),
|
||||||
|
alias_counter: 0,
|
||||||
|
};
|
||||||
|
|
||||||
match compiler.compile(schema_id, stem_opt, filter_keys) {
|
match compiler.compile(schema_id, stem_opt, filter_keys) {
|
||||||
Ok(compiled_sql) => {
|
Ok(compiled_sql) => {
|
||||||
self
|
self
|
||||||
|
|||||||
@ -191,9 +191,9 @@ impl Expect {
|
|||||||
}
|
}
|
||||||
Expr::Function(func) => {
|
Expr::Function(func) => {
|
||||||
if let sqlparser::ast::FunctionArguments::List(args) = &func.args {
|
if let sqlparser::ast::FunctionArguments::List(args) = &func.args {
|
||||||
if let Some(sqlparser::ast::FunctionArg::Unnamed(sqlparser::ast::FunctionArgExpr::Expr(
|
if let Some(sqlparser::ast::FunctionArg::Unnamed(
|
||||||
e,
|
sqlparser::ast::FunctionArgExpr::Expr(e),
|
||||||
))) = args.args.get(0)
|
)) = args.args.get(0)
|
||||||
{
|
{
|
||||||
Self::validate_expr(e, available_aliases, sql)?;
|
Self::validate_expr(e, available_aliases, sql)?;
|
||||||
}
|
}
|
||||||
|
|||||||
54
t10.json
54
t10.json
@ -1,54 +0,0 @@
|
|||||||
[
|
|
||||||
[
|
|
||||||
"(SELECT jsonb_build_object(",
|
|
||||||
" 'id', organization_1.id,",
|
|
||||||
" 'type', CASE",
|
|
||||||
" WHEN organization_1.type = 'person' THEN",
|
|
||||||
" ((SELECT jsonb_build_object(",
|
|
||||||
" 'age', person_3.age,",
|
|
||||||
" 'archived', entity_5.archived,",
|
|
||||||
" 'created_at', entity_5.created_at,",
|
|
||||||
" 'first_name', person_3.first_name,",
|
|
||||||
" 'id', entity_5.id,",
|
|
||||||
" 'last_name', person_3.last_name,",
|
|
||||||
" 'name', entity_5.name,",
|
|
||||||
" 'type', entity_5.type",
|
|
||||||
" )",
|
|
||||||
" FROM agreego.person person_3",
|
|
||||||
" JOIN agreego.organization organization_4 ON organization_4.id = person_3.id",
|
|
||||||
" JOIN agreego.entity entity_5 ON entity_5.id = organization_4.id",
|
|
||||||
" WHERE",
|
|
||||||
" NOT entity_5.archived))",
|
|
||||||
" WHEN organization_1.type = 'bot' THEN",
|
|
||||||
" ((SELECT jsonb_build_object(",
|
|
||||||
" 'archived', entity_8.archived,",
|
|
||||||
" 'created_at', entity_8.created_at,",
|
|
||||||
" 'id', entity_8.id,",
|
|
||||||
" 'name', entity_8.name,",
|
|
||||||
" 'token', bot_6.token,",
|
|
||||||
" 'type', entity_8.type",
|
|
||||||
" )",
|
|
||||||
" FROM agreego.bot bot_6",
|
|
||||||
" JOIN agreego.organization organization_7 ON organization_7.id = bot_6.id",
|
|
||||||
" JOIN agreego.entity entity_8 ON entity_8.id = organization_7.id",
|
|
||||||
" WHERE",
|
|
||||||
" NOT entity_8.archived))",
|
|
||||||
" WHEN organization_1.type = 'organization' THEN",
|
|
||||||
" ((SELECT jsonb_build_object(",
|
|
||||||
" 'archived', entity_10.archived,",
|
|
||||||
" 'created_at', entity_10.created_at,",
|
|
||||||
" 'id', entity_10.id,",
|
|
||||||
" 'name', entity_10.name,",
|
|
||||||
" 'type', entity_10.type",
|
|
||||||
" )",
|
|
||||||
" FROM agreego.organization organization_9",
|
|
||||||
" JOIN agreego.entity entity_10 ON entity_10.id = organization_9.id",
|
|
||||||
" WHERE",
|
|
||||||
" NOT entity_10.archived))",
|
|
||||||
" ELSE NULL END",
|
|
||||||
")",
|
|
||||||
"FROM agreego.organization organization_1",
|
|
||||||
"JOIN agreego.entity entity_2 ON entity_2.id = organization_1.id",
|
|
||||||
"WHERE NOT entity_2.archived)"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
164
t4.json
164
t4.json
@ -1,164 +0,0 @@
|
|||||||
[
|
|
||||||
[
|
|
||||||
"(SELECT jsonb_build_object(",
|
|
||||||
" 'addresses',",
|
|
||||||
" (SELECT COALESCE(jsonb_agg(jsonb_build_object(",
|
|
||||||
" 'archived', entity_6.archived,",
|
|
||||||
" 'created_at', entity_6.created_at,",
|
|
||||||
" 'id', entity_6.id,",
|
|
||||||
" 'is_primary', contact_4.is_primary,",
|
|
||||||
" 'name', entity_6.name,",
|
|
||||||
" 'target',",
|
|
||||||
" (SELECT jsonb_build_object(",
|
|
||||||
" 'archived', entity_8.archived,",
|
|
||||||
" 'city', address_7.city,",
|
|
||||||
" 'created_at', entity_8.created_at,",
|
|
||||||
" 'id', entity_8.id,",
|
|
||||||
" 'name', entity_8.name,",
|
|
||||||
" 'type', entity_8.type",
|
|
||||||
" )",
|
|
||||||
" FROM agreego.address address_7",
|
|
||||||
" JOIN agreego.entity entity_8 ON entity_8.id = address_7.id",
|
|
||||||
" WHERE",
|
|
||||||
" NOT entity_8.archived",
|
|
||||||
" AND relationship_5.target_id = address_7.id),",
|
|
||||||
" 'type', entity_6.type",
|
|
||||||
" )), '[]'::jsonb)",
|
|
||||||
" FROM agreego.contact contact_4",
|
|
||||||
" JOIN agreego.relationship relationship_5 ON relationship_5.id = contact_4.id",
|
|
||||||
" JOIN agreego.entity entity_6 ON entity_6.id = relationship_5.id",
|
|
||||||
" WHERE",
|
|
||||||
" NOT entity_6.archived",
|
|
||||||
" AND contact_4.parent_id = entity_3.id),",
|
|
||||||
" 'age', person_1.age,",
|
|
||||||
" 'archived', entity_3.archived,",
|
|
||||||
" 'contacts',",
|
|
||||||
" (SELECT COALESCE(jsonb_agg(jsonb_build_object(",
|
|
||||||
" 'archived', entity_11.archived,",
|
|
||||||
" 'created_at', entity_11.created_at,",
|
|
||||||
" 'id', entity_11.id,",
|
|
||||||
" 'is_primary', contact_9.is_primary,",
|
|
||||||
" 'name', entity_11.name,",
|
|
||||||
" 'target', CASE",
|
|
||||||
" WHEN entity_11.target_type = 'address' THEN",
|
|
||||||
" ((SELECT jsonb_build_object(",
|
|
||||||
" 'archived', entity_17.archived,",
|
|
||||||
" 'city', address_16.city,",
|
|
||||||
" 'created_at', entity_17.created_at,",
|
|
||||||
" 'id', entity_17.id,",
|
|
||||||
" 'name', entity_17.name,",
|
|
||||||
" 'type', entity_17.type",
|
|
||||||
" )",
|
|
||||||
" FROM agreego.address address_16",
|
|
||||||
" JOIN agreego.entity entity_17 ON entity_17.id = address_16.id",
|
|
||||||
" WHERE",
|
|
||||||
" NOT entity_17.archived",
|
|
||||||
" AND relationship_10.target_id = address_16.id))",
|
|
||||||
" WHEN entity_11.target_type = 'email_address' THEN",
|
|
||||||
" ((SELECT jsonb_build_object(",
|
|
||||||
" 'address', email_address_14.address,",
|
|
||||||
" 'archived', entity_15.archived,",
|
|
||||||
" 'created_at', entity_15.created_at,",
|
|
||||||
" 'id', entity_15.id,",
|
|
||||||
" 'name', entity_15.name,",
|
|
||||||
" 'type', entity_15.type",
|
|
||||||
" )",
|
|
||||||
" FROM agreego.email_address email_address_14",
|
|
||||||
" JOIN agreego.entity entity_15 ON entity_15.id = email_address_14.id",
|
|
||||||
" WHERE",
|
|
||||||
" NOT entity_15.archived",
|
|
||||||
" AND relationship_10.target_id = email_address_14.id))",
|
|
||||||
" WHEN entity_11.target_type = 'phone_number' THEN",
|
|
||||||
" ((SELECT jsonb_build_object(",
|
|
||||||
" 'archived', entity_13.archived,",
|
|
||||||
" 'created_at', entity_13.created_at,",
|
|
||||||
" 'id', entity_13.id,",
|
|
||||||
" 'name', entity_13.name,",
|
|
||||||
" 'number', phone_number_12.number,",
|
|
||||||
" 'type', entity_13.type",
|
|
||||||
" )",
|
|
||||||
" FROM agreego.phone_number phone_number_12",
|
|
||||||
" JOIN agreego.entity entity_13 ON entity_13.id = phone_number_12.id",
|
|
||||||
" WHERE",
|
|
||||||
" NOT entity_13.archived",
|
|
||||||
" AND relationship_10.target_id = phone_number_12.id))",
|
|
||||||
" ELSE NULL END,",
|
|
||||||
" 'type', entity_11.type",
|
|
||||||
" )), '[]'::jsonb)",
|
|
||||||
" FROM agreego.contact contact_9",
|
|
||||||
" JOIN agreego.relationship relationship_10 ON relationship_10.id = contact_9.id",
|
|
||||||
" JOIN agreego.entity entity_11 ON entity_11.id = relationship_10.id",
|
|
||||||
" WHERE",
|
|
||||||
" NOT entity_11.archived",
|
|
||||||
" AND contact_9.parent_id = entity_3.id),",
|
|
||||||
" 'created_at', entity_3.created_at,",
|
|
||||||
" 'email_addresses',",
|
|
||||||
" (SELECT COALESCE(jsonb_agg(jsonb_build_object(",
|
|
||||||
" 'archived', entity_20.archived,",
|
|
||||||
" 'created_at', entity_20.created_at,",
|
|
||||||
" 'id', entity_20.id,",
|
|
||||||
" 'is_primary', contact_18.is_primary,",
|
|
||||||
" 'name', entity_20.name,",
|
|
||||||
" 'target',",
|
|
||||||
" (SELECT jsonb_build_object(",
|
|
||||||
" 'address', email_address_21.address,",
|
|
||||||
" 'archived', entity_22.archived,",
|
|
||||||
" 'created_at', entity_22.created_at,",
|
|
||||||
" 'id', entity_22.id,",
|
|
||||||
" 'name', entity_22.name,",
|
|
||||||
" 'type', entity_22.type",
|
|
||||||
" )",
|
|
||||||
" FROM agreego.email_address email_address_21",
|
|
||||||
" JOIN agreego.entity entity_22 ON entity_22.id = email_address_21.id",
|
|
||||||
" WHERE",
|
|
||||||
" NOT entity_22.archived",
|
|
||||||
" AND relationship_19.target_id = email_address_21.id),",
|
|
||||||
" 'type', entity_20.type",
|
|
||||||
" )), '[]'::jsonb)",
|
|
||||||
" FROM agreego.contact contact_18",
|
|
||||||
" JOIN agreego.relationship relationship_19 ON relationship_19.id = contact_18.id",
|
|
||||||
" JOIN agreego.entity entity_20 ON entity_20.id = relationship_19.id",
|
|
||||||
" WHERE",
|
|
||||||
" NOT entity_20.archived",
|
|
||||||
" AND contact_18.parent_id = entity_3.id),",
|
|
||||||
" 'first_name', person_1.first_name,",
|
|
||||||
" 'id', entity_3.id,",
|
|
||||||
" 'last_name', person_1.last_name,",
|
|
||||||
" 'name', entity_3.name,",
|
|
||||||
" 'phone_numbers',",
|
|
||||||
" (SELECT COALESCE(jsonb_agg(jsonb_build_object(",
|
|
||||||
" 'archived', entity_25.archived,",
|
|
||||||
" 'created_at', entity_25.created_at,",
|
|
||||||
" 'id', entity_25.id,",
|
|
||||||
" 'is_primary', contact_23.is_primary,",
|
|
||||||
" 'name', entity_25.name,",
|
|
||||||
" 'target',",
|
|
||||||
" (SELECT jsonb_build_object(",
|
|
||||||
" 'archived', entity_27.archived,",
|
|
||||||
" 'created_at', entity_27.created_at,",
|
|
||||||
" 'id', entity_27.id,",
|
|
||||||
" 'name', entity_27.name,",
|
|
||||||
" 'number', phone_number_26.number,",
|
|
||||||
" 'type', entity_27.type",
|
|
||||||
" )",
|
|
||||||
" FROM agreego.phone_number phone_number_26",
|
|
||||||
" JOIN agreego.entity entity_27 ON entity_27.id = phone_number_26.id",
|
|
||||||
" WHERE",
|
|
||||||
" NOT entity_27.archived",
|
|
||||||
" AND relationship_24.target_id = phone_number_26.id),",
|
|
||||||
" 'type', entity_25.type",
|
|
||||||
" )), '[]'::jsonb)",
|
|
||||||
" FROM agreego.contact contact_23",
|
|
||||||
" JOIN agreego.relationship relationship_24 ON relationship_24.id = contact_23.id",
|
|
||||||
" JOIN agreego.entity entity_25 ON entity_25.id = relationship_24.id",
|
|
||||||
" WHERE",
|
|
||||||
" NOT entity_25.archived",
|
|
||||||
" AND contact_23.parent_id = entity_3.id),",
|
|
||||||
" 'type', entity_3.type",
|
|
||||||
")",
|
|
||||||
"FROM agreego.person person_1",
|
|
||||||
"JOIN agreego.organization organization_2 ON organization_2.id = person_1.id",
|
|
||||||
"JOIN agreego.entity entity_3 ON entity_3.id = organization_2.id",
|
|
||||||
"WHERE NOT entity_3.archived)"
|
|
||||||
]
|
|
||||||
]
|
|
||||||
Reference in New Issue
Block a user