InfiniSQL  v0.1.2-alpha
Massive Scale Transaction Processing
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Schema.cc
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2013 Mark Travis <mtravis15432+src@gmail.com>
3  * All rights reserved. No warranty, explicit or implicit, provided.
4  *
5  * This file is part of InfiniSQL(tm).
6  *
7  * InfiniSQL is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License version 3
9  * as published by the Free Software Foundation.
10  *
11  * InfiniSQL is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with InfiniSQL. If not, see <http://www.gnu.org/licenses/>.
18  */
19 
29 #include "Schema.h"
30 #line 31 "Schema.cc"
31 
32 Schema::Schema(int64_t domainidarg) : domainid(domainidarg), nexttableid(0)
33 {
34 }
35 
37 {
38 }
39 
40 // take the table's id, check it already doesn't exist
41 // return status, let the caller reply to ta, or whatever
42 int Schema::createTable(int64_t id)
43 {
44  if (tables.count(id)) // tableid exists
45  {
46  return BUILTIN_STATUS_NOTOK;
47  }
48 
49  tables[id] = new Table(id);
50  return BUILTIN_STATUS_OK;
51 }
52 
54 {
55  return ++nexttableid;
56 }