~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/schema_dictionary/schemas.cc

  • Committer: Brian Aker
  • Date: 2010-12-08 22:35:56 UTC
  • mfrom: (1819.9.158 update-innobase)
  • Revision ID: brian@tangent.org-20101208223556-37mi4omqg7lkjzf3
Merge in Stewart's changes, 1.3 changes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* - mode: c; c-basic-offset: 2; indent-tabs-mode: nil; -*-
 
2
 *  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
 
3
 *
 
4
 *  Copyright (C) 2010 Sun Microsystems
 
5
 *
 
6
 *  This program is free software; you can redistribute it and/or modify
 
7
 *  it under the terms of the GNU General Public License as published by
 
8
 *  the Free Software Foundation; either version 2 of the License, or
 
9
 *  (at your option) any later version.
 
10
 *
 
11
 *  This program 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 this program; if not, write to the Free Software
 
18
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
19
 */
 
20
 
 
21
#include "config.h"
 
22
#include "plugin/schema_dictionary/dictionary.h"
 
23
 
 
24
using namespace std;
 
25
using namespace drizzled;
 
26
 
 
27
SchemasTool::SchemasTool() :
 
28
  DataDictionary("SCHEMAS")
 
29
{
 
30
  add_field("SCHEMA_NAME");
 
31
  add_field("DEFAULT_COLLATION_NAME");
 
32
  add_field("SCHEMA_CREATION_TIME");
 
33
  add_field("SCHEMA_UPDATE_TIME");
 
34
  add_field("SCHEMA_UUID", plugin::TableFunction::STRING, 36, true);
 
35
  add_field("SCHEMA_VERSION", plugin::TableFunction::NUMBER, 0, true);
 
36
  add_field("SCHEMA_USE_COUNT", plugin::TableFunction::NUMBER, 0, true);
 
37
}
 
38
 
 
39
SchemasTool::Generator::Generator(drizzled::Field **arg) :
 
40
  DataDictionary::Generator(arg),
 
41
  schema_generator(getSession())
 
42
{
 
43
}
 
44
 
 
45
bool SchemasTool::Generator::populate()
 
46
{
 
47
  drizzled::message::schema::shared_ptr schema_ptr;
 
48
  while ((schema_ptr= schema_generator))
 
49
  {
 
50
    /* SCHEMA_NAME */
 
51
    push(schema_ptr->name());
 
52
 
 
53
    /* DEFAULT_COLLATION_NAME */
 
54
    push(schema_ptr->collation());
 
55
 
 
56
    /* SCHEMA_CREATION_TIME */
 
57
    time_t time_arg= schema_ptr->creation_timestamp();
 
58
    char buffer[40];
 
59
    struct tm tm_buffer;
 
60
 
 
61
    localtime_r(&time_arg, &tm_buffer);
 
62
    strftime(buffer, sizeof(buffer), "%a %b %d %H:%M:%S %Y", &tm_buffer);
 
63
    push(buffer);
 
64
 
 
65
    /* SCHEMA_UPDATE_TIME */
 
66
    time_arg= schema_ptr->update_timestamp();
 
67
    localtime_r(&time_arg, &tm_buffer);
 
68
    strftime(buffer, sizeof(buffer), "%a %b %d %H:%M:%S %Y", &tm_buffer);
 
69
    push(buffer);
 
70
 
 
71
    /* SCHEMA_UUID */
 
72
    push(schema_ptr->uuid());
 
73
 
 
74
    /* SCHEMA_VERSION */
 
75
    push(schema_ptr->version());
 
76
 
 
77
    /* SCHEMA_USE_COUNT */
 
78
    push(schema_ptr->version());
 
79
    return true;
 
80
  }
 
81
 
 
82
  return false;
 
83
}