Skip to content

Commit 3c19574

Browse files
authored
Support of wide dates/interval/decimal/dynumber in ToPg (#3511)
1 parent 815eb45 commit 3c19574

File tree

29 files changed

+322
-148
lines changed

29 files changed

+322
-148
lines changed

ydb/library/yql/core/type_ann/type_ann_pg.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -449,6 +449,8 @@ const TTypeAnnotationNode* ToPgImpl(TPositionHandle pos, const TTypeAnnotationNo
449449
pgType = "int8";
450450
break;
451451
case NUdf::EDataSlot::Uint64:
452+
case NUdf::EDataSlot::Decimal:
453+
case NUdf::EDataSlot::DyNumber:
452454
pgType = "numeric";
453455
break;
454456
case NUdf::EDataSlot::Float:
@@ -468,13 +470,17 @@ const TTypeAnnotationNode* ToPgImpl(TPositionHandle pos, const TTypeAnnotationNo
468470
pgType = "text";
469471
break;
470472
case NUdf::EDataSlot::Date:
473+
case NUdf::EDataSlot::Date32:
471474
pgType = "date";
472475
break;
473476
case NUdf::EDataSlot::Datetime:
477+
case NUdf::EDataSlot::Datetime64:
474478
case NUdf::EDataSlot::Timestamp:
479+
case NUdf::EDataSlot::Timestamp64:
475480
pgType = "timestamp";
476481
break;
477482
case NUdf::EDataSlot::Interval:
483+
case NUdf::EDataSlot::Interval64:
478484
pgType = "interval";
479485
break;
480486
case NUdf::EDataSlot::Json:

ydb/library/yql/parser/pg_wrapper/arrow.cpp

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
#include <ydb/library/yql/parser/pg_wrapper/interface/utils.h>
66
#include <ydb/library/yql/minikql/mkql_node_cast.h>
77
#include <ydb/library/yql/minikql/arrow/arrow_util.h>
8+
#include <ydb/library/dynumber/dynumber.h>
9+
#include <ydb/library/yql/public/decimal/yql_decimal.h>
810
#include <util/generic/singleton.h>
911

1012
#include <arrow/compute/cast.h>
@@ -15,6 +17,7 @@
1517
extern "C" {
1618
#include "utils/date.h"
1719
#include "utils/timestamp.h"
20+
#include "utils/fmgrprotos.h"
1821
}
1922

2023
namespace NYql {
@@ -171,6 +174,20 @@ Numeric Uint64ToPgNumeric(ui64 value) {
171174
return ret2;
172175
}
173176

177+
Numeric DecimalToPgNumeric(const NUdf::TUnboxedValuePod& value, ui8 precision, ui8 scale) {
178+
const auto str = NYql::NDecimal::ToString(value.GetInt128(), precision, scale);
179+
Y_ENSURE(str);
180+
return (Numeric)DirectFunctionCall3Coll(numeric_in, DEFAULT_COLLATION_OID,
181+
PointerGetDatum(str), Int32GetDatum(0), Int32GetDatum(-1));
182+
}
183+
184+
Numeric DyNumberToPgNumeric(const NUdf::TUnboxedValuePod& value) {
185+
auto str = NKikimr::NDyNumber::DyNumberToString(value.AsStringRef());
186+
Y_ENSURE(str);
187+
return (Numeric)DirectFunctionCall3Coll(numeric_in, DEFAULT_COLLATION_OID,
188+
PointerGetDatum(str->c_str()), Int32GetDatum(0), Int32GetDatum(-1));
189+
}
190+
174191
Numeric PgFloatToNumeric(double item, ui64 scale, int digits) {
175192
double intPart, fracPart;
176193
bool error;

ydb/library/yql/parser/pg_wrapper/arrow_impl.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ extern "C" {
1111
namespace NYql {
1212

1313
Numeric Uint64ToPgNumeric(ui64 value);
14+
Numeric DecimalToPgNumeric(const NUdf::TUnboxedValuePod& value, ui8 precision, ui8 scale);
15+
Numeric DyNumberToPgNumeric(const NUdf::TUnboxedValuePod& value);
1416
Numeric PgFloatToNumeric(double item, ui64 scale, int digits);
1517
Numeric PgDecimal128ToNumeric(arrow::Decimal128 val, int32_t precision, int32_t scale, Numeric high_bits_mul);
1618
TColumnConverter BuildPgColumnConverter(const std::shared_ptr<arrow::DataType>& originalType, NKikimr::NMiniKQL::TPgType* targetType);

ydb/library/yql/parser/pg_wrapper/comp_factory.cpp

Lines changed: 100 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1908,15 +1908,15 @@ class TPgCast : public TMutableComputationNode<TPgCast> {
19081908
bool ConvertLength = false;
19091909
};
19101910

1911-
const i32 PgDateShift = 10957;
1912-
const i64 PgTimestampShift = 946684800000000ll;
1911+
const i32 PgDateShift = UNIX_EPOCH_JDATE - POSTGRES_EPOCH_JDATE;
1912+
const i64 PgTimestampShift = USECS_PER_DAY * (UNIX_EPOCH_JDATE - POSTGRES_EPOCH_JDATE);
19131913

1914-
inline i32 Date2Pg(ui16 value) {
1915-
return i32(value) - PgDateShift;
1914+
inline i32 Date2Pg(i32 value) {
1915+
return value + PgDateShift;
19161916
}
19171917

1918-
inline i64 Timestamp2Pg(ui64 value) {
1919-
return i64(value) - PgTimestampShift;
1918+
inline i64 Timestamp2Pg(i64 value) {
1919+
return value + PgTimestampShift;
19201920
}
19211921

19221922
inline Interval* Interval2Pg(i64 value) {
@@ -1957,6 +1957,8 @@ NUdf::TUnboxedValuePod ConvertToPgValue(NUdf::TUnboxedValuePod value, TMaybe<NUd
19571957
return ScalarDatumToPod(Int64GetDatum(value.Get<i64>()));
19581958
case NUdf::EDataSlot::Uint64:
19591959
return PointerDatumToPod(NumericGetDatum(Uint64ToPgNumeric(value.Get<ui64>())));
1960+
case NUdf::EDataSlot::DyNumber:
1961+
return PointerDatumToPod(NumericGetDatum(DyNumberToPgNumeric(value)));
19601962
case NUdf::EDataSlot::Float:
19611963
return ScalarDatumToPod(Float4GetDatum(value.Get<float>()));
19621964
case NUdf::EDataSlot::Double:
@@ -1979,10 +1981,23 @@ NUdf::TUnboxedValuePod ConvertToPgValue(NUdf::TUnboxedValuePod value, TMaybe<NUd
19791981
auto res = Timestamp2Pg(value.Get<ui64>());
19801982
return ScalarDatumToPod(res);
19811983
}
1982-
case NUdf::EDataSlot::Interval: {
1984+
case NUdf::EDataSlot::Interval:
1985+
case NUdf::EDataSlot::Interval64: {
19831986
auto res = Interval2Pg(value.Get<i64>());
19841987
return PointerDatumToPod(PointerGetDatum(res));
19851988
}
1989+
case NUdf::EDataSlot::Date32: {
1990+
auto res = Date2Pg(value.Get<i32>());
1991+
return ScalarDatumToPod(res);
1992+
}
1993+
case NUdf::EDataSlot::Datetime64: {
1994+
auto res = Timestamp2Pg(value.Get<i64>() * 1000000ull);
1995+
return ScalarDatumToPod(res);
1996+
}
1997+
case NUdf::EDataSlot::Timestamp64: {
1998+
auto res = Timestamp2Pg(value.Get<i64>());
1999+
return ScalarDatumToPod(res);
2000+
}
19862001
case NUdf::EDataSlot::Json: {
19872002
auto input = MakeCString(value.AsStringRef());
19882003
auto res = DirectFunctionCall1Coll(json_in, DEFAULT_COLLATION_OID, PointerGetDatum(input));
@@ -2169,9 +2184,10 @@ template <NUdf::EDataSlot Slot>
21692184
class TToPg : public TMutableComputationNode<TToPg<Slot>> {
21702185
typedef TMutableComputationNode<TToPg<Slot>> TBaseComputation;
21712186
public:
2172-
TToPg(TComputationMutables& mutables, IComputationNode* arg)
2187+
TToPg(TComputationMutables& mutables, IComputationNode* arg, TDataType* argType)
21732188
: TBaseComputation(mutables)
21742189
, Arg(arg)
2190+
, ArgType(argType)
21752191
{
21762192
}
21772193

@@ -2181,7 +2197,13 @@ class TToPg : public TMutableComputationNode<TToPg<Slot>> {
21812197
return value.Release();
21822198
}
21832199

2184-
return ConvertToPgValue<Slot>(value);
2200+
if constexpr (Slot == NUdf::EDataSlot::Decimal) {
2201+
auto decimalType = static_cast<TDataDecimalType*>(ArgType);
2202+
return PointerDatumToPod(NumericGetDatum(DecimalToPgNumeric(value,
2203+
decimalType->GetParams().first, decimalType->GetParams().second)));
2204+
} else {
2205+
return ConvertToPgValue<Slot>(value);
2206+
}
21852207
}
21862208

21872209
private:
@@ -2190,6 +2212,7 @@ class TToPg : public TMutableComputationNode<TToPg<Slot>> {
21902212
}
21912213

21922214
IComputationNode* const Arg;
2215+
TDataType* ArgType;
21932216
};
21942217

21952218
class TPgArray : public TMutableComputationNode<TPgArray> {
@@ -2781,7 +2804,32 @@ struct TToPgExec {
27812804
}
27822805
break;
27832806
}
2784-
case NUdf::EDataSlot::Interval: {
2807+
case NUdf::EDataSlot::Date32: {
2808+
auto inputPtr = array.GetValues<i32>(1);
2809+
auto outputPtr = res->array()->GetMutableValues<ui64>(1);
2810+
for (size_t i = 0; i < length; ++i) {
2811+
outputPtr[i] = Int32GetDatum(Date2Pg(inputPtr[i]));
2812+
}
2813+
break;
2814+
}
2815+
case NUdf::EDataSlot::Datetime64: {
2816+
auto inputPtr = array.GetValues<i64>(1);
2817+
auto outputPtr = res->array()->GetMutableValues<ui64>(1);
2818+
for (size_t i = 0; i < length; ++i) {
2819+
outputPtr[i] = Int64GetDatum(Timestamp2Pg(inputPtr[i] * 1000000ull));
2820+
}
2821+
break;
2822+
}
2823+
case NUdf::EDataSlot::Timestamp64: {
2824+
auto inputPtr = array.GetValues<i64>(1);
2825+
auto outputPtr = res->array()->GetMutableValues<ui64>(1);
2826+
for (size_t i = 0; i < length; ++i) {
2827+
outputPtr[i] = Int64GetDatum(Timestamp2Pg(inputPtr[i]));
2828+
}
2829+
break;
2830+
}
2831+
case NUdf::EDataSlot::Interval:
2832+
case NUdf::EDataSlot::Interval64: {
27852833
NUdf::TFixedSizeBlockReader<i64, true> reader;
27862834
NUdf::TStringArrayBuilder<arrow::BinaryType, true> builder(NKikimr::NMiniKQL::TTypeInfoHelper(), arrow::binary(), *ctx->memory_pool(), length);
27872835
for (size_t i = 0; i < length; ++i) {
@@ -2881,10 +2929,14 @@ std::shared_ptr<arrow::compute::ScalarKernel> MakeToPgKernel(TType* inputType, T
28812929
case NUdf::EDataSlot::Date:
28822930
case NUdf::EDataSlot::Datetime:
28832931
case NUdf::EDataSlot::Timestamp:
2932+
case NUdf::EDataSlot::Date32:
2933+
case NUdf::EDataSlot::Datetime64:
2934+
case NUdf::EDataSlot::Timestamp64:
28842935
break;
28852936
case NUdf::EDataSlot::String:
28862937
case NUdf::EDataSlot::Utf8:
28872938
case NUdf::EDataSlot::Interval:
2939+
case NUdf::EDataSlot::Interval64:
28882940
case NUdf::EDataSlot::Uint64:
28892941
case NUdf::EDataSlot::Yson:
28902942
case NUdf::EDataSlot::Json:
@@ -3117,56 +3169,69 @@ TComputationNodeFactory GetPgFactory() {
31173169
argType = AS_TYPE(TOptionalType, argType)->GetItemType();
31183170
}
31193171

3120-
auto sourceDataSlot = AS_TYPE(TDataType, argType)->GetDataSlot();
3172+
auto dataType = AS_TYPE(TDataType, argType);
3173+
auto sourceDataSlot = dataType->GetDataSlot();
31213174
switch (*sourceDataSlot) {
31223175
case NUdf::EDataSlot::Bool:
3123-
return new TToPg<NUdf::EDataSlot::Bool>(ctx.Mutables, arg);
3176+
return new TToPg<NUdf::EDataSlot::Bool>(ctx.Mutables, arg, dataType);
31243177
case NUdf::EDataSlot::Int8:
3125-
return new TToPg<NUdf::EDataSlot::Int8>(ctx.Mutables, arg);
3178+
return new TToPg<NUdf::EDataSlot::Int8>(ctx.Mutables, arg, dataType);
31263179
case NUdf::EDataSlot::Uint8:
3127-
return new TToPg<NUdf::EDataSlot::Uint8>(ctx.Mutables, arg);
3180+
return new TToPg<NUdf::EDataSlot::Uint8>(ctx.Mutables, arg, dataType);
31283181
case NUdf::EDataSlot::Int16:
3129-
return new TToPg<NUdf::EDataSlot::Int16>(ctx.Mutables, arg);
3182+
return new TToPg<NUdf::EDataSlot::Int16>(ctx.Mutables, arg, dataType);
31303183
case NUdf::EDataSlot::Uint16:
3131-
return new TToPg<NUdf::EDataSlot::Uint16>(ctx.Mutables, arg);
3184+
return new TToPg<NUdf::EDataSlot::Uint16>(ctx.Mutables, arg, dataType);
31323185
case NUdf::EDataSlot::Int32:
3133-
return new TToPg<NUdf::EDataSlot::Int32>(ctx.Mutables, arg);
3186+
return new TToPg<NUdf::EDataSlot::Int32>(ctx.Mutables, arg, dataType);
31343187
case NUdf::EDataSlot::Uint32:
3135-
return new TToPg<NUdf::EDataSlot::Uint32>(ctx.Mutables, arg);
3188+
return new TToPg<NUdf::EDataSlot::Uint32>(ctx.Mutables, arg, dataType);
31363189
case NUdf::EDataSlot::Int64:
3137-
return new TToPg<NUdf::EDataSlot::Int64>(ctx.Mutables, arg);
3190+
return new TToPg<NUdf::EDataSlot::Int64>(ctx.Mutables, arg, dataType);
31383191
case NUdf::EDataSlot::Uint64:
3139-
return new TToPg<NUdf::EDataSlot::Uint64>(ctx.Mutables, arg);
3192+
return new TToPg<NUdf::EDataSlot::Uint64>(ctx.Mutables, arg, dataType);
31403193
case NUdf::EDataSlot::Float:
3141-
return new TToPg<NUdf::EDataSlot::Float>(ctx.Mutables, arg);
3194+
return new TToPg<NUdf::EDataSlot::Float>(ctx.Mutables, arg, dataType);
31423195
case NUdf::EDataSlot::Double:
3143-
return new TToPg<NUdf::EDataSlot::Double>(ctx.Mutables, arg);
3196+
return new TToPg<NUdf::EDataSlot::Double>(ctx.Mutables, arg, dataType);
31443197
case NUdf::EDataSlot::Utf8:
3145-
return new TToPg<NUdf::EDataSlot::Utf8>(ctx.Mutables, arg);
3198+
return new TToPg<NUdf::EDataSlot::Utf8>(ctx.Mutables, arg, dataType);
31463199
case NUdf::EDataSlot::String:
3147-
return new TToPg<NUdf::EDataSlot::String>(ctx.Mutables, arg);
3200+
return new TToPg<NUdf::EDataSlot::String>(ctx.Mutables, arg, dataType);
31483201
case NUdf::EDataSlot::Date:
3149-
return new TToPg<NUdf::EDataSlot::Date>(ctx.Mutables, arg);
3202+
return new TToPg<NUdf::EDataSlot::Date>(ctx.Mutables, arg, dataType);
31503203
case NUdf::EDataSlot::Datetime:
3151-
return new TToPg<NUdf::EDataSlot::Datetime>(ctx.Mutables, arg);
3204+
return new TToPg<NUdf::EDataSlot::Datetime>(ctx.Mutables, arg, dataType);
31523205
case NUdf::EDataSlot::Timestamp:
3153-
return new TToPg<NUdf::EDataSlot::Timestamp>(ctx.Mutables, arg);
3206+
return new TToPg<NUdf::EDataSlot::Timestamp>(ctx.Mutables, arg, dataType);
31543207
case NUdf::EDataSlot::Interval:
3155-
return new TToPg<NUdf::EDataSlot::Interval>(ctx.Mutables, arg);
3208+
return new TToPg<NUdf::EDataSlot::Interval>(ctx.Mutables, arg, dataType);
31563209
case NUdf::EDataSlot::TzDate:
3157-
return new TToPg<NUdf::EDataSlot::TzDate>(ctx.Mutables, arg);
3210+
return new TToPg<NUdf::EDataSlot::TzDate>(ctx.Mutables, arg, dataType);
31583211
case NUdf::EDataSlot::TzDatetime:
3159-
return new TToPg<NUdf::EDataSlot::TzDatetime>(ctx.Mutables, arg);
3212+
return new TToPg<NUdf::EDataSlot::TzDatetime>(ctx.Mutables, arg, dataType);
31603213
case NUdf::EDataSlot::TzTimestamp:
3161-
return new TToPg<NUdf::EDataSlot::TzTimestamp>(ctx.Mutables, arg);
3214+
return new TToPg<NUdf::EDataSlot::TzTimestamp>(ctx.Mutables, arg, dataType);
3215+
case NUdf::EDataSlot::Date32:
3216+
return new TToPg<NUdf::EDataSlot::Date32>(ctx.Mutables, arg, dataType);
3217+
case NUdf::EDataSlot::Datetime64:
3218+
return new TToPg<NUdf::EDataSlot::Datetime64>(ctx.Mutables, arg, dataType);
3219+
case NUdf::EDataSlot::Timestamp64:
3220+
return new TToPg<NUdf::EDataSlot::Timestamp64>(ctx.Mutables, arg, dataType);
3221+
case NUdf::EDataSlot::Interval64:
3222+
return new TToPg<NUdf::EDataSlot::Interval64>(ctx.Mutables, arg, dataType);
31623223
case NUdf::EDataSlot::Uuid:
3163-
return new TToPg<NUdf::EDataSlot::Uuid>(ctx.Mutables, arg);
3224+
return new TToPg<NUdf::EDataSlot::Uuid>(ctx.Mutables, arg, dataType);
31643225
case NUdf::EDataSlot::Yson:
3165-
return new TToPg<NUdf::EDataSlot::Yson>(ctx.Mutables, arg);
3226+
return new TToPg<NUdf::EDataSlot::Yson>(ctx.Mutables, arg, dataType);
31663227
case NUdf::EDataSlot::Json:
3167-
return new TToPg<NUdf::EDataSlot::Json>(ctx.Mutables, arg);
3228+
return new TToPg<NUdf::EDataSlot::Json>(ctx.Mutables, arg, dataType);
31683229
case NUdf::EDataSlot::JsonDocument:
3169-
return new TToPg<NUdf::EDataSlot::JsonDocument>(ctx.Mutables, arg);
3230+
return new TToPg<NUdf::EDataSlot::JsonDocument>(ctx.Mutables, arg, dataType);
3231+
case NUdf::EDataSlot::Decimal:
3232+
return new TToPg<NUdf::EDataSlot::Decimal>(ctx.Mutables, arg, dataType);
3233+
case NUdf::EDataSlot::DyNumber:
3234+
return new TToPg<NUdf::EDataSlot::DyNumber>(ctx.Mutables, arg, dataType);
31703235
default:
31713236
ythrow yexception() << "Unsupported type: " << NUdf::GetDataTypeInfo(*sourceDataSlot).Name;
31723237
}

ydb/library/yql/parser/pg_wrapper/ya.make

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,9 @@ PEERDIR(
7979
ydb/library/yql/public/issue
8080
ydb/library/yql/public/udf
8181
ydb/library/yql/utils
82+
ydb/library/yql/public/decimal
8283
ydb/library/binary_json
84+
ydb/library/dynumber
8385
ydb/library/uuid
8486

8587
contrib/libs/icu

ydb/library/yql/tests/sql/dq_file/part11/canondata/result.json

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -535,23 +535,23 @@
535535
"test.test[blocks-filter_direct_col--Results]": [],
536536
"test.test[blocks-pg_to_dates--Analyze]": [
537537
{
538-
"checksum": "b1cbcf335f36d3b6d3235831623e96da",
539-
"size": 3724,
540-
"uri": "https://{canondata_backend}/1937429/4d28be10a189df952d19e45ac95af76010238866/resource.tar.gz#test.test_blocks-pg_to_dates--Analyze_/plan.txt"
538+
"checksum": "2a21c8668a5f5f9b4304777c6aa3c3ca",
539+
"size": 3799,
540+
"uri": "https://{canondata_backend}/1775059/79419adaad52cfab3aa7900a1f1cb4a6b393feb3/resource.tar.gz#test.test_blocks-pg_to_dates--Analyze_/plan.txt"
541541
}
542542
],
543543
"test.test[blocks-pg_to_dates--Debug]": [
544544
{
545-
"checksum": "bc8d4bb89d0111c2f476394873f813d8",
546-
"size": 1557,
547-
"uri": "https://{canondata_backend}/1937429/4d28be10a189df952d19e45ac95af76010238866/resource.tar.gz#test.test_blocks-pg_to_dates--Debug_/opt.yql_patched"
545+
"checksum": "d2a83a82851f3aa631091c7803038c11",
546+
"size": 1864,
547+
"uri": "https://{canondata_backend}/1775059/79419adaad52cfab3aa7900a1f1cb4a6b393feb3/resource.tar.gz#test.test_blocks-pg_to_dates--Debug_/opt.yql_patched"
548548
}
549549
],
550550
"test.test[blocks-pg_to_dates--Plan]": [
551551
{
552-
"checksum": "b1cbcf335f36d3b6d3235831623e96da",
553-
"size": 3724,
554-
"uri": "https://{canondata_backend}/1937429/4d28be10a189df952d19e45ac95af76010238866/resource.tar.gz#test.test_blocks-pg_to_dates--Plan_/plan.txt"
552+
"checksum": "2a21c8668a5f5f9b4304777c6aa3c3ca",
553+
"size": 3799,
554+
"uri": "https://{canondata_backend}/1775059/79419adaad52cfab3aa7900a1f1cb4a6b393feb3/resource.tar.gz#test.test_blocks-pg_to_dates--Plan_/plan.txt"
555555
}
556556
],
557557
"test.test[blocks-pg_to_dates--Results]": [],

ydb/library/yql/tests/sql/dq_file/part14/canondata/result.json

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2193,6 +2193,28 @@
21932193
}
21942194
],
21952195
"test.test[pg-nullif-default.txt-Results]": [],
2196+
"test.test[pg-numeric_to_pg-default.txt-Analyze]": [
2197+
{
2198+
"checksum": "b4dd508a329723c74293d80f0278c705",
2199+
"size": 505,
2200+
"uri": "https://{canondata_backend}/1847551/c04b6845f7d6b8061d0f3bb18348cc2396fe3c4b/resource.tar.gz#test.test_pg-numeric_to_pg-default.txt-Analyze_/plan.txt"
2201+
}
2202+
],
2203+
"test.test[pg-numeric_to_pg-default.txt-Debug]": [
2204+
{
2205+
"checksum": "9b4c62254b0fdbd9ad13924e5f3f4ea7",
2206+
"size": 544,
2207+
"uri": "https://{canondata_backend}/1847551/c04b6845f7d6b8061d0f3bb18348cc2396fe3c4b/resource.tar.gz#test.test_pg-numeric_to_pg-default.txt-Debug_/opt.yql_patched"
2208+
}
2209+
],
2210+
"test.test[pg-numeric_to_pg-default.txt-Plan]": [
2211+
{
2212+
"checksum": "b4dd508a329723c74293d80f0278c705",
2213+
"size": 505,
2214+
"uri": "https://{canondata_backend}/1847551/c04b6845f7d6b8061d0f3bb18348cc2396fe3c4b/resource.tar.gz#test.test_pg-numeric_to_pg-default.txt-Plan_/plan.txt"
2215+
}
2216+
],
2217+
"test.test[pg-numeric_to_pg-default.txt-Results]": [],
21962218
"test.test[pg-range_function_multi-default.txt-Analyze]": [
21972219
{
21982220
"checksum": "b2a2eb5d6b0a138ee924c128fc7738ef",

ydb/library/yql/tests/sql/dq_file/part18/canondata/result.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1848,9 +1848,9 @@
18481848
],
18491849
"test.test[pg-dates_to_pg-default.txt-Debug]": [
18501850
{
1851-
"checksum": "622dfc6e57dd85854252f5a29bf8d1bf",
1852-
"size": 559,
1853-
"uri": "https://{canondata_backend}/1777230/92358f07848628e912a541ea35cf562f3ca2e131/resource.tar.gz#test.test_pg-dates_to_pg-default.txt-Debug_/opt.yql_patched"
1851+
"checksum": "578a7fb60483ffab4f7538c4393df173",
1852+
"size": 931,
1853+
"uri": "https://{canondata_backend}/995452/c7d73273c2fd9304580eab1dcf56a57ae2b37fa7/resource.tar.gz#test.test_pg-dates_to_pg-default.txt-Debug_/opt.yql_patched"
18541854
}
18551855
],
18561856
"test.test[pg-dates_to_pg-default.txt-Plan]": [

0 commit comments

Comments
 (0)