forked from qt-creator/qt-creator
Sqlite: Fix null handling
Most of it is only silencing a warning but one is fixing a faulty test. So writing null values should now be working. Change-Id: If702e1fc8176a9e0ae82a5589c719d567929202b Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
@@ -192,6 +192,8 @@ public:
|
|||||||
columnDefinitionString.append(defaultValue.value.toStringView());
|
columnDefinitionString.append(defaultValue.value.toStringView());
|
||||||
columnDefinitionString.append("'");
|
columnDefinitionString.append("'");
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -214,6 +214,9 @@ void BaseStatement::bind(int index, const Value &value)
|
|||||||
case ValueType::String:
|
case ValueType::String:
|
||||||
bind(index, value.toStringView());
|
bind(index, value.toStringView());
|
||||||
break;
|
break;
|
||||||
|
case ValueType::Null:
|
||||||
|
bind(index, NullValue{});
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -102,6 +102,8 @@ public:
|
|||||||
return QVariant(toFloat());
|
return QVariant(toFloat());
|
||||||
case ValueType::String:
|
case ValueType::String:
|
||||||
return QVariant(QString(toStringView()));
|
return QVariant(QString(toStringView()));
|
||||||
|
case ValueType::Null:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return {};
|
return {};
|
||||||
@@ -281,6 +283,8 @@ public:
|
|||||||
return first.toFloat() == second.toFloat();
|
return first.toFloat() == second.toFloat();
|
||||||
case ValueType::String:
|
case ValueType::String:
|
||||||
return first.toStringView() == second.toStringView();
|
return first.toStringView() == second.toStringView();
|
||||||
|
case ValueType::Null:
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -320,6 +320,9 @@ std::ostream &operator<<(std::ostream &out, const Value &value)
|
|||||||
case Sqlite::ValueType::String:
|
case Sqlite::ValueType::String:
|
||||||
out << "\"" << value.toStringView() << "\"";
|
out << "\"" << value.toStringView() << "\"";
|
||||||
break;
|
break;
|
||||||
|
case Sqlite::ValueType::Null:
|
||||||
|
out << "null";
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return out << ")";
|
return out << ")";
|
||||||
|
|||||||
@@ -388,6 +388,7 @@ TEST_F(SqliteStatement, WritePointerValues)
|
|||||||
TEST_F(SqliteStatement, WriteNullValues)
|
TEST_F(SqliteStatement, WriteNullValues)
|
||||||
{
|
{
|
||||||
WriteStatement statement("UPDATE test SET name=?, number=? WHERE rowid=?", database);
|
WriteStatement statement("UPDATE test SET name=?, number=? WHERE rowid=?", database);
|
||||||
|
statement.write(1, 1, 1);
|
||||||
|
|
||||||
statement.write(Sqlite::NullValue{}, Sqlite::Value{}, 1);
|
statement.write(Sqlite::NullValue{}, Sqlite::Value{}, 1);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user