mirror of https://github.com/jackc/pgx.git
It should pass a FlatArray[T] to the next step instead of a anySliceArrayReflect. By using a anySliceArrayReflect, an encode of []github.com/google/uuid.UUID followed by []string into a PostgreSQL uuid[] would crash. This was caused by a EncodePlan cache collision where the second encoding used part of the cached plan of the first. In proper usage a cache collision shouldn't be able to occur. If this assertion proves incorrect it will be necessary to add an optional interface to ScanPlan and EncodePlan that marks the plan as ineligable for caching. But I have been unable to construct a failing case, and given that ScanPlans have been cached for quite some time now without incident I do not think it is possible. This issue only occurred due to the bug in *wrapSliceEncodePlan[T].Encode. https://github.com/jackc/pgx/issues/1502 |
||
---|---|---|
.. | ||
zeronull | ||
array.go | ||
array_codec.go | ||
array_codec_test.go | ||
array_test.go | ||
bits.go | ||
bits_test.go | ||
bool.go | ||
bool_test.go | ||
box.go | ||
box_test.go | ||
builtin_wrappers.go | ||
bytea.go | ||
bytea_test.go | ||
circle.go | ||
circle_test.go | ||
composite.go | ||
composite_test.go | ||
convert.go | ||
date.go | ||
date_test.go | ||
doc.go | ||
enum_codec.go | ||
enum_codec_test.go | ||
example_child_records_test.go | ||
example_custom_type_test.go | ||
example_json_test.go | ||
float4.go | ||
float4_test.go | ||
float8.go | ||
float8_test.go | ||
hstore.go | ||
hstore_test.go | ||
inet.go | ||
inet_test.go | ||
int.go | ||
int.go.erb | ||
int_test.go | ||
int_test.go.erb | ||
integration_benchmark_test.go | ||
integration_benchmark_test.go.erb | ||
integration_benchmark_test_gen.sh | ||
interval.go | ||
interval_test.go | ||
json.go | ||
json_test.go | ||
jsonb.go | ||
jsonb_test.go | ||
line.go | ||
line_test.go | ||
lseg.go | ||
lseg_test.go | ||
macaddr.go | ||
macaddr_test.go | ||
multirange.go | ||
multirange_test.go | ||
numeric.go | ||
numeric_test.go | ||
path.go | ||
path_test.go | ||
pgtype.go | ||
pgtype_test.go | ||
point.go | ||
point_test.go | ||
polygon.go | ||
polygon_test.go | ||
qchar.go | ||
qchar_test.go | ||
range.go | ||
range_codec.go | ||
range_codec_test.go | ||
range_test.go | ||
record_codec.go | ||
record_codec_test.go | ||
register_default_pg_types.go | ||
register_default_pg_types_disabled.go | ||
text.go | ||
text_format_only_codec.go | ||
text_test.go | ||
tid.go | ||
tid_test.go | ||
time.go | ||
time_test.go | ||
timestamp.go | ||
timestamp_test.go | ||
timestamptz.go | ||
timestamptz_test.go | ||
uint32.go | ||
uint32_test.go | ||
uuid.go | ||
uuid_test.go |