PostgreSQL Type Support
ScryData supports a wide range of PostgreSQL data types for shadow database replication and validation. This reference documents which types are fully supported, which have partial support with known limitations, and which are not yet supported along with recommended workarounds.
Type support applies to both scry-backfill (initial data synchronization) and scry-proxy (ongoing query validation). When replicating data or comparing query results, ScryData preserves type fidelity to ensure accurate validation.
Fully Supported Types
These PostgreSQL data types are fully supported with complete type fidelity during replication and validation.
| Category | Types |
|---|---|
| Numeric | smallint, integer, bigint, numeric, real, double precision, serial, bigserial |
| Text | text, varchar(n), char(n), name |
| Binary | bytea |
| Boolean | boolean |
| Date/Time | timestamp, timestamptz, date, time, timetz, interval |
| JSON | json, jsonb |
| UUID | uuid |
| Network | inet, cidr, macaddr |
| Bit String | bit, bit varying |
| Arrays | All array types of supported base types |
| Enum | Custom enum types |
Partial Support
These types are supported but may have limitations. Review the notes and apply workarounds as needed.
| Type | Notes | Workaround |
|---|---|---|
Geometric types (point, line, box, etc.) |
Supported but verify precision | Test with your specific precision requirements |
| Range types | May require explicit casting | Use explicit casts in queries when comparing |
| Composite types (custom record types) | Complex nested structures may have limitations | Flatten to individual columns |
| Domain types | Custom domain constraints are preserved | Cast to underlying type |
Tip: When working with partially supported types, we recommend testing your specific use case in a non-production environment first to verify behavior meets your requirements.
Not Yet Supported
These types are not currently supported for replication. Use the recommended alternatives.
| Type | Alternative |
|---|---|
| PostGIS geometry | Use ST_AsText() or ST_AsBinary() to convert to text or binary representation in views |
| Custom extensions | Cast to standard types in views for replication |
Important: If your schema contains unsupported types, you can create views that cast these columns to supported types for replication purposes. The original tables remain unchanged.
Request Type Support
Need support for a data type not listed here? We actively expand our type coverage based on user needs.
To request support for a new PostgreSQL data type:
- Open an issue on our GitHub repository
- Include the PostgreSQL type name and version
- Describe your use case and any specific requirements
We prioritize type support requests based on community demand and technical feasibility.
Ready to Get Started?
Get early access and start creating shadow databases for migration testing.
Request Early Access