Skip to content

Commit

Permalink
Chore!: cleanup unnecessary tokens (#1688)
Browse files Browse the repository at this point in the history
  • Loading branch information
tobymao authored May 24, 2023
1 parent 1cb9614 commit 267ea8f
Show file tree
Hide file tree
Showing 7 changed files with 201 additions and 291 deletions.
6 changes: 3 additions & 3 deletions sqlglot/dialects/hive.py
Original file line number Diff line number Diff line change
Expand Up @@ -278,9 +278,9 @@ class Parser(parser.Parser):

QUERY_MODIFIER_PARSERS = {
**parser.Parser.QUERY_MODIFIER_PARSERS,
"distribute": lambda self: self._parse_sort(TokenType.DISTRIBUTE_BY, exp.Distribute),
"sort": lambda self: self._parse_sort(TokenType.SORT_BY, exp.Sort),
"cluster": lambda self: self._parse_sort(TokenType.CLUSTER_BY, exp.Cluster),
"distribute": lambda self: self._parse_sort(exp.Distribute, "DISTRIBUTE", "BY"),
"sort": lambda self: self._parse_sort(exp.Sort, "SORT", "BY"),
"cluster": lambda self: self._parse_sort(exp.Cluster, "CLUSTER", "BY"),
}

class Generator(generator.Generator):
Expand Down
24 changes: 16 additions & 8 deletions sqlglot/expressions.py
Original file line number Diff line number Diff line change
Expand Up @@ -1772,10 +1772,6 @@ class Property(Expression):
arg_types = {"this": True, "value": True}


class AfterJournalProperty(Property):
arg_types = {"no": True, "dual": False, "local": False}


class AlgorithmProperty(Property):
arg_types = {"this": True}

Expand All @@ -1801,7 +1797,13 @@ class CollateProperty(Property):


class DataBlocksizeProperty(Property):
arg_types = {"size": False, "units": False, "min": False, "default": False}
arg_types = {
"size": False,
"units": False,
"minimum": False,
"maximum": False,
"default": False,
}


class DefinerProperty(Property):
Expand Down Expand Up @@ -1855,7 +1857,13 @@ class IsolatedLoadingProperty(Property):


class JournalProperty(Property):
arg_types = {"no": True, "dual": False, "before": False}
arg_types = {
"no": False,
"dual": False,
"before": False,
"local": False,
"after": False,
}


class LanguageProperty(Property):
Expand Down Expand Up @@ -1893,7 +1901,7 @@ class MergeBlockRatioProperty(Property):


class NoPrimaryIndexProperty(Property):
arg_types = {"this": False}
arg_types = {}


class OnCommitProperty(Property):
Expand Down Expand Up @@ -1958,7 +1966,7 @@ class StabilityProperty(Property):


class TemporaryProperty(Property):
arg_types = {"global_": True}
arg_types = {}


class TransientProperty(Property):
Expand Down
50 changes: 22 additions & 28 deletions sqlglot/generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ class Generator:
exp.SetProperty: lambda self, e: f"{'MULTI' if e.args.get('multi') else ''}SET",
exp.SettingsProperty: lambda self, e: f"SETTINGS{self.seg('')}{(self.expressions(e))}",
exp.SqlSecurityProperty: lambda self, e: f"SQL SECURITY {'DEFINER' if e.args.get('definer') else 'INVOKER'}",
exp.TemporaryProperty: lambda self, e: f"{'GLOBAL ' if e.args.get('global_') else ''}TEMPORARY",
exp.TemporaryProperty: lambda self, e: f"TEMPORARY",
exp.TransientProperty: lambda self, e: "TRANSIENT",
exp.StabilityProperty: lambda self, e: e.name,
exp.VolatileProperty: lambda self, e: "VOLATILE",
Expand Down Expand Up @@ -174,7 +174,6 @@ class Generator:
PARAMETER_TOKEN = "@"

PROPERTIES_LOCATION = {
exp.AfterJournalProperty: exp.Properties.Location.POST_NAME,
exp.AlgorithmProperty: exp.Properties.Location.POST_CREATE,
exp.AutoIncrementProperty: exp.Properties.Location.POST_SCHEMA,
exp.BlockCompressionProperty: exp.Properties.Location.POST_NAME,
Expand Down Expand Up @@ -998,23 +997,18 @@ def fallbackproperty_sql(self, expression: exp.FallbackProperty) -> str:

def journalproperty_sql(self, expression: exp.JournalProperty) -> str:
no = "NO " if expression.args.get("no") else ""
local = expression.args.get("local")
local = f"{local} " if local else ""
dual = "DUAL " if expression.args.get("dual") else ""
before = "BEFORE " if expression.args.get("before") else ""
return f"{no}{dual}{before}JOURNAL"
after = "AFTER " if expression.args.get("after") else ""
return f"{no}{local}{dual}{before}{after}JOURNAL"

def freespaceproperty_sql(self, expression: exp.FreespaceProperty) -> str:
freespace = self.sql(expression, "this")
percent = " PERCENT" if expression.args.get("percent") else ""
return f"FREESPACE={freespace}{percent}"

def afterjournalproperty_sql(self, expression: exp.AfterJournalProperty) -> str:
no = "NO " if expression.args.get("no") else ""
dual = "DUAL " if expression.args.get("dual") else ""
local = ""
if expression.args.get("local") is not None:
local = "LOCAL " if expression.args.get("local") else "NOT LOCAL "
return f"{no}{dual}{local}AFTER JOURNAL"

def checksumproperty_sql(self, expression: exp.ChecksumProperty) -> str:
if expression.args.get("default"):
property = "DEFAULT"
Expand All @@ -1035,19 +1029,19 @@ def mergeblockratioproperty_sql(self, expression: exp.MergeBlockRatioProperty) -

def datablocksizeproperty_sql(self, expression: exp.DataBlocksizeProperty) -> str:
default = expression.args.get("default")
min = expression.args.get("min")
if default is not None or min is not None:
minimum = expression.args.get("minimum")
maximum = expression.args.get("maximum")
if default or minimum or maximum:
if default:
property = "DEFAULT"
elif min:
property = "MINIMUM"
prop = "DEFAULT"
elif minimum:
prop = "MINIMUM"
else:
property = "MAXIMUM"
return f"{property} DATABLOCKSIZE"
else:
units = expression.args.get("units")
units = f" {units}" if units else ""
return f"DATABLOCKSIZE={self.sql(expression, 'size')}{units}"
prop = "MAXIMUM"
return f"{prop} DATABLOCKSIZE"
units = expression.args.get("units")
units = f" {units}" if units else ""
return f"DATABLOCKSIZE={self.sql(expression, 'size')}{units}"

def blockcompressionproperty_sql(self, expression: exp.BlockCompressionProperty) -> str:
autotemp = expression.args.get("autotemp")
Expand All @@ -1057,16 +1051,16 @@ def blockcompressionproperty_sql(self, expression: exp.BlockCompressionProperty)
never = expression.args.get("never")

if autotemp is not None:
property = f"AUTOTEMP({self.expressions(autotemp)})"
prop = f"AUTOTEMP({self.expressions(autotemp)})"
elif always:
property = "ALWAYS"
prop = "ALWAYS"
elif default:
property = "DEFAULT"
prop = "DEFAULT"
elif manual:
property = "MANUAL"
prop = "MANUAL"
elif never:
property = "NEVER"
return f"BLOCKCOMPRESSION={property}"
prop = "NEVER"
return f"BLOCKCOMPRESSION={prop}"

def isolatedloadingproperty_sql(self, expression: exp.IsolatedLoadingProperty) -> str:
no = expression.args.get("no")
Expand Down
Loading

0 comments on commit 267ea8f

Please sign in to comment.