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