summaryrefslogtreecommitdiff
path: root/ext/sqlite/libsqlite/src/insert.c
diff options
context:
space:
mode:
authorIlia Alshanetsky <iliaa@php.net>2004-01-08 14:25:01 +0000
committerIlia Alshanetsky <iliaa@php.net>2004-01-08 14:25:01 +0000
commita4ea8eb44ec63e407007abea957221e92a081a31 (patch)
tree23566b703ee020fcee70beb3bc38d3e11c37e14c /ext/sqlite/libsqlite/src/insert.c
parent2cf3cb6407aa108f21149782245c61e7e393ec59 (diff)
downloadphp-git-a4ea8eb44ec63e407007abea957221e92a081a31.tar.gz
Upgrade bundled libsqlite to 2.8.9
Diffstat (limited to 'ext/sqlite/libsqlite/src/insert.c')
-rw-r--r--ext/sqlite/libsqlite/src/insert.c26
1 files changed, 24 insertions, 2 deletions
diff --git a/ext/sqlite/libsqlite/src/insert.c b/ext/sqlite/libsqlite/src/insert.c
index 07cb30440e..ab72cb761d 100644
--- a/ext/sqlite/libsqlite/src/insert.c
+++ b/ext/sqlite/libsqlite/src/insert.c
@@ -688,7 +688,7 @@ void sqliteGenerateConstraintChecks(
char *zMsg = 0;
sqliteVdbeAddOp(v, OP_Halt, SQLITE_CONSTRAINT, onError);
sqliteSetString(&zMsg, pTab->zName, ".", pTab->aCol[i].zName,
- " may not be NULL", 0);
+ " may not be NULL", (char*)0);
sqliteVdbeChangeP3(v, -1, zMsg, P3_DYNAMIC);
break;
}
@@ -817,8 +817,30 @@ void sqliteGenerateConstraintChecks(
case OE_Rollback:
case OE_Abort:
case OE_Fail: {
+ int j, n1, n2;
+ char zErrMsg[200];
+ strcpy(zErrMsg, pIdx->nColumn>1 ? "columns " : "column ");
+ n1 = strlen(zErrMsg);
+ for(j=0; j<pIdx->nColumn && n1<sizeof(zErrMsg)-30; j++){
+ char *zCol = pTab->aCol[pIdx->aiColumn[j]].zName;
+ n2 = strlen(zCol);
+ if( j>0 ){
+ strcpy(&zErrMsg[n1], ", ");
+ n1 += 2;
+ }
+ if( n1+n2>sizeof(zErrMsg)-30 ){
+ strcpy(&zErrMsg[n1], "...");
+ n1 += 3;
+ break;
+ }else{
+ strcpy(&zErrMsg[n1], zCol);
+ n1 += n2;
+ }
+ }
+ strcpy(&zErrMsg[n1],
+ pIdx->nColumn>1 ? " are not unique" : " is not unique");
sqliteVdbeAddOp(v, OP_Halt, SQLITE_CONSTRAINT, onError);
- sqliteVdbeChangeP3(v, -1, "uniqueness constraint failed", P3_STATIC);
+ sqliteVdbeChangeP3(v, -1, sqliteStrDup(zErrMsg), P3_DYNAMIC);
break;
}
case OE_Ignore: {