čt 17. 12. 2020 v 22:47 odesílatel Tom Lane <t...@sss.pgh.pa.us> napsal:

> Chapman Flack <c...@anastigmatix.net> writes:
> > That's likely to be what a programmer intends when writing
> > (variable explicitly typed integer) := js['n'] and
> > (variable explicitly types varchar) := js['v']
>
> I think that what we want, if we're to support that sort of thing,
> is that the js[] constructs produce jsonb by definition, and then an
> assignment-level cast is applied to get from jsonb to integer or text.
> I see we already have most of the necessary casts, but they're currently
> marked explicit-only.  Downgrading them to assignment level might be
> okay though.  If we don't want to do that, it means we have to write
>         integervar := js['n']::integer
> which is a bit more wordy but also unmistakable as to intent.  (I think
> the "intent" angle might be the reason we insisted on these things
> being explicit to start with.)
>
> It's somewhat interesting to speculate about whether we could optimize
> the combination of the subscripting function and the cast function.
> But (a) that's an optimization, not something that should be part of
> the user-visible semantics, and (b) it should not be part of the initial
> feature.  I think a large part of the reason this patch is still not
> done after four years is that it's been biting off more than it could
> chew all along.  Let's try to get it to completion and then optimize
> later.
>

sure

Pavel


> As far as "treat as" is concerned, we already have a spelling for
> that, it's called a cast.
>
>                         regards, tom lane
>
>
>

Reply via email to