Simplified database creation
This commit is contained in:
@@ -1,13 +1,6 @@
|
|||||||
#include <stdlib.h>
|
#include "modb_database.h"
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <errno.h>
|
|
||||||
|
|
||||||
#include "modb_management.h"
|
|
||||||
#include "strext.h"
|
|
||||||
|
|
||||||
#include "modb_p.h"
|
#include "modb_p.h"
|
||||||
#include "modb_management_p.h"
|
#include "modb_database_p.h"
|
||||||
|
|
||||||
|
|
||||||
int modbUse(stored_conn *sconn, modb_ref *modb, int override)
|
int modbUse(stored_conn *sconn, modb_ref *modb, int override)
|
||||||
@@ -24,87 +17,40 @@ void modbReleaseUse(stored_conn *sconn)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int modbCreate(stored_conn *sconn, modb_ref *modb)
|
int modbCreate(stored_conn *sconn, modb_ref *modb, column_data **col_data, size_t n_cols)
|
||||||
{
|
{
|
||||||
if (createSysTable(sconn, modb) == (uint64_t)-1) {
|
int err = (createSysTable(sconn, modb) == (uint64_t)-1)
|
||||||
return 0;
|
|| (createMetaTable(sconn, modb) == (uint64_t)-1)
|
||||||
}
|
|| (createObjectsTable(sconn, modb) == (uint64_t)-1)
|
||||||
if (createMetaTable(sconn, modb) == (uint64_t)-1) {
|
|| (createMDOGroupsTable(sconn, modb) == (uint64_t)-1)
|
||||||
destroyMODBTable(sconn, modb, SYS_TABLE, STR_LEN(SYS_TABLE));
|
|| (createUsersTable(sconn, modb) == (uint64_t)-1)
|
||||||
return 0;
|
|| (createGroupsTable(sconn, modb) == (uint64_t)-1)
|
||||||
}
|
|| (createUserGroupsTable(sconn, modb) == (uint64_t)-1);
|
||||||
if (createObjectsTable(sconn, modb) == (uint64_t)-1) {
|
|
||||||
destroyMODBTable(sconn, modb, META_TABLE, STR_LEN(META_TABLE));
|
if (col_data != 0) {
|
||||||
destroyMODBTable(sconn, modb, SYS_TABLE, STR_LEN(SYS_TABLE));
|
err = err || createMetaExtTable(sconn, modb, col_data, n_cols);
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if (createMDOGroupsTable(sconn, modb) == (uint64_t)-1) {
|
|
||||||
destroyMODBTable(sconn, modb, OBJECTS_TABLE, STR_LEN(OBJECTS_TABLE));
|
|
||||||
destroyMODBTable(sconn, modb, META_TABLE, STR_LEN(META_TABLE));
|
|
||||||
destroyMODBTable(sconn, modb, SYS_TABLE, STR_LEN(SYS_TABLE));
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return !err;
|
||||||
}
|
}
|
||||||
int modbExists(stored_conn *sconn, modb_ref *modb)
|
int modbExists(stored_conn *sconn, modb_ref *modb)
|
||||||
{
|
{
|
||||||
return MODBTableExists(sconn, modb, META_TABLE, STR_LEN(META_TABLE));
|
return MODBTableExists(sconn, modb, META_TABLE, STR_LEN(META_TABLE));
|
||||||
}
|
}
|
||||||
|
int modbHasExtendedMetadata(stored_conn *sconn, modb_ref *modb)
|
||||||
|
{
|
||||||
|
return MODBTableExists(sconn, modb, META_EXT_TABLE, STR_LEN(META_EXT_TABLE));
|
||||||
|
}
|
||||||
int modbDestroy(stored_conn *sconn, modb_ref *modb)
|
int modbDestroy(stored_conn *sconn, modb_ref *modb)
|
||||||
{
|
{
|
||||||
uint64_t err = 0
|
uint64_t err = 0
|
||||||
| destroyMODBTable(sconn, modb, MDO_GROUPS_TABLE, STR_LEN(MDO_GROUPS_TABLE))
|
| destroyMODBTable(sconn, modb, MDO_GROUPS_TABLE, STR_LEN(MDO_GROUPS_TABLE))
|
||||||
| destroyMODBTable(sconn, modb, OBJECTS_TABLE, STR_LEN(OBJECTS_TABLE))
|
| destroyMODBTable(sconn, modb, OBJECTS_TABLE, STR_LEN(OBJECTS_TABLE))
|
||||||
| destroyMODBTable(sconn, modb, META_TABLE, STR_LEN(META_TABLE))
|
| destroyMODBTable(sconn, modb, META_TABLE, STR_LEN(META_TABLE))
|
||||||
| destroyMODBTable(sconn, modb, SYS_TABLE, STR_LEN(SYS_TABLE));
|
| destroyMODBTable(sconn, modb, SYS_TABLE, STR_LEN(SYS_TABLE))
|
||||||
return err == 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int modbAccountingCreate(stored_conn *sconn, modb_ref *modb)
|
|
||||||
{
|
|
||||||
if (createUsersTable(sconn, modb) == (uint64_t)-1) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if (createGroupsTable(sconn, modb) == (uint64_t)-1) {
|
|
||||||
destroyMODBTable(sconn, modb, USERS_TABLE, STR_LEN(USERS_TABLE));
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if (createUserGroupsTable(sconn, modb) == (uint64_t)-1) {
|
|
||||||
destroyMODBTable(sconn, modb, GROUPS_TABLE, STR_LEN(GROUPS_TABLE));
|
|
||||||
destroyMODBTable(sconn, modb, USERS_TABLE, STR_LEN(USERS_TABLE));
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
int modbAccountingExists(stored_conn *sconn, modb_ref *modb)
|
|
||||||
{
|
|
||||||
return MODBTableExists(sconn, modb, USERS_TABLE, STR_LEN(USERS_TABLE));
|
|
||||||
}
|
|
||||||
int modbAccountingDestroy(stored_conn *sconn, modb_ref *modb)
|
|
||||||
{
|
|
||||||
uint64_t err = 0
|
|
||||||
| destroyMODBTable(sconn, modb, USER_GROUPS_TABLE, STR_LEN(USER_GROUPS_TABLE))
|
| destroyMODBTable(sconn, modb, USER_GROUPS_TABLE, STR_LEN(USER_GROUPS_TABLE))
|
||||||
| destroyMODBTable(sconn, modb, GROUPS_TABLE, STR_LEN(GROUPS_TABLE))
|
| destroyMODBTable(sconn, modb, GROUPS_TABLE, STR_LEN(GROUPS_TABLE))
|
||||||
| destroyMODBTable(sconn, modb, USERS_TABLE, STR_LEN(USERS_TABLE));
|
| destroyMODBTable(sconn, modb, USERS_TABLE, STR_LEN(USERS_TABLE))
|
||||||
return err == 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int modbMetaExtCreate(stored_conn *sconn, modb_ref *modb,
|
|
||||||
column_data **col_data, size_t cols)
|
|
||||||
{
|
|
||||||
uint64_t err = 0
|
|
||||||
| createMetaExtTable(sconn, modb, col_data, cols);
|
|
||||||
return err == 0;
|
|
||||||
}
|
|
||||||
int modbMetaExtExists(stored_conn *sconn, modb_ref *modb)
|
|
||||||
{
|
|
||||||
return MODBTableExists(sconn, modb, META_EXT_TABLE, STR_LEN(META_EXT_TABLE));
|
|
||||||
}
|
|
||||||
int modbMetaExtDestroy(stored_conn *sconn, modb_ref *modb)
|
|
||||||
{
|
|
||||||
uint64_t err = 0
|
|
||||||
| destroyMODBTable(sconn, modb, META_EXT_TABLE, STR_LEN(META_EXT_TABLE));
|
| destroyMODBTable(sconn, modb, META_EXT_TABLE, STR_LEN(META_EXT_TABLE));
|
||||||
return err == 0;
|
return err == 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#ifndef H__MODB_MANAGEMENT__
|
#ifndef H__MODB_DATABASE__
|
||||||
#define H__MODB_MANAGEMENT__
|
#define H__MODB_DATABASE__
|
||||||
|
|
||||||
#include "database.h"
|
#include "database.h"
|
||||||
#include "modb_types.h"
|
#include "modb_types.h"
|
||||||
@@ -12,18 +12,10 @@ void modbReleaseUse(stored_conn *sconn);
|
|||||||
|
|
||||||
|
|
||||||
// MODB instance
|
// MODB instance
|
||||||
int modbCreate(stored_conn *sconn, modb_ref *modb);
|
int modbCreate(stored_conn *sconn, modb_ref *modb, column_data **col_data, size_t n_cols);
|
||||||
int modbExists(stored_conn *sconn, modb_ref *modb);
|
int modbExists(stored_conn *sconn, modb_ref *modb);
|
||||||
|
int modbHasExtendedMetadata(stored_conn *sconn, modb_ref *modb);
|
||||||
int modbDestroy(stored_conn *sconn, modb_ref *modb);
|
int modbDestroy(stored_conn *sconn, modb_ref *modb);
|
||||||
|
|
||||||
int modbAccountingCreate(stored_conn *sconn, modb_ref *modb);
|
|
||||||
int modbAccountingExists(stored_conn *sconn, modb_ref *modb);
|
|
||||||
int modbAccountingDestroy(stored_conn *sconn, modb_ref *modb);
|
|
||||||
|
|
||||||
int modbMetaExtCreate(stored_conn *sconn, modb_ref *modb,
|
#endif // H__MODB_DATABASE__
|
||||||
column_data **col_data, size_t cols);
|
|
||||||
int modbMetaExtExists(stored_conn *sconn, modb_ref *modb);
|
|
||||||
int modbMetaExtDestroy(stored_conn *sconn, modb_ref *modb);
|
|
||||||
|
|
||||||
|
|
||||||
#endif // H__MODB_MANAGEMENT__
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
#include "modb_management_p.h"
|
#include "modb_database_p.h"
|
||||||
#include "modb_p.h"
|
#include "modb_p.h"
|
||||||
#include "strext.h"
|
#include "strext.h"
|
||||||
|
|
||||||
@@ -224,7 +224,7 @@ uint64_t destroyMODBTable(stored_conn *sconn, modb_ref *modb, const char *suffix
|
|||||||
if ((sb = strbld_create()) == 0) {
|
if ((sb = strbld_create()) == 0) {
|
||||||
return (uint64_t)-1;
|
return (uint64_t)-1;
|
||||||
}
|
}
|
||||||
strbld_str(sb, "DROP TABLE ", 0);
|
strbld_str(sb, "DROP TABLE IF EXISTS ", 0);
|
||||||
modbTableName_sb(sb, modb, suffix, suffix_len, '`');
|
modbTableName_sb(sb, modb, suffix, suffix_len, '`');
|
||||||
if (strbld_finalize_or_destroy(&sb, &qry, &qry_len) != 0) {
|
if (strbld_finalize_or_destroy(&sb, &qry, &qry_len) != 0) {
|
||||||
return (uint64_t)-1;
|
return (uint64_t)-1;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#ifndef H__MODB_MANAGEMENT_P__
|
#ifndef H__MODB_DATABASE_P__
|
||||||
#define H__MODB_MANAGEMENT_P__
|
#define H__MODB_DATABASE_P__
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
@@ -17,6 +17,7 @@ uint64_t createMODBTable(stored_conn *sconn, modb_ref *modb, const char *suffix,
|
|||||||
int MODBTableExists(stored_conn *sconn, modb_ref *modb, const char *suffix, size_t suffix_len);
|
int MODBTableExists(stored_conn *sconn, modb_ref *modb, const char *suffix, size_t suffix_len);
|
||||||
uint64_t destroyMODBTable(stored_conn *sconn, modb_ref *modb, const char *suffix, size_t suffix_len);
|
uint64_t destroyMODBTable(stored_conn *sconn, modb_ref *modb, const char *suffix, size_t suffix_len);
|
||||||
|
|
||||||
|
|
||||||
uint64_t createSysTable(stored_conn *sconn, modb_ref *modb);
|
uint64_t createSysTable(stored_conn *sconn, modb_ref *modb);
|
||||||
uint64_t createMetaTable(stored_conn *sconn, modb_ref *modb);
|
uint64_t createMetaTable(stored_conn *sconn, modb_ref *modb);
|
||||||
uint64_t createObjectsTable(stored_conn *sconn, modb_ref *modb);
|
uint64_t createObjectsTable(stored_conn *sconn, modb_ref *modb);
|
||||||
@@ -29,4 +30,4 @@ uint64_t createUserGroupsTable(stored_conn *sconn, modb_ref *modb);
|
|||||||
uint64_t createMetaExtTable(stored_conn *sconn, modb_ref *modb,
|
uint64_t createMetaExtTable(stored_conn *sconn, modb_ref *modb,
|
||||||
column_data **col_data, size_t cols);
|
column_data **col_data, size_t cols);
|
||||||
|
|
||||||
#endif // H__MODB_MANAGEMENT_P__
|
#endif // H__MODB_DATABASE_P__
|
||||||
|
|||||||
Reference in New Issue
Block a user