Repository: shuttle-hq/synth (language: rust)

Issue:
Implemented a converter for timestamptz
**Describe the bug**
Running `synth import tpch ...` against a database using a timestamp with timezone produces the following: 

```
thread 'main' panicked at 'not implemented: We haven't implemented a converter for timestamptz', synth/src/cli/postgres.rs:507:18
stack backtrace:
   0: _rust_begin_unwind
   1: core::panicking::panic_fmt
   2: synth::cli::postgres::<impl core::convert::From<synth::cli::postgres::ColumnInfo> for synth_core::schema::content::object::FieldContent>::from
   3: <synth::cli::postgres::Collection as core::convert::From<alloc::vec::Vec<synth::cli::postgres::ColumnInfo>>>::from
   4: <synth::cli::postgres::PostgresImportStrategy as synth::cli::import::ImportStrategy>::import
   5: synth::cli::Cli::import
   6: synth::cli::with_telemetry
   7: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
   8: std::thread::local::LocalKey<T>::with
   9: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
  10: async_io::driver::block_on
  11: std::thread::local::LocalKey<T>::with
  12: async_std::task::builder::Builder::blocking
  13: synth::main
```

+1 for this being implemented.

In the meantime, is there a workaround where I can force Synth to treat all timestamptz as timestamp?


Discussion / hints:
Oops. That is definitely something we need to add to our import tests. I suppose the fix should be easy enough.
I would add that we need a friendlier message (a.k.a not a panic) if we don't have a converter for a given type.

I'll pick this up soon enough. It's a good opportunity to create an exhaustive list of PG types (currently we only support a subset).

Fix patch:
diff --git a/synth/src/datasource/postgres_datasource.rs b/synth/src/datasource/postgres_datasource.rs
index cce0cf06..8467e1fe 100644
--- a/synth/src/datasource/postgres_datasource.rs
+++ b/synth/src/datasource/postgres_datasource.rs
@@ -215,7 +215,7 @@ impl RelationalDataSource for PostgresDataSource {
                 high: 1.0,
                 step: 0.1, //todo
             }))),
-            "timestampz" => Content::String(StringContent::DateTime(DateTimeContent {
+            "timestamptz" => Content::String(StringContent::DateTime(DateTimeContent {
                 format: "".to_string(), // todo
                 type_: ChronoValueType::DateTime,
                 begin: None,
@@ -333,4 +333,4 @@ fn try_match_value(row: &PgRow, column: &PgColumn) -> Result<Value> {
     };
 
     Ok(value)
-}
\ No newline at end of file
+}


Test patch: