code: function (v) {
              if (isFunction(v.sqlLiteral)) {
                  return v.sqlLiteral(this);
              } else {
                  throw new QueryError(string.format("can't express %j as a SQL literal", [v]));
              }
          }
docs: /*
  Methods for converting types to a SQL .
   
  @return SQL fragment for a type of object not handled by {@link patio.dataset._Sql#literal}.
  If object has a method sqlLiteral then it is called with this dataset as the first argument,
  otherwise raises an error. Classes implementing sqlLiteral should call a class-specific method
  on the dataset provided and should add that method to {@link patio.dataset.Dataset}, allowing for adapters
  to provide customized literalizations.
  If a database specific type is allowed, this should be overriden in a subclass.