Skip to content

Commit ab36d24

Browse files
Fix date handling in sql cmd when using json (#2073)
1 parent abb0e4c commit ab36d24

File tree

3 files changed

+21
-2
lines changed

3 files changed

+21
-2
lines changed

RELEASE-NOTES.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
## New additions
2222

2323
## Fixes and improvements
24+
* Fix handling of date types in `snow sql` command when using JSON for output format
2425

2526

2627
# v3.4.1

src/snowflake/cli/_app/printing.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
import json
1818
import sys
19-
from datetime import datetime
19+
from datetime import date, datetime
2020
from json import JSONEncoder
2121
from pathlib import Path
2222
from textwrap import indent
@@ -57,7 +57,7 @@ def default(self, o):
5757
return o.result
5858
if isinstance(o, (CollectionResult, MultipleResults)):
5959
return list(o.result)
60-
if isinstance(o, datetime):
60+
if isinstance(o, (date, datetime)):
6161
return o.isoformat()
6262
if isinstance(o, Path):
6363
return str(o)

tests/test_printing.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import datetime
2+
3+
from snowflake.cli._app.printing import print_structured
4+
from snowflake.cli.api.output.types import QueryResult
5+
6+
7+
def test_print_structured_output_date(mock_cursor, capsys):
8+
cmd_result = QueryResult(
9+
cursor=mock_cursor(
10+
[(datetime.date.fromisoformat("2025-02-17"),)], ["CURRENT_DATE()"]
11+
)
12+
)
13+
print_structured(cmd_result)
14+
captured = capsys.readouterr()
15+
assert (
16+
captured.out
17+
== """[\n {\n "CURRENT_DATE()": "2025-02-17"\n }\n]\n"""
18+
)

0 commit comments

Comments
 (0)