-- Check for CreatedTime entries that might still cause parsing issues
-- Specifically looking for times that don't have a space before AM/PM

-- Find times without space before AM/PM
SELECT 
  'Times without space before AM/PM' as issue_type,
  COUNT(*) as count
FROM "OptionsFlow_monthly"
WHERE "CreatedTime" IS NOT NULL
  AND "CreatedTime"::text ~ '[0-9][AP]M$'  -- Ends with digit followed by AM/PM (no space)
  AND "CreatedTime"::text !~ '\s+[AP]M$';  -- Doesn't have space before AM/PM

-- Show sample of problematic entries
SELECT 
  "CreatedDate",
  "CreatedTime",
  "Symbol",
  COUNT(*) as count
FROM "OptionsFlow_monthly"
WHERE "CreatedTime" IS NOT NULL
  AND "CreatedTime"::text ~ '[0-9][AP]M$'  -- Ends with digit followed by AM/PM (no space)
  AND "CreatedTime"::text !~ '\s+[AP]M$'   -- Doesn't have space before AM/PM
GROUP BY "CreatedDate", "CreatedTime", "Symbol"
ORDER BY count DESC
LIMIT 50;

-- Check for times with inconsistent spacing patterns
SELECT 
  'Detailed spacing analysis' as check_type,
  COUNT(*) FILTER (WHERE "CreatedTime"::text ~ ':\d{2}:\d{2}[AP]M$') as no_space_seconds,
  COUNT(*) FILTER (WHERE "CreatedTime"::text ~ ':\d{2}[AP]M$') as no_space_minutes,
  COUNT(*) FILTER (WHERE "CreatedTime"::text ~ '\d{1,2}[AP]M$') as no_space_hour_only,
  COUNT(*) FILTER (WHERE "CreatedTime"::text ~ '\s+[AP]M$') as has_space
FROM "OptionsFlow_monthly"
WHERE "CreatedTime" IS NOT NULL
  AND "CreatedTime"::text ~* '[AP]M$';

