all supported datatypes in full list markdown [skip ci]
This commit is contained in:
parent
136c393f6e
commit
ec449b0c8f
46
README.md
46
README.md
|
|
@ -23,51 +23,7 @@ Badge](https://api.codacy.com/project/badge/Grade/f3802610beb946068f6cd2c2b6608a
|
|||
- Automatically create and update database
|
||||
- IDE auto complete support, No hard-code nedded
|
||||
- Table join detect
|
||||
- Supported types:
|
||||
|
||||
| Type | Sqlite | MySql | Postgresql| Ms Sql server |
|
||||
|--------|--------|--------|--------|--------|
|
||||
| QBitArray | BLOB | VARBINARY | BYTEA | VARBINARY (MAX) |
|
||||
| QByteArray | BLOB | BLOB | BYTEA | VARBINARY (MAX) |
|
||||
| QChar | NCHAR(1) | CHAR(1) | CHAR(1) | CHAR(1) |
|
||||
| QColor | TEXT | TEXT | TEXT | TEXT |
|
||||
| QDate | DATE | DATE | DATE | DATE |
|
||||
| QDateTime | DATETIME | DATETIME | TIMESTAMP | DATETIME |
|
||||
| QJsonArray | TEXT | TEXT | JSON | TEXT |
|
||||
| QJsonDocument | TEXT | TEXT | JSON | TEXT |
|
||||
| QJsonObject | TEXT | TEXT | JSON | TEXT |
|
||||
| QJsonValue | TEXT | TEXT | JSON | TEXT |
|
||||
| QLine | TEXT | TEXT | LINE | TEXT |
|
||||
| QLineF | TEXT | TEXT | LINE | TEXT |
|
||||
| QPoint | TEXT | POINT | POINT | GEOMETRY |
|
||||
| QPointF | TEXT | POINT | POINT | GEOMETRY |
|
||||
| QPolygon | TEXT | POLYGON | POLYGON | TEXT |
|
||||
| QPolygonF | TEXT | POLYGON | POLYGON | TEXT |
|
||||
| QRect | TEXT | TEXT | BOX | TEXT |
|
||||
| QRectF | TEXT | TEXT | BOX | TEXT |
|
||||
| QSize | TEXT | TEXT | TEXT | TEXT |
|
||||
| QSizeF | TEXT | TEXT | TEXT | TEXT |
|
||||
| QString | TEXT | TEXT | TEXT | NVARCHAR(MAX) |
|
||||
| QStringList | TEXT[^*] | TEXT | TEXT[] | TEXT |
|
||||
| QTime | TIME | TIME | TIME | TIME |
|
||||
| QUrl | TEXT | TEXT | TEXT | TEXT |
|
||||
| QUuid | TEXT | VARCHAR(64) | UUID | UNIQUEIDENTIFIER |
|
||||
| bool | BOOLEAN | BOOLEAN | BOOLEAN | BIT |
|
||||
| char | TINYINT | CHAR(1) | CHAR(1) | CHAR(1) |
|
||||
| double | DOUBLE | REAL | REAL | REAL |
|
||||
| float | FLOAT | FLOAT | FLOAT | FLOAT(24) |
|
||||
| int | INT | INT | INTEGER | INT |
|
||||
| long | MEDIUMINT | BIGINT | BIGINT | BIGINT |
|
||||
| qlonglong | BIGINT | BIGINT | BIGINT | BIGINT |
|
||||
| qulonglong | BIGINT UNSIGNED | BIGINT | BIGINT | BIGINT |
|
||||
| short | SMALLINT | SMALLINT | SMALLINT | SMALLINT |
|
||||
| signed char | TINYINT | TINYINT | SMALLINT | TINYINT |
|
||||
| uchar | TINYINT UNSIGNED | TINYINT | SMALLINT | TINYINT |
|
||||
| uint | INT UNSIGNED | INT | INTEGER | INT |
|
||||
| ulong | MEDIUMINT UNSIGNED | BIGINT | BIGINT | BIGINT |
|
||||
| ushort | SMALLINT UNSIGNED | SMALLINT | SMALLINT | SMALLINT |
|
||||
|
||||
[^*]: Using internal store/restore serialization
|
||||
- Supported types: [Full list](doc/datatypes.md)
|
||||
|
||||
|
||||
## Sample Codes
|
||||
|
|
|
|||
|
|
@ -0,0 +1,41 @@
|
|||
| Type | Sqlite | MySql | Postgresql| Ms Sql server |
|
||||
|--------|--------|--------|--------|--------|
|
||||
| bool | BOOLEAN | BOOLEAN | BOOLEAN | BIT |
|
||||
| QBitArray | BLOB | VARBINARY | BYTEA | VARBINARY (MAX) |
|
||||
| QByteArray | BLOB | BLOB | BYTEA | VARBINARY (MAX) |
|
||||
| QDate | DATE | DATE | DATE | DATE |
|
||||
| QDateTime | DATETIME | DATETIME | TIMESTAMP | DATETIME |
|
||||
| QTime | TIME | TIME | TIME | TIME |
|
||||
| double | DOUBLE | REAL | REAL | REAL |
|
||||
| float | FLOAT | FLOAT | FLOAT | FLOAT(24) |
|
||||
| signed char | TINYINT | TINYINT | SMALLINT | tinyint |
|
||||
| char | TINYINT | CHAR(1) | CHAR(1) | CHAR(1) |
|
||||
| uchar | TINYINT UNSIGNED | TINYINT | SMALLINT | tinyint |
|
||||
| short | SMALLINT | SMALLINT | SMALLINT | smallint |
|
||||
| ushort | SMALLINT UNSIGNED | SMALLINT | SMALLINT | smallint |
|
||||
| int | INT | INT | INTEGER | INT |
|
||||
| uint | INT UNSIGNED | INT | INTEGER | INT |
|
||||
| long | MEDIUMINT | BIGINT | BIGINT | bigint |
|
||||
| ulong | MEDIUMINT UNSIGNED | BIGINT | BIGINT | bigint |
|
||||
| qlonglong | BIGINT | BIGINT | BIGINT | bigint |
|
||||
| qulonglong | BIGINT UNSIGNED | BIGINT | BIGINT | bigint |
|
||||
| QChar | NCHAR(1) | CHAR(1) | CHAR(1) | CHAR(1) |
|
||||
| QUrl | TEXT | TEXT | TEXT | TEXT |
|
||||
| QJsonArray | TEXT | TEXT | JSONB | TEXT |
|
||||
| QJsonValue | TEXT | TEXT | JSONB | TEXT |
|
||||
| QJsonObject | TEXT | TEXT | JSONB | TEXT |
|
||||
| QJsonDocument | TEXT | TEXT | JSONB | TEXT |
|
||||
| QPoint | TEXT | TEXT | POINT | GEOMETRY |
|
||||
| QPointF | TEXT | TEXT | POINT | GEOMETRY |
|
||||
| QSize | TEXT | TEXT | TEXT | TEXT |
|
||||
| QSizeF | TEXT | TEXT | TEXT | TEXT |
|
||||
| QLine | TEXT | TEXT | LINE | TEXT |
|
||||
| QLineF | TEXT | TEXT | LINE | TEXT |
|
||||
| QRect | TEXT | TEXT | BOX | TEXT |
|
||||
| QRectF | TEXT | TEXT | BOX | TEXT |
|
||||
| QPolygon | TEXT | TEXT | POLYGON | TEXT |
|
||||
| QPolygonF | TEXT | TEXT | POLYGON | TEXT |
|
||||
| QStringList | TEXT | TEXT | TEXT[] | TEXT |
|
||||
| QColor | TEXT | TEXT | TEXT | TEXT |
|
||||
| QUuid | TEXT | TEXT | UUID | UNIQUEIDENTIFIER |
|
||||
| QString | TEXT | TEXT | TEXT | NVARCHAR(MAX) |
|
||||
|
|
@ -21,8 +21,8 @@ class Comment : public Table
|
|||
NUT_DECLARE_FIELD(QDateTime, saveDate, saveDate, setSaveDate)
|
||||
NUT_DECLARE_FIELD(qreal, point, point, setPoint)
|
||||
|
||||
NUT_FOREGION_KEY(Post, int, post, post, setPost)
|
||||
NUT_FOREGION_KEY(User, int, author, author, setAuthor)
|
||||
NUT_FOREIGN_KEY(Post, int, post, post, setPost)
|
||||
NUT_FOREIGN_KEY(User, int, author, author, setAuthor)
|
||||
|
||||
public:
|
||||
Q_INVOKABLE explicit Comment(QObject *parentTableSet = nullptr);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
#ifndef SCORE_H
|
||||
#define SCORE_H
|
||||
|
||||
#include <QUuid>
|
||||
#include "table.h"
|
||||
|
||||
class User;
|
||||
|
|
@ -14,8 +15,8 @@ class Score : public Nut::Table
|
|||
|
||||
NUT_DECLARE_FIELD(int, score, score, setScore)
|
||||
|
||||
NUT_FOREGION_KEY(Post, int, post, post, setPost)
|
||||
NUT_FOREGION_KEY(User, QUuid, author, author, setAuthor)
|
||||
NUT_FOREIGN_KEY(Post, int, post, post, setPost)
|
||||
NUT_FOREIGN_KEY(User, QUuid, author, author, setAuthor)
|
||||
|
||||
public:
|
||||
Q_INVOKABLE Score(QObject *parent = Q_NULLPTR);
|
||||
|
|
|
|||
|
|
@ -3,12 +3,11 @@ TEMPLATE = subdirs
|
|||
SUBDIRS += \
|
||||
tst_basic \
|
||||
tst_benckmark \
|
||||
# tst_commands \
|
||||
tst_datatypes \
|
||||
#tst_join \
|
||||
tst_phrases \
|
||||
tst_quuid \
|
||||
tst_generators \
|
||||
tst_upgrades \
|
||||
tst_json
|
||||
tst_json \
|
||||
tst_supported_datatypes
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,98 @@
|
|||
#include <QtTest>
|
||||
#include <QDebug>
|
||||
#include <QSqlError>
|
||||
#include <QElapsedTimer>
|
||||
#include <tablemodel.h>
|
||||
|
||||
#include "tst_supported_datatypes.h"
|
||||
|
||||
#include "generators/sqlitegenerator.h"
|
||||
#include "generators/postgresqlgenerator.h"
|
||||
#include "generators/mysqlgenerator.h"
|
||||
#include "generators/sqlservergenerator.h"
|
||||
|
||||
SupportedDataTypesTest::SupportedDataTypesTest(QObject *parent) : QObject(parent)
|
||||
{
|
||||
types
|
||||
<< QMetaType::Bool
|
||||
<< QMetaType::QBitArray
|
||||
<< QMetaType::QByteArray
|
||||
<< QMetaType::QDate
|
||||
<< QMetaType::QDateTime
|
||||
<< QMetaType::QTime
|
||||
<< QMetaType::Double
|
||||
<< QMetaType::Float
|
||||
|
||||
<< QMetaType::SChar
|
||||
<< QMetaType::Char
|
||||
<< QMetaType::UChar
|
||||
<< QMetaType::Short
|
||||
<< QMetaType::UShort
|
||||
<< QMetaType::Int
|
||||
<< QMetaType::UInt
|
||||
<< QMetaType::Long
|
||||
<< QMetaType::ULong
|
||||
<< QMetaType::LongLong
|
||||
<< QMetaType::ULongLong
|
||||
|
||||
<< QMetaType::QChar
|
||||
|
||||
<< QMetaType::QUrl
|
||||
<< QMetaType::QJsonArray
|
||||
<< QMetaType::QJsonValue
|
||||
<< QMetaType::QJsonObject
|
||||
<< QMetaType::QJsonDocument
|
||||
<< QMetaType::QPoint
|
||||
<< QMetaType::QPointF
|
||||
<< QMetaType::QSize
|
||||
<< QMetaType::QSizeF
|
||||
<< QMetaType::QLine
|
||||
<< QMetaType::QLineF
|
||||
<< QMetaType::QRect
|
||||
<< QMetaType::QRectF
|
||||
<< QMetaType::QPolygon
|
||||
<< QMetaType::QPolygonF
|
||||
<< QMetaType::QStringList
|
||||
<< QMetaType::QColor
|
||||
<< QMetaType::QUuid
|
||||
|
||||
<< QMetaType::QString;
|
||||
}
|
||||
|
||||
void SupportedDataTypesTest::initTestCase()
|
||||
{
|
||||
Nut::SqliteGenerator sqlite;
|
||||
Nut::SqlServerGenerator mssql;
|
||||
Nut::PostgreSqlGenerator pgsql;
|
||||
Nut::MySqlGenerator mysql;
|
||||
|
||||
Nut::FieldModel *field = new Nut::FieldModel;
|
||||
foreach (QMetaType::Type type, types) {
|
||||
field->type = type;
|
||||
result.append(Result(
|
||||
type,
|
||||
mssql.fieldType(field),
|
||||
sqlite.fieldType(field),
|
||||
pgsql.fieldType(field),
|
||||
mysql.fieldType(field)
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
void SupportedDataTypesTest::cleanupTestCase()
|
||||
{
|
||||
qDebug() << DOC_PATH;
|
||||
QString md("| Type | Sqlite | MySql | Postgresql| Ms Sql server |\n");
|
||||
md.append("|--------|--------|--------|--------|--------|\n");
|
||||
foreach (Result r, result)
|
||||
md.append(QString("| %1 | %2 | %3 | %4 | %5 |\n")
|
||||
.arg(QMetaType::typeName(r.type), r.sqlite, r.mysql, r.pgsql, r.mssql));
|
||||
|
||||
QFile file(DOC_PATH "/datatypes.md");
|
||||
if (file.open(QIODevice::WriteOnly)) {
|
||||
file.write(md.toUtf8());
|
||||
file.close();
|
||||
}
|
||||
}
|
||||
|
||||
QTEST_MAIN(SupportedDataTypesTest)
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
#ifndef MAINTEST_H
|
||||
#define MAINTEST_H
|
||||
|
||||
#include <QtCore/QObject>
|
||||
#include <QtCore/qglobal.h>
|
||||
|
||||
class SupportedDataTypesTest : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
QList<QMetaType::Type> types;
|
||||
|
||||
struct Result
|
||||
{
|
||||
QMetaType::Type type;
|
||||
QString mssql;
|
||||
QString sqlite;
|
||||
QString pgsql;
|
||||
QString mysql;
|
||||
|
||||
Result(QMetaType::Type type, QString mssql, QString sqlite,
|
||||
QString pgsql, QString mysql)
|
||||
: type(type), mssql(mssql), sqlite(sqlite), pgsql(pgsql), mysql(mysql)
|
||||
{}
|
||||
};
|
||||
QList<Result> result;
|
||||
|
||||
public:
|
||||
explicit SupportedDataTypesTest(QObject *parent = nullptr);
|
||||
|
||||
signals:
|
||||
|
||||
private slots:
|
||||
void initTestCase();
|
||||
|
||||
void cleanupTestCase();
|
||||
};
|
||||
|
||||
#endif // MAINTEST_H
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
QT += testlib sql gui
|
||||
|
||||
TARGET = tst_datatypes
|
||||
TEMPLATE = app
|
||||
|
||||
CONFIG += warn_on c++11
|
||||
|
||||
DEFINES += DOC_PATH=\\\"$$PWD/../../doc\\\"
|
||||
|
||||
include(../common/nut-lib.pri)
|
||||
|
||||
SOURCES += \
|
||||
tst_supported_datatypes.cpp
|
||||
|
||||
HEADERS += \
|
||||
tst_supported_datatypes.h
|
||||
|
||||
include($$PWD/../../ci-test-init.pri)
|
||||
Loading…
Reference in New Issue