So it's a static typing check ? the code won't even compile if the ColumnWriter struct doesn't implement the interface ?
This check is not really needed as the code would fail when a function which accepts scan.Writer would fail (compilation) if ColumnWriter is sent and if it doesn't satisfy the interface. However, this is easier to debug.