(
&mut self,
)
| 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 => { |
nothing calls this directly
no test coverage detected