fix:datetime test pass by postgresql
This commit is contained in:
parent
d0249e778f
commit
ad808afc6c
|
|
@ -341,24 +341,44 @@ QString PostgreSqlGenerator::createConditionalPhrase(const PhraseData *d) const
|
|||
.arg(SqlGeneratorBase::createConditionalPhrase(d->left),
|
||||
escapeValue(d->operand));
|
||||
}
|
||||
if (op == PhraseData::AddYears)
|
||||
return QString("DATEADD(year, %1, %2)")
|
||||
.arg(d->operand.toString(), createConditionalPhrase(d->left));
|
||||
if (op == PhraseData::AddMonths)
|
||||
return QString("DATEADD(month, %1, %2)")
|
||||
.arg(d->operand.toString(), createConditionalPhrase(d->left));
|
||||
if (op == PhraseData::AddDays)
|
||||
return QString("DATEADD(day, %1, %2)")
|
||||
.arg(d->operand.toString(), createConditionalPhrase(d->left));
|
||||
if (op == PhraseData::AddHours)
|
||||
return QString("DATEADD(hour, %1, %2)")
|
||||
.arg(d->operand.toString(), createConditionalPhrase(d->left));
|
||||
if (op == PhraseData::AddMinutes)
|
||||
return QString("DATEADD(minute, %1, %2)")
|
||||
.arg(d->operand.toString(), createConditionalPhrase(d->left));
|
||||
if (op == PhraseData::AddSeconds)
|
||||
return QString("DATEADD(second, %1, %2)")
|
||||
.arg(d->operand.toString(), createConditionalPhrase(d->left));
|
||||
switch (op) {
|
||||
case PhraseData::AddYears:
|
||||
case PhraseData::AddYearsDateTime:
|
||||
case PhraseData::AddMonths:
|
||||
case PhraseData::AddMonthsDateTime:
|
||||
case PhraseData::AddDays:
|
||||
case PhraseData::AddDaysDateTime:
|
||||
case PhraseData::AddHours:
|
||||
case PhraseData::AddHoursDateTime:
|
||||
case PhraseData::AddMinutes:
|
||||
case PhraseData::AddMinutesDateTime:
|
||||
case PhraseData::AddSeconds:
|
||||
case PhraseData::AddSecondsDateTime:
|
||||
return QString("%1 + interval '%2 %3'")
|
||||
.arg(createConditionalPhrase(d->left),
|
||||
d->operand.toString(),
|
||||
SqlGeneratorBase::dateTimePartName(op));
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (d->type == PhraseData::WithoutOperand) {
|
||||
switch (op) {
|
||||
case PhraseData::DatePartYear:
|
||||
case PhraseData::DatePartMonth:
|
||||
case PhraseData::DatePartDay:
|
||||
case PhraseData::DatePartHour:
|
||||
case PhraseData::DatePartMinute:
|
||||
case PhraseData::DatePartSecond:
|
||||
return QString("date_part('%2', %1)")
|
||||
.arg(createConditionalPhrase(d->left),
|
||||
SqlGeneratorBase::dateTimePartName(op));
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return SqlGeneratorBase::createConditionalPhrase(d);
|
||||
|
|
|
|||
|
|
@ -788,21 +788,27 @@ void SqlGeneratorBase::removeTableNames(QString &command)
|
|||
QString SqlGeneratorBase::dateTimePartName(const PhraseData::Condition &op) const
|
||||
{
|
||||
switch (op) {
|
||||
case PhraseData::DatePartYear:
|
||||
case PhraseData::AddYears:
|
||||
case PhraseData::AddYearsDateTime:
|
||||
return "YEAR";
|
||||
case PhraseData::DatePartMonth:
|
||||
case PhraseData::AddMonths:
|
||||
case PhraseData::AddMonthsDateTime:
|
||||
return "MONTH";
|
||||
case PhraseData::DatePartDay:
|
||||
case PhraseData::AddDays:
|
||||
case PhraseData::AddDaysDateTime:
|
||||
return "DAY";
|
||||
case PhraseData::DatePartHour:
|
||||
case PhraseData::AddHours:
|
||||
case PhraseData::AddHoursDateTime:
|
||||
return "HOUR";
|
||||
case PhraseData::DatePartMinute:
|
||||
case PhraseData::AddMinutes:
|
||||
case PhraseData::AddMinutesDateTime:
|
||||
return "MINUTE";
|
||||
case PhraseData::DatePartSecond:
|
||||
case PhraseData::AddSeconds:
|
||||
case PhraseData::AddSecondsDateTime:
|
||||
return "SECOND";
|
||||
|
|
@ -965,6 +971,7 @@ SqlGeneratorBase::operatorString(const PhraseData::Condition &cond) const
|
|||
return "MOD";
|
||||
|
||||
default:
|
||||
qDebug() << "Unsupported" << cond;
|
||||
return QString("<FAIL cond> %1").arg(cond);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,11 +12,11 @@
|
|||
.arg(timer.elapsed() / 1000.) \
|
||||
.arg(__func__)
|
||||
|
||||
#define DRIVER "QSQLITE"
|
||||
#define DRIVER "QPSQL"
|
||||
#define DATABASE QString("nut_test_%1_db").arg(metaObject()->className()).toLower()
|
||||
#define HOST "127.0.0.1"
|
||||
#define USERNAME "postgres"
|
||||
#define PASSWORD "856856"
|
||||
#define PASSWORD "mysecretpassword"
|
||||
|
||||
#ifdef Q_OS_LINUX
|
||||
# define OS "Linux"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#include "test.h"
|
||||
|
||||
Test::Test(QObject *parentTableSet)
|
||||
Test::Test(QObject *parentTableSet) : Table(parentTableSet)
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue