| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
|---|---|
| To: | Jim Nasby <Jim(dot)Nasby(at)BlueTreble(dot)com> |
| Cc: | pgsql-general <pgsql-general(at)postgresql(dot)org> |
| Subject: | Re: Problems with casting |
| Date: | 2015-04-07 21:17:48 |
| Message-ID: | 12459.1428441468@sss.pgh.pa.us |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
Jim Nasby <Jim(dot)Nasby(at)BlueTreble(dot)com> writes:
> I've created a variant data type [1]. It seems to work pretty well,
> except for some issues with casting.
> Since the idea of the type is to allow storing any other data type, it
> creates casts to and from all other types. At first these were all
> marked as ASSIGNMENT, but that made using variant with functions quite
> cumbersome. With functions that accepted a variant, you still had to
> explicitly cast it:
> SELECT variant_function( some_field::variant.variant ) FROM some_table;
> I was reluctant to make the casts to variant IMPLICIT, but it seems like
> it actually works rather well... except for arrays:
I suspect that that's only the tip of the iceberg. Remember the mess
we had with implicit casts to text? And those only existed for a dozen
or so types, not for everything. Every function or operator you define
for "variant" is going to be a loaded gun just waiting to shoot your foot
off, if you make all those casts implicit.
regards, tom lane
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Jim Nasby | 2015-04-07 21:27:46 | Re: Problems with casting |
| Previous Message | Jim Nasby | 2015-04-07 21:04:20 | Problems with casting |