Skip to main content

polyglot_sql/dialects/
hana.rs

1//! SAP HANA Cloud and Platform SQL dialect.
2//!
3//! Registration is based on Torsten Glunde's contribution in PR #276.
4//! Syntax and semantic handling live in the shared parser, AST, and generator.
5
6use super::{DialectImpl, DialectType};
7#[cfg(feature = "generate")]
8use crate::generator::{GeneratorConfig, IdentifierQuoteStyle, NormalizeFunctions};
9use crate::tokens::{TokenType, TokenizerConfig};
10
11pub struct HanaDialect;
12
13impl DialectImpl for HanaDialect {
14    fn dialect_type(&self) -> DialectType {
15        DialectType::HANA
16    }
17
18    fn tokenizer_config(&self) -> TokenizerConfig {
19        let mut config = TokenizerConfig::default();
20        config.identifiers.insert('"', '"');
21        config.nested_comments = false;
22        config
23            .keywords
24            .insert("UNKNOWN".to_owned(), TokenType::Null);
25        config
26    }
27
28    #[cfg(feature = "generate")]
29    fn generator_config(&self) -> GeneratorConfig {
30        GeneratorConfig {
31            dialect: Some(DialectType::HANA),
32            identifier_quote: '"',
33            identifier_quote_style: IdentifierQuoteStyle::DOUBLE_QUOTE,
34            normalize_functions: NormalizeFunctions::None,
35            alter_table_include_column_keyword: false,
36            ..Default::default()
37        }
38    }
39}