Merge pull request #4785 from mcuadros/show-schemas

sqlparser: support for SHOW SCHEMAS
This commit is contained in:
Sugu Sougoumarane 2019-04-23 09:47:49 -07:00 коммит произвёл GitHub
Родитель c585c8f310 788434ff5f
Коммит 6c55f2783e
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
6 изменённых файлов: 2538 добавлений и 2487 удалений

Просмотреть файл

@ -1120,6 +1120,9 @@ var (
}, {
input: "show databases",
output: "show databases",
}, {
input: "show schemas",
output: "show schemas",
}, {
input: "show engine INNODB",
output: "show engine",

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -181,7 +181,7 @@ func skipToEnd(yylex interface{}) {
%token <bytes> NULLX AUTO_INCREMENT APPROXNUM SIGNED UNSIGNED ZEROFILL
// Supported SHOW tokens
%token <bytes> COLLATION DATABASES TABLES VITESS_KEYSPACES VITESS_SHARDS VITESS_TABLETS VSCHEMA VSCHEMA_TABLES VITESS_TARGET FULL PROCESSLIST COLUMNS FIELDS ENGINES PLUGINS
%token <bytes> COLLATION DATABASES SCHEMAS TABLES VITESS_KEYSPACES VITESS_SHARDS VITESS_TABLETS VSCHEMA VSCHEMA_TABLES VITESS_TARGET FULL PROCESSLIST COLUMNS FIELDS ENGINES PLUGINS
// SET tokens
%token <bytes> NAMES CHARSET GLOBAL SESSION ISOLATION LEVEL READ WRITE ONLY REPEATABLE COMMITTED UNCOMMITTED SERIALIZABLE
@ -1485,6 +1485,10 @@ show_statement:
{
$$ = &Show{Type: string($2)}
}
| SHOW SCHEMAS ddl_skip_to_end
{
$$ = &Show{Type: string($2)}
}
| SHOW ENGINES
{
$$ = &Show{Type: string($2)}
@ -3364,6 +3368,7 @@ non_reserved_keyword:
| REPEATABLE
| RESTRICT
| ROLLBACK
| SCHEMAS
| SESSION
| SERIALIZABLE
| SHARE

Просмотреть файл

@ -318,7 +318,7 @@ var keywords = map[string]int{
"rlike": REGEXP,
"rollback": ROLLBACK,
"schema": SCHEMA,
"schemas": UNUSED,
"schemas": SCHEMAS,
"second_microsecond": UNUSED,
"select": SELECT,
"sensitive": UNUSED,

Просмотреть файл

@ -775,7 +775,7 @@ func (e *Executor) handleShow(ctx context.Context, safeSession *SafeSession, sql
show.ShowTablesOpt.DbName = ""
}
sql = sqlparser.String(show)
case sqlparser.KeywordString(sqlparser.DATABASES), sqlparser.KeywordString(sqlparser.VITESS_KEYSPACES):
case sqlparser.KeywordString(sqlparser.DATABASES), sqlparser.KeywordString(sqlparser.SCHEMAS), sqlparser.KeywordString(sqlparser.VITESS_KEYSPACES):
keyspaces, err := e.resolver.resolver.GetAllKeyspaces(ctx)
if err != nil {
return nil, err

Просмотреть файл

@ -599,7 +599,7 @@ func TestExecutorShow(t *testing.T) {
executor, _, _, sbclookup := createExecutorEnv()
session := NewSafeSession(&vtgatepb.Session{TargetString: "@master"})
for _, query := range []string{"show databases", "show vitess_keyspaces"} {
for _, query := range []string{"show databases", "show schemas", "show vitess_keyspaces"} {
qr, err := executor.Execute(context.Background(), "TestExecute", session, query, nil)
if err != nil {
t.Error(err)