+struct ovsdb_table_schema *
+ovsdb_table_schema_clone(const struct ovsdb_table_schema *old)
+{
+ struct ovsdb_table_schema *new;
+ struct shash_node *node;
+
+ new = ovsdb_table_schema_create(old->name, old->mutable, old->max_rows);
+ SHASH_FOR_EACH (node, &old->columns) {
+ const struct ovsdb_column *column = node->data;
+
+ if (column->name[0] == '_') {
+ /* Added automatically by ovsdb_table_schema_create(). */
+ continue;
+ }
+
+ add_column(new, ovsdb_column_clone(column));
+ }
+ return new;
+}
+