summaryrefslogtreecommitdiff
path: root/libodb-qt/odb/qt/basic/mysql/default-mapping.hxx
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2024-02-01 20:51:20 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2024-02-01 20:51:20 +0300
commit78c1908129fd940dbbc9da08f52657e26fe22e34 (patch)
tree33e5dbcaecb924e93160e6927e6c7dd863dd3ca9 /libodb-qt/odb/qt/basic/mysql/default-mapping.hxx
parent158bd7a1dd011b1ec0d7e99b9d22439ddec3eadb (diff)
parent5f1cd97b9727fe10df79e1eb316ff493d9dfc2a9 (diff)
Merge branch 'libodb-qt' into multi-package
Diffstat (limited to 'libodb-qt/odb/qt/basic/mysql/default-mapping.hxx')
-rw-r--r--libodb-qt/odb/qt/basic/mysql/default-mapping.hxx28
1 files changed, 28 insertions, 0 deletions
diff --git a/libodb-qt/odb/qt/basic/mysql/default-mapping.hxx b/libodb-qt/odb/qt/basic/mysql/default-mapping.hxx
new file mode 100644
index 0000000..996895f
--- /dev/null
+++ b/libodb-qt/odb/qt/basic/mysql/default-mapping.hxx
@@ -0,0 +1,28 @@
+// file : odb/qt/basic/mysql/default-mapping.hxx
+// license : GNU GPL v2; see accompanying LICENSE file
+
+#ifndef ODB_QT_BASIC_MYSQL_DEFAULT_MAPPING_HXX
+#define ODB_QT_BASIC_MYSQL_DEFAULT_MAPPING_HXX
+
+#include <QtCore/QString>
+#include <QtCore/QByteArray>
+#include <QtCore/QUuid>
+
+// Map QString to MySQL TEXT for non-id and to VARCHAR(128) for id members.
+// MySQL cannot have primary key of the TEXT type. Allow NULL values by
+// default as QString provides a null representation.
+//
+#pragma db value(QString) type("TEXT") id_type("VARCHAR(128)") null
+
+// Map QByteArray to MySQL BLOB by default. Allow NULL values by default as
+// QByteArray provides a null representation.
+//
+#pragma db value(QByteArray) type("BLOB") null
+
+// By default map QUuid to MySQL BINARY(16) and use NULL to represent null
+// UUIDs. If NULL is disabled (e.g., at the member level), then we store
+// the null UUID (i.e., all bytes are zero).
+//
+#pragma db value(QUuid) type("BINARY(16)") null
+
+#endif // ODB_QT_BASIC_MYSQL_DEFAULT_MAPPING_HXX