From 1cb29ab050c601448a89eb7311a9f07095921bbd Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Wed, 1 Jun 2011 16:14:46 -0700 Subject: 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. --- ovsdb/column.c | 8 ++++---- ovsdb/column.h | 9 +++++---- ovsdb/execution.c | 8 +++++--- 3 files changed, 14 insertions(+), 11 deletions(-) (limited to 'ovsdb') 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) { -- cgit v1.2.1