Quantcast
Viewing all articles
Browse latest Browse all 8372

Issue with SQL statement in SAP HANA SP80

SAP HANA fails to execute an insert statement for a global temp table with a sequence.next value evaluating and joining with a non empty column table.

 

The error message is as follows:

 

Could not execute 'INSERT INTO "Temp_IDs" ("ID",indexid) SELECT ID, "index_seq".NEXTVAL orderId FROM ...' in 3.777 seconds.

 

After that it seems that the indexserver crashes and brings the whole hana instance offline for some time. (Crash dump can be attached if needed)

 

The following isolated SQL script can reproduce the error on any SAP HANA instance version lower than 80:

 

CREATE GLOBAL TEMPORARY COLUMN TABLE "Temp_IDs" ("INDEXID" BIGINT CS_FIXED, "ID" VARCHAR(36));      
CREATE sequence "index_seq" increment by 1 start with 1 minvalue 1 maxvalue 4611686018427387903 no cycle;
CREATE COLUMN TABLE "xyz::entity" ("ID" VARCHAR(36) NOT NULL, "IDTYPE" VARCHAR(36) NOT NULL, "SOURCESYSTEM" VARCHAR(255), PRIMARY KEY ("ID"));
INSERT INTO "xyz::entity" (ID, IDTYPE) VALUES ('6A33824A-082A-4699-AC02-ADCB514C71E6', '6A33824A-082A-4699-AC02-ADCB514C71E6');
INSERT INTO  "Temp_IDs" ("ID",indexid) SELECT ID, "index_seq".NEXTVAL orderId FROM "xyz"."xyz::entity" LIMIT 1;
truncate table "Temp_IDs";
drop table  "Temp_IDs";
drop table "xyz::entity";
drop sequence "index_seq";

 

(Please note: if Temp_IDs is not a temp table, but a regular table then the issue doesn't occur; If there is no "index_seq".NEXTVAL call in the insert statement then the issue doesn't occur)

 

Does anybody know a proper "workaround" for this scenario (e.g. to get the next value from a sequence like sequence.NEXTVAL without calling sequence.NEXTVAL)?


Viewing all articles
Browse latest Browse all 8372

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>