0001: SET sql_mode = ? 0.0005s

0002: SHOW DATABASES LIKE 'igi\_cms\_future' 0.0022s

0003: SHOW TABLES LIKE 'SubsiteDomain' 0.0016s

0004: SELECT DISTINCT count(DISTINCT "SubsiteDomain"."ID") AS "Count" FROM "SubsiteDomain" INNER JOIN "Subsite" ON "Subsite"."ID" = "SubsiteDomain"."SubsiteID" AND "Subsite"."IsPublic"=1 WHERE ('igiltd.dev' LIKE replace("SubsiteDomain"."Domain",'*','%')) 0.0071s

0005: SELECT DISTINCT "Subsite"."ClassName", "Subsite"."LastEdited", "Subsite"."Created", "Subsite"."DefaultSite", "Subsite"."ID", CASE WHEN "Subsite"."ClassName" IS NOT NULL THEN "Subsite"."ClassName" ELSE 'SilverStripe\\Subsites\\Model\\Subsite' END AS "RecordClassName", "Subsite"."Title" FROM "Subsite" WHERE ("Subsite"."DefaultSite" = ?) ORDER BY "Subsite"."Title" ASC LIMIT 1 0.0007s

0006: SHOW FULL TABLES WHERE Table_Type != 'VIEW' 0.0017s

0007: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."SubsiteID", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" WHERE ("SiteTree_Live"."URLSegment" = ?) AND ("SiteTree_Live"."ParentID" = ?) AND ("SiteTree_Live"."SubsiteID" IN (0)) ORDER BY "SiteTree_Live"."Sort" ASC LIMIT 1 0.0008s

0008: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."SubsiteID", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" WHERE ("SiteTree_Live"."ParentID" = ?) AND ("SiteTree_Live"."URLSegment" = ?) AND ("SiteTree_Live"."SubsiteID" IN (0)) ORDER BY "SiteTree_Live"."Sort" ASC LIMIT 1 0.0005s

0009: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."SubsiteID", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" WHERE ("SiteTree_Live"."ID" = ?) ORDER BY "SiteTree_Live"."Sort" ASC LIMIT 1 0.0003s

0010: SELECT DISTINCT "Subsite"."ClassName", "Subsite"."LastEdited", "Subsite"."Created", "Subsite"."Title", "Subsite"."RedirectURL", "Subsite"."DefaultSite", "Subsite"."Theme", "Subsite"."Language", "Subsite"."IsPublic", "Subsite"."PageTypeBlacklist", "Subsite"."ID", CASE WHEN "Subsite"."ClassName" IS NOT NULL THEN "Subsite"."ClassName" ELSE 'SilverStripe\\Subsites\\Model\\Subsite' END AS "RecordClassName" FROM "Subsite" WHERE ("Subsite"."ID" = ?) ORDER BY "Subsite"."Title" ASC LIMIT 1 0.0003s

0011: SELECT DISTINCT "SiteConfig"."ClassName", "SiteConfig"."LastEdited", "SiteConfig"."Created", "SiteConfig"."Title", "SiteConfig"."Tagline", "SiteConfig"."CanViewType", "SiteConfig"."CanEditType", "SiteConfig"."CanCreateTopLevelType", "SiteConfig"."SubsiteID", "SiteConfig"."BrandID", "SiteConfig"."ID", CASE WHEN "SiteConfig"."ClassName" IS NOT NULL THEN "SiteConfig"."ClassName" ELSE 'SilverStripe\\SiteConfig\\SiteConfig' END AS "RecordClassName" FROM "SiteConfig" WHERE ("SiteConfig"."SubsiteID" IN (0)) LIMIT 1 0.0003s

0012: SELECT CASE WHEN EXISTS(SELECT * FROM "Subsite" ) THEN 1 ELSE 0 END 0.0002s

0013: SELECT DISTINCT "PublishDate" IS NULL AS "_SortColumn0", "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "BlogPost_Live"."PublishDate", "BlogPost_Live"."AuthorNames", "BlogPost_Live"."Summary", "BlogPost_Live"."ElementalAreaID", "BlogPost_Live"."FeaturedImageID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" LEFT JOIN "BlogPost_Live" ON "BlogPost_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "Page_Live" ON "Page_Live"."ID" = "SiteTree_Live"."ID" WHERE ("SiteTree_Live"."ID" = ?) AND ("SiteTree_Live"."ClassName" IN (?)) AND ("PublishDate" < '2024-12-28 23:20:03') ORDER BY "_SortColumn0" DESC, "BlogPost_Live"."PublishDate" DESC LIMIT 1 0.0006s

0014: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "Page_Live"."MenuSubtitle", "Page_Live"."MenuIcon", "Page_Live"."MenuStyle", "Page_Live"."BrandID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName", "SiteTree_Live"."Sort" FROM "SiteTree_Live" LEFT JOIN "Page_Live" ON "Page_Live"."ID" = "SiteTree_Live"."ID" INNER JOIN "BlogPost_Live" ON "SiteTree_Live"."ID" = "BlogPost_Live"."ID" WHERE ("SiteTree_Live"."ID" = ?) AND ("SiteTree_Live"."ClassName" IN (?, ?, ?, ?, ?, ?, ?, ?)) ORDER BY "SiteTree_Live"."Sort" ASC LIMIT 1 0.0004s

0015: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "Page_Live"."MenuSubtitle", "Page_Live"."MenuIcon", "Page_Live"."MenuStyle", "Page_Live"."BrandID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName", "SiteTree_Live"."Sort" FROM "SiteTree_Live" LEFT JOIN "Page_Live" ON "Page_Live"."ID" = "SiteTree_Live"."ID" WHERE ("SiteTree_Live"."ID" = ?) AND ("SiteTree_Live"."ClassName" IN (?, ?, ?, ?, ?, ?, ?, ?)) ORDER BY "SiteTree_Live"."Sort" ASC LIMIT 1 0.0003s

0016: SELECT DISTINCT "Brand"."ClassName", "Brand"."LastEdited", "Brand"."Created", "Brand"."Title", "Brand"."Icon", "Brand"."Color", "Brand"."Pattern", "Brand"."ID", CASE WHEN "Brand"."ClassName" IS NOT NULL THEN "Brand"."ClassName" ELSE 'IGI\\Website\\Models\\Brand' END AS "RecordClassName" FROM "Brand" WHERE ("Brand"."ID" = ?) LIMIT 1 0.0004s

0017: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."SubsiteID", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" WHERE ("SiteTree_Live"."ShowInMenus" = ?) AND ("SiteTree_Live"."ParentID" = ?) AND ("SiteTree_Live"."SubsiteID" IN (0)) ORDER BY "SiteTree_Live"."Sort" ASC 0.0007s

0018: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."SubsiteID", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" WHERE ("SiteTree_Live"."ParentID" <> "SiteTree_Live"."ID") AND ("SiteTree_Live"."ParentID" = ?) AND ("SiteTree_Live"."ShowInMenus" = ?) AND ("SiteTree_Live"."SubsiteID" IN (0)) ORDER BY "SiteTree_Live"."Sort" ASC 0.0005s

0019: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."SubsiteID", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" WHERE ("SiteTree_Live"."ID" = ?) ORDER BY "SiteTree_Live"."Sort" ASC LIMIT 1 0.0003s

0020: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."SubsiteID", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" WHERE ("SiteTree_Live"."ParentID" <> "SiteTree_Live"."ID") AND ("SiteTree_Live"."ParentID" = ?) AND ("SiteTree_Live"."ShowInMenus" = ?) AND ("SiteTree_Live"."SubsiteID" IN (0)) ORDER BY "SiteTree_Live"."Sort" ASC 0.0005s

0021: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."SubsiteID", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" WHERE ("SiteTree_Live"."ID" = ?) ORDER BY "SiteTree_Live"."Sort" ASC LIMIT 1 0.0003s

0022: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."SubsiteID", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" WHERE ("SiteTree_Live"."ID" = ?) ORDER BY "SiteTree_Live"."Sort" ASC LIMIT 1 0.0003s

0023: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "Page_Live"."MenuSubtitle", "Page_Live"."MenuIcon", "Page_Live"."MenuStyle", "Page_Live"."BrandID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName", "SiteTree_Live"."Sort" FROM "SiteTree_Live" LEFT JOIN "Page_Live" ON "Page_Live"."ID" = "SiteTree_Live"."ID" WHERE ("SiteTree_Live"."ID" = ?) AND ("SiteTree_Live"."ClassName" IN (?, ?, ?, ?, ?, ?, ?, ?)) ORDER BY "SiteTree_Live"."Sort" ASC LIMIT 1 0.0005s

0024: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "RedirectorPage_Live"."RedirectionType", "RedirectorPage_Live"."ExternalURL", "RedirectorPage_Live"."LinkToID", "RedirectorPage_Live"."LinkToFileID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName", "SiteTree_Live"."Sort" FROM "SiteTree_Live" LEFT JOIN "Page_Live" ON "Page_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "RedirectorPage_Live" ON "RedirectorPage_Live"."ID" = "SiteTree_Live"."ID" WHERE ("SiteTree_Live"."ID" = ?) AND ("SiteTree_Live"."ClassName" IN (?)) ORDER BY "SiteTree_Live"."Sort" ASC LIMIT 1 0.0006s

0025: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "RedirectorPage_Live"."RedirectionType", "RedirectorPage_Live"."ExternalURL", "RedirectorPage_Live"."LinkToID", "RedirectorPage_Live"."LinkToFileID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName", "SiteTree_Live"."Sort" FROM "SiteTree_Live" LEFT JOIN "Page_Live" ON "Page_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "RedirectorPage_Live" ON "RedirectorPage_Live"."ID" = "SiteTree_Live"."ID" WHERE ("SiteTree_Live"."ID" = ?) AND ("SiteTree_Live"."ClassName" IN (?)) ORDER BY "SiteTree_Live"."Sort" ASC LIMIT 1 0.0003s

0026: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."SubsiteID", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" WHERE ("SiteTree_Live"."ParentID" <> "SiteTree_Live"."ID") AND ("SiteTree_Live"."ParentID" = ?) AND ("SiteTree_Live"."ShowInMenus" = ?) AND ("SiteTree_Live"."SubsiteID" IN (0)) ORDER BY "SiteTree_Live"."Sort" ASC 0.0005s

0027: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."SubsiteID", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" WHERE ("SiteTree_Live"."ID" = ?) ORDER BY "SiteTree_Live"."Sort" ASC LIMIT 1 0.0003s

0028: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."SubsiteID", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" WHERE ("SiteTree_Live"."ID" = ?) ORDER BY "SiteTree_Live"."Sort" ASC LIMIT 1 0.0003s

0029: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."SubsiteID", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" WHERE ("SiteTree_Live"."ID" = ?) ORDER BY "SiteTree_Live"."Sort" ASC LIMIT 1 0.0003s

0030: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "Page_Live"."MenuSubtitle", "Page_Live"."MenuIcon", "Page_Live"."MenuStyle", "Page_Live"."BrandID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName", "SiteTree_Live"."Sort" FROM "SiteTree_Live" LEFT JOIN "Page_Live" ON "Page_Live"."ID" = "SiteTree_Live"."ID" WHERE ("SiteTree_Live"."ID" = ?) AND ("SiteTree_Live"."ClassName" IN (?, ?, ?, ?, ?, ?, ?, ?)) ORDER BY "SiteTree_Live"."Sort" ASC LIMIT 1 0.0003s

0031: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "RedirectorPage_Live"."RedirectionType", "RedirectorPage_Live"."ExternalURL", "RedirectorPage_Live"."LinkToID", "RedirectorPage_Live"."LinkToFileID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName", "SiteTree_Live"."Sort" FROM "SiteTree_Live" LEFT JOIN "Page_Live" ON "Page_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "RedirectorPage_Live" ON "RedirectorPage_Live"."ID" = "SiteTree_Live"."ID" WHERE ("SiteTree_Live"."ID" = ?) AND ("SiteTree_Live"."ClassName" IN (?)) ORDER BY "SiteTree_Live"."Sort" ASC LIMIT 1 0.0003s

0032: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "RedirectorPage_Live"."RedirectionType", "RedirectorPage_Live"."ExternalURL", "RedirectorPage_Live"."LinkToID", "RedirectorPage_Live"."LinkToFileID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName", "SiteTree_Live"."Sort" FROM "SiteTree_Live" LEFT JOIN "Page_Live" ON "Page_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "RedirectorPage_Live" ON "RedirectorPage_Live"."ID" = "SiteTree_Live"."ID" WHERE ("SiteTree_Live"."ID" = ?) AND ("SiteTree_Live"."ClassName" IN (?)) ORDER BY "SiteTree_Live"."Sort" ASC LIMIT 1 0.0003s

0033: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "RedirectorPage_Live"."RedirectionType", "RedirectorPage_Live"."ExternalURL", "RedirectorPage_Live"."LinkToID", "RedirectorPage_Live"."LinkToFileID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName", "SiteTree_Live"."Sort" FROM "SiteTree_Live" LEFT JOIN "Page_Live" ON "Page_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "RedirectorPage_Live" ON "RedirectorPage_Live"."ID" = "SiteTree_Live"."ID" WHERE ("SiteTree_Live"."ID" = ?) AND ("SiteTree_Live"."ClassName" IN (?)) ORDER BY "SiteTree_Live"."Sort" ASC LIMIT 1 0.0004s

0034: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."SubsiteID", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" INNER JOIN "BlogPost_Live" ON "BlogPost_Live"."ID" = "SiteTree_Live"."ID" WHERE ("SiteTree_Live"."ParentID" = ?) AND (("SiteTree_Live"."ID" != ? OR "SiteTree_Live"."ID" IS NULL)) AND ("SiteTree_Live"."ShowInMenus" = ?) AND ("PublishDate" < '2024-12-28 23:20:03') AND ("SiteTree_Live"."SubsiteID" IN (0)) ORDER BY "SiteTree_Live"."Sort" ASC 0.001s

0035: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."SubsiteID", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" WHERE ("SiteTree_Live"."ParentID" <> "SiteTree_Live"."ID") AND ("SiteTree_Live"."ParentID" = ?) AND ("SiteTree_Live"."ShowInMenus" = ?) AND ("SiteTree_Live"."SubsiteID" IN (0)) ORDER BY "SiteTree_Live"."Sort" ASC 0.0005s

0036: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."SubsiteID", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" WHERE ("SiteTree_Live"."ID" = ?) ORDER BY "SiteTree_Live"."Sort" ASC LIMIT 1 0.0004s

0037: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."SubsiteID", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" WHERE ("SiteTree_Live"."ID" = ?) ORDER BY "SiteTree_Live"."Sort" ASC LIMIT 1 0.0004s

0038: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."SubsiteID", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" WHERE ("SiteTree_Live"."ID" = ?) ORDER BY "SiteTree_Live"."Sort" ASC LIMIT 1 0.0004s

0039: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."SubsiteID", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" WHERE ("SiteTree_Live"."ID" = ?) ORDER BY "SiteTree_Live"."Sort" ASC LIMIT 1 0.0004s

0040: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "Page_Live"."MenuSubtitle", "Page_Live"."MenuIcon", "Page_Live"."MenuStyle", "Page_Live"."BrandID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName", "SiteTree_Live"."Sort" FROM "SiteTree_Live" LEFT JOIN "Page_Live" ON "Page_Live"."ID" = "SiteTree_Live"."ID" WHERE ("SiteTree_Live"."ID" = ?) AND ("SiteTree_Live"."ClassName" IN (?, ?, ?, ?, ?, ?, ?, ?)) ORDER BY "SiteTree_Live"."Sort" ASC LIMIT 1 0.0004s

0041: SELECT DISTINCT "BlogCategory"."ClassName", "BlogCategory"."LastEdited", "BlogCategory"."Created", "BlogCategory"."Title", "BlogCategory"."URLSegment", "BlogCategory"."BlogID", "BlogCategory"."ID", CASE WHEN "BlogCategory"."ClassName" IS NOT NULL THEN "BlogCategory"."ClassName" ELSE 'SilverStripe\\Blog\\Model\\BlogCategory' END AS "RecordClassName" FROM "BlogCategory" INNER JOIN "BlogPost_Categories" ON "BlogPost_Categories"."BlogCategoryID" = "BlogCategory"."ID" WHERE ("BlogPost_Categories"."BlogPostID" = ?) 0.0005s

0042: SELECT DISTINCT count(DISTINCT "BlogCategory"."ID") AS "Count" FROM "BlogCategory" INNER JOIN "BlogPost_Categories" ON "BlogPost_Categories"."BlogCategoryID" = "BlogCategory"."ID" WHERE ("BlogPost_Categories"."BlogPostID" = ?) 0.0003s

0043: SELECT DISTINCT "Member"."ClassName", "Member"."LastEdited", "Member"."Created", "Member"."URLSegment", "Member"."BlogProfileSummary", "Member"."BlogProfileRole", "Member"."FirstName", "Member"."Surname", "Member"."Email", "Member"."TempIDHash", "Member"."TempIDExpired", "Member"."Password", "Member"."AutoLoginHash", "Member"."AutoLoginExpired", "Member"."PasswordEncryption", "Member"."Salt", "Member"."PasswordExpiry", "Member"."LockedOutUntil", "Member"."Locale", "Member"."FailedLoginCount", "Member"."BlogProfileImageID", "Member"."ID", CASE WHEN "Member"."ClassName" IS NOT NULL THEN "Member"."ClassName" ELSE 'SilverStripe\\Security\\Member' END AS "RecordClassName" FROM "Member" INNER JOIN "BlogPost_Authors" ON "BlogPost_Authors"."MemberID" = "Member"."ID" WHERE ("BlogPost_Authors"."BlogPostID" = ?) ORDER BY "Member"."Surname" ASC, "Member"."FirstName" ASC LIMIT 1 0.0011s

0044: SELECT DISTINCT "ElementalArea_Live"."ClassName", "ElementalArea_Live"."LastEdited", "ElementalArea_Live"."Created", "ElementalArea_Live"."Version", "ElementalArea_Live"."OwnerClassName", "ElementalArea_Live"."TopPageID", "ElementalArea_Live"."ID", CASE WHEN "ElementalArea_Live"."ClassName" IS NOT NULL THEN "ElementalArea_Live"."ClassName" ELSE 'DNADesign\\Elemental\\Models\\ElementalArea' END AS "RecordClassName" FROM "ElementalArea_Live" WHERE ("ElementalArea_Live"."ID" = ?) LIMIT 1 0.0004s

0045: SELECT DISTINCT "Element_Live"."ClassName", "Element_Live"."LastEdited", "Element_Live"."Created", "Element_Live"."Version", "Element_Live"."Title", "Element_Live"."ShowTitle", "Element_Live"."Sort", "Element_Live"."ExtraClass", "Element_Live"."Style", "Element_Live"."TopPageID", "Element_Live"."ParentID", "Element_Live"."ID", CASE WHEN "Element_Live"."ClassName" IS NOT NULL THEN "Element_Live"."ClassName" ELSE 'DNADesign\\Elemental\\Models\\BaseElement' END AS "RecordClassName" FROM "Element_Live" WHERE ("Element_Live"."ParentID" = ?) ORDER BY "Element_Live"."Sort" ASC 0.0007s

0046: SELECT DISTINCT "ElementalArea_Live"."ClassName", "ElementalArea_Live"."LastEdited", "ElementalArea_Live"."Created", "ElementalArea_Live"."Version", "ElementalArea_Live"."OwnerClassName", "ElementalArea_Live"."TopPageID", "ElementalArea_Live"."ID", CASE WHEN "ElementalArea_Live"."ClassName" IS NOT NULL THEN "ElementalArea_Live"."ClassName" ELSE 'DNADesign\\Elemental\\Models\\ElementalArea' END AS "RecordClassName" FROM "ElementalArea_Live" WHERE ("ElementalArea_Live"."ID" = ?) LIMIT 1 0.0003s

0047: SELECT DISTINCT "PublishDate" IS NULL AS "_SortColumn0", "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."SubsiteID", "SiteTree_Live"."ParentID", "Page_Live"."MenuSubtitle", "Page_Live"."MenuIcon", "Page_Live"."MenuStyle", "Page_Live"."BrandID", "BlogPost_Live"."PublishDate", "BlogPost_Live"."AuthorNames", "BlogPost_Live"."Summary", "BlogPost_Live"."ElementalAreaID", "BlogPost_Live"."FeaturedImageID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" LEFT JOIN "Page_Live" ON "Page_Live"."ID" = "SiteTree_Live"."ID" LEFT JOIN "BlogPost_Live" ON "BlogPost_Live"."ID" = "SiteTree_Live"."ID" WHERE ("BlogPost_Live"."ElementalAreaID" = ?) AND ("SiteTree_Live"."ClassName" = ?) AND ("SiteTree_Live"."ClassName" IN (?)) AND ("SiteTree_Live"."SubsiteID" IN (0)) AND ("PublishDate" < '2024-12-28 23:20:03') ORDER BY "_SortColumn0" DESC, "BlogPost_Live"."PublishDate" DESC LIMIT 1 0.0007s

0048: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."SubsiteID", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" WHERE ("SiteTree_Live"."ID" = ?) ORDER BY "SiteTree_Live"."Sort" ASC LIMIT 1 0.0003s

0049: SELECT CASE WHEN EXISTS(SELECT * FROM "Subsite" ) THEN 1 ELSE 0 END 0.0002s

0050: SELECT DISTINCT "ElementalArea_Live"."ClassName", "ElementalArea_Live"."LastEdited", "ElementalArea_Live"."Created", "ElementalArea_Live"."Version", "ElementalArea_Live"."OwnerClassName", "ElementalArea_Live"."TopPageID", "ElementalArea_Live"."ID", CASE WHEN "ElementalArea_Live"."ClassName" IS NOT NULL THEN "ElementalArea_Live"."ClassName" ELSE 'DNADesign\\Elemental\\Models\\ElementalArea' END AS "RecordClassName" FROM "ElementalArea_Live" WHERE ("ElementalArea_Live"."ID" = ?) LIMIT 1 0.0003s

0051: SELECT DISTINCT "Element_Live"."ClassName", "Element_Live"."LastEdited", "Element_Live"."Created", "ElementContent_Live"."HTML", "Element_Live"."ID", CASE WHEN "Element_Live"."ClassName" IS NOT NULL THEN "Element_Live"."ClassName" ELSE 'DNADesign\\Elemental\\Models\\BaseElement' END AS "RecordClassName", "Element_Live"."Sort" FROM "Element_Live" LEFT JOIN "ElementContent_Live" ON "ElementContent_Live"."ID" = "Element_Live"."ID" WHERE ("Element_Live"."ID" = ?) AND ("Element_Live"."ClassName" IN (?)) ORDER BY "Element_Live"."Sort" ASC LIMIT 1 0.0019s

0052: SELECT "Version" FROM "SiteTree" WHERE "ID" = ? 0.0005s

0053: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."SubsiteID", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" WHERE ("SiteTree_Live"."ID" = ?) ORDER BY "SiteTree_Live"."Sort" ASC LIMIT 1 0.0005s

0054: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."SubsiteID", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" WHERE ("SiteTree_Live"."ID" = ?) ORDER BY "SiteTree_Live"."Sort" ASC LIMIT 1 0.0003s

0055: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."SubsiteID", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" WHERE ("SiteTree_Live"."ID" = ?) ORDER BY "SiteTree_Live"."Sort" ASC LIMIT 1 0.0004s

0056: SELECT DISTINCT "SiteTree"."ClassName", "SiteTree"."LastEdited", "SiteTree"."Created", "SiteTree"."Priority", "SiteTree"."CanViewType", "SiteTree"."CanEditType", "SiteTree"."Version", "SiteTree"."URLSegment", "SiteTree"."Title", "SiteTree"."MenuTitle", "SiteTree"."Content", "SiteTree"."MetaDescription", "SiteTree"."ExtraMeta", "SiteTree"."ShowInMenus", "SiteTree"."ShowInSearch", "SiteTree"."Sort", "SiteTree"."HasBrokenFile", "SiteTree"."HasBrokenLink", "SiteTree"."ReportClass", "SiteTree"."SubsiteID", "SiteTree"."ParentID", "SiteTree"."ID", CASE WHEN "SiteTree"."ClassName" IS NOT NULL THEN "SiteTree"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName" FROM "SiteTree" WHERE ("SiteTree"."ID" = ?) ORDER BY "SiteTree"."Sort" ASC LIMIT 1 0.0004s

0057: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."SubsiteID", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" WHERE ("SiteTree_Live"."ID" = ?) ORDER BY "SiteTree_Live"."Sort" ASC LIMIT 1 0.0003s

0058: SELECT DISTINCT "SiteTree_Live"."ClassName", "SiteTree_Live"."LastEdited", "SiteTree_Live"."Created", "SiteTree_Live"."Priority", "SiteTree_Live"."CanViewType", "SiteTree_Live"."CanEditType", "SiteTree_Live"."Version", "SiteTree_Live"."URLSegment", "SiteTree_Live"."Title", "SiteTree_Live"."MenuTitle", "SiteTree_Live"."Content", "SiteTree_Live"."MetaDescription", "SiteTree_Live"."ExtraMeta", "SiteTree_Live"."ShowInMenus", "SiteTree_Live"."ShowInSearch", "SiteTree_Live"."Sort", "SiteTree_Live"."HasBrokenFile", "SiteTree_Live"."HasBrokenLink", "SiteTree_Live"."ReportClass", "SiteTree_Live"."SubsiteID", "SiteTree_Live"."ParentID", "SiteTree_Live"."ID", CASE WHEN "SiteTree_Live"."ClassName" IS NOT NULL THEN "SiteTree_Live"."ClassName" ELSE 'SilverStripe\\CMS\\Model\\SiteTree' END AS "RecordClassName" FROM "SiteTree_Live" WHERE ("SiteTree_Live"."ID" = ?) ORDER BY "SiteTree_Live"."Sort" ASC LIMIT 1 0.0003s

Unmixing mixtures - a mathematical perspective on using peak concentrations versus ratios » IGI Ltd.

Unmixing mixtures - a mathematical perspective on using peak concentrations versus ratios

Andrew Murray and Ken Peters recently presented an interesting paper on mixing of oils and gas condensates, and the use of Alternating Least Squares (ALS) and Hierarchical Cluster Analysis (HCA) for interpreting such mixtures.

The slides can be found at: https://lnkd.in/gn2uEsS.

This short note provides a bit of insight into why some of their conclusions are valid from a mathematical / statistical perspective, which formalises the results of Appendix A in Peters et al. (2008). It does not significantly address the issue of unmixing gas condensates and oils, which is a different problem.

The conclusion on the application of ALS (or any other linear deconvolution) using compound concentrations versus ratios in Peters and Murray (2020) and Peters et al. (2008) relates to some quite simple maths.

Mixing of oils: concentrations and ratios

Imagine we have two source oils (end members) e1 and e2. For simplicity of presentation assume we measure just two peak concentrations [p_1] and [p_2] in each oil. So denoting the first peak measured in e1 as [p_e1,1] and the second peak as [p_e1,2] (i.e. [p_ei,j] is the concentration of the i'th sample, j'th peak). Assume a perfect linear mixture of the fluids m = w1*e1 + w2*e2, where m is the mixed oil sample, and w1 and w2 are the mixing coefficients (weights) of the two end members in the mixture. The peak concentrations will also mix linearly, so:

[p_m,1] = w1*[p_e1,1] + w2*[p_e2,1]

that is the first peak of the mixture will be a weighted linear combination of the first peaks of the end members, and similarly for the second peak.

We can directly solve this because for a two-component mixture we have: w2 = 1 - w1, so substituting in we end up with:

w1 = ([p_m,1] – [p_e2,1]) / ([p_e1,1] – [p_e2,1]).

This generalises to mixtures of more than two end members but requires more peaks to be measured (which are present in different proportions in each end member).

Of course, this also (inappropriately) assumes no noise - we'll come back to that.

Now let's use a ratio, r_e1 = [p_e1,1] / [p_e1,2] - that is we'll use the ratio of the two peaks. We can write the ratio of the mixture as the ratio of the peaks in the mixture:

r_m = (w1*[p_e1,1] + w2*[p_e2,1]) / (w1*[p_e1,2] + w2*[p_e2,2]).

After a bit of algebra, using w2 = 1 - w1, we get:

w1 = (r_m*[p_e2,2] – [p_e2,1]) / ([p_e1,1] – [p_e2,1] - r_m*([p_e1,2] – [p_e2,2]))

What this means is that we can (in the noise-free case) deconvolve a mixture using ratios only if we also know the peak concentrations in the end members - this is pretty much because r_m is not equal to w1*r_e1 + w2*r_e2, that is ratios don't mix linearly, as Murray & Peters note. If we only have ratios we will always be limited what we can do in terms of deconvolution – although again see later, as if you had more (independent) ratios with the right tools I suspect you could solve this.

Mixing in the presence of noise

So much for maths. You could claim this is useless arithmetic ... there is no consideration of noise, and in all real data there is noise.  This is where ALS and other tools come in - ALS is just one technique available – that can deconvolve a mixture in the presence of noise.

So what happens in the presence of noise? Well things get a bit messy. If you are using peaks, then because we are assuming linear mixing, ALS should still work fine, if the noise is Gaussian (and I suspect also it will remain unbiased so long as the noise is symmetric). As an aside I rather doubt the noise is Gaussian here (we are dealing with concentration data, so at low values I’d expect something quite non-Gaussian, and even non-symmetric), so it could be that other methods would provide better estimates. But for anything measured at ‘reasonable’ concentrations any effect would be small in practice.

For now let’s assume Gaussian noise on the peak measurements. ALS will work fine on concentrations.

But what about ratios? Well here the noise will definitely be non-Gaussian (they may have a Cauchy distribution, if the peaks follow a Gaussian distribution), so ALS will struggle here whatever, but also as we have seen previously, you cannot use independent ratios alone to deconvolve a linear mixture – you will need other constraints if you want to ascertain the relative concentrations of the end members in the mixture.

Conjecture: Interestingly, I suspect if you used ratios that ‘overlap’ (share common peaks) or used a sufficient number of ‘independent’ ratios there could be the information content present to deconvolve the mixture (subject to noise issues). I might take a look at that on a rainy day - it would need a quite specific model (maybe a latent variable model?) that considers both the non-linear mixing of ratios, and the non-Gaussian nature of the observational uncertainty. This would produce a non-linear optimisation problem, which could be complex to solve numerically, and might admit multiple solutions. But if possible, it could have benefits of not requiring the careful pre-processing of concentrations.

HCA and information content

I think the use of HCA with ratios (or concentrations) is a rather different issue. HCA is not attempting to deconvolve the mixture, and HCA does not make assumptions about linearity directly. The main comment I would make is that one should not expect HCA, or any clustering, to separate mixtures well, using either ratios or concentrations.

Peters and Murray (2020) directly raise the issue of the use of concentrations versus ratios in the context of separating mixtures of oils and gas condensates, which I think is a known problem (in essence gas condensates will carry far lower proportions of biomarkers and other heavier molecules, hence the pre-processing applied to ‘renormalise’ the concentrations). I assume that in an ideal world we would obtain measurements of properties (or ratios, but see above) across compounds that would help identify differences in composition between oils and condensates (i.e. in the gasoline range assuming these were not too badly affected by loss due to evaporation or biodegradation / fractionation).

Summary

No statistical modelling technique is magic … your data needs to have the information content necessary to identify the parameters you are estimating, and your estimator needs to be unbiased and efficient. Measuring concentrations across more peaks will not help if the data are strongly correlated as you add very little information doing this, so the choice of concentrations (or ratios) used will also be important here.

In this short technical note I have tried to show mathematically that applying ALS to ratios is not just practically wrong, it is theoretically wrong: we should not use a linear unmixing method on ratios because they mix non-linearly. The fact that ALR on ratios works to a degree is down to the degree of non-linearity which will depend on the ranges over which the concentrations vary – if this range is small, then a linear approximation will be good enough.

In the presence of noise the situation is likely to be worse, as the least squares element of ALS implies a Gaussian distribution on the (observation + model) errors, which cannot be true for both concentrations and ratios at the same time!

A future challenge would be to develop an unmixing method which could provide an unbiased estimate of the mixing proportions when using ratios. In principle such a model could be developed, although estimation or inference in that model could be computationally challenging.

Dan Cornford, Nov 2020.

References

Peters, K. E. and Murray, A. 2020. Deconvoluting Mixed Petroleum and the Effect of Oil and Gas-Condensate Mixtures on Identifying Petroleum Systems, Search and Discovery Article #42564. http://www.searchanddiscovery.com/pdfz/documents/2020/42564peters/ndx_peters.pdf.html

Peters, K. E., Ramos, L. S., Zumberge, J. E., Valin, Z. C. and Bird, K. J. 2008. De-Convoluting Mixed Crude Oil in Prudhoe Bay Field, North Slope, Alaska, Organic Geochemistry, 39(6), 623-645