diff --git a/src/Functions/PolygonsIntersection.cpp b/src/Functions/PolygonsIntersection.cpp index 2d5d69d924b..086898bebcc 100644 --- a/src/Functions/PolygonsIntersection.cpp +++ b/src/Functions/PolygonsIntersection.cpp @@ -15,6 +15,7 @@ #include #include +#include namespace DB { @@ -69,23 +70,17 @@ public: void executeImpl(Block & block, const ColumnNumbers & arguments, size_t result, size_t input_rows_count) override { - // auto get_parser = [&block, &arguments] (size_t i) { - // const ColumnWithTypeAndName polygon = block.getByPosition(arguments[i]); - // return makeGeometryFromColumnParser(polygon); - // }; + auto get_parser = [&block, &arguments] (size_t i) { + const ColumnWithTypeAndName polygon = block.getByPosition(arguments[i]); + return makeGeometryFromColumnParser(polygon); + }; - LOG_FATAL(&Poco::Logger::get("PI"), "KEK"); - - auto first_parser = makeGeometryFromColumnParser(block.getByPosition(arguments[0])); + auto first_parser = get_parser(0); auto first_container = createContainer(first_parser); - LOG_FATAL(&Poco::Logger::get("PI"), "LOL"); - - auto second_parser = makeGeometryFromColumnParser(block.getByPosition(arguments[1])); + auto second_parser = get_parser(1); auto second_container = createContainer(second_parser); - LOG_FATAL(&Poco::Logger::get("PI"), "MEM"); - Float64MultiPolygonSerializer serializer; for (size_t i = 0; i < input_rows_count; i++) @@ -99,14 +94,13 @@ public: boost::get(second_container), boost::get(intersection)); + boost::get(intersection).erase( + boost::get(intersection).begin()); + serializer.add(intersection); } - LOG_FATAL(&Poco::Logger::get("PI"), "NE MEM"); - block.getByPosition(result).column = std::move(serializer.finalize()); - - LOG_FATAL(&Poco::Logger::get("PI"), "THE END"); } bool useDefaultImplementationForConstants() const override