Microsoft KB Archive/100088: Difference between revisions

From BetaArchive Wiki
(importing KB archive)
 
m (X010 moved page Microsoft KB Archive/Q100088 to Microsoft KB Archive/100088 without leaving a redirect: Text replacement - "Microsoft KB Archive/Q" to "Microsoft KB Archive/")
 
(No difference)

Latest revision as of 19:13, 12 August 2020

FIX: SELECT INTO with Outer Join Can GP Fault Server

PSS ID Number: Q100088 Article last modified on 10-31-1994

4.20a

OS/2

The information in this article applies to:
- Microsoft SQL Server version 4.2a for OS/2

BUG# OS/2: 1713 (4.2a)

SYMPTOMS

Using the SELECT INTO command with an outer join between at least two tables and a GROUP BY that includes columns from both tables including a money type from the second table can cause SQL Server to general protection fault (GP fault) with the following SYS1943 error message:

A protection violation has occurred.

The minimum conditions required for replication are the following:

  1. The first table has at least three columns, at least two of which are VARCHAR or CHAR.
  2. The first table has at least 580 rows of data.
  3. The second table has a least one CHAR and a MONEY column, zero or more rows of data, and zero or more indexes.
  4. The table selected into can be either a temp table or permanent.
  5. The GROUP BY clause must contain at a minimum the two VARCHAR or CHAR columns from the first table and the money column from the second table.
  6. There must be an outer join (t1.c1 *= t2.c1) in the WHERE clause, but it does not appear to matter which columns it is on.

Following is a minimal example of the table structures and query required to trap the server. You will need to have at least 580 rows of data in t1 to replicate the error.

/*****************************************************/ /* Set up the two tables / /****************************************************/

use pubs go

drop table t1 go

create table t1 (c1 char(2) null, c2 varchar(10) null, c3 varchar(10) null) go

drop table t2 go

create table t2 (c4 char(2), c5 money) go

/**************************************************/ /* The query / /*************************************************/ /* Need to insert data or query will not crash. */

select c2, c3, c5 into #temp_snapshot from t1, t2 where t1.c1 *= t2.c4 group by c2, c3, c5 go

STATUS

Microsoft has confirmed this to be a problem in SQL Server version 4.2a for OS/2. This problem was corrected in SQL Server version 4.2aK11. For more information, contact your primary support provider.

Additional reference words: 4.20a kernel err msg errmsg alert KBCategory: kbprg kberrmsg KBSubCategory: SSrvServer SSrvGPF

=================================================================

Copyright Microsoft Corporation 1994.