Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mZs6N-0000nJ-EF for pgsql-odbc@arkaria.postgresql.org; Mon, 11 Oct 2021 10:00:11 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1mZrrq-0000ZS-Ii for pgsql-odbc@arkaria.postgresql.org; Mon, 11 Oct 2021 09:45:10 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mZrrq-0000Z8-AU for pgsql-odbc@lists.postgresql.org; Mon, 11 Oct 2021 09:45:10 +0000 Received: from mail-ed1-x536.google.com ([2a00:1450:4864:20::536]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1mZrrn-0000hQ-Rw for pgsql-odbc@lists.postgresql.org; Mon, 11 Oct 2021 09:45:09 +0000 Received: by mail-ed1-x536.google.com with SMTP id p13so66028092edw.0 for ; Mon, 11 Oct 2021 02:45:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=gFtz6BgDdNGukr/Qe347y2/+EjEp38Y2RQ3uYkbgmxM=; b=TYt+7l41vfpIa8NcDX7tOvg46FRsQIi1KrfiXiwZtmNhkVJb8cTV+T+ILbsBiZ1G5P tUyGUp/PiOy5xI24pBvTLTEz0PQCd/1ra9avz0DLP02gpM07FT8yK05wDbyvAol+IoOn wrhP8kIxm2YmhYivpZKH3eOhVam2667lddqEFBfMwerJNM6EuPDmntG+DV5cWmd+pGlU sqsVCPBAYsLiBy6HHNJ4q/wVcHmmQD4FCW4fDz8iafZxX+GRINKzWF8K/Xv5X1aykESr JyxAYPni34clHMbYSuj/KSODU4ctS86O7oeMiArUJrGWuTQe+Hk5kHJAM8lzEzR1HqVm nl1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=gFtz6BgDdNGukr/Qe347y2/+EjEp38Y2RQ3uYkbgmxM=; b=zK7NP2pSx+x67pujSIG4lPdSJJm2+ZD+0sFYewlnD/QuWy+ROyM6QeBen3a1n3XcE0 ACHcueX+zANq5PY6XUlHJqAvLWcSc24rchvpl64iKSwXli8Gp/KXtS6Q5UxAgnobETw3 GbK4gibi9lfyB/wEODRmRScNiXMBQe+jCZv9bjDBLIwwjMksuJ8VnOf57zbXeu6RCwnn TTPqEyI75yNtQiP4d8mrZ3pbDR+QmCvJ95AD7/oq7vcyXk1x99Vz2lZeI4hfuuNMq//2 0fY/19KjXw1fVQ2a4GR8v7rZ3qhkyLadaMEt5bh5L1E70rmwu06NxHavzpAunNuwmUem J7oQ== X-Gm-Message-State: AOAM533uteeJtejqqWouLrUt7hyM8yfeocJbG7ZLsrGLa4cpn3Jul+Pb EK1ELvb87RzG+bBYbk3C2+BgxXyn44aUb0fP6Y0= X-Google-Smtp-Source: ABdhPJxYKq5AfA/dmPg2G7ahMQdLU1fZ0++GDwjQBRKBiKYmZW8j6Acxkvj+i4nrdsehDd81CfP5WP39iwlnuW9xSqc= X-Received: by 2002:aa7:c952:: with SMTP id h18mr40293587edt.18.1633945507041; Mon, 11 Oct 2021 02:45:07 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: "Inoue,Hiroshi" Date: Mon, 11 Oct 2021 18:44:55 +0900 Message-ID: Subject: Re: SQLGetDiagField bug To: V T Cc: pgsql-odbc@lists.postgresql.org Content-Type: multipart/alternative; boundary="00000000000087959a05ce109523" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000087959a05ce109523 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, Sorry for the late reply. I would take care of this issue. Thanks. Hiroshi Inoue 2021=E5=B9=B410=E6=9C=888=E6=97=A5(=E9=87=91) 13:24 V T : > SQLGetDiagField(SQL_DIAG_NUMBER) with SQL_HANDLE_DBC returns SQL_NO_DATA > even if an error record exists. > > if I request one of unimplemented info types > SQL_DATETIME_LITERALS > SQL_STANDARD_CLI_CONFORMANCE > SQL_XOPEN_CLI_YEAR > > SQLUINTEGER bitmask; > SQLRETURN rc; > > rc =3D SQLGetInfo(hdbc, SQL_DATETIME_LITERALS, &bitmask, > sizeof(bitmask), NULL); // _ASSERT(rc =3D=3D 0); > if (rc !=3D SQL_SUCCESS) > { > SQLLEN numRecs; > SQLCHAR Msg[SQL_MAX_MESSAGE_LENGTH + 1]; > > rc =3D SQLGetDiagField(SQL_HANDLE_DBC, hdbc, 0, SQL_DIAG_NUMBER, > &numRecs, 0, nullptr); // _ASSERT(rc =3D=3D 0); > // returns SQL_NO_DATA > > // but this returns valid message > rc =3D SQLGetDiagRec(SQL_HANDLE_DBC, hdbc, 1, NULL, NULL, Msg, > sizeof(Msg), NULL); _ASSERT(rc =3D=3D 0); > __debugbreak(); > } > > > Also there is a typo in function PGAPI_GetTypeInfo(HSTMT hstmt, > SQLSMALLINT fSqlType) [info.c] > > https://git.postgresql.org/gitweb/?p=3Dpsqlodbc.git;a=3Dblob;f=3Dinfo.c;h= =3D2ce1a5acd19052c2525bdd5b2ab02701eb6cba1d;hb=3DHEAD#l1161 > "RECISION" should be "PRECISION" > --00000000000087959a05ce109523 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

Sorry for the late reply.
I would take care of this issue.

Thanks.
Hiroshi Inoue


2021=E5=B9=B410=E6=9C=888=E6=97=A5(=E9= =87=91) 13:24 V T <vova20007@gmai= l.com>:
<= div dir=3D"ltr">SQLGetDiagField(SQL_DIAG_NUMBER) with SQL_HANDLE_DBC return= s SQL_NO_DATA even if an error record exists.

if I request one of un= implemented info types
SQL_DATETIME_LITERALS
SQL_STANDARD_CLI_CONFOR= MANCE
SQL_XOPEN_CLI_YEAR

=C2=A0 =C2=A0 SQLUINTEGER bitmask;
= =C2=A0 =C2=A0 SQLRETURN rc;

=C2=A0 =C2=A0 rc =3D SQLGetInfo(hdbc, SQ= L_DATETIME_LITERALS, &bitmask, sizeof(bitmask), NULL); // _ASSERT(rc = =3D=3D 0);
=C2=A0 =C2=A0 if (rc !=3D SQL_SUCCESS)
=C2=A0 =C2=A0 {
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 SQLLEN numRecs;
=C2=A0 =C2=A0 =C2=A0 =C2=A0 = SQLCHAR Msg[SQL_MAX_MESSAGE_LENGTH + 1];

=C2=A0 =C2=A0 =C2=A0 =C2=A0= rc =3D SQLGetDiagField(SQL_HANDLE_DBC, hdbc, 0, SQL_DIAG_NUMBER, &numR= ecs, 0, nullptr); // _ASSERT(rc =3D=3D 0);
=C2=A0 =C2=A0 =C2=A0 =C2=A0 /= / returns SQL_NO_DATA

=C2=A0 =C2=A0 =C2=A0 =C2=A0 // but this return= s valid message
=C2=A0 =C2=A0 =C2=A0 =C2=A0 rc =3D SQLGetDiagRec(SQL_HAN= DLE_DBC, hdbc, 1, NULL, NULL, Msg, sizeof(Msg), NULL); _ASSERT(rc =3D=3D 0)= ;
=C2=A0 =C2=A0 =C2=A0 =C2=A0 __debugbreak();
=C2=A0 =C2=A0 }

=
Also there is a typo in function PGAPI_GetTypeInfo(HSTMT hstmt, SQLSMAL= LINT fSqlType) [info.c]
https://git.postgresql.org/gitweb/= ?p=3Dpsqlodbc.git;a=3Dblob;f=3Dinfo.c;h=3D2ce1a5acd19052c2525bdd5b2ab02701e= b6cba1d;hb=3DHEAD#l1161
"RECISION" should be "PRECISI= ON"
--00000000000087959a05ce109523--