def _handle_csv()

in tools/hologres_excute_sql.py [0:0]


    def _handle_csv(self, data: list[dict[str, Any]] | dict[str, Any] | None) -> Generator[ToolInvokeMessage]:
        """Generate CSV file message"""
        output = StringIO()
        # Write BOM (only first 3 bytes)
        output.write('\ufeff')  # Add BOM
        writer = csv.writer(output)
        # Write header
        writer.writerow(data[0].keys())
        
        # Write data rows (handle date serialization)
        for row in data:
            processed_row = [
                self._custom_serializer(val) if isinstance(val, (date, datetime)) else val
                for val in row.values()
            ]
            writer.writerow(processed_row)

        # Note: utf-8-sig encoding automatically includes BOM, recommended to use this method
        yield self.create_blob_message(
            output.getvalue().encode('utf-8-sig'),  # Key modification point ✅
            meta={
                'mime_type': 'text/csv',
                'filename': 'result.csv',
                'encoding': 'utf-8-sig'  # Explicitly declare encoding
            }
        )