From e459c760ef5d2b40662ea18c7901e7842cf7641a Mon Sep 17 00:00:00 2001 From: Zach Musgrave Date: Tue, 8 Oct 2024 17:04:50 -0700 Subject: [PATCH 1/3] Schema-specific show tables --- sql/planbuilder/show.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/sql/planbuilder/show.go b/sql/planbuilder/show.go index 418235a2a7..f7325ebadd 100644 --- a/sql/planbuilder/show.go +++ b/sql/planbuilder/show.go @@ -612,10 +612,12 @@ func (b *Builder) buildShowAllTables(inScope *scope, s *ast.Show) (outScope *sco outScope = inScope.push() var dbName string + var schemaName string var filter sql.Expression var asOf sql.Expression if s.ShowTablesOpt != nil { dbName = s.ShowTablesOpt.DbName + schemaName = s.ShowTablesOpt.SchemaName if s.ShowTablesOpt.AsOf != nil { asOf = b.buildAsOfExpr(inScope, s.ShowTablesOpt.AsOf) } @@ -625,6 +627,25 @@ func (b *Builder) buildShowAllTables(inScope *scope, s *ast.Show) (outScope *sco dbName = b.ctx.GetCurrentDatabase() } db := b.resolveDb(dbName) + + if schemaName != "" { + sdb, ok := db.(sql.SchemaDatabase) + if !ok { + err := sql.ErrDatabaseSchemasNotSupported.New(db.Name()) + b.handleErr(err) + } + + s, ok, err := sdb.GetSchema(b.ctx, schemaName) + if err != nil { + b.handleErr(err) + } + if !ok { + err := sql.ErrDatabaseSchemaNotFound.New(schemaName) + b.handleErr(err) + } + + db = s + } b.qFlags.Set(sql.QFlagSetDatabase) showTabs := plan.NewShowTables(db, s.Full, asOf) From fac5030c5cdc340131053d4b7c28bbf31f8e68d3 Mon Sep 17 00:00:00 2001 From: Zach Musgrave Date: Wed, 9 Oct 2024 09:14:07 -0700 Subject: [PATCH 2/3] Upgrade vitess --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 45544ab7a4..cdc24ab5bd 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( github.com/dolthub/go-icu-regex v0.0.0-20240916130659-0118adc6b662 github.com/dolthub/jsonpath v0.0.2-0.20240227200619-19675ab05c71 github.com/dolthub/sqllogictest/go v0.0.0-20201107003712-816f3ae12d81 - github.com/dolthub/vitess v0.0.0-20241002230050-2c2ea65cf324 + github.com/dolthub/vitess v0.0.0-20241009160728-54c0746cbff7 github.com/go-kit/kit v0.10.0 github.com/go-sql-driver/mysql v1.7.2-0.20231213112541-0004702b931d github.com/gocraft/dbr/v2 v2.7.2 diff --git a/go.sum b/go.sum index ba678884fe..8ff132713b 100644 --- a/go.sum +++ b/go.sum @@ -58,8 +58,8 @@ github.com/dolthub/jsonpath v0.0.2-0.20240227200619-19675ab05c71 h1:bMGS25NWAGTE github.com/dolthub/jsonpath v0.0.2-0.20240227200619-19675ab05c71/go.mod h1:2/2zjLQ/JOOSbbSboojeg+cAwcRV0fDLzIiWch/lhqI= github.com/dolthub/sqllogictest/go v0.0.0-20201107003712-816f3ae12d81 h1:7/v8q9XGFa6q5Ap4Z/OhNkAMBaK5YeuEzwJt+NZdhiE= github.com/dolthub/sqllogictest/go v0.0.0-20201107003712-816f3ae12d81/go.mod h1:siLfyv2c92W1eN/R4QqG/+RjjX5W2+gCTRjZxBjI3TY= -github.com/dolthub/vitess v0.0.0-20241002230050-2c2ea65cf324 h1:OO1XBXmBM3HBJfbwEwsj8h0m/bwYKIgFgGN8d+S+vrw= -github.com/dolthub/vitess v0.0.0-20241002230050-2c2ea65cf324/go.mod h1:uBvlRluuL+SbEWTCZ68o0xvsdYZER3CEG/35INdzfJM= +github.com/dolthub/vitess v0.0.0-20241009160728-54c0746cbff7 h1:mepdzTqvr0ZAbyOEsdgLg/nJ2qQzLJIwHD7xityHzz4= +github.com/dolthub/vitess v0.0.0-20241009160728-54c0746cbff7/go.mod h1:uBvlRluuL+SbEWTCZ68o0xvsdYZER3CEG/35INdzfJM= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= From 8287a581e1a954a81e23f0cbad09efebe8b89457 Mon Sep 17 00:00:00 2001 From: zachmu Date: Wed, 9 Oct 2024 16:16:51 +0000 Subject: [PATCH 3/3] [ga-format-pr] Run ./format_repo.sh to fix formatting --- sql/planbuilder/show.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sql/planbuilder/show.go b/sql/planbuilder/show.go index f7325ebadd..b9859f15a1 100644 --- a/sql/planbuilder/show.go +++ b/sql/planbuilder/show.go @@ -627,7 +627,7 @@ func (b *Builder) buildShowAllTables(inScope *scope, s *ast.Show) (outScope *sco dbName = b.ctx.GetCurrentDatabase() } db := b.resolveDb(dbName) - + if schemaName != "" { sdb, ok := db.(sql.SchemaDatabase) if !ok { @@ -643,7 +643,7 @@ func (b *Builder) buildShowAllTables(inScope *scope, s *ast.Show) (outScope *sco err := sql.ErrDatabaseSchemaNotFound.New(schemaName) b.handleErr(err) } - + db = s }