[FEAT MERGE] GIS
This commit is contained in:
		@ -300,6 +300,7 @@ static const NonReservedKeyword Mysql_none_reserved_keywords[] =
 | 
			
		||||
  {"general", GENERAL},
 | 
			
		||||
  {"generated", GENERATED},
 | 
			
		||||
  {"geometry", GEOMETRY},
 | 
			
		||||
  {"geomcollection", GEOMCOLLECTION},
 | 
			
		||||
  {"geometrycollection", GEOMETRYCOLLECTION},
 | 
			
		||||
  {"get", GET},
 | 
			
		||||
  {"get_format", GET_FORMAT},
 | 
			
		||||
@ -778,6 +779,7 @@ static const NonReservedKeyword Mysql_none_reserved_keywords[] =
 | 
			
		||||
  {"sql_tsi_second", SQL_TSI_SECOND},
 | 
			
		||||
  {"sql_tsi_week", SQL_TSI_WEEK},
 | 
			
		||||
  {"sql_tsi_year", SQL_TSI_YEAR},
 | 
			
		||||
  {"srid", SRID},
 | 
			
		||||
  {"ssl", SSL},
 | 
			
		||||
  {"stacked", STACKED},
 | 
			
		||||
  {"standby", STANDBY},
 | 
			
		||||
 | 
			
		||||
@ -140,7 +140,8 @@ typedef struct _ParseNode
 | 
			
		||||
      uint16_t is_num_must_be_pos_: 1; //
 | 
			
		||||
      uint16_t is_date_unit_ : 1; //1 表示是date unit常量,在反拼的时候需要反拼为字符串
 | 
			
		||||
      uint16_t is_literal_bool_ : 1; // indicate node is a literal TRUE/FALSE
 | 
			
		||||
      uint16_t reserved_ : 2;
 | 
			
		||||
      uint16_t is_empty_ : 1; // 表示是否缺省该节点,1表示缺省,0表示没有缺省, opt_asc_desc节点中使用到
 | 
			
		||||
      uint16_t reserved_ : 1;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
  /* attributes for terminal node, it is real value */
 | 
			
		||||
@ -404,6 +405,7 @@ extern bool nodename_equal(const ParseNode *node, const char *pattern, int64_t p
 | 
			
		||||
#define OB_NODE_CAST_N_SCALE_IDX 3
 | 
			
		||||
#define OB_NODE_CAST_NUMBER_TYPE_IDX 1
 | 
			
		||||
#define OB_NODE_CAST_C_LEN_IDX 1
 | 
			
		||||
#define OB_NODE_CAST_GEO_TYPE_IDX 1
 | 
			
		||||
 | 
			
		||||
typedef enum ObNumberParseType
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
@ -264,7 +264,7 @@ END_P SET_VAR DELIMITER
 | 
			
		||||
        FAILOVER FAST FAULTS FIELDS FILEX FINAL_COUNT FIRST FIRST_VALUE FIXED FLUSH FOLLOWER FORMAT
 | 
			
		||||
        FOUND FREEZE FREQUENCY FUNCTION FOLLOWING FLASHBACK FULL FRAGMENTATION FROZEN FILE_ID
 | 
			
		||||
 | 
			
		||||
        GENERAL GEOMETRY GEOMETRYCOLLECTION GET_FORMAT GLOBAL GRANTS GROUP_CONCAT GROUPING GTS
 | 
			
		||||
        GENERAL GEOMETRY GEOMCOLLECTION GEOMETRYCOLLECTION GET_FORMAT GLOBAL GRANTS GROUP_CONCAT GROUPING GTS
 | 
			
		||||
        GLOBAL_NAME GLOBAL_ALIAS
 | 
			
		||||
 | 
			
		||||
        HANDLER HASH HELP HISTOGRAM HOST HOSTS HOUR HIDDEN HYBRID_HIST
 | 
			
		||||
@ -318,7 +318,7 @@ END_P SET_VAR DELIMITER
 | 
			
		||||
        SET_TP SHARE SHUTDOWN SIGNED SIMPLE SLAVE SLOW SLOT_IDX SNAPSHOT SOCKET SOME SONAME SOUNDS
 | 
			
		||||
        SOURCE SPFILE SPLIT SQL_AFTER_GTIDS SQL_AFTER_MTS_GAPS SQL_BEFORE_GTIDS SQL_BUFFER_RESULT
 | 
			
		||||
        SQL_CACHE SQL_NO_CACHE SQL_ID SQL_THREAD SQL_TSI_DAY SQL_TSI_HOUR SQL_TSI_MINUTE SQL_TSI_MONTH
 | 
			
		||||
        SQL_TSI_QUARTER SQL_TSI_SECOND SQL_TSI_WEEK SQL_TSI_YEAR STANDBY STAT START STARTS STATS_AUTO_RECALC
 | 
			
		||||
        SQL_TSI_QUARTER SQL_TSI_SECOND SQL_TSI_WEEK SQL_TSI_YEAR SRID STANDBY STAT START STARTS STATS_AUTO_RECALC
 | 
			
		||||
        STATS_PERSISTENT STATS_SAMPLE_PAGES STATUS STATEMENTS STATISTICS STD STDDEV STDDEV_POP STDDEV_SAMP STRONG
 | 
			
		||||
        SYNCHRONIZATION STOP STORAGE STORAGE_FORMAT_VERSION STORING STRING
 | 
			
		||||
        SUBCLASS_ORIGIN SUBDATE SUBJECT SUBPARTITION SUBPARTITIONS SUBSTR SUBSTRING SUCCESSFUL SUM
 | 
			
		||||
@ -2726,6 +2726,60 @@ MOD '(' expr ',' expr ')'
 | 
			
		||||
{
 | 
			
		||||
  $$ = $1;
 | 
			
		||||
}
 | 
			
		||||
| POINT '(' expr ',' expr ')'
 | 
			
		||||
{
 | 
			
		||||
  malloc_non_terminal_node($$, result->malloc_pool_, T_FUN_SYS_POINT, 2, $3, $5);
 | 
			
		||||
}
 | 
			
		||||
| LINESTRING '(' expr_list ')'
 | 
			
		||||
{
 | 
			
		||||
  ParseNode *expr_list = NULL;
 | 
			
		||||
  merge_nodes(expr_list, result, T_EXPR_LIST, $3);
 | 
			
		||||
  malloc_non_terminal_node($$, result->malloc_pool_, T_FUN_SYS_LINESTRING, 1, expr_list);
 | 
			
		||||
}
 | 
			
		||||
| MULTIPOINT '(' expr_list ')'
 | 
			
		||||
{
 | 
			
		||||
  ParseNode *expr_list = NULL;
 | 
			
		||||
  merge_nodes(expr_list, result, T_EXPR_LIST, $3);
 | 
			
		||||
  malloc_non_terminal_node($$, result->malloc_pool_, T_FUN_SYS_MULTIPOINT, 1, expr_list);
 | 
			
		||||
}
 | 
			
		||||
| MULTILINESTRING '(' expr_list ')'
 | 
			
		||||
{
 | 
			
		||||
  ParseNode *expr_list = NULL;
 | 
			
		||||
  merge_nodes(expr_list, result, T_EXPR_LIST, $3);
 | 
			
		||||
  malloc_non_terminal_node($$, result->malloc_pool_, T_FUN_SYS_MULTILINESTRING, 1, expr_list);
 | 
			
		||||
}
 | 
			
		||||
| POLYGON '(' expr_list ')'
 | 
			
		||||
{
 | 
			
		||||
  ParseNode *expr_list = NULL;
 | 
			
		||||
  merge_nodes(expr_list, result, T_EXPR_LIST, $3);
 | 
			
		||||
  malloc_non_terminal_node($$, result->malloc_pool_, T_FUN_SYS_POLYGON, 1, expr_list);
 | 
			
		||||
}
 | 
			
		||||
| MULTIPOLYGON '(' expr_list ')'
 | 
			
		||||
{
 | 
			
		||||
  ParseNode *expr_list = NULL;
 | 
			
		||||
  merge_nodes(expr_list, result, T_EXPR_LIST, $3);
 | 
			
		||||
  malloc_non_terminal_node($$, result->malloc_pool_, T_FUN_SYS_MULTIPOLYGON, 1, expr_list);
 | 
			
		||||
}
 | 
			
		||||
| GEOMETRYCOLLECTION '(' expr_list ')'
 | 
			
		||||
{
 | 
			
		||||
  ParseNode *expr_list = NULL;
 | 
			
		||||
  merge_nodes(expr_list, result, T_EXPR_LIST, $3);
 | 
			
		||||
  malloc_non_terminal_node($$, result->malloc_pool_, T_FUN_SYS_GEOMCOLLECTION, 1, expr_list);
 | 
			
		||||
}
 | 
			
		||||
| GEOMETRYCOLLECTION '(' ')'
 | 
			
		||||
{
 | 
			
		||||
  malloc_non_terminal_node($$, result->malloc_pool_, T_FUN_SYS_GEOMCOLLECTION, 1, NULL);
 | 
			
		||||
}
 | 
			
		||||
| GEOMCOLLECTION '(' expr_list ')'
 | 
			
		||||
{
 | 
			
		||||
  ParseNode *expr_list = NULL;
 | 
			
		||||
  merge_nodes(expr_list, result, T_EXPR_LIST, $3);
 | 
			
		||||
  malloc_non_terminal_node($$, result->malloc_pool_, T_FUN_SYS_GEOMCOLLECTION, 1, expr_list);
 | 
			
		||||
}
 | 
			
		||||
| GEOMCOLLECTION '(' ')'
 | 
			
		||||
{
 | 
			
		||||
  malloc_non_terminal_node($$, result->malloc_pool_, T_FUN_SYS_GEOMCOLLECTION, 1, NULL);
 | 
			
		||||
}
 | 
			
		||||
;
 | 
			
		||||
 | 
			
		||||
sys_interval_func:
 | 
			
		||||
@ -4361,6 +4415,16 @@ column_definition
 | 
			
		||||
  malloc_non_terminal_node(constraint_node, result->malloc_pool_, T_CHECK_CONSTRAINT, 1, $2);
 | 
			
		||||
  malloc_non_terminal_node($$, result->malloc_pool_, T_FOREIGN_KEY, 7, child_col_list, $10, parent_col_list, reference_option_list, constraint_node, $5, $14);
 | 
			
		||||
}
 | 
			
		||||
| SPATIAL opt_key_or_index opt_index_name opt_index_using_algorithm '(' sort_column_list ')' opt_index_option_list
 | 
			
		||||
{
 | 
			
		||||
  (void)($2);
 | 
			
		||||
  ParseNode *col_list = NULL;
 | 
			
		||||
  ParseNode *index_option = NULL;
 | 
			
		||||
  merge_nodes(col_list, result, T_INDEX_COLUMN_LIST, $6);
 | 
			
		||||
  merge_nodes(index_option, result, T_TABLE_OPTION_LIST, $8);
 | 
			
		||||
  malloc_non_terminal_node($$, result->malloc_pool_, T_INDEX, 5, $3, col_list, index_option, $4, NULL);
 | 
			
		||||
  $$->value_ = 2;
 | 
			
		||||
}
 | 
			
		||||
| FOREIGN KEY opt_index_name '(' column_name_list ')' REFERENCES relation_factor '(' column_name_list ')' opt_match_option opt_reference_option_list
 | 
			
		||||
{
 | 
			
		||||
  ParseNode *child_col_list= NULL;
 | 
			
		||||
@ -4570,6 +4634,10 @@ NOT NULLX
 | 
			
		||||
{
 | 
			
		||||
  $$ = $1;
 | 
			
		||||
}
 | 
			
		||||
| SRID INTNUM
 | 
			
		||||
{
 | 
			
		||||
  malloc_non_terminal_node($$, result->malloc_pool_, T_CONSTR_SRID, 1, $2);
 | 
			
		||||
}
 | 
			
		||||
;
 | 
			
		||||
 | 
			
		||||
opt_storage_type:
 | 
			
		||||
@ -4745,6 +4813,69 @@ BINARY opt_string_length_i_v2
 | 
			
		||||
  $$->int32_values_[OB_NODE_CAST_C_LEN_IDX] = 0;        /* length */
 | 
			
		||||
  $$->param_num_ = 0;
 | 
			
		||||
}
 | 
			
		||||
| POINT
 | 
			
		||||
{
 | 
			
		||||
  malloc_terminal_node($$, result->malloc_pool_, T_CAST_ARGUMENT);
 | 
			
		||||
  $$->value_ = 0;
 | 
			
		||||
  $$->int16_values_[OB_NODE_CAST_TYPE_IDX] = T_GEOMETRY; /* data type */
 | 
			
		||||
  $$->int16_values_[OB_NODE_CAST_GEO_TYPE_IDX] = 1;      /* point */
 | 
			
		||||
  $$->int32_values_[OB_NODE_CAST_C_LEN_IDX] = 0;         /* length */
 | 
			
		||||
  $$->param_num_ = 0;
 | 
			
		||||
}
 | 
			
		||||
| LINESTRING
 | 
			
		||||
{
 | 
			
		||||
  malloc_terminal_node($$, result->malloc_pool_, T_CAST_ARGUMENT);
 | 
			
		||||
  $$->value_ = 0;
 | 
			
		||||
  $$->int16_values_[OB_NODE_CAST_TYPE_IDX] = T_GEOMETRY; /* data type */
 | 
			
		||||
  $$->int16_values_[OB_NODE_CAST_GEO_TYPE_IDX] = 2;      /* linestring */
 | 
			
		||||
  $$->int32_values_[OB_NODE_CAST_C_LEN_IDX] = 0;         /* length */
 | 
			
		||||
  $$->param_num_ = 0;
 | 
			
		||||
}
 | 
			
		||||
| POLYGON
 | 
			
		||||
{
 | 
			
		||||
  malloc_terminal_node($$, result->malloc_pool_, T_CAST_ARGUMENT);
 | 
			
		||||
  $$->value_ = 0;
 | 
			
		||||
  $$->int16_values_[OB_NODE_CAST_TYPE_IDX] = T_GEOMETRY; /* data type */
 | 
			
		||||
  $$->int16_values_[OB_NODE_CAST_GEO_TYPE_IDX] = 3;      /* polygon */
 | 
			
		||||
  $$->int32_values_[OB_NODE_CAST_C_LEN_IDX] = 0;         /* length */
 | 
			
		||||
  $$->param_num_ = 0;
 | 
			
		||||
}
 | 
			
		||||
| MULTIPOINT
 | 
			
		||||
{
 | 
			
		||||
  malloc_terminal_node($$, result->malloc_pool_, T_CAST_ARGUMENT);
 | 
			
		||||
  $$->value_ = 0;
 | 
			
		||||
  $$->int16_values_[OB_NODE_CAST_TYPE_IDX] = T_GEOMETRY; /* data type */
 | 
			
		||||
  $$->int16_values_[OB_NODE_CAST_GEO_TYPE_IDX] = 4;      /* multipoint */
 | 
			
		||||
  $$->int32_values_[OB_NODE_CAST_C_LEN_IDX] = 0;         /* length */
 | 
			
		||||
  $$->param_num_ = 0;
 | 
			
		||||
}
 | 
			
		||||
| MULTILINESTRING
 | 
			
		||||
{
 | 
			
		||||
  malloc_terminal_node($$, result->malloc_pool_, T_CAST_ARGUMENT);
 | 
			
		||||
  $$->value_ = 0;
 | 
			
		||||
  $$->int16_values_[OB_NODE_CAST_TYPE_IDX] = T_GEOMETRY; /* data type */
 | 
			
		||||
  $$->int16_values_[OB_NODE_CAST_GEO_TYPE_IDX] = 5;      /* multilinestring */
 | 
			
		||||
  $$->int32_values_[OB_NODE_CAST_C_LEN_IDX] = 0;         /* length */
 | 
			
		||||
  $$->param_num_ = 0;
 | 
			
		||||
}
 | 
			
		||||
| MULTIPOLYGON
 | 
			
		||||
{
 | 
			
		||||
  malloc_terminal_node($$, result->malloc_pool_, T_CAST_ARGUMENT);
 | 
			
		||||
  $$->value_ = 0;
 | 
			
		||||
  $$->int16_values_[OB_NODE_CAST_TYPE_IDX] = T_GEOMETRY;  /* data type */
 | 
			
		||||
  $$->int16_values_[OB_NODE_CAST_GEO_TYPE_IDX] = 6;       /* multipolygon */
 | 
			
		||||
  $$->int32_values_[OB_NODE_CAST_C_LEN_IDX] = 0;          /* length */
 | 
			
		||||
  $$->param_num_ = 0;
 | 
			
		||||
}
 | 
			
		||||
| GEOMETRYCOLLECTION
 | 
			
		||||
{
 | 
			
		||||
  malloc_terminal_node($$, result->malloc_pool_, T_CAST_ARGUMENT);
 | 
			
		||||
  $$->value_ = 0;
 | 
			
		||||
  $$->int16_values_[OB_NODE_CAST_TYPE_IDX] = T_GEOMETRY; /* data type */
 | 
			
		||||
  $$->int16_values_[OB_NODE_CAST_GEO_TYPE_IDX] = 7;      /* geometrycollection */
 | 
			
		||||
  $$->int32_values_[OB_NODE_CAST_C_LEN_IDX] = 0;         /* length */
 | 
			
		||||
  $$->param_num_ = 0;
 | 
			
		||||
}
 | 
			
		||||
;
 | 
			
		||||
 | 
			
		||||
opt_integer:
 | 
			
		||||
@ -4970,6 +5101,54 @@ int_type_i opt_int_length_i opt_unsigned_i opt_zerofill_i
 | 
			
		||||
  malloc_terminal_node($$, result->malloc_pool_, T_JSON);
 | 
			
		||||
  $$->int32_values_[0] = 0; /* length */
 | 
			
		||||
}
 | 
			
		||||
| GEOMETRY
 | 
			
		||||
{
 | 
			
		||||
  malloc_terminal_node($$, result->malloc_pool_, T_GEOMETRY);
 | 
			
		||||
  $$->int32_values_[0] = 0; /* length */
 | 
			
		||||
  $$->int32_values_[1] = 0; /* geometry, geometry uses collation type value convey sub geometry type. */
 | 
			
		||||
}
 | 
			
		||||
| POINT
 | 
			
		||||
{
 | 
			
		||||
  malloc_terminal_node($$, result->malloc_pool_, T_GEOMETRY);
 | 
			
		||||
  $$->int32_values_[0] = 0; /* length */
 | 
			
		||||
  $$->int32_values_[1] = 1; /* point, geometry uses collation type value convey sub geometry type. */
 | 
			
		||||
}
 | 
			
		||||
| LINESTRING
 | 
			
		||||
{
 | 
			
		||||
  malloc_terminal_node($$, result->malloc_pool_, T_GEOMETRY);
 | 
			
		||||
  $$->int32_values_[0] = 0; /* length */
 | 
			
		||||
  $$->int32_values_[1] = 2; /* linestring, geometry uses collation type value convey sub geometry type. */
 | 
			
		||||
}
 | 
			
		||||
| POLYGON
 | 
			
		||||
{
 | 
			
		||||
  malloc_terminal_node($$, result->malloc_pool_, T_GEOMETRY);
 | 
			
		||||
  $$->int32_values_[0] = 0; /* length */
 | 
			
		||||
  $$->int32_values_[1] = 3; /* polygon, geometry uses collation type value convey sub geometry type. */
 | 
			
		||||
}
 | 
			
		||||
| MULTIPOINT
 | 
			
		||||
{
 | 
			
		||||
  malloc_terminal_node($$, result->malloc_pool_, T_GEOMETRY);
 | 
			
		||||
  $$->int32_values_[0] = 0; /* length */
 | 
			
		||||
  $$->int32_values_[1] = 4; /* mutipoint, geometry uses collation type value convey sub geometry type. */
 | 
			
		||||
}
 | 
			
		||||
| MULTILINESTRING
 | 
			
		||||
{
 | 
			
		||||
  malloc_terminal_node($$, result->malloc_pool_, T_GEOMETRY);
 | 
			
		||||
  $$->int32_values_[0] = 0; /* length */
 | 
			
		||||
  $$->int32_values_[1] = 5; /* multilinestring, geometry uses collation type value convey sub geometry type. */
 | 
			
		||||
}
 | 
			
		||||
| MULTIPOLYGON
 | 
			
		||||
{
 | 
			
		||||
  malloc_terminal_node($$, result->malloc_pool_, T_GEOMETRY);
 | 
			
		||||
  $$->int32_values_[0] = 0; /* length */
 | 
			
		||||
  $$->int32_values_[1] = 6; /* multipolygon, geometry uses collation type value convey sub geometry type. */
 | 
			
		||||
}
 | 
			
		||||
| GEOMETRYCOLLECTION
 | 
			
		||||
{
 | 
			
		||||
  malloc_terminal_node($$, result->malloc_pool_, T_GEOMETRY);
 | 
			
		||||
  $$->int32_values_[0] = 0; /* length */
 | 
			
		||||
  $$->int32_values_[1] = 7; /* geometrycollection, geometry uses collation type value convey sub geometry type. */
 | 
			
		||||
}
 | 
			
		||||
;
 | 
			
		||||
 | 
			
		||||
string_list:
 | 
			
		||||
@ -5368,6 +5547,10 @@ not NULLX
 | 
			
		||||
{
 | 
			
		||||
  $$ = $1;
 | 
			
		||||
}
 | 
			
		||||
| SRID INTNUM
 | 
			
		||||
{
 | 
			
		||||
  malloc_non_terminal_node($$, result->malloc_pool_, T_CONSTR_SRID, 1, $2);
 | 
			
		||||
}
 | 
			
		||||
;
 | 
			
		||||
 | 
			
		||||
now_or_signed_literal:
 | 
			
		||||
@ -6751,7 +6934,8 @@ CREATE {$$ = NULL;}
 | 
			
		||||
;
 | 
			
		||||
 | 
			
		||||
opt_index_keyname:
 | 
			
		||||
UNIQUE { $$[0] = 1; }
 | 
			
		||||
SPATIAL { $$[0] = 2; }
 | 
			
		||||
| UNIQUE { $$[0] = 1; }
 | 
			
		||||
| /*EMPTY*/ { $$[0] = 0; }
 | 
			
		||||
;
 | 
			
		||||
 | 
			
		||||
@ -8981,7 +9165,7 @@ expr opt_asc_desc
 | 
			
		||||
 | 
			
		||||
opt_asc_desc:
 | 
			
		||||
/* EMPTY */
 | 
			
		||||
{ malloc_terminal_node($$, result->malloc_pool_, T_SORT_ASC); $$->value_ = 2; }
 | 
			
		||||
{ malloc_terminal_node($$, result->malloc_pool_, T_SORT_ASC); $$->value_ = 2; $$->is_empty_ = 1;}
 | 
			
		||||
| ASC
 | 
			
		||||
{ malloc_terminal_node($$, result->malloc_pool_, T_SORT_ASC); $$->value_ = 2; }
 | 
			
		||||
| DESC
 | 
			
		||||
@ -13187,6 +13371,17 @@ ADD key_or_index opt_index_name opt_index_using_algorithm '(' sort_column_list '
 | 
			
		||||
  (void)($2);
 | 
			
		||||
  malloc_non_terminal_node($$, result->malloc_pool_, T_INDEX_DROP, 1, $3);
 | 
			
		||||
}
 | 
			
		||||
| ADD SPATIAL opt_key_or_index opt_index_name opt_index_using_algorithm '(' sort_column_list ')' opt_index_option_list opt_partition_option
 | 
			
		||||
{
 | 
			
		||||
  (void)($3);
 | 
			
		||||
  (void)($10);
 | 
			
		||||
  ParseNode *col_list = NULL;
 | 
			
		||||
  ParseNode *index_option = NULL;
 | 
			
		||||
  merge_nodes(col_list, result, T_INDEX_COLUMN_LIST, $7);
 | 
			
		||||
  merge_nodes(index_option, result, T_TABLE_OPTION_LIST, $9);
 | 
			
		||||
  malloc_non_terminal_node($$, result->malloc_pool_, T_INDEX_ADD, 5, $4, col_list, index_option, $5, NULL);
 | 
			
		||||
  $$->value_ = 2;
 | 
			
		||||
}
 | 
			
		||||
| ADD CONSTRAINT opt_constraint_name PRIMARY KEY '(' column_name_list ')' opt_index_option_list
 | 
			
		||||
{
 | 
			
		||||
  (void)($3);
 | 
			
		||||
@ -16361,6 +16556,7 @@ ACCOUNT
 | 
			
		||||
|       FULL %prec HIGHER_PARENS
 | 
			
		||||
|       GENERAL
 | 
			
		||||
|       GEOMETRY
 | 
			
		||||
|       GEOMCOLLECTION
 | 
			
		||||
|       GEOMETRYCOLLECTION
 | 
			
		||||
|       GET_FORMAT
 | 
			
		||||
|       GLOBAL %prec LOWER_PARENS
 | 
			
		||||
@ -16706,6 +16902,7 @@ ACCOUNT
 | 
			
		||||
|       SQL_TSI_SECOND
 | 
			
		||||
|       SQL_TSI_WEEK
 | 
			
		||||
|       SQL_TSI_YEAR
 | 
			
		||||
|       SRID
 | 
			
		||||
|       STACKED
 | 
			
		||||
|       STANDBY
 | 
			
		||||
|       START
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user