test cleanups passing

This commit is contained in:
2026-03-11 21:55:37 -04:00
parent 44ba3e0e18
commit be1367930d
3 changed files with 333 additions and 125 deletions

View File

@ -606,6 +606,7 @@
" \"last_name\":\"Doe\",",
" \"type\":\"person\" ",
" }',",
" '{{uuid:person_1}}',",
" '{{uuid}}',",
" 'create',",
" '{{timestamp}}',",
@ -1063,7 +1064,7 @@
" \"modified_at\":\"{{timestamp}}\",",
" \"modified_by\":\"00000000-0000-0000-0000-000000000000\",",
" \"order_id\":\"abc\",",
" \"price\":99.0,\",",
" \"price\":99.0,",
" \"product\":\"Widget\",",
" \"type\":\"order_line\"",
" }",

View File

@ -468,9 +468,14 @@
"success": true,
"sql": [
[
" (SELECT jsonb_build_object('archived', t1_obj_t1.archived, 'created_at', t1_obj_t1.created_at, 'id', t1_obj_t1.id, 'name', t1_obj_t1.name, 'type', t1_obj_t1.type)",
" FROM agreego.entity t1_obj_t1",
" WHERE NOT t1_obj_t1.archived)"
"(SELECT jsonb_build_object(",
" 'archived', t1_obj_t1.archived,",
" 'created_at', t1_obj_t1.created_at,",
" 'id', t1_obj_t1.id,",
" 'name', t1_obj_t1.name,",
" 'type', t1_obj_t1.type)",
" FROM agreego.entity t1_obj_t1",
" WHERE NOT t1_obj_t1.archived)"
]
]
}
@ -484,9 +489,14 @@
"success": true,
"sql": [
[
" (SELECT jsonb_build_object('archived', t1_obj_t1.archived, 'created_at', t1_obj_t1.created_at, 'id', t1_obj_t1.id, 'name', t1_obj_t1.name, 'type', t1_obj_t1.type)",
" FROM agreego.entity t1_obj_t1",
" WHERE NOT t1_obj_t1.archived)"
"(SELECT jsonb_build_object(",
" 'archived', t1_obj_t1.archived,",
" 'created_at', t1_obj_t1.created_at,",
" 'id', t1_obj_t1.id,",
" 'name', t1_obj_t1.name,",
" 'type', t1_obj_t1.type)",
" FROM agreego.entity t1_obj_t1",
" WHERE NOT t1_obj_t1.archived)"
]
]
}
@ -503,11 +513,17 @@
"success": true,
"sql": [
[
" (SELECT jsonb_build_object('archived', t1_obj_t1.archived, 'created_at', t1_obj_t1.created_at, 'id', t1_obj_t1.id, 'name', t1_obj_t1.name, 'type', t1_obj_t1.type)",
" FROM agreego.entity t1_obj_t1",
" WHERE NOT t1_obj_t1.archived",
" AND t1_obj_t1.archived = ($1#>>'{}')::boolean",
" AND t1_obj_t1.name ILIKE $2#>>'{}')"
"(SELECT jsonb_build_object(",
" 'archived', t1_obj_t1.archived,",
" 'created_at', t1_obj_t1.created_at,",
" 'id', t1_obj_t1.id,",
" 'name', t1_obj_t1.name,",
" 'type', t1_obj_t1.type)",
" FROM agreego.entity t1_obj_t1",
" WHERE",
" NOT t1_obj_t1.archived",
" AND t1_obj_t1.archived = ($1#>>'{}')::boolean",
" AND t1_obj_t1.name ILIKE $2#>>'{}')"
]
]
}
@ -526,13 +542,19 @@
"success": true,
"sql": [
[
" (SELECT jsonb_build_object('archived', t1_obj_t1.archived, 'created_at', t1_obj_t1.created_at, 'id', t1_obj_t1.id, 'name', t1_obj_t1.name, 'type', t1_obj_t1.type)",
" FROM agreego.entity t1_obj_t1",
" WHERE NOT t1_obj_t1.archived",
" AND t1_obj_t1.archived = ($1#>>'{}')::boolean",
" AND t1_obj_t1.created_at = ($2#>>'{}')::timestamptz",
" AND t1_obj_t1.id = ($3#>>'{}')::UUID",
" AND t1_obj_t1.name ILIKE $4#>>'{}')"
"(SELECT jsonb_build_object(",
" 'archived', t1_obj_t1.archived,",
" 'created_at', t1_obj_t1.created_at,",
" 'id', t1_obj_t1.id,",
" 'name', t1_obj_t1.name,",
" 'type', t1_obj_t1.type)",
" FROM agreego.entity t1_obj_t1",
" WHERE",
" NOT t1_obj_t1.archived",
" AND t1_obj_t1.archived = ($1#>>'{}')::boolean",
" AND t1_obj_t1.created_at = ($2#>>'{}')::timestamptz",
" AND t1_obj_t1.id = ($3#>>'{}')::uuid",
" AND t1_obj_t1.name ILIKE $4#>>'{}')"
]
]
}
@ -545,10 +567,18 @@
"success": true,
"sql": [
[
" (SELECT jsonb_build_object('age', t1_obj_t1.age, 'archived', t1_obj_t2.archived, 'created_at', t1_obj_t2.created_at, 'first_name', t1_obj_t1.first_name, 'id', t1_obj_t2.id, 'last_name', t1_obj_t1.last_name, 'name', t1_obj_t2.name, 'type', t1_obj_t2.type)",
" FROM agreego.person t1_obj_t1",
" JOIN agreego.entity t1_obj_t2 ON t1_obj_t2.id = t1_obj_t1.id",
" WHERE NOT t1_obj_t1.archived)"
"(SELECT jsonb_build_object(",
" 'age', t1_obj_t1.age,",
" 'archived', t1_obj_t2.archived,",
" 'created_at', t1_obj_t2.created_at,",
" 'first_name', t1_obj_t1.first_name,",
" 'id', t1_obj_t2.id,",
" 'last_name', t1_obj_t1.last_name,",
" 'name', t1_obj_t2.name,",
" 'type', t1_obj_t2.type)",
" FROM agreego.person t1_obj_t1",
" JOIN agreego.entity t1_obj_t2 ON t1_obj_t2.id = t1_obj_t1.id",
" WHERE NOT t1_obj_t1.archived)"
]
]
}
@ -561,49 +591,118 @@
"success": true,
"sql": [
[
" (SELECT jsonb_build_object('addresses',",
" (SELECT COALESCE(jsonb_agg(jsonb_build_object('archived', t1_obj_t2_addresses_t3.archived, 'created_at', t1_obj_t2_addresses_t3.created_at, 'id', t1_obj_t2_addresses_t3.id, 'is_primary', t1_obj_t2_addresses_t1.is_primary, 'name', t1_obj_t2_addresses_t3.name, 'target',",
" (SELECT jsonb_build_object('archived', t1_obj_t2_addresses_t3_target_t2.archived, 'city', t1_obj_t2_addresses_t3_target_t1.city, 'created_at', t1_obj_t2_addresses_t3_target_t2.created_at, 'id', t1_obj_t2_addresses_t3_target_t2.id, 'name', t1_obj_t2_addresses_t3_target_t2.name, 'type', t1_obj_t2_addresses_t3_target_t2.type)",
" FROM agreego.address t1_obj_t2_addresses_t3_target_t1",
" JOIN agreego.entity t1_obj_t2_addresses_t3_target_t2 ON t1_obj_t2_addresses_t3_target_t2.id = t1_obj_t2_addresses_t3_target_t1.id",
" WHERE NOT t1_obj_t2_addresses_t3_target_t1.archived",
" AND t1_obj_t2_addresses_t3_target_t1.parent_id = t1_obj_t2_addresses_t3.id), 'type', t1_obj_t2_addresses_t3.type)), '[]'::JSONB)",
" FROM agreego.contact t1_obj_t2_addresses_t1",
" JOIN agreego.relationship t1_obj_t2_addresses_t2 ON t1_obj_t2_addresses_t2.id = t1_obj_t2_addresses_t1.id",
" JOIN agreego.entity t1_obj_t2_addresses_t3 ON t1_obj_t2_addresses_t3.id = t1_obj_t2_addresses_t2.id",
" WHERE NOT t1_obj_t2_addresses_t1.archived",
" AND t1_obj_t2_addresses_t1.parent_id = t1_obj_t2.id), 'age', t1_obj_t1.age, 'archived', t1_obj_t2.archived, 'contacts',",
" (SELECT COALESCE(jsonb_agg(jsonb_build_object('archived', t1_obj_t2_contacts_t3.archived, 'created_at', t1_obj_t2_contacts_t3.created_at, 'id', t1_obj_t2_contacts_t3.id, 'is_primary', t1_obj_t2_contacts_t1.is_primary, 'name', t1_obj_t2_contacts_t3.name, 'target', t1_obj_t2_contacts_t3.target, 'type', t1_obj_t2_contacts_t3.type)), '[]'::JSONB)",
" FROM agreego.contact t1_obj_t2_contacts_t1",
" JOIN agreego.relationship t1_obj_t2_contacts_t2 ON t1_obj_t2_contacts_t2.id = t1_obj_t2_contacts_t1.id",
" JOIN agreego.entity t1_obj_t2_contacts_t3 ON t1_obj_t2_contacts_t3.id = t1_obj_t2_contacts_t2.id",
" WHERE NOT t1_obj_t2_contacts_t1.archived",
" AND t1_obj_t2_contacts_t1.parent_id = t1_obj_t2.id), 'created_at', t1_obj_t2.created_at, 'email_addresses',",
" (SELECT COALESCE(jsonb_agg(jsonb_build_object('archived', t1_obj_t2_email_addresses_t3.archived, 'created_at', t1_obj_t2_email_addresses_t3.created_at, 'id', t1_obj_t2_email_addresses_t3.id, 'is_primary', t1_obj_t2_email_addresses_t1.is_primary, 'name', t1_obj_t2_email_addresses_t3.name, 'target',",
" (SELECT jsonb_build_object('address', t1_obj_t2_email_addresses_t3_target_t1.address, 'archived', t1_obj_t2_email_addresses_t3_target_t2.archived, 'created_at', t1_obj_t2_email_addresses_t3_target_t2.created_at, 'id', t1_obj_t2_email_addresses_t3_target_t2.id, 'name', t1_obj_t2_email_addresses_t3_target_t2.name, 'type', t1_obj_t2_email_addresses_t3_target_t2.type)",
" FROM agreego.email_address t1_obj_t2_email_addresses_t3_target_t1",
" JOIN agreego.entity t1_obj_t2_email_addresses_t3_target_t2 ON t1_obj_t2_email_addresses_t3_target_t2.id = t1_obj_t2_email_addresses_t3_target_t1.id",
" WHERE NOT t1_obj_t2_email_addresses_t3_target_t1.archived",
" AND t1_obj_t2_email_addresses_t3_target_t1.parent_id = t1_obj_t2_email_addresses_t3.id), 'type', t1_obj_t2_email_addresses_t3.type)), '[]'::JSONB)",
" FROM agreego.contact t1_obj_t2_email_addresses_t1",
" JOIN agreego.relationship t1_obj_t2_email_addresses_t2 ON t1_obj_t2_email_addresses_t2.id = t1_obj_t2_email_addresses_t1.id",
" JOIN agreego.entity t1_obj_t2_email_addresses_t3 ON t1_obj_t2_email_addresses_t3.id = t1_obj_t2_email_addresses_t2.id",
" WHERE NOT t1_obj_t2_email_addresses_t1.archived",
" AND t1_obj_t2_email_addresses_t1.parent_id = t1_obj_t2.id), 'first_name', t1_obj_t1.first_name, 'id', t1_obj_t2.id, 'last_name', t1_obj_t1.last_name, 'name', t1_obj_t2.name, 'phone_numbers',",
" (SELECT COALESCE(jsonb_agg(jsonb_build_object('archived', t1_obj_t2_phone_numbers_t3.archived, 'created_at', t1_obj_t2_phone_numbers_t3.created_at, 'id', t1_obj_t2_phone_numbers_t3.id, 'is_primary', t1_obj_t2_phone_numbers_t1.is_primary, 'name', t1_obj_t2_phone_numbers_t3.name, 'target',",
" (SELECT jsonb_build_object('archived', t1_obj_t2_phone_numbers_t3_target_t2.archived, 'created_at', t1_obj_t2_phone_numbers_t3_target_t2.created_at, 'id', t1_obj_t2_phone_numbers_t3_target_t2.id, 'name', t1_obj_t2_phone_numbers_t3_target_t2.name, 'number', t1_obj_t2_phone_numbers_t3_target_t1.number, 'type', t1_obj_t2_phone_numbers_t3_target_t2.type)",
" FROM agreego.phone_number t1_obj_t2_phone_numbers_t3_target_t1",
" JOIN agreego.entity t1_obj_t2_phone_numbers_t3_target_t2 ON t1_obj_t2_phone_numbers_t3_target_t2.id = t1_obj_t2_phone_numbers_t3_target_t1.id",
" WHERE NOT t1_obj_t2_phone_numbers_t3_target_t1.archived",
" AND t1_obj_t2_phone_numbers_t3_target_t1.parent_id = t1_obj_t2_phone_numbers_t3.id), 'type', t1_obj_t2_phone_numbers_t3.type)), '[]'::JSONB)",
" FROM agreego.contact t1_obj_t2_phone_numbers_t1",
" JOIN agreego.relationship t1_obj_t2_phone_numbers_t2 ON t1_obj_t2_phone_numbers_t2.id = t1_obj_t2_phone_numbers_t1.id",
" JOIN agreego.entity t1_obj_t2_phone_numbers_t3 ON t1_obj_t2_phone_numbers_t3.id = t1_obj_t2_phone_numbers_t2.id",
" WHERE NOT t1_obj_t2_phone_numbers_t1.archived",
" AND t1_obj_t2_phone_numbers_t1.parent_id = t1_obj_t2.id), 'type', t1_obj_t2.type)",
" FROM agreego.person t1_obj_t1",
" JOIN agreego.entity t1_obj_t2 ON t1_obj_t2.id = t1_obj_t1.id",
" WHERE NOT t1_obj_t1.archived)"
"(SELECT jsonb_build_object(",
" 'addresses',",
" (SELECT COALESCE(jsonb_agg(jsonb_build_object(",
" 'archived', t1_obj_t2_addresses_t3.archived,",
" 'created_at', t1_obj_t2_addresses_t3.created_at,",
" 'id', t1_obj_t2_addresses_t3.id,",
" 'is_primary', t1_obj_t2_addresses_t1.is_primary,",
" 'name', t1_obj_t2_addresses_t3.name,",
" 'target',",
" (SELECT jsonb_build_object(",
" 'archived', t1_obj_t2_addresses_t3_target_t2.archived,",
" 'city', t1_obj_t2_addresses_t3_target_t1.city,",
" 'created_at', t1_obj_t2_addresses_t3_target_t2.created_at,",
" 'id', t1_obj_t2_addresses_t3_target_t2.id,",
" 'name', t1_obj_t2_addresses_t3_target_t2.name,",
" 'type', t1_obj_t2_addresses_t3_target_t2.type",
" )",
" FROM agreego.address t1_obj_t2_addresses_t3_target_t1",
" JOIN agreego.entity t1_obj_t2_addresses_t3_target_t2 ON t1_obj_t2_addresses_t3_target_t2.id = t1_obj_t2_addresses_t3_target_t1.id",
" WHERE NOT t1_obj_t2_addresses_t3_target_t1.archived",
" AND t1_obj_t2_addresses_t3_target_t1.parent_id = t1_obj_t2_addresses_t3.id",
" ),",
" 'type', t1_obj_t2_addresses_t3.type",
" )), '[]'::jsonb)",
" FROM agreego.contact t1_obj_t2_addresses_t1",
" JOIN agreego.relationship t1_obj_t2_addresses_t2 ON t1_obj_t2_addresses_t2.id = t1_obj_t2_addresses_t1.id",
" JOIN agreego.entity t1_obj_t2_addresses_t3 ON t1_obj_t2_addresses_t3.id = t1_obj_t2_addresses_t2.id",
" WHERE NOT t1_obj_t2_addresses_t1.archived",
" AND t1_obj_t2_addresses_t1.parent_id = t1_obj_t2.id),",
" 'age', t1_obj_t1.age,",
" 'archived', t1_obj_t2.archived,",
" 'contacts',",
" (SELECT COALESCE(jsonb_agg(jsonb_build_object(",
" 'archived', t1_obj_t2_contacts_t3.archived,",
" 'created_at', t1_obj_t2_contacts_t3.created_at,",
" 'id', t1_obj_t2_contacts_t3.id,",
" 'is_primary', t1_obj_t2_contacts_t1.is_primary,",
" 'name', t1_obj_t2_contacts_t3.name,",
" 'target', t1_obj_t2_contacts_t3.target,",
" 'type', t1_obj_t2_contacts_t3.type",
" )), '[]'::jsonb)",
" FROM agreego.contact t1_obj_t2_contacts_t1",
" JOIN agreego.relationship t1_obj_t2_contacts_t2 ON t1_obj_t2_contacts_t2.id = t1_obj_t2_contacts_t1.id",
" JOIN agreego.entity t1_obj_t2_contacts_t3 ON t1_obj_t2_contacts_t3.id = t1_obj_t2_contacts_t2.id",
" WHERE NOT t1_obj_t2_contacts_t1.archived",
" AND t1_obj_t2_contacts_t1.parent_id = t1_obj_t2.id),",
" 'created_at', t1_obj_t2.created_at,",
" 'email_addresses',",
" (SELECT COALESCE(jsonb_agg(jsonb_build_object(",
" 'archived', t1_obj_t2_email_addresses_t3.archived,",
" 'created_at', t1_obj_t2_email_addresses_t3.created_at,",
" 'id', t1_obj_t2_email_addresses_t3.id,",
" 'is_primary', t1_obj_t2_email_addresses_t1.is_primary,",
" 'name', t1_obj_t2_email_addresses_t3.name,",
" 'target',",
" (SELECT jsonb_build_object(",
" 'address', t1_obj_t2_email_addresses_t3_target_t1.address,",
" 'archived', t1_obj_t2_email_addresses_t3_target_t2.archived,",
" 'created_at', t1_obj_t2_email_addresses_t3_target_t2.created_at,",
" 'id', t1_obj_t2_email_addresses_t3_target_t2.id,",
" 'name', t1_obj_t2_email_addresses_t3_target_t2.name,",
" 'type', t1_obj_t2_email_addresses_t3_target_t2.type",
" )",
" FROM agreego.email_address t1_obj_t2_email_addresses_t3_target_t1",
" JOIN agreego.entity t1_obj_t2_email_addresses_t3_target_t2 ON t1_obj_t2_email_addresses_t3_target_t2.id = t1_obj_t2_email_addresses_t3_target_t1.id",
" WHERE NOT t1_obj_t2_email_addresses_t3_target_t1.archived",
" AND t1_obj_t2_email_addresses_t3_target_t1.parent_id = t1_obj_t2_email_addresses_t3.id",
" ),",
" 'type', t1_obj_t2_email_addresses_t3.type",
" )), '[]'::jsonb)",
" FROM agreego.contact t1_obj_t2_email_addresses_t1",
" JOIN agreego.relationship t1_obj_t2_email_addresses_t2 ON t1_obj_t2_email_addresses_t2.id = t1_obj_t2_email_addresses_t1.id",
" JOIN agreego.entity t1_obj_t2_email_addresses_t3 ON t1_obj_t2_email_addresses_t3.id = t1_obj_t2_email_addresses_t2.id",
" WHERE NOT t1_obj_t2_email_addresses_t1.archived",
" AND t1_obj_t2_email_addresses_t1.parent_id = t1_obj_t2.id),",
" 'first_name', t1_obj_t1.first_name,",
" 'id', t1_obj_t2.id,",
" 'last_name', t1_obj_t1.last_name,",
" 'name', t1_obj_t2.name,",
" 'phone_numbers',",
" (SELECT COALESCE(jsonb_agg(jsonb_build_object(",
" 'archived', t1_obj_t2_phone_numbers_t3.archived,",
" 'created_at', t1_obj_t2_phone_numbers_t3.created_at,",
" 'id', t1_obj_t2_phone_numbers_t3.id,",
" 'is_primary', t1_obj_t2_phone_numbers_t1.is_primary,",
" 'name', t1_obj_t2_phone_numbers_t3.name,",
" 'target',",
" (SELECT jsonb_build_object(",
" 'archived', t1_obj_t2_phone_numbers_t3_target_t2.archived,",
" 'created_at', t1_obj_t2_phone_numbers_t3_target_t2.created_at,",
" 'id', t1_obj_t2_phone_numbers_t3_target_t2.id,",
" 'name', t1_obj_t2_phone_numbers_t3_target_t2.name,",
" 'number', t1_obj_t2_phone_numbers_t3_target_t1.number,",
" 'type', t1_obj_t2_phone_numbers_t3_target_t2.type",
" )",
" FROM agreego.phone_number t1_obj_t2_phone_numbers_t3_target_t1",
" JOIN agreego.entity t1_obj_t2_phone_numbers_t3_target_t2 ON t1_obj_t2_phone_numbers_t3_target_t2.id = t1_obj_t2_phone_numbers_t3_target_t1.id",
" WHERE NOT t1_obj_t2_phone_numbers_t3_target_t1.archived",
" AND t1_obj_t2_phone_numbers_t3_target_t1.parent_id = t1_obj_t2_phone_numbers_t3.id",
" ),",
" 'type', t1_obj_t2_phone_numbers_t3.type",
" )), '[]'::jsonb)",
" FROM agreego.contact t1_obj_t2_phone_numbers_t1",
" JOIN agreego.relationship t1_obj_t2_phone_numbers_t2 ON t1_obj_t2_phone_numbers_t2.id = t1_obj_t2_phone_numbers_t1.id",
" JOIN agreego.entity t1_obj_t2_phone_numbers_t3 ON t1_obj_t2_phone_numbers_t3.id = t1_obj_t2_phone_numbers_t2.id",
" WHERE NOT t1_obj_t2_phone_numbers_t1.archived",
" AND t1_obj_t2_phone_numbers_t1.parent_id = t1_obj_t2.id),",
" 'type', t1_obj_t2.type",
")",
"FROM agreego.person t1_obj_t1",
"JOIN agreego.entity t1_obj_t2 ON t1_obj_t2.id = t1_obj_t1.id",
"WHERE NOT t1_obj_t1.archived)"
]
]
}
@ -621,52 +720,122 @@
"success": true,
"sql": [
[
" (SELECT jsonb_build_object('addresses',",
" (SELECT COALESCE(jsonb_agg(jsonb_build_object('archived', t1_obj_t2_addresses_t3.archived, 'created_at', t1_obj_t2_addresses_t3.created_at, 'id', t1_obj_t2_addresses_t3.id, 'is_primary', t1_obj_t2_addresses_t1.is_primary, 'name', t1_obj_t2_addresses_t3.name, 'target',",
" (SELECT jsonb_build_object('archived', t1_obj_t2_addresses_t3_target_t2.archived, 'city', t1_obj_t2_addresses_t3_target_t1.city, 'created_at', t1_obj_t2_addresses_t3_target_t2.created_at, 'id', t1_obj_t2_addresses_t3_target_t2.id, 'name', t1_obj_t2_addresses_t3_target_t2.name, 'type', t1_obj_t2_addresses_t3_target_t2.type)",
" FROM agreego.address t1_obj_t2_addresses_t3_target_t1",
" JOIN agreego.entity t1_obj_t2_addresses_t3_target_t2 ON t1_obj_t2_addresses_t3_target_t2.id = t1_obj_t2_addresses_t3_target_t1.id",
" WHERE NOT t1_obj_t2_addresses_t3_target_t1.archived",
" AND t1_obj_t2_addresses_t3_target_t1.parent_id = t1_obj_t2_addresses_t3.id), 'type', t1_obj_t2_addresses_t3.type)), '[]'::JSONB)",
" FROM agreego.contact t1_obj_t2_addresses_t1",
" JOIN agreego.relationship t1_obj_t2_addresses_t2 ON t1_obj_t2_addresses_t2.id = t1_obj_t2_addresses_t1.id",
" JOIN agreego.entity t1_obj_t2_addresses_t3 ON t1_obj_t2_addresses_t3.id = t1_obj_t2_addresses_t2.id",
" WHERE NOT t1_obj_t2_addresses_t1.archived",
" AND t1_obj_t2_addresses_t1.parent_id = t1_obj_t2.id), 'age', t1_obj_t1.age, 'archived', t1_obj_t2.archived, 'contacts',",
" (SELECT COALESCE(jsonb_agg(jsonb_build_object('archived', t1_obj_t2_contacts_t3.archived, 'created_at', t1_obj_t2_contacts_t3.created_at, 'id', t1_obj_t2_contacts_t3.id, 'is_primary', t1_obj_t2_contacts_t1.is_primary, 'name', t1_obj_t2_contacts_t3.name, 'target', t1_obj_t2_contacts_t3.target, 'type', t1_obj_t2_contacts_t3.type)), '[]'::JSONB)",
" FROM agreego.contact t1_obj_t2_contacts_t1",
" JOIN agreego.relationship t1_obj_t2_contacts_t2 ON t1_obj_t2_contacts_t2.id = t1_obj_t2_contacts_t1.id",
" JOIN agreego.entity t1_obj_t2_contacts_t3 ON t1_obj_t2_contacts_t3.id = t1_obj_t2_contacts_t2.id",
" WHERE NOT t1_obj_t2_contacts_t1.archived",
" AND t1_obj_t2_contacts_t1.parent_id = t1_obj_t2.id), 'created_at', t1_obj_t2.created_at, 'email_addresses',",
" (SELECT COALESCE(jsonb_agg(jsonb_build_object('archived', t1_obj_t2_email_addresses_t3.archived, 'created_at', t1_obj_t2_email_addresses_t3.created_at, 'id', t1_obj_t2_email_addresses_t3.id, 'is_primary', t1_obj_t2_email_addresses_t1.is_primary, 'name', t1_obj_t2_email_addresses_t3.name, 'target',",
" (SELECT jsonb_build_object('address', t1_obj_t2_email_addresses_t3_target_t1.address, 'archived', t1_obj_t2_email_addresses_t3_target_t2.archived, 'created_at', t1_obj_t2_email_addresses_t3_target_t2.created_at, 'id', t1_obj_t2_email_addresses_t3_target_t2.id, 'name', t1_obj_t2_email_addresses_t3_target_t2.name, 'type', t1_obj_t2_email_addresses_t3_target_t2.type)",
" FROM agreego.email_address t1_obj_t2_email_addresses_t3_target_t1",
" JOIN agreego.entity t1_obj_t2_email_addresses_t3_target_t2 ON t1_obj_t2_email_addresses_t3_target_t2.id = t1_obj_t2_email_addresses_t3_target_t1.id",
" WHERE NOT t1_obj_t2_email_addresses_t3_target_t1.archived",
" AND t1_obj_t2_email_addresses_t3_target_t1.parent_id = t1_obj_t2_email_addresses_t3.id), 'type', t1_obj_t2_email_addresses_t3.type)), '[]'::JSONB)",
" FROM agreego.contact t1_obj_t2_email_addresses_t1",
" JOIN agreego.relationship t1_obj_t2_email_addresses_t2 ON t1_obj_t2_email_addresses_t2.id = t1_obj_t2_email_addresses_t1.id",
" JOIN agreego.entity t1_obj_t2_email_addresses_t3 ON t1_obj_t2_email_addresses_t3.id = t1_obj_t2_email_addresses_t2.id",
" WHERE NOT t1_obj_t2_email_addresses_t1.archived",
" AND t1_obj_t2_email_addresses_t1.parent_id = t1_obj_t2.id), 'first_name', t1_obj_t1.first_name, 'id', t1_obj_t2.id, 'last_name', t1_obj_t1.last_name, 'name', t1_obj_t2.name, 'phone_numbers',",
" (SELECT COALESCE(jsonb_agg(jsonb_build_object('archived', t1_obj_t2_phone_numbers_t3.archived, 'created_at', t1_obj_t2_phone_numbers_t3.created_at, 'id', t1_obj_t2_phone_numbers_t3.id, 'is_primary', t1_obj_t2_phone_numbers_t1.is_primary, 'name', t1_obj_t2_phone_numbers_t3.name, 'target',",
" (SELECT jsonb_build_object('archived', t1_obj_t2_phone_numbers_t3_target_t2.archived, 'created_at', t1_obj_t2_phone_numbers_t3_target_t2.created_at, 'id', t1_obj_t2_phone_numbers_t3_target_t2.id, 'name', t1_obj_t2_phone_numbers_t3_target_t2.name, 'number', t1_obj_t2_phone_numbers_t3_target_t1.number, 'type', t1_obj_t2_phone_numbers_t3_target_t2.type)",
" FROM agreego.phone_number t1_obj_t2_phone_numbers_t3_target_t1",
" JOIN agreego.entity t1_obj_t2_phone_numbers_t3_target_t2 ON t1_obj_t2_phone_numbers_t3_target_t2.id = t1_obj_t2_phone_numbers_t3_target_t1.id",
" WHERE NOT t1_obj_t2_phone_numbers_t3_target_t1.archived",
" AND t1_obj_t2_phone_numbers_t3_target_t1.parent_id = t1_obj_t2_phone_numbers_t3.id), 'type', t1_obj_t2_phone_numbers_t3.type)), '[]'::JSONB)",
" FROM agreego.contact t1_obj_t2_phone_numbers_t1",
" JOIN agreego.relationship t1_obj_t2_phone_numbers_t2 ON t1_obj_t2_phone_numbers_t2.id = t1_obj_t2_phone_numbers_t1.id",
" JOIN agreego.entity t1_obj_t2_phone_numbers_t3 ON t1_obj_t2_phone_numbers_t3.id = t1_obj_t2_phone_numbers_t2.id",
" WHERE NOT t1_obj_t2_phone_numbers_t1.archived",
" AND t1_obj_t2_phone_numbers_t1.parent_id = t1_obj_t2.id), 'type', t1_obj_t2.type)",
" FROM agreego.person t1_obj_t1",
" JOIN agreego.entity t1_obj_t2 ON t1_obj_t2.id = t1_obj_t1.id",
" WHERE NOT t1_obj_t1.archived",
" AND t1_obj_t2.archived = ($1#>>'{}')::boolean",
" AND t1_obj_t1.first_name ILIKE $2#>>'{}'",
" AND t1_obj_t1.last_name ILIKE $3#>>'{}')"
"(SELECT jsonb_build_object(",
" 'addresses',",
" (SELECT COALESCE(jsonb_agg(jsonb_build_object(",
" 'archived', t1_obj_t2_addresses_t3.archived,",
" 'created_at', t1_obj_t2_addresses_t3.created_at,",
" 'id', t1_obj_t2_addresses_t3.id,",
" 'is_primary', t1_obj_t2_addresses_t1.is_primary,",
" 'name', t1_obj_t2_addresses_t3.name,",
" 'target',",
" (SELECT jsonb_build_object(",
" 'archived', t1_obj_t2_addresses_t3_target_t2.archived,",
" 'city', t1_obj_t2_addresses_t3_target_t1.city,",
" 'created_at', t1_obj_t2_addresses_t3_target_t2.created_at,",
" 'id', t1_obj_t2_addresses_t3_target_t2.id,",
" 'name', t1_obj_t2_addresses_t3_target_t2.name,",
" 'type', t1_obj_t2_addresses_t3_target_t2.type",
" )",
" FROM agreego.address t1_obj_t2_addresses_t3_target_t1",
" JOIN agreego.entity t1_obj_t2_addresses_t3_target_t2 ON t1_obj_t2_addresses_t3_target_t2.id = t1_obj_t2_addresses_t3_target_t1.id",
" WHERE NOT t1_obj_t2_addresses_t3_target_t1.archived",
" AND t1_obj_t2_addresses_t3_target_t1.parent_id = t1_obj_t2_addresses_t3.id",
" ),",
" 'type', t1_obj_t2_addresses_t3.type",
" )), '[]'::jsonb)",
" FROM agreego.contact t1_obj_t2_addresses_t1",
" JOIN agreego.relationship t1_obj_t2_addresses_t2 ON t1_obj_t2_addresses_t2.id = t1_obj_t2_addresses_t1.id",
" JOIN agreego.entity t1_obj_t2_addresses_t3 ON t1_obj_t2_addresses_t3.id = t1_obj_t2_addresses_t2.id",
" WHERE NOT t1_obj_t2_addresses_t1.archived",
" AND t1_obj_t2_addresses_t1.parent_id = t1_obj_t2.id),",
" 'age', t1_obj_t1.age,",
" 'archived', t1_obj_t2.archived,",
" 'contacts',",
" (SELECT COALESCE(jsonb_agg(jsonb_build_object(",
" 'archived', t1_obj_t2_contacts_t3.archived,",
" 'created_at', t1_obj_t2_contacts_t3.created_at,",
" 'id', t1_obj_t2_contacts_t3.id,",
" 'is_primary', t1_obj_t2_contacts_t1.is_primary,",
" 'name', t1_obj_t2_contacts_t3.name,",
" 'target', t1_obj_t2_contacts_t3.target,",
" 'type', t1_obj_t2_contacts_t3.type",
" )), '[]'::jsonb)",
" FROM agreego.contact t1_obj_t2_contacts_t1",
" JOIN agreego.relationship t1_obj_t2_contacts_t2 ON t1_obj_t2_contacts_t2.id = t1_obj_t2_contacts_t1.id",
" JOIN agreego.entity t1_obj_t2_contacts_t3 ON t1_obj_t2_contacts_t3.id = t1_obj_t2_contacts_t2.id",
" WHERE NOT t1_obj_t2_contacts_t1.archived",
" AND t1_obj_t2_contacts_t1.parent_id = t1_obj_t2.id),",
" 'created_at', t1_obj_t2.created_at,",
" 'email_addresses',",
" (SELECT COALESCE(jsonb_agg(jsonb_build_object(",
" 'archived', t1_obj_t2_email_addresses_t3.archived,",
" 'created_at', t1_obj_t2_email_addresses_t3.created_at,",
" 'id', t1_obj_t2_email_addresses_t3.id,",
" 'is_primary', t1_obj_t2_email_addresses_t1.is_primary,",
" 'name', t1_obj_t2_email_addresses_t3.name,",
" 'target',",
" (SELECT jsonb_build_object(",
" 'address', t1_obj_t2_email_addresses_t3_target_t1.address,",
" 'archived', t1_obj_t2_email_addresses_t3_target_t2.archived,",
" 'created_at', t1_obj_t2_email_addresses_t3_target_t2.created_at,",
" 'id', t1_obj_t2_email_addresses_t3_target_t2.id,",
" 'name', t1_obj_t2_email_addresses_t3_target_t2.name,",
" 'type', t1_obj_t2_email_addresses_t3_target_t2.type",
" )",
" FROM agreego.email_address t1_obj_t2_email_addresses_t3_target_t1",
" JOIN agreego.entity t1_obj_t2_email_addresses_t3_target_t2 ON t1_obj_t2_email_addresses_t3_target_t2.id = t1_obj_t2_email_addresses_t3_target_t1.id",
" WHERE NOT t1_obj_t2_email_addresses_t3_target_t1.archived",
" AND t1_obj_t2_email_addresses_t3_target_t1.parent_id = t1_obj_t2_email_addresses_t3.id",
" ),",
" 'type', t1_obj_t2_email_addresses_t3.type",
" )), '[]'::jsonb)",
" FROM agreego.contact t1_obj_t2_email_addresses_t1",
" JOIN agreego.relationship t1_obj_t2_email_addresses_t2 ON t1_obj_t2_email_addresses_t2.id = t1_obj_t2_email_addresses_t1.id",
" JOIN agreego.entity t1_obj_t2_email_addresses_t3 ON t1_obj_t2_email_addresses_t3.id = t1_obj_t2_email_addresses_t2.id",
" WHERE NOT t1_obj_t2_email_addresses_t1.archived",
" AND t1_obj_t2_email_addresses_t1.parent_id = t1_obj_t2.id),",
" 'first_name', t1_obj_t1.first_name,",
" 'id', t1_obj_t2.id,",
" 'last_name', t1_obj_t1.last_name,",
" 'name', t1_obj_t2.name,",
" 'phone_numbers',",
" (SELECT COALESCE(jsonb_agg(jsonb_build_object(",
" 'archived', t1_obj_t2_phone_numbers_t3.archived,",
" 'created_at', t1_obj_t2_phone_numbers_t3.created_at,",
" 'id', t1_obj_t2_phone_numbers_t3.id,",
" 'is_primary', t1_obj_t2_phone_numbers_t1.is_primary,",
" 'name', t1_obj_t2_phone_numbers_t3.name,",
" 'target',",
" (SELECT jsonb_build_object(",
" 'archived', t1_obj_t2_phone_numbers_t3_target_t2.archived,",
" 'created_at', t1_obj_t2_phone_numbers_t3_target_t2.created_at,",
" 'id', t1_obj_t2_phone_numbers_t3_target_t2.id,",
" 'name', t1_obj_t2_phone_numbers_t3_target_t2.name,",
" 'number', t1_obj_t2_phone_numbers_t3_target_t1.number,",
" 'type', t1_obj_t2_phone_numbers_t3_target_t2.type",
" )",
" FROM agreego.phone_number t1_obj_t2_phone_numbers_t3_target_t1",
" JOIN agreego.entity t1_obj_t2_phone_numbers_t3_target_t2 ON t1_obj_t2_phone_numbers_t3_target_t2.id = t1_obj_t2_phone_numbers_t3_target_t1.id",
" WHERE NOT t1_obj_t2_phone_numbers_t3_target_t1.archived",
" AND t1_obj_t2_phone_numbers_t3_target_t1.parent_id = t1_obj_t2_phone_numbers_t3.id",
" ),",
" 'type', t1_obj_t2_phone_numbers_t3.type",
" )), '[]'::jsonb)",
" FROM agreego.contact t1_obj_t2_phone_numbers_t1",
" JOIN agreego.relationship t1_obj_t2_phone_numbers_t2 ON t1_obj_t2_phone_numbers_t2.id = t1_obj_t2_phone_numbers_t1.id",
" JOIN agreego.entity t1_obj_t2_phone_numbers_t3 ON t1_obj_t2_phone_numbers_t3.id = t1_obj_t2_phone_numbers_t2.id",
" WHERE NOT t1_obj_t2_phone_numbers_t1.archived",
" AND t1_obj_t2_phone_numbers_t1.parent_id = t1_obj_t2.id),",
" 'type', t1_obj_t2.type",
")",
"FROM agreego.person t1_obj_t1",
"JOIN agreego.entity t1_obj_t2 ON t1_obj_t2.id = t1_obj_t1.id",
"WHERE",
" NOT t1_obj_t1.archived",
" AND t1_obj_t2.archived = ($1#>>'{}')::boolean",
" AND t1_obj_t1.first_name ILIKE $2#>>'{}'",
" AND t1_obj_t1.last_name ILIKE $3#>>'{}')"
]
]
}
@ -680,11 +849,17 @@
"success": true,
"sql": [
[
" (SELECT jsonb_build_object('archived', t1_obj_t3.archived, 'created_at', t1_obj_t3.created_at, 'id', t1_obj_t3.id, 'is_primary', t1_obj_t1.is_primary, 'name', t1_obj_t3.name, 'type', t1_obj_t3.type)",
" FROM agreego.contact t1_obj_t1",
" JOIN agreego.relationship t1_obj_t2 ON t1_obj_t2.id = t1_obj_t1.id",
" JOIN agreego.entity t1_obj_t3 ON t1_obj_t3.id = t1_obj_t2.id",
" WHERE NOT t1_obj_t1.archived)"
"(SELECT jsonb_build_object(",
" 'archived', t1_obj_t3.archived,",
" 'created_at', t1_obj_t3.created_at,",
" 'id', t1_obj_t3.id,",
" 'is_primary', t1_obj_t1.is_primary,",
" 'name', t1_obj_t3.name,",
" 'type', t1_obj_t3.type)",
"FROM agreego.contact t1_obj_t1",
"JOIN agreego.relationship t1_obj_t2 ON t1_obj_t2.id = t1_obj_t1.id",
"JOIN agreego.entity t1_obj_t3 ON t1_obj_t3.id = t1_obj_t2.id",
"WHERE NOT t1_obj_t1.archived)"
]
]
}
@ -698,10 +873,16 @@
"success": true,
"sql": [
[
" (SELECT jsonb_build_object('archived', t1_obj_t2.archived, 'created_at', t1_obj_t2.created_at, 'id', t1_obj_t2.id, 'name', t1_obj_t2.name, 'number', t1_obj_t1.number, 'type', t1_obj_t2.type)",
" FROM agreego.phone_number t1_obj_t1",
" JOIN agreego.entity t1_obj_t2 ON t1_obj_t2.id = t1_obj_t1.id",
" WHERE NOT t1_obj_t1.archived)"
"(SELECT jsonb_build_object(",
" 'archived', t1_obj_t2.archived,",
" 'created_at', t1_obj_t2.created_at,",
" 'id', t1_obj_t2.id,",
" 'name', t1_obj_t2.name,",
" 'number', t1_obj_t1.number,",
" 'type', t1_obj_t2.type)",
"FROM agreego.phone_number t1_obj_t1",
"JOIN agreego.entity t1_obj_t2 ON t1_obj_t2.id = t1_obj_t1.id",
"WHERE NOT t1_obj_t1.archived)"
]
]
}
@ -715,10 +896,16 @@
"success": true,
"sql": [
[
" (SELECT jsonb_build_object('address', t1_obj_t1.address, 'archived', t1_obj_t2.archived, 'created_at', t1_obj_t2.created_at, 'id', t1_obj_t2.id, 'name', t1_obj_t2.name, 'type', t1_obj_t2.type)",
" FROM agreego.email_address t1_obj_t1",
" JOIN agreego.entity t1_obj_t2 ON t1_obj_t2.id = t1_obj_t1.id",
" WHERE NOT t1_obj_t1.archived)"
"(SELECT jsonb_build_object(",
" 'address', t1_obj_t1.address,",
" 'archived', t1_obj_t2.archived,",
" 'created_at', t1_obj_t2.created_at,",
" 'id', t1_obj_t2.id,",
" 'name', t1_obj_t2.name,",
" 'type', t1_obj_t2.type)",
"FROM agreego.email_address t1_obj_t1",
"JOIN agreego.entity t1_obj_t2 ON t1_obj_t2.id = t1_obj_t1.id",
"WHERE NOT t1_obj_t1.archived)"
]
]
}

20
test_clean.rs Normal file
View File

@ -0,0 +1,20 @@
use regex::Regex;
fn main() {
let ws_re = Regex::new(r"\s+").unwrap();
let clean_str = |s: &str| -> String {
let mut s = ws_re.replace_all(s, " ").into_owned();
loop {
let last = s.clone();
for token in ["(", ")", ",", "{", "}", "\"", "=", "'"] {
s = s.replace(&format!(" {}", token), token);
s = s.replace(&format!("{} ", token), token);
}
if s == last { break; }
}
s.trim().to_string()
};
let input = "INSERT INTO agreego.\"entity\" ( \"created_at\"";
println!("Expected: {}", clean_str(input));
}