@@ -1332,6 +1332,159 @@ pub trait Dialect: Debug + Any {
13321332 fn supports_binary_kw_as_cast ( & self ) -> bool {
13331333 false
13341334 }
1335+
1336+ /// Returns true if this dialect supports the `REPLACE` option in a
1337+ /// `SELECT *` wildcard expression.
1338+ ///
1339+ /// Example:
1340+ /// ```sql
1341+ /// SELECT * REPLACE (col1 AS col1_alias) FROM table;
1342+ /// ```
1343+ ///
1344+ /// [BigQuery](https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#select_replace)
1345+ /// [ClickHouse](https://clickhouse.com/docs/sql-reference/statements/select#replace)
1346+ /// [DuckDB](https://duckdb.org/docs/sql/query_syntax/select#replace-clause)
1347+ /// [Snowflake](https://docs.snowflake.com/en/sql-reference/sql/select#parameters)
1348+ fn supports_select_wildcard_replace ( & self ) -> bool {
1349+ false
1350+ }
1351+
1352+ /// Returns true if this dialect supports the `ILIKE` option in a
1353+ /// `SELECT *` wildcard expression.
1354+ ///
1355+ /// Example:
1356+ /// ```sql
1357+ /// SELECT * ILIKE '%pattern%' FROM table;
1358+ /// ```
1359+ ///
1360+ /// [Snowflake](https://docs.snowflake.com/en/sql-reference/sql/select#parameters)
1361+ fn supports_select_wildcard_ilike ( & self ) -> bool {
1362+ false
1363+ }
1364+
1365+ /// Returns true if this dialect supports the `RENAME` option in a
1366+ /// `SELECT *` wildcard expression.
1367+ ///
1368+ /// Example:
1369+ /// ```sql
1370+ /// SELECT * RENAME col1 AS col1_alias FROM table;
1371+ /// ```
1372+ ///
1373+ /// [Snowflake](https://docs.snowflake.com/en/sql-reference/sql/select#parameters)
1374+ fn supports_select_wildcard_rename ( & self ) -> bool {
1375+ false
1376+ }
1377+
1378+ /// Returns true if this dialect supports the `OPTIMIZE TABLE` statement.
1379+ ///
1380+ /// Example:
1381+ /// ```sql
1382+ /// OPTIMIZE TABLE table_name;
1383+ /// ```
1384+ ///
1385+ /// [ClickHouse](https://clickhouse.com/docs/en/sql-reference/statements/optimize)
1386+ fn supports_optimize_table ( & self ) -> bool {
1387+ false
1388+ }
1389+
1390+ /// Returns true if this dialect supports the `INSTALL` statement.
1391+ ///
1392+ /// Example:
1393+ /// ```sql
1394+ /// INSTALL extension_name;
1395+ /// ```
1396+ ///
1397+ /// [DuckDB](https://duckdb.org/docs/extensions/overview)
1398+ fn supports_install ( & self ) -> bool {
1399+ false
1400+ }
1401+
1402+ /// Returns true if this dialect supports the `DETACH` statement.
1403+ ///
1404+ /// Example:
1405+ /// ```sql
1406+ /// DETACH DATABASE db_name;
1407+ /// ```
1408+ ///
1409+ /// [DuckDB](https://duckdb.org/docs/sql/statements/attach#detach-syntax)
1410+ fn supports_detach ( & self ) -> bool {
1411+ false
1412+ }
1413+
1414+ /// Returns true if this dialect supports the `PREWHERE` clause
1415+ /// in `SELECT` statements.
1416+ ///
1417+ /// Example:
1418+ /// ```sql
1419+ /// SELECT * FROM table PREWHERE col > 0 WHERE col < 100;
1420+ /// ```
1421+ ///
1422+ /// [ClickHouse](https://clickhouse.com/docs/en/sql-reference/statements/select/prewhere)
1423+ fn supports_prewhere ( & self ) -> bool {
1424+ false
1425+ }
1426+
1427+ /// Returns true if this dialect supports the `WITH FILL` clause
1428+ /// in `ORDER BY` expressions.
1429+ ///
1430+ /// Example:
1431+ /// ```sql
1432+ /// SELECT * FROM table ORDER BY col WITH FILL FROM 1 TO 10 STEP 1;
1433+ /// ```
1434+ ///
1435+ /// [ClickHouse](https://clickhouse.com/docs/en/sql-reference/statements/select/order-by#order-by-expr-with-fill-modifier)
1436+ fn supports_with_fill ( & self ) -> bool {
1437+ false
1438+ }
1439+
1440+ /// Returns true if this dialect supports the `LIMIT BY` clause.
1441+ ///
1442+ /// Example:
1443+ /// ```sql
1444+ /// SELECT * FROM table LIMIT 10 BY col;
1445+ /// ```
1446+ ///
1447+ /// [ClickHouse](https://clickhouse.com/docs/en/sql-reference/statements/select/limit-by)
1448+ fn supports_limit_by ( & self ) -> bool {
1449+ false
1450+ }
1451+
1452+ /// Returns true if this dialect supports the `INTERPOLATE` clause
1453+ /// in `ORDER BY` expressions.
1454+ ///
1455+ /// Example:
1456+ /// ```sql
1457+ /// SELECT * FROM table ORDER BY col WITH FILL INTERPOLATE (col2 AS col2 + 1);
1458+ /// ```
1459+ ///
1460+ /// [ClickHouse](https://clickhouse.com/docs/en/sql-reference/statements/select/order-by#order-by-expr-with-fill-modifier)
1461+ fn supports_interpolate ( & self ) -> bool {
1462+ false
1463+ }
1464+
1465+ /// Returns true if this dialect supports the `SETTINGS` clause.
1466+ ///
1467+ /// Example:
1468+ /// ```sql
1469+ /// SELECT * FROM table SETTINGS max_threads = 4;
1470+ /// ```
1471+ ///
1472+ /// [ClickHouse](https://clickhouse.com/docs/en/sql-reference/statements/select#settings-in-select-query)
1473+ fn supports_settings ( & self ) -> bool {
1474+ false
1475+ }
1476+
1477+ /// Returns true if this dialect supports the `FORMAT` clause in `SELECT` statements.
1478+ ///
1479+ /// Example:
1480+ /// ```sql
1481+ /// SELECT * FROM table FORMAT JSON;
1482+ /// ```
1483+ ///
1484+ /// [ClickHouse](https://clickhouse.com/docs/en/sql-reference/statements/select/format)
1485+ fn supports_select_format ( & self ) -> bool {
1486+ false
1487+ }
13351488}
13361489
13371490/// Operators for which precedence must be defined.
0 commit comments