File tree Expand file tree Collapse file tree 1 file changed +11
-6
lines changed
Expand file tree Collapse file tree 1 file changed +11
-6
lines changed Original file line number Diff line number Diff line change @@ -645,12 +645,17 @@ void Client::Impl::SendQuery(const Query& query) {
645645 }
646646 }
647647
648- // / Per query settings.
649- assert (server_info_.revision >= DBMS_MIN_REVISION_WITH_SETTINGS_SERIALIZED_AS_STRINGS);
650- for (const auto & [name, field] : query.GetQuerySettings ()) {
651- WireFormat::WriteString (*output_, name);
652- WireFormat::WriteVarint64 (*output_, field.flags );
653- WireFormat::WriteString (*output_, field.value );
648+ // / Per query settings
649+ if (server_info_.revision >= DBMS_MIN_REVISION_WITH_SETTINGS_SERIALIZED_AS_STRINGS) {
650+ for (const auto & [name, field] : query.GetQuerySettings ()) {
651+ WireFormat::WriteString (*output_, name);
652+ WireFormat::WriteVarint64 (*output_, field.flags );
653+ WireFormat::WriteString (*output_, field.value );
654+ }
655+ }
656+ else if (query.GetQuerySettings ().size () > 0 ) {
657+ // Current implementation works only for server version >= v20.1.2.4-stable, since we do not implement binary settings serialization.
658+ throw UnimplementedError (std::string (" Can't send query settings to a server, server version is too old" ));
654659 }
655660 // Empty string signals end of serialized settings
656661 WireFormat::WriteString (*output_, std::string ());
You can’t perform that action at this time.
0 commit comments