#include <sqlpp/bindings/lua/table.hpp>
#include <luabind/luabind.hpp>
#include <sqlpp/field.hpp>
#include <sqlpp/table.hpp>
#include <sqlpp/properties/id_property.hpp>
#include <sqlpp/properties/name_property.hpp>
#include <sqlpp/properties/database_property.hpp>
namespace sqlpp{
namespace bindings{
namespace lua{
lua_State* lua_sqlppopen_table(lua_State* L)
{
using namespace luabind;
// table::set_primary_key overlaods
primary_key_constraint_shared_ptr (table::* set_primary_key_fields)
(field_container_const_reference, string_const_reference)
= &table::set_primary_key;
primary_key_constraint_shared_ptr (table::* set_primary_key_field)
(field_shared_ptr, string_const_reference)
= &table::set_primary_key;
primary_key_constraint_shared_ptr (table::* set_primary_key_string)
(string_const_reference, string_const_reference)
= &table::set_primary_key;
// table::add_unique overlaods
unique_constraint_shared_ptr (table::* add_unique_fields)(
field_container_const_reference,
string_const_reference)
= &table::add_unique;
unique_constraint_shared_ptr (table::* add_unique_field)(
field_shared_ptr,
string_const_reference)
= &table::add_unique;
unique_constraint_shared_ptr (table::* add_unique_string)(
string_const_reference,
string_const_reference)
= &table::add_unique;
// table::add_foreign_key
ref_constraint_shared_ptr (table::* add_foreign_key)(table_shared_ptr)
= & table::add_foreign_key;
module(L, SQLPP_MODULE_NAME)
[
class_<
table
,bases<
properties::id_property
,properties::name_property
,properties::database_property
,field_container
>
,table_shared_ptr
>("table")
.def("get_pk", &table::get_primary_key)
.def("get_field", &table::get_field)
.def("add_pk", &table::add_primary_key)
.def("add_fk", add_foreign_key)
.def("add_field", &table::add_field)
.def("set_pk", set_primary_key_fields )
.def("set_pk", set_primary_key_field )
.def("set_pk", set_primary_key_string )
.def("add_u", add_unique_fields)
.def("add_u", add_unique_field)
.def("add_u", add_unique_string)
.def("get_create_statement", &table::get_create_statement )
.def("get_alter_create_statement", &table::get_alter_create_statement )
.def("get_unique_statement", &table::get_unique_statement)
.def("get_alter_primary_key", &table::get_alter_primary_key)
.def("get_alter_foreign_keys", &table::get_alter_foreign_keys)
.def("get_alter_unique_fields", &table::get_alter_unique_fields)
.def("set_field_prefix", &table::set_field_prefix)
];
return L;
};
}; // lua
}; // bindings
}; // sqlpp