(&mut self)
| 6794 | } |
| 6795 | |
| 6796 | fn parse_copy_option(&mut self) -> Result<CopyOption<Raw>, ParserError> { |
| 6797 | let name = match self.expect_one_of_keywords(&[ |
| 6798 | FORMAT, DELIMITER, NULL, ESCAPE, QUOTE, HEADER, AWS, MAX, FILES, PATTERN, |
| 6799 | ])? { |
| 6800 | FORMAT => CopyOptionName::Format, |
| 6801 | DELIMITER => CopyOptionName::Delimiter, |
| 6802 | NULL => CopyOptionName::Null, |
| 6803 | ESCAPE => CopyOptionName::Escape, |
| 6804 | QUOTE => CopyOptionName::Quote, |
| 6805 | HEADER => CopyOptionName::Header, |
| 6806 | AWS => { |
| 6807 | self.expect_keyword(CONNECTION)?; |
| 6808 | return Ok(CopyOption { |
| 6809 | name: CopyOptionName::AwsConnection, |
| 6810 | value: Some(self.parse_object_option_value()?), |
| 6811 | }); |
| 6812 | } |
| 6813 | MAX => { |
| 6814 | self.expect_keywords(&[FILE, SIZE])?; |
| 6815 | CopyOptionName::MaxFileSize |
| 6816 | } |
| 6817 | FILES => CopyOptionName::Files, |
| 6818 | PATTERN => CopyOptionName::Pattern, |
| 6819 | _ => unreachable!(), |
| 6820 | }; |
| 6821 | Ok(CopyOption { |
| 6822 | name, |
| 6823 | value: self.parse_optional_option_value()?, |
| 6824 | }) |
| 6825 | } |
| 6826 | |
| 6827 | /// Parse a literal value (numbers, strings, date/time, booleans) |
| 6828 | fn parse_value(&mut self) -> Result<Value, ParserError> { |
nothing calls this directly
no test coverage detected