schema progress (does not compile)

This commit is contained in:
2025-12-31 11:56:12 +01:00
parent d104222fdd
commit ab2d39407c
65 changed files with 1355 additions and 922 deletions
+72 -66
View File
@@ -2,6 +2,7 @@
#include "matador/sql/connection.hpp"
#include "matador/query/builder.hpp"
#include "matador/query/criteria.hpp"
#include "matador/query/query.hpp"
#include "matador/query/column.hpp"
@@ -23,26 +24,31 @@ using namespace matador::utils;
TEST_CASE_METHOD(QueryFixture, "Test all data types for record", "[query][record][data types]") {
check_table_not_exists("types");
const table tab("types");
// auto r = query::create().table(tab).columns({
// column("id", basic_type::UInt32)
// });
auto res = query::create()
.table("types")
.table(tab)
.columns({
attribute("id", basic_type::UInt32),
attribute("val_char", basic_type::Int8),
attribute("val_short", basic_type::Int16),
attribute("val_int", basic_type::Int32),
attribute("val_long_long", basic_type::Int64),
attribute("val_uchar", basic_type::UInt8),
attribute("val_ushort", basic_type::UInt16),
attribute("val_uint", basic_type::UInt32),
attribute("val_ulong_long", basic_type::UInt64),
attribute("val_bool", basic_type::Boolean),
attribute("val_float", basic_type::Float),
attribute("val_double", basic_type::Double),
attribute("val_string", basic_type::Text),
attribute("val_varchar", basic_type::Varchar, 63),
// attribute("val_date", basic_type::type_date),
// attribute("val_time", basic_type::type_time),
attribute("val_blob", basic_type::Blob),
column("id", basic_type::UInt32),
column("val_char", basic_type::Int8),
column("val_short", basic_type::Int16),
column("val_int", basic_type::Int32),
column("val_long_long", basic_type::Int64),
column("val_uchar", basic_type::UInt8),
column("val_ushort", basic_type::UInt16),
column("val_uint", basic_type::UInt32),
column("val_ulong_long", basic_type::UInt64),
column("val_bool", basic_type::Boolean),
column("val_float", basic_type::Float),
column("val_double", basic_type::Double),
column("val_string", basic_type::Text),
column("val_varchar", basic_type::Varchar, 63),
// column("val_date", basic_type::type_date),
// column("val_time", basic_type::type_time),
column("val_blob", basic_type::Blob),
})
.constraints({
constraint("PK_types").primary_key("id")
@@ -126,9 +132,9 @@ TEST_CASE_METHOD(QueryFixture, "Create and drop table statement", "[query][recor
auto res = query::create()
.table("person")
.columns({
attribute("id", basic_type::UInt32),
attribute("name", basic_type::Varchar, 255),
attribute("age", basic_type::UInt16)
column("id", basic_type::UInt32),
column("name", basic_type::Varchar, 255),
column("age", basic_type::UInt16)
})
.constraints({
constraint("PK_person").primary_key("id")
@@ -154,9 +160,9 @@ TEST_CASE_METHOD(QueryFixture, "Create and drop table statement with foreign key
auto res = query::create()
.table("airplane")
.columns({
attribute("id", basic_type::UInt32),
attribute("brand", basic_type::Varchar, 255),
attribute("model", basic_type::Varchar, 255),
column("id", basic_type::UInt32),
column("brand", basic_type::Varchar, 255),
column("model", basic_type::Varchar, 255),
})
.constraints({
constraint("PK_airplane").primary_key("id"),
@@ -171,9 +177,9 @@ TEST_CASE_METHOD(QueryFixture, "Create and drop table statement with foreign key
res = query::create()
.table("flight")
.columns({
attribute("id", basic_type::UInt32),
attribute("airplane_id", basic_type::UInt32),
attribute("pilot_name", basic_type::Varchar, 255)
column("id", basic_type::UInt32),
column("airplane_id", basic_type::UInt32),
column("pilot_name", basic_type::Varchar, 255)
})
.constraints({
constraint("PK_flight").primary_key("id"),
@@ -208,9 +214,9 @@ TEST_CASE_METHOD(QueryFixture, "Execute insert record statement", "[query][recor
auto res = query::create()
.table("person")
.columns({
attribute("id", basic_type::UInt32),
attribute("name", basic_type::Varchar, 255),
attribute("age", basic_type::UInt16)
column("id", basic_type::UInt32),
column("name", basic_type::Varchar, 255),
column("age", basic_type::UInt16)
})
.constraints({
constraint("PK_person").primary_key("id")
@@ -251,9 +257,9 @@ TEST_CASE_METHOD(QueryFixture, "Execute insert record statement with foreign key
auto res = query::create()
.table("airplane")
.columns({
attribute("id", basic_type::UInt32),
attribute("brand", basic_type::Varchar, 255),
attribute("model", basic_type::Varchar, 255),
column("id", basic_type::UInt32),
column("brand", basic_type::Varchar, 255),
column("model", basic_type::Varchar, 255),
})
.constraints({
constraint("PK_airplane").primary_key("id"),
@@ -266,9 +272,9 @@ TEST_CASE_METHOD(QueryFixture, "Execute insert record statement with foreign key
res = query::create()
.table("flight")
.columns({
attribute("id", basic_type::UInt32),
attribute("airplane_id", basic_type::UInt32),
attribute("pilot_name", basic_type::Varchar, 255)
column("id", basic_type::UInt32),
column("airplane_id", basic_type::UInt32),
column("pilot_name", basic_type::Varchar, 255)
})
.constraints({
constraint("PK_flight").primary_key("id"),
@@ -314,9 +320,9 @@ TEST_CASE_METHOD(QueryFixture, "Execute update record statement", "[query][recor
auto res = query::create()
.table("person")
.columns({
attribute("id", basic_type::UInt32),
attribute("name", basic_type::Varchar, 255),
attribute("age", basic_type::UInt16)
column("id", basic_type::UInt32),
column("name", basic_type::Varchar, 255),
column("age", basic_type::UInt16)
})
.constraints({
constraint("PK_person").primary_key("id")
@@ -367,9 +373,9 @@ TEST_CASE_METHOD(QueryFixture, "Execute select statement", "[query][record]")
auto res = query::create()
.table("person")
.columns({
attribute("id", basic_type::UInt32),
attribute("name", basic_type::Varchar, 255),
attribute("age", basic_type::UInt16)
column("id", basic_type::UInt32),
column("name", basic_type::Varchar, 255),
column("age", basic_type::UInt16)
})
.constraints({
constraint("PK_person").primary_key("id")
@@ -427,9 +433,9 @@ TEST_CASE_METHOD(QueryFixture, "Execute select statement with order by", "[query
auto res = query::create()
.table("person")
.columns({
attribute("id", basic_type::UInt32),
attribute("name", basic_type::Varchar, 255),
attribute("age", basic_type::UInt16)
column("id", basic_type::UInt32),
column("name", basic_type::Varchar, 255),
column("age", basic_type::UInt16)
})
.constraints({
constraint("PK_person").primary_key("id")
@@ -473,9 +479,9 @@ TEST_CASE_METHOD(QueryFixture, "Execute select statement with group by and order
auto res = query::create()
.table("person")
.columns({
attribute("id", basic_type::UInt32),
attribute("name", basic_type::Varchar, 255),
attribute("age", basic_type::UInt16)
column("id", basic_type::UInt32),
column("name", basic_type::Varchar, 255),
column("age", basic_type::UInt16)
})
.constraints({
constraint("PK_person").primary_key("id")
@@ -526,9 +532,9 @@ TEST_CASE_METHOD(QueryFixture, "Execute delete statement", "[query][record]") {
auto res = query::create()
.table("person")
.columns({
attribute("id", basic_type::UInt32),
attribute("name", basic_type::Varchar, 255),
attribute("age", basic_type::UInt16)
column("id", basic_type::UInt32),
column("name", basic_type::Varchar, 255),
column("age", basic_type::UInt16)
})
.constraints({
constraint("PK_person").primary_key("id")
@@ -576,8 +582,8 @@ TEST_CASE_METHOD(QueryFixture, "Test quoted identifier record", "[query][record]
auto res = query::create()
.table("quotes")
.columns({
attribute("from", basic_type::Varchar, 255),
attribute("to", basic_type::Varchar, 255)
column("from", basic_type::Varchar, 255),
column("to", basic_type::Varchar, 255)
})
.execute(db);
REQUIRE(res.is_ok());
@@ -637,9 +643,9 @@ TEST_CASE_METHOD(QueryFixture, "Test create record", "[query][record][create]")
auto res = query::create()
.table("person")
.columns({
attribute("id", basic_type::UInt32),
attribute("name", basic_type::Varchar, 255),
attribute("age", basic_type::UInt16)
column("id", basic_type::UInt32),
column("name", basic_type::Varchar, 255),
column("age", basic_type::UInt16)
})
.constraints({
constraint("PK_person").primary_key("id")
@@ -664,9 +670,9 @@ TEST_CASE_METHOD(QueryFixture, "Test insert record", "[query][record][insert]")
auto res = query::create()
.table("person")
.columns({
attribute("id", basic_type::UInt32),
attribute("name", basic_type::Varchar, 255),
attribute("age", basic_type::UInt16)
column("id", basic_type::UInt32),
column("name", basic_type::Varchar, 255),
column("age", basic_type::UInt16)
})
.constraints({
constraint("PK_person").primary_key("id")
@@ -701,9 +707,9 @@ TEST_CASE_METHOD(QueryFixture, "Test update record", "[query][record][update]")
auto res = query::create()
.table("person")
.columns({
attribute("id", basic_type::UInt32),
attribute("name", basic_type::Varchar, 255),
attribute("age", basic_type::UInt16)
column("id", basic_type::UInt32),
column("name", basic_type::Varchar, 255),
column("age", basic_type::UInt16)
})
.constraints({
constraint("PK_person").primary_key("id")
@@ -755,9 +761,9 @@ TEST_CASE_METHOD(QueryFixture, "Test prepared record statement", "[query][record
auto stmt = query::create()
.table("person")
.columns({
attribute("id", basic_type::UInt32),
attribute("name", basic_type::Varchar, 255),
attribute("age", basic_type::UInt16)
column("id", basic_type::UInt32),
column("name", basic_type::Varchar, 255),
column("age", basic_type::UInt16)
})
.constraints({
constraint("PK_person").primary_key("id")
@@ -785,7 +791,7 @@ TEST_CASE_METHOD(QueryFixture, "Test scalar result", "[query][record][scalar][re
auto res = query::create()
.table("person")
.columns({
attribute("id", basic_type::UInt32)
column("id", basic_type::UInt32)
})
.constraints({
constraint("PK_person").primary_key("id")