syncbase: Change db.createTable/deleteTable to table.create/destroy

As part of usability fixes documented on https://v.io/i/672

MultiPart: 2/8
Change-Id: I6176da7de9554f82884ed82c3929998c846e156d
diff --git a/cmd/sb51/internal/demodb/db.go b/cmd/sb51/internal/demodb/db.go
index 9c073c1..ba1ce45 100644
--- a/cmd/sb51/internal/demodb/db.go
+++ b/cmd/sb51/internal/demodb/db.go
@@ -111,15 +111,15 @@
 	},
 }
 
-// Creates demo tables in the provided database. Tables are deleted and
+// Creates demo tables in the provided database. Tables are destroyed and
 // recreated if they already exist.
 func PopulateDemoDB(ctx *context.T, db nosql.Database) error {
 	for i, t := range demoTables {
 		tn := demoPrefix + t.name
-		if err := db.DeleteTable(ctx, tn); err != nil {
-			return fmt.Errorf("failed deleting table %s (%d/%d): %v", tn, i+1, len(demoTables), err)
+		if err := db.Table(tn).Destroy(ctx); err != nil {
+			return fmt.Errorf("failed destroying table %s (%d/%d): %v", tn, i+1, len(demoTables), err)
 		}
-		if err := db.CreateTable(ctx, tn, nil); err != nil {
+		if err := db.Table(tn).Create(ctx, nil); err != nil {
 			return fmt.Errorf("failed creating table %s (%d/%d): %v", tn, i+1, len(demoTables), err)
 		}
 		if err := nosql.RunInBatch(ctx, db, wire.BatchOptions{}, func(db nosql.BatchDatabase) error {
diff --git a/services/syncbase/server/mojo_impl.go b/services/syncbase/server/mojo_impl.go
index 6846468..5cd963b 100644
--- a/services/syncbase/server/mojo_impl.go
+++ b/services/syncbase/server/mojo_impl.go
@@ -401,13 +401,13 @@
 	return toMojoError(err), nil
 }
 
-func (m *mojoImpl) TableDelete(name string) (mojom.Error, error) {
-	ctx, call := m.newCtxCall(name, methodDesc(nosqlwire.TableDesc, "Delete"))
+func (m *mojoImpl) TableDestroy(name string) (mojom.Error, error) {
+	ctx, call := m.newCtxCall(name, methodDesc(nosqlwire.TableDesc, "Destroy"))
 	stub, err := m.getTable(ctx, call, name)
 	if err != nil {
 		return toMojoError(err), nil
 	}
-	err = stub.Delete(ctx, call, NoSchema)
+	err = stub.Destroy(ctx, call, NoSchema)
 	return toMojoError(err), nil
 }
 
diff --git a/services/syncbase/server/nosql/table.go b/services/syncbase/server/nosql/table.go
index d4d07d4..cb01b2e 100644
--- a/services/syncbase/server/nosql/table.go
+++ b/services/syncbase/server/nosql/table.go
@@ -64,7 +64,7 @@
 	})
 }
 
-func (t *tableReq) Delete(ctx *context.T, call rpc.ServerCall, schemaVersion int32) error {
+func (t *tableReq) Destroy(ctx *context.T, call rpc.ServerCall, schemaVersion int32) error {
 	if t.d.batchId != nil {
 		return wire.NewErrBoundToBatch(ctx)
 	}
diff --git a/services/syncbase/testutil/layer.go b/services/syncbase/testutil/layer.go
index 55e49f1..acf9dbd 100644
--- a/services/syncbase/testutil/layer.go
+++ b/services/syncbase/testutil/layer.go
@@ -110,10 +110,10 @@
 
 	assertExists(t, ctx, self, "self", true)
 
-	// By default, self perms are copied from parent, so self.Delete should
+	// By default, self perms are copied from parent, so self.Destroy should
 	// succeed.
-	if err := self.Delete(ctx); err != nil {
-		t.Fatalf("self.Delete() failed: %v", err)
+	if err := self.Destroy(ctx); err != nil {
+		t.Fatalf("self.Destroy() failed: %v", err)
 	}
 
 	assertExists(t, ctx, self, "self", false)
@@ -146,8 +146,8 @@
 	if err := self2.SetPermissions(ctx, perms, ""); err != nil {
 		t.Fatalf("self2.SetPermissions() failed: %v", err)
 	}
-	if err := self2.Delete(ctx); verror.ErrorID(err) != verror.ErrNoAccess.ID {
-		t.Fatalf("self2.Delete() should have failed: %v", err)
+	if err := self2.Destroy(ctx); verror.ErrorID(err) != verror.ErrNoAccess.ID {
+		t.Fatalf("self2.Destroy() should have failed: %v", err)
 	}
 
 	assertExists(t, ctx, self2, "self2", true)
@@ -158,15 +158,15 @@
 	if err := parent.SetPermissions(ctx, perms, ""); err != nil {
 		t.Fatalf("parent.SetPermissions() failed: %v", err)
 	}
-	if err := self.Delete(ctx); err != nil {
-		t.Fatalf("self.Delete() failed: %v", err)
+	if err := self.Destroy(ctx); err != nil {
+		t.Fatalf("self.Destroy() failed: %v", err)
 	}
 
 	assertExists(t, ctx, self, "self", false)
 
 	// Test that delete is idempotent.
-	if err := self.Delete(ctx); err != nil {
-		t.Fatalf("self.Delete() failed: %v", err)
+	if err := self.Destroy(ctx); err != nil {
+		t.Fatalf("self.Destroy() failed: %v", err)
 	}
 
 	assertExists(t, ctx, self, "self", false)
@@ -314,9 +314,7 @@
 type layer interface {
 	util.AccessController
 	Create(ctx *context.T, perms access.Permissions) error
-	// TODO(aghassemi): Rename to Destroy and drop Destroy impls below once
-	// Table.Delete is renamed to Destroy.
-	Delete(ctx *context.T) error
+	Destroy(ctx *context.T) error
 	Exists(ctx *context.T) (bool, error)
 	ListChildren(ctx *context.T) ([]string, error)
 	Child(childName string) layer
@@ -329,7 +327,7 @@
 func (s *service) Create(ctx *context.T, perms access.Permissions) error {
 	panic(notAvailable)
 }
-func (s *service) Delete(ctx *context.T) error {
+func (s *service) Destroy(ctx *context.T) error {
 	panic(notAvailable)
 }
 func (s *service) Exists(ctx *context.T) (bool, error) {
@@ -352,9 +350,6 @@
 func (a *app) Child(childName string) layer {
 	return makeLayer(a.NoSQLDatabase(childName, nil))
 }
-func (a *app) Delete(ctx *context.T) error {
-	return a.Destroy(ctx)
-}
 
 type database struct {
 	nosql.Database
@@ -366,9 +361,6 @@
 func (d *database) Child(childName string) layer {
 	return &table{Table: d.Table(childName), d: d}
 }
-func (d *database) Delete(ctx *context.T) error {
-	return d.Destroy(ctx)
-}
 
 type table struct {
 	nosql.Table
@@ -376,10 +368,7 @@
 }
 
 func (t *table) Create(ctx *context.T, perms access.Permissions) error {
-	return t.d.CreateTable(ctx, t.Name(), perms)
-}
-func (t *table) Delete(ctx *context.T) error {
-	return t.d.DeleteTable(ctx, t.Name())
+	return t.Table.Create(ctx, perms)
 }
 func (t *table) SetPermissions(ctx *context.T, perms access.Permissions, version string) error {
 	return t.Table.SetPermissions(ctx, nosql.Prefix(""), perms)
@@ -408,7 +397,7 @@
 	}
 	return r.Put(ctx, true)
 }
-func (r *row) Delete(ctx *context.T) error {
+func (r *row) Destroy(ctx *context.T) error {
 	return r.Delete(ctx)
 }
 func (r *row) SetPermissions(ctx *context.T, perms access.Permissions, version string) error {
diff --git a/services/syncbase/testutil/util.go b/services/syncbase/testutil/util.go
index 658794e..a603d60 100644
--- a/services/syncbase/testutil/util.go
+++ b/services/syncbase/testutil/util.go
@@ -56,8 +56,8 @@
 }
 
 func CreateTable(t *testing.T, ctx *context.T, d nosql.Database, name string) nosql.Table {
-	if err := d.CreateTable(ctx, name, nil); err != nil {
-		Fatalf(t, "d.CreateTable() failed: %v", err)
+	if err := d.Table(name).Create(ctx, nil); err != nil {
+		Fatalf(t, "d.Table(name).Create() failed: %v", err)
 	}
 	return d.Table(name)
 }