Blame ma_info.c

Packit Service 17f749
/************************************************************************************
Packit Service 17f749
   Copyright (C) 2013, 2017 MariaDB Corporation AB
Packit Service 17f749
   
Packit Service 17f749
   This library is free software; you can redistribute it and/or
Packit Service 17f749
   modify it under the terms of the GNU Library General Public
Packit Service 17f749
   License as published by the Free Software Foundation; either
Packit Service 17f749
   version 2.1 of the License, or (at your option) any later version.
Packit Service 17f749
   
Packit Service 17f749
   This library is distributed in the hope that it will be useful,
Packit Service 17f749
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 17f749
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service 17f749
   Library General Public License for more details.
Packit Service 17f749
   
Packit Service 17f749
   You should have received a copy of the GNU Library General Public
Packit Service 17f749
   License along with this library; if not see <http://www.gnu.org/licenses>
Packit Service 17f749
   or write to the Free Software Foundation, Inc., 
Packit Service 17f749
   51 Franklin St., Fifth Floor, Boston, MA 02110, USA
Packit Service 17f749
*************************************************************************************/
Packit Service 17f749
#include <ma_odbc.h>
Packit Service 17f749
Packit Service 17f749
MADB_TypeInfo TypeInfoV3[]=
Packit Service 17f749
{
Packit Service 17f749
  {"BIT",SQL_BIT,1,"","","NULL",1,1,3,0,0,0,"BIT",0,0,0,0,10, SQL_BIT},
Packit Service 17f749
  {"BOOL",SQL_BIT,1,"","","NULL",1,1,3,0,0,0,"BOOL",0,0,0,0,10, SQL_BIT},
Packit Service 17f749
  {"TINYINT",SQL_TINYINT,3,"","","NULL",1,0,3,SQL_FALSE,0,1,"TINYINT",0,0,0,0,10, SQL_TINYINT},
Packit Service 17f749
  {"TINYINT UNSIGNED",SQL_TINYINT,3,"","","NULL",1,0,3,SQL_TRUE,0,1,"TINYINT UNSIGNED",0,0,0,0,10, SQL_TINYINT},
Packit Service 17f749
  {"BIGINT",SQL_BIGINT,19,"","","NULL",1,0,3,SQL_FALSE,0,1,"BIGINT",0,0,0,0,10, SQL_BIGINT},
Packit Service 17f749
  {"BIGINT UNSIGNED",SQL_BIGINT,20,"","","NULL",1,0,3,1,0,1,"BIGINT UNSIGNED",0,0,0,0,10, SQL_BIGINT},
Packit Service 17f749
  {"LONG VARBINARY",SQL_LONGVARBINARY,16777215,"\\'","\\'","NULL",1,1,3,0,0,0,"LONG VARBINARY",0,0,0,0,10, SQL_LONGVARBINARY},
Packit Service 17f749
  {"MEDIUMBLOB",SQL_LONGVARBINARY,16777215,"\\'","\\'","NULL",1,1,3,0,0,0,"MEDIUMBLOB",0,0,0,0,10, SQL_LONGVARBINARY},
Packit Service 17f749
  {"LONGBLOB",SQL_LONGVARBINARY,2147483647,"\\'","\\'","NULL",1,1,3,0,0,0,"LONGBLOB",0,0,0,0,10, SQL_LONGVARBINARY},
Packit Service 17f749
  {"BLOB",SQL_LONGVARBINARY,65535,"\\'","\\'","NULL",1,1,3,0,0,0,"BLOB",0,0,0,0,10, SQL_LONGVARBINARY},
Packit Service 17f749
  {"TINYBLOB",SQL_LONGVARBINARY,255,"\\'","\\'","NULL",1,1,3,0,0,0,"TINYBLOB",0,0,0,0,10, SQL_LONGVARBINARY},
Packit Service 17f749
  {"VARBINARY",SQL_VARBINARY,255,"\\'","\\'","'length'",1,1,3,0,0,0,"VARBINARY",0,0,0,0,10, SQL_VARBINARY},
Packit Service 17f749
  {"BINARY",SQL_BINARY,255,"\\'","\\'","'length'",1,1,3,0,0,0,"BINARY",0,0,0,0,10, SQL_BINARY},
Packit Service 17f749
  {"LONG VARCHAR",SQL_LONGVARCHAR,16777215,"\\'","\\'","NULL",1,0,3,0,0,0,"LONG VARCHAR",0,0,0,0,10, SQL_LONGVARCHAR},
Packit Service 17f749
  {"MEDIUMTEXT",SQL_LONGVARCHAR,16777215,"\\'","\\'","NULL",1,0,3,0,0,0,"MEDIUMTEXT",0,0,0,0,10, SQL_LONGVARCHAR},
Packit Service 17f749
  {"LONGTEXT",SQL_LONGVARCHAR,2147483647,"\\'","\\'","NULL",1,0,3,0,0,0,"LONGTEXT",0,0,0,0,10, SQL_LONGVARCHAR},
Packit Service 17f749
  {"TEXT",SQL_LONGVARCHAR,65535,"\\'","\\'","NULL",1,0,3,0,0,0,"TEXT",0,0,0,0,10, SQL_LONGVARCHAR},
Packit Service 17f749
  {"TINYTEXT",SQL_LONGVARCHAR,255,"\\'","\\'","NULL",1,0,3,0,0,0,"TINYTEXT",0,0,0,0,10, SQL_LONGVARCHAR},
Packit Service 17f749
  {"CHAR",SQL_CHAR,255,"\\'","\\'","'length'",1,0,3,0,0,0,"CHAR",0,0,0,0,10, SQL_CHAR},
Packit Service 17f749
  {"NUMERIC",SQL_NUMERIC,65,"","","'precision,scale'",1,0,3,0,0,1,"NUMERIC", -308,308,0,0,10, SQL_NUMERIC}, /* Todo: ?? */
Packit Service 17f749
  {"DECIMAL",SQL_DECIMAL,65,"","","'precision,scale'",1,0,3,0,0,1,"DECIMAL",-308,308,0,0,10, SQL_DECIMAL},
Packit Service 17f749
  {"INTEGER",SQL_INTEGER,10,"","","NULL",1,0,3,SQL_FALSE,0,1,"INTEGER",0,0,0,0,10,SQL_INTEGER},
Packit Service 17f749
  {"INTEGER UNSIGNED",SQL_INTEGER,10,"","","NULL",1,0,3,1,0,1,"INTEGER UNSIGNED",0,0,0,0,10, SQL_INTEGER},
Packit Service 17f749
  {"INT",SQL_INTEGER,10,"","","NULL",1,0,3,SQL_FALSE,0,1,"INT",0,0,0,0,10, SQL_INTEGER},
Packit Service 17f749
  {"INT UNSIGNED",SQL_INTEGER,10,"","","NULL",1,0,3,1,0,1,"INT UNSIGNED",0,0,0,0,10, SQL_INTEGER},
Packit Service 17f749
  {"MEDIUMINT",SQL_INTEGER,7,"","","NULL",1,0,3,SQL_FALSE,0,1,"MEDIUMINT",0,0,0,0,10},
Packit Service 17f749
  {"MEDIUMINT UNSIGNED",SQL_INTEGER,8,"","","NULL",1,0,3,1,0,1,"MEDIUMINT UNSIGNED",0,0,0,0,10, SQL_INTEGER},
Packit Service 17f749
  {"SMALLINT",SQL_SMALLINT,5,"","","NULL",1,0,3,SQL_FALSE,0,1,"SMALLINT",0,0,0,0,10, SQL_SMALLINT},
Packit Service 17f749
  {"SMALLINT UNSIGNED",SQL_SMALLINT,5,"","","NULL",1,0,3,1,0,1,"SMALLINT UNSIGNED",0,0,0,0,10, SQL_SMALLINT},
Packit Service 17f749
  {"FLOAT",SQL_FLOAT,10,"","","'precision,scale'",1,0,3,0,0,1,"FLOAT",-38,38,0,0,10, SQL_FLOAT},
Packit Service 17f749
  {"DOUBLE",SQL_DOUBLE,17,"","","'precision,scale'",1,0,3,0,0,1,"DOUBLE",-308,308,0,0,10, SQL_DOUBLE},
Packit Service 17f749
  {"DOUBLE PRECISION",SQL_DOUBLE,17,"","","'precision,scale'",1,0,3,0,0,1,"DOUBLE PRECISION",-308,308,0,0,10, SQL_DOUBLE},
Packit Service 17f749
  {"REAL",SQL_DOUBLE,17,"","","'precision,scale'",1,0,3,0,0,1,"REAL",-308,308,0,0,10, SQL_DOUBLE},
Packit Service 17f749
  {"VARCHAR",SQL_VARCHAR,255,"\\'","\\'","'length'",1,0,3,0,0,0,"VARCHAR",0,0,0,0,10, SQL_VARCHAR},
Packit Service 17f749
  {"ENUM",SQL_VARCHAR,65535,"\\'","\\'","NULL",1,0,3,0,0,0,"ENUM",0,0,0,0,10, SQL_VARCHAR},
Packit Service 17f749
  {"SET",SQL_VARCHAR,64,"\\'","\\'","NULL",1,0,3,0,0,0,"SET",0,0,0,0,10, SQL_VARCHAR},
Packit Service 17f749
  {"DATE",SQL_TYPE_DATE,10,"\\'","\\'","NULL",1,0,3,0,0,0,"DATE",0,0,0,0,10, SQL_DATETIME},
Packit Service 17f749
  {"TIME",SQL_TYPE_TIME,8,"\\'","\\'","NULL",1,0,3,0,0,0,"TIME",0,0,0,0,10, SQL_DATETIME},
Packit Service 17f749
  {"DATETIME",SQL_TYPE_TIMESTAMP,16,"\\'","\\'","NULL",1,0,3,0,0,0,"DATETIME",0,0,0,0,10, SQL_DATETIME},
Packit Service 17f749
  {"TIMESTAMP",SQL_TYPE_TIMESTAMP,16,"\\'","\\'","'scale'",1,0,3,0,0,0,"TIMESTAMP",0,0,0,0,10, SQL_DATETIME},
Packit Service 17f749
  {"CHAR",SQL_WCHAR,255,"\\'","\\'","'length'",1,0,3,0,0,0,"CHAR",0,0,0,0,10, SQL_WCHAR},
Packit Service 17f749
  {"VARCHAR",SQL_WVARCHAR,255,"\\'","\\'","'length'",1,0,3,0,0,0,"VARCHAR",0,0,0,0,10, SQL_WVARCHAR},
Packit Service 17f749
  {"LONG VARCHAR",SQL_WLONGVARCHAR,16777215,"\\'","\\'","NULL",1,0,3,0,0,0,"LONG VARCHAR",0,0,0,0,10, SQL_LONGVARCHAR},
Packit Service 17f749
  {NULL,0,0,NULL,NULL,NULL,0,0,0,0,0,0,NULL,0,0,0,0,0}
Packit Service 17f749
};
Packit Service 17f749
Packit Service 17f749
MADB_TypeInfo TypeInfoV2[]=
Packit Service 17f749
{
Packit Service 17f749
  {"BIT",SQL_BIT,1,"","","NULL",1,1,3,0,0,0,"BIT",0,0,0,0,10, SQL_BIT},
Packit Service 17f749
  {"BOOL",SQL_BIT,1,"","","NULL",1,1,3,0,0,0,"BOOL",0,0,0,0,10, SQL_BIT},
Packit Service 17f749
  {"TINYINT",SQL_TINYINT,3,"","","NULL",1,0,3,SQL_FALSE,0,1,"TINYINT",0,0,0,0,10, SQL_TINYINT},
Packit Service 17f749
  {"TINYINT UNSIGNED",SQL_TINYINT,3,"","","NULL",1,0,3,SQL_FALSE,0,1,"TINYINT UNSIGNED",0,0,0,0,10, SQL_TINYINT},
Packit Service 17f749
  {"BIGINT",SQL_BIGINT,19,"","","NULL",1,0,3,SQL_FALSE,0,1,"BIGINT",0,0,0,0,10, SQL_BIGINT},
Packit Service 17f749
  {"BIGINT UNSIGNED",SQL_BIGINT,20,"","","NULL",1,0,3,SQL_TRUE,0,1,"BIGINT UNSIGNED",0,0,0,0,10, SQL_BIGINT},
Packit Service 17f749
  {"LONG VARBINARY",SQL_LONGVARBINARY,16777215,"\\'","\\'","NULL",1,1,3,0,0,0,"LONG VARBINARY",0,0,0,0,10, SQL_LONGVARBINARY},
Packit Service 17f749
  {"MEDIUMBLOB",SQL_LONGVARBINARY,16777215,"\\'","\\'","NULL",1,1,3,0,0,0,"MEDIUMBLOB",0,0,0,0,10, SQL_LONGVARBINARY},
Packit Service 17f749
  {"LONGBLOB",SQL_LONGVARBINARY,2147483647,"\\'","\\'","NULL",1,1,3,0,0,0,"LONGBLOB",0,0,0,0,10, SQL_LONGVARBINARY},
Packit Service 17f749
  {"BLOB",SQL_LONGVARBINARY,65535,"\\'","\\'","NULL",1,1,3,0,0,0,"BLOB",0,0,0,0,10, SQL_LONGVARBINARY},
Packit Service 17f749
  {"TINYBLOB",SQL_LONGVARBINARY,255,"\\'","\\'","NULL",1,1,3,0,0,0,"TINYBLOB",0,0,0,0,10, SQL_LONGVARBINARY},
Packit Service 17f749
  {"VARBINARY",SQL_VARBINARY,255,"\\'","\\'","'length'",1,1,3,0,0,0,"VARBINARY",0,0,0,0,10, SQL_VARBINARY},
Packit Service 17f749
  {"BINARY",SQL_BINARY,255,"\\'","\\'","'length'",1,1,3,0,0,0,"BINARY",0,0,0,0,10, SQL_BINARY},
Packit Service 17f749
  {"LONG VARCHAR",SQL_LONGVARCHAR,16777215,"\\'","\\'","NULL",1,0,3,0,0,0,"LONG VARCHAR",0,0,0,0,10, SQL_LONGVARCHAR},
Packit Service 17f749
  {"MEDIUMTEXT",SQL_LONGVARCHAR,16777215,"\\'","\\'","NULL",1,0,3,0,0,0,"MEDIUMTEXT",0,0,0,0,10, SQL_LONGVARCHAR},
Packit Service 17f749
  {"LONGTEXT",SQL_LONGVARCHAR,2147483647,"\\'","\\'","NULL",1,0,3,0,0,0,"LONGTEXT",0,0,0,0,10, SQL_LONGVARCHAR},
Packit Service 17f749
  {"TEXT",SQL_LONGVARCHAR,65535,"\\'","\\'","NULL",1,0,3,0,0,0,"TEXT",0,0,0,0,10, SQL_LONGVARCHAR},
Packit Service 17f749
  {"TINYTEXT",SQL_LONGVARCHAR,255,"\\'","\\'","NULL",1,0,3,0,0,0,"TINYTEXT",0,0,0,0,10, SQL_LONGVARCHAR},
Packit Service 17f749
  {"CHAR",SQL_CHAR,255,"\\'","\\'","'length'",1,0,3,0,0,0,"CHAR",0,0,0,0,10, SQL_CHAR},
Packit Service 17f749
  {"NUMERIC",SQL_NUMERIC,65,"","","'precision,scale'",1,0,3,0,0,1,"NUMERIC", -308,308,0,0,10, SQL_NUMERIC}, /* Todo: ?? */
Packit Service 17f749
  {"DECIMAL",SQL_DECIMAL,65,"","","'precision,scale'",1,0,3,0,0,1,"DECIMAL",-308,308,0,0,10, SQL_DECIMAL},
Packit Service 17f749
  {"INTEGER",SQL_INTEGER,10,"","","NULL",1,0,3,SQL_FALSE,0,1,"INTEGER",0,0,0,0,10,SQL_INTEGER},
Packit Service 17f749
  {"INTEGER UNSIGNED",SQL_INTEGER,10,"","","NULL",1,0,3,1,0,1,"INTEGER UNSIGNED",0,0,0,0,10, SQL_INTEGER},
Packit Service 17f749
  {"INT",SQL_INTEGER,10,"","","NULL",1,0,3,SQL_FALSE,0,1,"INT",0,0,0,0,10, SQL_INTEGER},
Packit Service 17f749
  {"INT UNSIGNED",SQL_INTEGER,10,"","","NULL",1,0,3,1,0,1,"INT UNSIGNED",0,0,0,0,10, SQL_INTEGER},
Packit Service 17f749
  {"MEDIUMINT",SQL_INTEGER,7,"","","NULL",1,0,3,SQL_FALSE,0,1,"MEDIUMINT",0,0,0,0,10},
Packit Service 17f749
  {"MEDIUMINT UNSIGNED",SQL_INTEGER,8,"","","NULL",1,0,3,1,0,1,"MEDIUMINT UNSIGNED",0,0,0,0,10, SQL_INTEGER},
Packit Service 17f749
  {"SMALLINT",SQL_SMALLINT,5,"","","NULL",1,0,3,SQL_FALSE,0,1,"SMALLINT",0,0,0,0,10, SQL_SMALLINT},
Packit Service 17f749
  {"SMALLINT UNSIGNED",SQL_SMALLINT,5,"","","NULL",1,0,3,1,0,1,"SMALLINT UNSIGNED",0,0,0,0,10, SQL_SMALLINT},
Packit Service 17f749
  {"FLOAT",SQL_FLOAT,10,"","","'precision,scale'",1,0,3,0,0,1,"FLOAT",-38,38,0,0,10, SQL_FLOAT},
Packit Service 17f749
  {"DOUBLE",SQL_DOUBLE,17,"","","'precision,scale'",1,0,3,0,0,1,"DOUBLE",-308,308,0,0,10, SQL_DOUBLE},
Packit Service 17f749
  {"DOUBLE PRECISION",SQL_DOUBLE,17,"","","'precision,scale'",1,0,3,0,0,1,"DOUBLE PRECISION",-308,308,0,0,10, SQL_DOUBLE},
Packit Service 17f749
  {"REAL",SQL_DOUBLE,17,"","","'precision,scale'",1,0,3,0,0,1,"REAL",-308,308,0,0,10, SQL_DOUBLE},
Packit Service 17f749
  {"VARCHAR",SQL_VARCHAR,255,"\\'","\\'","'length'",1,0,3,0,0,0,"VARCHAR",0,0,0,0,10, SQL_VARCHAR},
Packit Service 17f749
  {"ENUM",SQL_VARCHAR,65535,"\\'","\\'","NULL",1,0,3,0,0,0,"ENUM",0,0,0,0,10, SQL_VARCHAR},
Packit Service 17f749
  {"SET",SQL_VARCHAR,64,"\\'","\\'","NULL",1,0,3,0,0,0,"SET",0,0,0,0,10, SQL_VARCHAR},
Packit Service 17f749
  {"DATE",SQL_DATE,10,"\\'","\\'","NULL",1,0,3,0,0,0,"DATE",0,0,0,0,10, SQL_DATETIME},
Packit Service 17f749
  {"TIME",SQL_TIME,18,"\\'","\\'","NULL",1,0,3,0,0,0,"TIME",0,0,0,0,10, SQL_DATETIME},
Packit Service 17f749
  {"DATETIME",SQL_TIMESTAMP,27,"\\'","\\'","NULL",1,0,3,0,0,0,"DATETIME",0,0,0,0,10, SQL_DATETIME},
Packit Service 17f749
  {"TIMESTAMP",SQL_TIMESTAMP,27,"\\'","\\'","'scale'",1,0,3,0,0,0,"TIMESTAMP",0,0,0,0,10, SQL_DATETIME},
Packit Service 17f749
  {"CHAR",SQL_WCHAR,255,"\\'","\\'","'length'",1,0,3,0,0,0,"CHAR",0,0,0,0,10, SQL_WCHAR},
Packit Service 17f749
  {"VARCHAR",SQL_WVARCHAR,255,"\\'","\\'","'length'",1,0,3,0,0,0,"VARCHAR",0,0,0,0,10, SQL_WVARCHAR},
Packit Service 17f749
  {"LONG VARCHAR",SQL_WLONGVARCHAR,16777215,"\\'","\\'","NULL",1,0,3,0,0,0,"LONG VARCHAR",0,0,0,0,10, SQL_WLONGVARCHAR},
Packit Service 17f749
  {NULL,0,0,NULL,NULL,NULL,0,0,0,0,0,0,NULL,0,0,0,0,0}
Packit Service 17f749
};
Packit Service 17f749
Packit Service 17f749
static MADB_ShortTypeInfo gtiDefType[19]= {{0, 0, 0, 0}, {SQL_SMALLINT, 0, 0, 0}, {SQL_INTEGER, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0},
Packit Service 17f749
                                 /*7*/     {SQL_SMALLINT, 0, 0, 0}, {SQL_SMALLINT, 0, 0, 0}, {SQL_SMALLINT, 0, 0, 0}, {SQL_SMALLINT, 0, 0, 0},
Packit Service 17f749
                                 /*11*/    {SQL_SMALLINT, 0, 0, 0}, {SQL_SMALLINT, 0, 0, 0}, {0, 0, 0, 0}, {SQL_SMALLINT, 0, 0, 0}, {SQL_SMALLINT, 0, 0, 0},
Packit Service 17f749
                                 /*16*/    {SQL_SMALLINT, 0, 0, 0}, {SQL_SMALLINT, 0, 0, 0}, {SQL_INTEGER, 0, 0, 0}, {SQL_SMALLINT, 0, 0, 0} };
Packit Service 17f749
/* {{{ MADB_GetTypeInfo */
Packit Service 17f749
SQLRETURN MADB_GetTypeInfo(SQLHSTMT StatementHandle,
Packit Service 17f749
                           SQLSMALLINT DataType)
Packit Service 17f749
{
Packit Service 17f749
  MADB_Stmt *Stmt= (MADB_Stmt *)StatementHandle;
Packit Service 17f749
  SQLRETURN ret;
Packit Service 17f749
  my_bool   isFirst= TRUE;
Packit Service 17f749
  char      StmtStr[5120];
Packit Service 17f749
  char      *p= StmtStr;
Packit Service 17f749
  int       i;
Packit Service 17f749
  MADB_TypeInfo *TypeInfo= TypeInfoV3;
Packit Service 17f749
Packit Service 17f749
  if (Stmt->Connection->Environment->OdbcVersion == SQL_OV_ODBC2)
Packit Service 17f749
  {
Packit Service 17f749
    TypeInfo= TypeInfoV2;
Packit Service 17f749
    /* We need to map time types */
Packit Service 17f749
    switch(DataType) {
Packit Service 17f749
      case SQL_TYPE_TIMESTAMP:
Packit Service 17f749
        DataType=SQL_TIMESTAMP;
Packit Service 17f749
        break;
Packit Service 17f749
      case SQL_TYPE_DATE:
Packit Service 17f749
        DataType= SQL_DATE;
Packit Service 17f749
        break;
Packit Service 17f749
      case SQL_TYPE_TIME:
Packit Service 17f749
        DataType= SQL_TIME;
Packit Service 17f749
        break;
Packit Service 17f749
      default:
Packit Service 17f749
      break;
Packit Service 17f749
    }
Packit Service 17f749
  }
Packit Service 17f749
Packit Service 17f749
  StmtStr[0]= 0;
Packit Service 17f749
  for (i=0;TypeInfo[i].TypeName; i++)
Packit Service 17f749
  {
Packit Service 17f749
    if (DataType == SQL_ALL_TYPES ||
Packit Service 17f749
       TypeInfo[i].DataType == DataType)
Packit Service 17f749
    {
Packit Service 17f749
      if(isFirst)
Packit Service 17f749
      {
Packit Service 17f749
        isFirst= FALSE;
Packit Service 17f749
        p+= _snprintf(p, 5120 - strlen(StmtStr),
Packit Service 17f749
          "SELECT '%s' AS TYPE_NAME, %d AS DATA_TYPE, %lu AS COLUMN_SIZE, '%s' AS LITERAL_PREFIX, "
Packit Service 17f749
          "'%s' AS LITERAL_SUFFIX, %s AS CREATE_PARAMS, %d AS NULLABLE, %d AS CASE_SENSITIVE, "
Packit Service 17f749
          "%d AS SEARCHABLE, %d AS UNSIGNED_ATTRIBUTE, %d AS FIXED_PREC_SCALE, %d AS AUTO_UNIQUE_VALUE, "
Packit Service 17f749
          "'%s' AS LOCAL_TYPE_NAME, %d AS MINIMUM_SCALE, %d AS MAXIMUM_SCALE, "
Packit Service 17f749
          "%d AS SQL_DATA_TYPE, "
Packit Service 17f749
          "%d AS SQL_DATETIME_SUB, %d AS NUM_PREC_RADIX, NULL AS INTERVAL_PRECISION ",
Packit Service 17f749
         TypeInfo[i].TypeName,TypeInfo[i].DataType,TypeInfo[i].ColumnSize,TypeInfo[i].LiteralPrefix,
Packit Service 17f749
         TypeInfo[i].LiteralSuffix,TypeInfo[i].CreateParams,TypeInfo[i].Nullable,TypeInfo[i].CaseSensitive,
Packit Service 17f749
         TypeInfo[i].Searchable,TypeInfo[i].Unsigned,TypeInfo[i].FixedPrecScale,TypeInfo[i].AutoUniqueValue,
Packit Service 17f749
         TypeInfo[i].LocalTypeName,TypeInfo[i].MinimumScale,TypeInfo[i].MaximumScale,
Packit Service 17f749
         TypeInfo[i].SqlDataType,
Packit Service 17f749
         TypeInfo[i].SqlDateTimeSub,TypeInfo[i].NumPrecRadix);
Packit Service 17f749
      }
Packit Service 17f749
      else
Packit Service 17f749
          p+= _snprintf(p, 5120 - strlen(StmtStr),
Packit Service 17f749
          "UNION SELECT '%s', %d, %lu , '%s', "
Packit Service 17f749
          "'%s', %s, %d, %d, "
Packit Service 17f749
          "%d, %d, %d, %d, "
Packit Service 17f749
          "'%s', %d, %d, "
Packit Service 17f749
          "%d, "
Packit Service 17f749
          "%d, %d, NULL ",
Packit Service 17f749
         TypeInfo[i].TypeName,TypeInfo[i].DataType,TypeInfo[i].ColumnSize,TypeInfo[i].LiteralPrefix,
Packit Service 17f749
         TypeInfo[i].LiteralSuffix,TypeInfo[i].CreateParams,TypeInfo[i].Nullable,TypeInfo[i].CaseSensitive,
Packit Service 17f749
         TypeInfo[i].Searchable,TypeInfo[i].Unsigned,TypeInfo[i].FixedPrecScale,TypeInfo[i].AutoUniqueValue,
Packit Service 17f749
         TypeInfo[i].LocalTypeName,TypeInfo[i].MinimumScale,TypeInfo[i].MaximumScale,
Packit Service 17f749
         TypeInfo[i].SqlDataType,
Packit Service 17f749
         TypeInfo[i].SqlDateTimeSub,TypeInfo[i].NumPrecRadix);
Packit Service 17f749
    }
Packit Service 17f749
  }
Packit Service 17f749
  ret= Stmt->Methods->ExecDirect(Stmt, StmtStr, SQL_NTS);
Packit Service 17f749
  if (SQL_SUCCEEDED(ret))
Packit Service 17f749
  {
Packit Service 17f749
    MADB_FixColumnDataTypes(Stmt, gtiDefType);
Packit Service 17f749
  }
Packit Service 17f749
  return ret;
Packit Service 17f749
}
Packit Service 17f749
/* }}} */