Skip to content

fix pg sql warnings #1395

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jan 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 12 additions & 3 deletions ydb/library/yql/sql/pg/optimizer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,18 @@
#undef SIZEOF_SIZE_T

extern "C" {
Y_PRAGMA_DIAGNOSTIC_PUSH
#ifdef _win_
Y_PRAGMA("GCC diagnostic ignored \"-Wshift-count-overflow\"")
#endif
Y_PRAGMA("GCC diagnostic ignored \"-Wunused-parameter\"")
#include "postgres.h"
#include "miscadmin.h"
#include "optimizer/paths.h"
#include "nodes/print.h"
#include "utils/selfuncs.h"
#include "utils/palloc.h"
Y_PRAGMA_DIAGNOSTIC_POP
}

#undef Min
Expand All @@ -40,6 +46,9 @@ bool RelationStatsHook(
AttrNumber attnum,
VariableStatData *vardata)
{
Y_UNUSED(root);
Y_UNUSED(rte);
Y_UNUSED(attnum);
vardata->statsTuple = nullptr;
return true;
}
Expand Down Expand Up @@ -224,8 +233,8 @@ int TPgOptimizer::MakeOutputJoin(TOutput& output, Path* path) {

for (int i = 0; i < list_length(jpath->joinrestrictinfo); i++) {
RestrictInfo* rinfo = (RestrictInfo*)jpath->joinrestrictinfo->elements[i].ptr_value;
Var* left;
Var* right;
Var* left = nullptr;
Var* right = nullptr;

if (jpath->jointype == JOIN_INNER) {
YQL_ENSURE(rinfo->left_em->em_expr->type == T_Var, "Unsupported left em type");
Expand Down Expand Up @@ -279,7 +288,7 @@ void TPgOptimizer::MakeLeftOrRightRestrictions(std::vector<RestrictInfo*>& dst,
ri->clause = (Expr*)oe;

bool left = true;
for (const auto [relId, varId] : eq.Vars) {
for (const auto& [relId, varId] : eq.Vars) {
ri->required_relids = bms_add_member(ri->required_relids, relId);
ri->clause_relids = bms_add_member(ri->clause_relids, relId);
if (left) {
Expand Down
2 changes: 1 addition & 1 deletion ydb/library/yql/sql/pg/optimizer_impl_ut.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ Y_UNIT_TEST(MakeRelOptInfoList) {
TArenaMemoryContext ctx;
IOptimizer::TRel rel1 = {10, 100, {{}}};
IOptimizer::TRel rel2 = {100, 99, {{}}};
IOptimizer::TInput input = {{rel1, rel2}};
IOptimizer::TInput input = {.Rels={rel1, rel2}};
auto* l = MakeRelOptInfoList(input);
UNIT_ASSERT(l);
UNIT_ASSERT_EQUAL(l->length, 2);
Expand Down
8 changes: 4 additions & 4 deletions ydb/library/yql/sql/pg/optimizer_ut.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Y_TEST_HOOK_BEFORE_RUN(InitTest) {
Y_UNIT_TEST(PgJoinSearch2Rels) {
IOptimizer::TRel rel1 = {100000, 1000000, {{'a'}}};
IOptimizer::TRel rel2 = {1000000, 9000009, {{'b'}}};
IOptimizer::TInput input = {{rel1, rel2}};
IOptimizer::TInput input = {.Rels={rel1, rel2}};

input.EqClasses.emplace_back(IOptimizer::TEq {
{{1, 1}, {2, 1}}
Expand Down Expand Up @@ -56,7 +56,7 @@ Y_UNIT_TEST(PgJoinSearch2Rels) {
Y_UNIT_TEST(PgJoinSearch2RelsLeft) {
IOptimizer::TRel rel1 = {100000, 1000000, {{'a'}}};
IOptimizer::TRel rel2 = {1000000, 9000009, {{'b'}}};
IOptimizer::TInput input = {{rel1, rel2}};
IOptimizer::TInput input = {.Rels={rel1, rel2}};

input.EqClasses.emplace_back(IOptimizer::TEq {
{{1, 1}}
Expand Down Expand Up @@ -102,7 +102,7 @@ Y_UNIT_TEST(PgJoinSearch2RelsLeft) {
Y_UNIT_TEST(PgJoinSearch2RelsRight) {
IOptimizer::TRel rel1 = {100000, 1000000, {{'a'}}};
IOptimizer::TRel rel2 = {1000000, 9000009, {{'b'}}};
IOptimizer::TInput input = {{rel1, rel2}};
IOptimizer::TInput input = {.Rels={rel1, rel2}};

input.EqClasses.emplace_back(IOptimizer::TEq {
{{1, 1}}
Expand Down Expand Up @@ -149,7 +149,7 @@ Y_UNIT_TEST(PgJoinSearch3Rels) {
IOptimizer::TRel rel1 = {100000, 1000000, {{'a'}}};
IOptimizer::TRel rel2 = {1000000, 9000009, {{'b'}}};
IOptimizer::TRel rel3 = {10000, 9009, {{'c'}}};
IOptimizer::TInput input = {{rel1, rel2, rel3}};
IOptimizer::TInput input = {.Rels={rel1, rel2, rel3}};

input.EqClasses.emplace_back(IOptimizer::TEq {
{{1, 1}, {2, 1}, {3, 1}}
Expand Down
25 changes: 12 additions & 13 deletions ydb/library/yql/sql/pg/pg_sql.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -397,7 +397,7 @@ class TConverter : public IPGParseEvents {
{
// YQL-16284
const char* node_name = CAST_NODE(VariableSetStmt, node)->name;
char* skip_statements[] = {
const char* skip_statements[] = {
"extra_float_digits", // jdbc
"application_name", // jdbc
"statement_timeout", // pg_dump
Expand Down Expand Up @@ -446,7 +446,6 @@ class TConverter : public IPGParseEvents {
}

auto* tuples = listOfTuples.mutable_value()->mutable_items();
size_t idx = 0;
size_t cols = columnTypes.size();
for (size_t idx = 0; idx < autoParamLiterals.size(); idx += cols){
auto* tuple = tuples->Add();
Expand Down Expand Up @@ -636,17 +635,17 @@ class TConverter : public IPGParseEvents {
auto length = ListLength(value->args);
if (length != 3) {
AddError(TStringBuilder() << "Expected 3 arguments, but got: " << length);
return;
return nullptr;
}
auto loc = value->location;

VariableSetStmt config;
config.kind = VAR_SET_VALUE;
auto arg0 = ListNodeNth(value->args, 0);
auto arg1 = ListNodeNth(value->args, 1);
auto arg2 = ListNodeNth(value->args, 2);
if (NodeTag(arg2) != T_TypeCast) {
AddError(TStringBuilder() << "Expected type cast node as is_local arg, but got node with tag");
return;
return nullptr;
}
auto isLocalCast = CAST_NODE(TypeCast, arg2)->arg;
if (NodeTag(isLocalCast) != T_A_Const) {
Expand All @@ -661,7 +660,7 @@ class TConverter : public IPGParseEvents {
auto rawVal = TString(StrVal(isLocalConst->val));
if (rawVal != "t" && rawVal != "f") {
AddError(TStringBuilder() << "Expected t/f, but got " << rawVal);
return;
return nullptr;
}
config.is_local = rawVal == "t";

Expand All @@ -674,7 +673,7 @@ class TConverter : public IPGParseEvents {
auto val = CAST_NODE(A_Const, arg1)->val;
if (NodeTag(name) != T_String || NodeTag(val) != T_String) {
AddError(TStringBuilder() << "Expected string const as name arg, but got something else: " << NodeTag(name));
return;
return nullptr;
}
config.name = (char*)StrVal(name);
config.args = list_make1((void*)(&val));
Expand Down Expand Up @@ -1320,7 +1319,7 @@ class TConverter : public IPGParseEvents {
return {};
}
ui32 index = 0;
for (size_t i = 0; i < ListLength(returningList); i++) {
for (int i = 0; i < ListLength(returningList); i++) {
auto node = ListNodeNth(returningList, i);
if (NodeTag(node) != T_ResTarget) {
NodeNotImplemented(returningList, node);
Expand Down Expand Up @@ -1375,7 +1374,7 @@ class TConverter : public IPGParseEvents {

TVector <TAstNode*> targetColumns;
if (value->cols) {
for (size_t i = 0; i < ListLength(value->cols); i++) {
for (int i = 0; i < ListLength(value->cols); i++) {
auto node = ListNodeNth(value->cols, i);
if (NodeTag(node) != T_ResTarget) {
NodeNotImplemented(value, node);
Expand Down Expand Up @@ -1612,7 +1611,7 @@ class TConverter : public IPGParseEvents {
if (!CheckConstraintSupported(pk))
return false;

for (auto i = 0; i < ListLength(pk->keys); ++i) {
for (int i = 0; i < ListLength(pk->keys); ++i) {
auto node = ListNodeNth(pk->keys, i);
auto nodeName = StrVal(node);

Expand Down Expand Up @@ -1677,7 +1676,7 @@ class TConverter : public IPGParseEvents {
TColumnInfo cinfo{.Name = node->colname};

if (node->constraints) {
for (ui32 i = 0; i < ListLength(node->constraints); ++i) {
for (int i = 0; i < ListLength(node->constraints); ++i) {
auto constraintNode =
CAST_NODE(Constraint, ListNodeNth(node->constraints, i));

Expand Down Expand Up @@ -1899,7 +1898,7 @@ class TConverter : public IPGParseEvents {
return nullptr;
}

for (ui32 i = 0; i < ListLength(value->tableElts); ++i) {
for (int i = 0; i < ListLength(value->tableElts); ++i) {
auto rawNode = ListNodeNth(value->tableElts, i);

switch (NodeTag(rawNode)) {
Expand Down Expand Up @@ -4342,7 +4341,7 @@ class TConverter : public IPGParseEvents {
auto it = LowerBound(RowStarts.begin(), RowStarts.end(), Min((ui32)location, QuerySize));
Y_ENSURE(it != RowStarts.end());

if (*it == location) {
if (*it == (ui32)location) {
auto row = 1 + it - RowStarts.begin();
auto column = 1;
return NYql::TPosition(column, row);
Expand Down
2 changes: 0 additions & 2 deletions ydb/library/yql/sql/pg/ut/ya.make
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,4 @@ PEERDIR(

SIZE(MEDIUM)

NO_COMPILER_WARNINGS()

END()
1 change: 0 additions & 1 deletion ydb/library/yql/sql/pg/ya.make
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ CFLAGS(
)
ENDIF()

NO_COMPILER_WARNINGS()
YQL_LAST_ABI_VERSION()

END()
Expand Down