code: private void initSyntaxRule() throws SQLException {
      // Deduce the string used to quote identifiers. For example, Oracle
      // uses double-quotes:
      //   SELECT * FROM "My Schema"."My Table"
      String identifierQuoteString = meta.getIdentifierQuoteString();
      if (identifierQuoteString.length() > 1) {
        sqlLine.error("Identifier quote string is '" + identifierQuoteString
            + "'; quote strings longer than 1 char are not supported");
        identifierQuoteString = null;
      }
      final String productName = meta.getDatabaseProductName();
      final Set<String> keywords =
          Stream.of(meta.getSQLKeywords().split(","))
              .collect(Collectors.toSet());
      dialect = DialectImpl.create(keywords, identifierQuoteString,
          productName, meta.storesUpperCaseIdentifiers());
    }
docs: Initializes a syntax rule for a given database connection.
  
  <p>The rule is good for different highlighter and completer instances,
  but not necessarily for other database connections (because it
  depends on the set of keywords and identifier quote string).