You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#2557
This introduces a new function type which mirrors the C-language variadic function implementation. These functions differ from standard PostgreSQL variadic functions, as normally variadic functions require that all variadic parameters have the same type. This limitation is not true for C-language functions. This was required to implement a valid concat function, as we were previously relying on GMS' built-in version, which is not correct for Postgres. I also corrected some tests that enforced the incorrect behavior.
This also fixes a bug in JSON parsing. It was already known that Go's JSON library converts escaped characters into their original forms, however we were attempting to preemptively handle the incorrect conversion. This has been changed, as we can cleanup the output since the unescaped forms are invalid JSON anyway, which fixes the behavior and makes our output more accurate.
#2386
In GMS/MySQL, we often can't determine the type of a bound parameter during the initial parse as the return type is subject to the input (binding a float32 vs int32 may result in an actual return type difference). This is not true for Postgres as type resolution is very well defined. This creates a mismatch where we defer the type resolution, but the client expects to be told what type the bindings should be.
We should have a more general solution that covers bindings at the GMS layer for how MySQL and Postgres handle type resolution differently, but the scope of that project seemed too large for now, so this only implements a local fix specifically for the issue linked above.
2501: allow running multiple statements in function