diff --git a/include/sqlpp11/ppgen.h b/include/sqlpp11/ppgen.h index 0fd267a6..f602ede5 100644 --- a/include/sqlpp11/ppgen.h +++ b/include/sqlpp11/ppgen.h @@ -69,6 +69,7 @@ #include #include #include +#include #include #include #include diff --git a/include/sqlpp11/ppgen/colops/unsigned_integer.h b/include/sqlpp11/ppgen/colops/unsigned_integer.h new file mode 100644 index 00000000..08f54411 --- /dev/null +++ b/include/sqlpp11/ppgen/colops/unsigned_integer.h @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2014-2017, Damien COJAN + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +// clang-format off + +#ifndef _sqlpp__ppgen__colops__unsigned_integer_h +#define _sqlpp__ppgen__colops__unsigned_integer_h + +#define SQLPP_DECLARE_COLUMN_GET_TRAITS_LAZY_tinyint_unsigned \ + PROC_tinyint_unsigned +#define SQLPP_DECLARE_COLUMN_GEN_TRAITS_PROC_tinyint_unsigned(...) \ + ::sqlpp::tinyint_unsigned + +#define SQLPP_DECLARE_COLUMN_GET_TRAITS_LAZY_smallint_unsigned \ + PROC_smallint_unsigned +#define SQLPP_DECLARE_COLUMN_GEN_TRAITS_PROC_smallint_unsigned(...) \ + ::sqlpp::smallint_unsigned + +#define SQLPP_DECLARE_COLUMN_GET_TRAITS_LAZY_int_unsigned \ + PROC_int_unsigned +#define SQLPP_DECLARE_COLUMN_GEN_TRAITS_PROC_int_unsigned(...) \ + ::sqlpp::integer_unsigned + +#define SQLPP_DECLARE_COLUMN_GET_TRAITS_LAZY_bigint_unsigned \ + PROC_bigint_unsigned +#define SQLPP_DECLARE_COLUMN_GEN_TRAITS_PROC_bigint_unsigned(...) \ + ::sqlpp::bigint_unsigned + +#endif // _sqlpp__ppgen__colops__unsigned_integer_h diff --git a/tests/Ppgen.cpp b/tests/Ppgen.cpp index 296187e1..70332796 100644 --- a/tests/Ppgen.cpp +++ b/tests/Ppgen.cpp @@ -52,6 +52,7 @@ SQLPP_DECLARE_TABLE( (id , int , SQLPP_PRIMARY_KEY) (name , varchar(255), SQLPP_NOT_NULL ) (feature, int , SQLPP_NOT_NULL ) + (age , int_unsigned, SQLPP_NOT_NULL ) (level , real , SQLPP_NOT_NULL ) ) @@ -77,20 +78,28 @@ int Ppgen(int, char* []) db(insert_into(f).default_values()); - auto i = insert_into(p).columns(p.name, p.feature, p.level); - i.values.add(p.name = "Roland", p.feature = 1, p.level = 3.14); - i.values.add(p.name = "Zaphod", p.feature = sqlpp::default_value, p.level = 3.14*2); + auto i = insert_into(p).columns(p.name, p.feature, p.age, p.level); + i.values.add(p.name = "Roland" + , p.feature = 1 + , p.age = static_cast(32) + , p.level = 3.14); + i.values.add(p.name = "Zaphod" + , p.feature = sqlpp::default_value + , p.age = static_cast(16) + , p.level = 3.14*2); db(i); auto pi = db.prepare( insert_into(p).set( p.name = parameter(f.name) ,p.feature = parameter(p.feature) + ,p.age = parameter(p.age) ,p.level = parameter(p.level) ) ); pi.params.name = "likes java"; pi.params.feature = 2; + pi.params.age = 21; pi.params.level = 3.14; db(pi);