1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-08-07 03:22:57 +03:00

Merge pull request #1024 from LinuxJedi/collate_warn

MCOL-3721 Allow collate and warn on ORDER BY
This commit is contained in:
Roman Nozdrin
2020-02-11 19:28:07 +03:00
committed by Patrick LeBlanc
parent 3faa1600c3
commit e0cb60dcd2
3 changed files with 27 additions and 3 deletions

View File

@@ -171,6 +171,7 @@ FLOAT {return IDB_FLOAT;}
DOUBLE {return DOUBLE;} DOUBLE {return DOUBLE;}
REAL {return REAL;} REAL {return REAL;}
CHARSET {return CHARSET;} CHARSET {return CHARSET;}
COLLATE {return COLLATE;}
IF {return IDB_IF;} IF {return IDB_IF;}
EXISTS {return EXISTS;} EXISTS {return EXISTS;}
CHANGE {return CHANGE;} CHANGE {return CHANGE;}

View File

@@ -111,7 +111,7 @@ MATCH MAX_ROWS MEDIUMBLOB MEDIUMTEXT
MIN_ROWS MODIFY NO NOT NULL_TOK NUMBER NUMERIC ON PARTIAL PRECISION PRIMARY MIN_ROWS MODIFY NO NOT NULL_TOK NUMBER NUMERIC ON PARTIAL PRECISION PRIMARY
REFERENCES RENAME RESTRICT SET SMALLINT TABLE TEXT TINYBLOB TINYTEXT REFERENCES RENAME RESTRICT SET SMALLINT TABLE TEXT TINYBLOB TINYTEXT
TINYINT TO UNIQUE UNSIGNED UPDATE USER SESSION_USER SYSTEM_USER VARCHAR VARBINARY TINYINT TO UNIQUE UNSIGNED UPDATE USER SESSION_USER SYSTEM_USER VARCHAR VARBINARY
VARYING WITH ZONE DOUBLE IDB_FLOAT REAL CHARSET IDB_IF EXISTS CHANGE TRUNCATE VARYING WITH ZONE DOUBLE IDB_FLOAT REAL CHARSET COLLATE IDB_IF EXISTS CHANGE TRUNCATE
BOOL BOOLEAN MEDIUMINT TIMESTAMP BOOL BOOLEAN MEDIUMINT TIMESTAMP
%token <str> DQ_IDENT IDENT FCONST SCONST CP_SEARCH_CONDITION_TEXT ICONST DATE TIME %token <str> DQ_IDENT IDENT FCONST SCONST CP_SEARCH_CONDITION_TEXT ICONST DATE TIME
@@ -486,7 +486,13 @@ table_option:
| |
DEFAULT CHARSET opt_equal ident {$$ = new pair<string,string>("default charset", $4);} DEFAULT CHARSET opt_equal ident {$$ = new pair<string,string>("default charset", $4);}
| |
CHARSET opt_equal ident {$$ = new pair<string, string>("default charset", $3);}
|
DEFAULT IDB_CHAR SET opt_equal ident {$$ = new pair<string,string>("default charset", $5);} DEFAULT IDB_CHAR SET opt_equal ident {$$ = new pair<string,string>("default charset", $5);}
|
DEFAULT COLLATE opt_equal ident {$$ = new pair<string, string>("default collate", $4);}
|
COLLATE opt_equal ident {$$ = new pair<string, string>("default collate", $3);}
; ;
alter_table_statement: alter_table_statement:
@@ -726,13 +732,25 @@ optional_braces:
| '(' ')' {} | '(' ')' {}
; ;
opt_column_charset:
/* empty */ {}
|
IDB_CHAR SET ident {}
;
opt_column_collate:
/* empty */ {}
|
COLLATE ident {}
;
data_type: data_type:
character_string_type character_string_type opt_column_charset opt_column_collate
| binary_string_type | binary_string_type
| numeric_type | numeric_type
| datetime_type | datetime_type
| blob_type | blob_type
| text_type | text_type opt_column_charset opt_column_collate
| IDB_BLOB | IDB_BLOB
{ {
$$ = new ColumnType(DDL_BLOB); $$ = new ColumnType(DDL_BLOB);

View File

@@ -7562,6 +7562,11 @@ int getSelectPlan(gp_walk_info& gwi, SELECT_LEX& select_lex,
{ {
gwi.fatalParseError = true; gwi.fatalParseError = true;
} }
else if ((ord_item->type() == Item::FUNC_ITEM) && (((Item_func*)ord_item)->functype() == Item_func::COLLATE_FUNC))
{
push_warning(gwi.thd, Sql_condition::WARN_LEVEL_NOTE, WARN_OPTION_IGNORED, "COLLATE is ignored in ColumnStore");
continue;
}
else else
{ {
rc = buildReturnedColumn(ord_item, gwi, gwi.fatalParseError); rc = buildReturnedColumn(ord_item, gwi, gwi.fatalParseError);