summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Pfaff <blp@nicira.com>2011-06-01 16:14:46 -0700
committerBen Pfaff <blp@nicira.com>2011-06-06 08:58:02 -0700
commit1cb29ab050c601448a89eb7311a9f07095921bbd (patch)
tree0b7fad0cb8643886cfc8c5707f7a9a8c908548e0
parent9d9a0a0452a957472b0f3a9c132aea19cfb4e568 (diff)
downloadopenvswitch-1cb29ab050c601448a89eb7311a9f07095921bbd.tar.gz
ovsdb: Make ovsdb_column_set_from_json() take table schema instead of table.
This function took a struct ovsdb_table but only used the 'schema' member. An upcoming patch needs to parse a column set when only the schema is available, so to prepare for that this patch changes ovsdb_column_set_from_json() to only take the schema that it really needs.
-rw-r--r--ovsdb/column.c8
-rw-r--r--ovsdb/column.h9
-rw-r--r--ovsdb/execution.c8
-rw-r--r--tests/test-ovsdb.c3
4 files changed, 16 insertions, 12 deletions
diff --git a/ovsdb/column.c b/ovsdb/column.c
index a22e1a237..be346e4d6 100644
--- a/ovsdb/column.c
+++ b/ovsdb/column.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2009, 2010 Nicira Networks
+/* Copyright (c) 2009, 2010, 2011 Nicira Networks
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -136,14 +136,14 @@ ovsdb_column_set_clone(struct ovsdb_column_set *new,
struct ovsdb_error *
ovsdb_column_set_from_json(const struct json *json,
- const struct ovsdb_table *table,
+ const struct ovsdb_table_schema *schema,
struct ovsdb_column_set *set)
{
ovsdb_column_set_init(set);
if (!json) {
struct shash_node *node;
- SHASH_FOR_EACH (node, &table->schema->columns) {
+ SHASH_FOR_EACH (node, &schema->columns) {
const struct ovsdb_column *column = node->data;
ovsdb_column_set_add(set, column);
}
@@ -167,7 +167,7 @@ ovsdb_column_set_from_json(const struct json *json,
}
s = json->u.array.elems[i]->u.string;
- column = shash_find_data(&table->schema->columns, s);
+ column = shash_find_data(&schema->columns, s);
if (!column) {
error = ovsdb_syntax_error(json, NULL, "%s is not a valid "
"column name", s);
diff --git a/ovsdb/column.h b/ovsdb/column.h
index b6f324c0f..d90c12adb 100644
--- a/ovsdb/column.h
+++ b/ovsdb/column.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2009, 2010 Nicira Networks
+/* Copyright (c) 2009, 2010, 2011 Nicira Networks
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,6 +21,7 @@
#include "ovsdb-types.h"
struct ovsdb_table;
+struct ovsdb_table_schema;
/* A column or a column schema (currently there is no distinction). */
struct ovsdb_column {
@@ -68,9 +69,9 @@ void ovsdb_column_set_init(struct ovsdb_column_set *);
void ovsdb_column_set_destroy(struct ovsdb_column_set *);
void ovsdb_column_set_clone(struct ovsdb_column_set *,
const struct ovsdb_column_set *);
-struct ovsdb_error *ovsdb_column_set_from_json(const struct json *,
- const struct ovsdb_table *,
- struct ovsdb_column_set *);
+struct ovsdb_error *ovsdb_column_set_from_json(
+ const struct json *, const struct ovsdb_table_schema *,
+ struct ovsdb_column_set *);
struct json *ovsdb_column_set_to_json(const struct ovsdb_column_set *);
void ovsdb_column_set_add(struct ovsdb_column_set *,
diff --git a/ovsdb/execution.c b/ovsdb/execution.c
index cb1bec3ee..416016fd9 100644
--- a/ovsdb/execution.c
+++ b/ovsdb/execution.c
@@ -364,10 +364,11 @@ ovsdb_execute_select(struct ovsdb_execution *x, struct ovsdb_parser *parser,
&condition);
}
if (!error) {
- error = ovsdb_column_set_from_json(columns_json, table, &columns);
+ error = ovsdb_column_set_from_json(columns_json, table->schema,
+ &columns);
}
if (!error) {
- error = ovsdb_column_set_from_json(sort_json, table, &sort);
+ error = ovsdb_column_set_from_json(sort_json, table->schema, &sort);
}
if (!error) {
struct ovsdb_row_set rows = OVSDB_ROW_SET_INITIALIZER;
@@ -606,7 +607,8 @@ ovsdb_execute_wait(struct ovsdb_execution *x, struct ovsdb_parser *parser,
&condition);
}
if (!error) {
- error = ovsdb_column_set_from_json(columns_json, table, &columns);
+ error = ovsdb_column_set_from_json(columns_json, table->schema,
+ &columns);
}
if (!error) {
if (timeout) {
diff --git a/tests/test-ovsdb.c b/tests/test-ovsdb.c
index 8fe172767..5b8f4519c 100644
--- a/tests/test-ovsdb.c
+++ b/tests/test-ovsdb.c
@@ -1109,7 +1109,8 @@ do_query_distinct(int argc OVS_UNUSED, char *argv[])
/* Parse column set. */
json = parse_json(argv[4]);
- check_ovsdb_error(ovsdb_column_set_from_json(json, table, &columns));
+ check_ovsdb_error(ovsdb_column_set_from_json(json, table->schema,
+ &columns));
json_destroy(json);
/* Parse rows, add to table. */