public static String checkValidName(String name)
    {
        checkArgument(!isNullOrEmpty(name), "name is null or empty");
        checkArgument('a' <= name.charAt(0) && name.charAt(0) <= 'z', "name must start with a lowercase latin letter: '%s'", name);
        for (int i = 1; i < name.length(); i++) {
            char ch = name.charAt(i);
            checkArgument('a' <= ch && ch <= 'z' || '0' <= ch && ch <= '9' || ch == '_',
                    "name must contain only lowercase latin letters, digits or underscores: '%s'", name);
        }
        return name;
    }
@Test
    public void testCheckValidColumnName()
    {
        checkValidName("abc01_def2");
        assertThrows(() -> checkValidName(null));
        assertThrows(() -> checkValidName(""));
        assertThrows(() -> checkValidName("Abc"));
        assertThrows(() -> checkValidName("0abc"));
        assertThrows(() -> checkValidName("_abc"));
        assertThrows(() -> checkValidName("aBc"));
        assertThrows(() -> checkValidName("ab-c"));
    }