@@ -1796,24 +1796,28 @@ private LogicalPlan withSelectHint(LogicalPlan logicalPlan, SelectHintContext hi
1796
1796
case "set_var" :
1797
1797
Map <String , Optional <String >> parameters = Maps .newLinkedHashMap ();
1798
1798
for (HintAssignmentContext kv : hintStatement .parameters ) {
1799
- String parameterName = visitIdentifierOrText (kv .key );
1800
- Optional <String > value = Optional .empty ();
1801
- if (kv .constantValue != null ) {
1802
- Literal literal = (Literal ) visit (kv .constantValue );
1803
- value = Optional .ofNullable (literal .toLegacyLiteral ().getStringValue ());
1804
- } else if (kv .identifierValue != null ) {
1805
- // maybe we should throw exception when the identifierValue is quoted identifier
1806
- value = Optional .ofNullable (kv .identifierValue .getText ());
1799
+ if (kv .key != null ) {
1800
+ String parameterName = visitIdentifierOrText (kv .key );
1801
+ Optional <String > value = Optional .empty ();
1802
+ if (kv .constantValue != null ) {
1803
+ Literal literal = (Literal ) visit (kv .constantValue );
1804
+ value = Optional .ofNullable (literal .toLegacyLiteral ().getStringValue ());
1805
+ } else if (kv .identifierValue != null ) {
1806
+ // maybe we should throw exception when the identifierValue is quoted identifier
1807
+ value = Optional .ofNullable (kv .identifierValue .getText ());
1808
+ }
1809
+ parameters .put (parameterName , value );
1807
1810
}
1808
- parameters .put (parameterName , value );
1809
1811
}
1810
1812
hints .put (hintName , new SelectHintSetVar (hintName , parameters ));
1811
1813
break ;
1812
1814
case "leading" :
1813
1815
List <String > leadingParameters = new ArrayList <String >();
1814
1816
for (HintAssignmentContext kv : hintStatement .parameters ) {
1815
- String parameterName = visitIdentifierOrText (kv .key );
1816
- leadingParameters .add (parameterName );
1817
+ if (kv .key != null ) {
1818
+ String parameterName = visitIdentifierOrText (kv .key );
1819
+ leadingParameters .add (parameterName );
1820
+ }
1817
1821
}
1818
1822
hints .put (hintName , new SelectHintLeading (hintName , leadingParameters ));
1819
1823
break ;
0 commit comments