MCPcopy Create free account
hub / github.com/MaterializeInc/materialize / parse_kafka_sink_config_option

Method parse_kafka_sink_config_option

src/sql-parser/src/parser.rs:2848–2915  ·  view source on GitHub ↗
(
        &mut self,
    )

Source from the content-addressed store, hash-verified

2846 }
2847
2848 fn parse_kafka_sink_config_option(
2849 &mut self,
2850 ) -> Result<KafkaSinkConfigOption<Raw>, ParserError> {
2851 let name = match self.expect_one_of_keywords(&[
2852 COMPRESSION,
2853 PARTITION,
2854 PROGRESS,
2855 TOPIC,
2856 LEGACY,
2857 TRANSACTIONAL,
2858 ])? {
2859 COMPRESSION => {
2860 self.expect_keyword(TYPE)?;
2861 KafkaSinkConfigOptionName::CompressionType
2862 }
2863 PARTITION => {
2864 self.expect_keyword(BY)?;
2865 let _ = self.consume_token(&Token::Eq);
2866 return Ok(KafkaSinkConfigOption {
2867 name: KafkaSinkConfigOptionName::PartitionBy,
2868 value: Some(WithOptionValue::Expr(self.parse_expr()?)),
2869 });
2870 }
2871 PROGRESS => {
2872 self.expect_keywords(&[GROUP, ID, PREFIX])?;
2873 KafkaSinkConfigOptionName::ProgressGroupIdPrefix
2874 }
2875 TOPIC => {
2876 match self.parse_one_of_keywords(&[METADATA, PARTITION, REPLICATION, CONFIG]) {
2877 None => KafkaSinkConfigOptionName::Topic,
2878 Some(METADATA) => {
2879 self.expect_keywords(&[REFRESH, INTERVAL])?;
2880 KafkaSinkConfigOptionName::TopicMetadataRefreshInterval
2881 }
2882 Some(PARTITION) => {
2883 self.expect_keyword(COUNT)?;
2884 KafkaSinkConfigOptionName::TopicPartitionCount
2885 }
2886 Some(REPLICATION) => {
2887 self.expect_keyword(FACTOR)?;
2888 KafkaSinkConfigOptionName::TopicReplicationFactor
2889 }
2890 Some(CONFIG) => KafkaSinkConfigOptionName::TopicConfig,
2891 Some(other) => {
2892 return parser_err!(
2893 self,
2894 self.peek_prev_pos(),
2895 "unexpected keyword {}",
2896 other
2897 );
2898 }
2899 }
2900 }
2901 TRANSACTIONAL => {
2902 self.expect_keywords(&[ID, PREFIX])?;
2903 KafkaSinkConfigOptionName::TransactionalIdPrefix
2904 }
2905 LEGACY => {

Callers

nothing calls this directly

Calls 8

expect_keywordMethod · 0.80
consume_tokenMethod · 0.80
parse_exprMethod · 0.80
expect_keywordsMethod · 0.80
parse_one_of_keywordsMethod · 0.80
ExprEnum · 0.50

Tested by

no test coverage detected