Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
CHANGELOG
=========

0.6.3
-----
- The DynamoDBStatementParser will now throw a DocumentNotFoundException if the table referenced in the statement was not provided

0.6.2
-----
- Support negative numbers (both integers and floats)
Expand Down
7 changes: 5 additions & 2 deletions py_partiql_parser/_internal/parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from typing import Dict, Any, List, Optional, Tuple

from ..exceptions import ParserException
from ..exceptions import DocumentNotFoundException, ParserException
from .delete_parser import DeleteParser
from .from_parser import DynamoDBFromParser, S3FromParser, FromParser
from .insert_parser import InsertParser
Expand Down Expand Up @@ -110,7 +110,10 @@ def _parse_select(
# FROM
from_parser = DynamoDBFromParser(from_clause=clauses[2])

source_data = self.documents[list(from_parser.clauses.values())[0]]
table_name = list(from_parser.clauses.values())[0]
if table_name not in self.documents:
raise DocumentNotFoundException(name=table_name)
source_data = self.documents[table_name]

# WHERE
if len(clauses) > 3:
Expand Down
6 changes: 6 additions & 0 deletions py_partiql_parser/exceptions.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,9 @@ def __init__(self, name: str, message: str):
self.name = name
self.message = message
super().__init__(message)


class DocumentNotFoundException(Exception):
def __init__(self, name: str):
self.name = name
super().__init__(f"Document not found: {name}")
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "py-partiql-parser"
version = "0.6.2"
version = "0.6.3"
description = "Pure Python PartiQL Parser"
readme = "README.md"
keywords = ["pypartiql", "parser"]
Expand Down