From ea4701f73f573d3cf204b531410cf379f12e84e2 Mon Sep 17 00:00:00 2001 From: Ansgar Becker Date: Sun, 31 Aug 2014 09:25:38 +0000 Subject: [PATCH] Introduce a UNKNOWN data type in PostgreSQL, so we don't fall into a SQL error when opening the data grid with a SUBSTR() call on a non-text column, for example USER-DEFINED/GEOMETRY(POINT). --- source/dbconnection.pas | 2 +- source/mysql_structures.pas | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/source/dbconnection.pas b/source/dbconnection.pas index c49cd1c6..7315aa09 100644 --- a/source/dbconnection.pas +++ b/source/dbconnection.pas @@ -1444,7 +1444,7 @@ begin end; rx.Free; if (not Match) and (FParameters.NetTypeGroup = ngPgSQL) then - Result := FDatatypes[11]; + Result := FDatatypes[0]; end; diff --git a/source/mysql_structures.pas b/source/mysql_structures.pas index 646eecc7..2e6fb1fa 100644 --- a/source/mysql_structures.pas +++ b/source/mysql_structures.pas @@ -186,7 +186,7 @@ type dtDate, dtTime, dtYear, dtDatetime, dtSmalldatetime, dtTimestamp, dtChar, dtNchar, dtVarchar, dtNvarchar, dtTinytext, dtText, dtNtext, dtMediumtext, dtLongtext, dtBinary, dtVarbinary, dtTinyblob, dtBlob, dtMediumblob, dtLongblob, dtImage, - dtEnum, dtSet, dtBit, dtVarBit, dtBool, + dtEnum, dtSet, dtBit, dtVarBit, dtBool, dtUnknown, dtCursor, dtSqlvariant, dtTable, dtUniqueidentifier, dtPoint, dtLinestring, dtLineSegment, dtPolygon, dtGeometry, dtBox, dtPath, dtCircle, dtMultipoint, dtMultilinestring, dtMultipolygon, dtGeometrycollection ); @@ -1121,8 +1121,19 @@ var ) ); - PostgreSQLDatatypes: Array[0..26] of TDBDatatype = + PostgreSQLDatatypes: Array[0..27] of TDBDatatype = ( + ( + Index: dtUnknown; + NativeTypes: '99999'; + Name: 'UNKNOWN'; + Description: 'Unknown data type'; + HasLength: False; + RequiresLength: False; + HasBinary: False; + HasDefault: False; + Category: dtcOther; + ), ( Index: dtSmallint; NativeTypes: '21';