diff --git a/src/main/java/sqlline/SqlLineOpts.java b/src/main/java/sqlline/SqlLineOpts.java index ce1a1972..6011c891 100644 --- a/src/main/java/sqlline/SqlLineOpts.java +++ b/src/main/java/sqlline/SqlLineOpts.java @@ -400,18 +400,21 @@ public boolean getBoolean(SqlLineProperty key) { } } - /** Returns whether the property is its default value. + /** + * Returns whether the property is its default value. * *

This true if it has not been assigned a value, * or if has been assigned a value equal to its default value. * * @param property Property - * @return whether property has its default value */ + * @return whether property has its default value + */ public boolean isDefault(SqlLineProperty property) { final String defaultValue = String.valueOf(property.defaultValue()); - final String currentValue = get(property); - return String.valueOf((Object) null).equals(currentValue) - || Objects.equals(currentValue, defaultValue); + final Object currentValue = + propertiesMap.getOrDefault(property, property.defaultValue()); + return currentValue == null + || Objects.equals(String.valueOf(currentValue), defaultValue); } public String get(String key) { diff --git a/src/test/java/sqlline/SqlLineArgsTest.java b/src/test/java/sqlline/SqlLineArgsTest.java index d10c1776..7a1763b1 100644 --- a/src/test/java/sqlline/SqlLineArgsTest.java +++ b/src/test/java/sqlline/SqlLineArgsTest.java @@ -1243,12 +1243,16 @@ public void testNullValue() { + "!set outputformat csv\n" + "values (NULL, -1.5, null, date '1969-07-20', null, 'null');\n" + "!set nullValue \"'\"\n" + + "values (NULL, -1.5, null, date '1969-07-20', null, 'null');\n" + + "!set nullValue null\n" + "values (NULL, -1.5, null, date '1969-07-20', null, 'null');\n"; checkScriptFile(script, true, equalTo(SqlLine.Status.OK), CoreMatchers.allOf(containsString("'C1','C2','C3','C4','C5','C6'"), containsString("'%%%','-1.5','%%%','1969-07-20','%%%','null'"), containsString("'C1','C2','C3','C4','C5','C6'"), - containsString("'''','-1.5','''','1969-07-20','''','null'"))); + containsString("'''','-1.5','''','1969-07-20','''','null'"), + containsString("'C1','C2','C3','C4','C5','C6'"), + containsString("'null','-1.5','null','1969-07-20','null','null'"))); } @Test