File tree Expand file tree Collapse file tree 3 files changed +84
-2
lines changed Expand file tree Collapse file tree 3 files changed +84
-2
lines changed Original file line number Diff line number Diff line change @@ -1425,8 +1425,14 @@ pub fn uri_location(i: Input) -> IResult<UriLocation> {
1425
1425
protocol : parsed. scheme ( ) . to_string ( ) ,
1426
1426
name : parsed
1427
1427
. host_str ( )
1428
- . ok_or ( ErrorKind :: Other ( "invalid uri location" ) ) ?
1429
- . to_string ( ) ,
1428
+ . map ( |hostname| {
1429
+ if let Some ( port) = parsed. port ( ) {
1430
+ format ! ( "{}:{}" , hostname, port)
1431
+ } else {
1432
+ hostname. to_string ( )
1433
+ }
1434
+ } )
1435
+ . ok_or ( ErrorKind :: Other ( "invalid uri location" ) ) ?,
1430
1436
path : if parsed. path ( ) . is_empty ( ) {
1431
1437
"/" . to_string ( )
1432
1438
} else {
Original file line number Diff line number Diff line change @@ -190,6 +190,10 @@ fn test_statement() {
190
190
skip_header = 1
191
191
)
192
192
size_limit=10;"# ,
193
+ r#"COPY INTO mytable
194
+ FROM 'https://127.0.0.1:9900';"# ,
195
+ r#"COPY INTO mytable
196
+ FROM 'https://127.0.0.1:';"# ,
193
197
r#"COPY INTO mytable
194
198
FROM @my_stage
195
199
FILE_FORMAT = (
Original file line number Diff line number Diff line change @@ -5600,6 +5600,78 @@ Copy(
5600
5600
)
5601
5601
5602
5602
5603
+ ---------- Input ----------
5604
+ COPY INTO mytable
5605
+ FROM 'https://127.0.0.1:9900';
5606
+ ---------- Output ---------
5607
+ COPY INTO mytable FROM 'https://127.0.0.1:9900/' PURGE = false FORCE = false
5608
+ ---------- AST ------------
5609
+ Copy(
5610
+ CopyStmt {
5611
+ src: UriLocation(
5612
+ UriLocation {
5613
+ protocol: "https",
5614
+ name: "127.0.0.1:9900",
5615
+ path: "/",
5616
+ connection: {},
5617
+ },
5618
+ ),
5619
+ dst: Table {
5620
+ catalog: None,
5621
+ database: None,
5622
+ table: Identifier {
5623
+ name: "mytable",
5624
+ quote: None,
5625
+ span: Ident(10..17),
5626
+ },
5627
+ },
5628
+ files: [],
5629
+ pattern: "",
5630
+ file_format: {},
5631
+ validation_mode: "",
5632
+ size_limit: 0,
5633
+ purge: false,
5634
+ force: false,
5635
+ },
5636
+ )
5637
+
5638
+
5639
+ ---------- Input ----------
5640
+ COPY INTO mytable
5641
+ FROM 'https://127.0.0.1:';
5642
+ ---------- Output ---------
5643
+ COPY INTO mytable FROM 'https://127.0.0.1/' PURGE = false FORCE = false
5644
+ ---------- AST ------------
5645
+ Copy(
5646
+ CopyStmt {
5647
+ src: UriLocation(
5648
+ UriLocation {
5649
+ protocol: "https",
5650
+ name: "127.0.0.1",
5651
+ path: "/",
5652
+ connection: {},
5653
+ },
5654
+ ),
5655
+ dst: Table {
5656
+ catalog: None,
5657
+ database: None,
5658
+ table: Identifier {
5659
+ name: "mytable",
5660
+ quote: None,
5661
+ span: Ident(10..17),
5662
+ },
5663
+ },
5664
+ files: [],
5665
+ pattern: "",
5666
+ file_format: {},
5667
+ validation_mode: "",
5668
+ size_limit: 0,
5669
+ purge: false,
5670
+ force: false,
5671
+ },
5672
+ )
5673
+
5674
+
5603
5675
---------- Input ----------
5604
5676
COPY INTO mytable
5605
5677
FROM @my_stage
You can’t perform that action at this time.
0 commit comments