Marshmellow Does not Support Interbase 7/Firebird 3.0 BOOLEAN datatype

Issue #317 on hold
Larry Hengen created an issue

Using the UIB Persistence layer I have added support for the Boolean datatype. If you wish I can fork the Spring4D repo, incorporate my change, and create a pull request but the code change is only to one method and is really simple. As per my article at http://www.tpersistent.com/?p=1242:

function TFirebirdSQLGenerator.GetSQLDataTypeName(
  const field: TSQLCreateField): string;
begin
  Result := inherited GetSQLDataTypeName(field);
  {add support for Firebird 3.0/Interbase 7 new boolean datatype}
  {$ifdef FB30}
  if (field.TypeInfo.Kind = tkEnumeration) and
     (field.typeInfo = System.TypeInfo(Boolean)) then
    Result := 'BOOLEAN'
  else
  {$endif}
  if StartsText('NCHAR', Result) then
    Result := Copy(Result, 2, Length(Result)) + ' CHARACTER SET UNICODE_FSS'
  else if StartsText('NVARCHAR', Result) then
    Result := Copy(Result, 2, Length(Result)) + ' CHARACTER SET UNICODE_FSS';
end;

Comments (4)

  1. Stefan Glienke repo owner

    Using an ifdef is not an option imo - need to find a way to implement this differently.

    Probably by adding a new query language and SQLGenerator.

  2. Larry Hengen reporter

    Would you like me to implement that and create a pull request, or are you okay making that change?

    Also, I submitted a pull request for UIB changes I made but there is a previous pull request from 2018 that is still pending. Just wondering if you know anyone on that project to contact to move it along, or if I should just contact the repo owner.

  3. Stefan Glienke repo owner

    Feel free to make a PR but based on develop branch and not on master as I am not accepting that and cannot change the branch it will be applied to (at least not via the web ui of Bitbucket - would have to manually do that which results in having to decline the PR anyway). PR makes it easier to review and modify before accepting.

  4. Stefan Glienke repo owner

    Is it possible to query from the dbms if it supports Boolean or not? Need research - until then on hold.

  5. Log in to comment