From 90b6440e4a8bb8f8d778af65c0c975b6bb2832f1 Mon Sep 17 00:00:00 2001 From: Rivers Zhang Date: Fri, 1 Sep 2023 14:35:16 -0400 Subject: [PATCH] {171428666}: column character encoding A new `ENCODING` keyword is introduced in this patch, that specifies a character set for a column. Invalid character encoding will be rejected. So far only `"utf8"` and `NONE` are supported. This allows users to conveniently create an indexable utf8 cstring column. It's implemented as a check constraint using the `utf8_validate()` function. Signed-off-by: Rivers Zhang --- db/types.c | 32 +++++---- docs/images/alter-table-ddl.gif | Bin 57239 -> 60145 bytes docs/images/column-constraint.gif | Bin 16563 -> 17805 bytes docs/src/sqlitegen/bubble-generator-data.tcl | 12 ++++ schemachange/sc_records.c | 7 +- sqlite/src/comdb2build.c | 70 +++++++++++++++++-- sqlite/src/comdb2build.h | 1 + sqlite/src/func.c | 31 ++++++++ sqlite/src/parse.y | 8 +++ sqlite/tool/mkkeywordhash.c | 1 + tests/auth.test/t09.expected | 2 + tests/comdb2sys.test/comdb2sys.expected | 3 +- tests/ddl_no_csc2.test/t09_check.expected | 2 +- tests/ddl_no_csc2.test/t15_encoding.expected | 17 +++++ tests/ddl_no_csc2.test/t15_encoding.sql | 13 ++++ tests/func.test/t02_utf8_validate.expected | 2 + tests/func.test/t02_utf8_validate.sql | 2 + 17 files changed, 182 insertions(+), 21 deletions(-) create mode 100644 tests/ddl_no_csc2.test/t15_encoding.expected create mode 100644 tests/ddl_no_csc2.test/t15_encoding.sql create mode 100644 tests/func.test/t02_utf8_validate.expected create mode 100644 tests/func.test/t02_utf8_validate.sql diff --git a/db/types.c b/db/types.c index d3aa44668d..0dcaf85923 100644 --- a/db/types.c +++ b/db/types.c @@ -3695,6 +3695,21 @@ TYPES_INLINE int CLIENT_BLOB_to_CLIENT_PSTR2( return -1; } +static int utf8_validate_permitting_trailing_zeros(const char *u, int max) +{ + int valid_len; + + if (utf8_validate(u, max, &valid_len) != 0) + return -1; + + /* utf8_validate() stops at the 1st NUL character. We want to permit trailing zeros */ + for (; valid_len < max - 1; ++valid_len) { + if (u[valid_len] != '\0') + return -1; + } + return 0; +} + /** * Finds out where the input vutf8 string is stored and then determines where it * should be copied and copies it. Doesn't deal with NULLs. @@ -3717,7 +3732,6 @@ static TYPES_INLINE int vutf8_convert(int len, const void *in, int in_len, blob_buffer_t *inblob, blob_buffer_t *outblob, int *outdtsz) { - int valid_len; if (out_len > 0) memset(out, 0, out_len); @@ -3742,10 +3756,8 @@ static TYPES_INLINE int vutf8_convert(int len, const void *in, int in_len, /* validate input blob */ assert(inblob->length == len); - if (utf8_validate(inblob->data, inblob->length, &valid_len) || - valid_len != len - 1) { + if (utf8_validate_permitting_trailing_zeros(inblob->data, inblob->length)) return -1; - } memcpy(outblob, inblob, sizeof(blob_buffer_t)); bzero(inblob, sizeof(blob_buffer_t)); @@ -3767,8 +3779,7 @@ static TYPES_INLINE int vutf8_convert(int len, const void *in, int in_len, /* if the string isn't empty, validate the string and make sure its * length matches len (minus 1 for the NUL byte) */ - if (len > 0 && - (utf8_validate(in, len, &valid_len) || valid_len != len - 1)) + if (len > 0 && utf8_validate_permitting_trailing_zeros(in, len)) return -1; memcpy(out, in, len); @@ -3785,7 +3796,6 @@ static TYPES_INLINE int vutf8_convert(int len, const void *in, int in_len, * fit in the out buffer, then the string needs to be copied from the in * buffer to a new out blob */ else if (len <= in_len) { - int valid_len; if (outblob) { if (len > gbl_blob_sz_thresh_bytes) @@ -3800,8 +3810,7 @@ static TYPES_INLINE int vutf8_convert(int len, const void *in, int in_len, /* if the string isn't empty, validate the string and make sure its * length matches len (minus 1 for the NUL byte) */ - if (len > 0 && - (utf8_validate(in, len, &valid_len) || valid_len != len - 1)) + if (len > 0 && utf8_validate_permitting_trailing_zeros(in, len)) return -1; memcpy(outblob->data, in, len); @@ -3821,8 +3830,6 @@ static TYPES_INLINE int vutf8_convert(int len, const void *in, int in_len, * blob to the out buffer */ else /* len <= out_len */ { - int valid_len; - /* Do not attempt to convert a blob placeholder (i.e., length == -2) */ if (inblob && inblob->length != OSQL_BLOB_FILLER_LENGTH) { if (!inblob->exists || !inblob->data) { @@ -3832,8 +3839,7 @@ static TYPES_INLINE int vutf8_convert(int len, const void *in, int in_len, /* if the string isn't empty, validate the string and make sure its * length matches len (minus 1 for the NUL byte) */ - if (len > 0 && (utf8_validate(inblob->data, len, &valid_len) || - valid_len != len - 1)) + if (len > 0 && utf8_validate_permitting_trailing_zeros(inblob->data, len)) return -1; memcpy(out, inblob->data, len); diff --git a/docs/images/alter-table-ddl.gif b/docs/images/alter-table-ddl.gif index 60c5e77a021f1fefe2f5c255b17c54b602c469c4..66e3957c72df7c81ee7bb8679c12279bd94b09c6 100644 GIT binary patch delta 57700 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 F06T$)@TC9% delta 54799 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

b+7VVXiVy21Xh<+ofeoN+ib7*}y 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 LUpK=*0Qvs|f*JT% diff --git a/docs/src/sqlitegen/bubble-generator-data.tcl b/docs/src/sqlitegen/bubble-generator-data.tcl index 3356b0ce32..ae85137586 100644 --- a/docs/src/sqlitegen/bubble-generator-data.tcl +++ b/docs/src/sqlitegen/bubble-generator-data.tcl @@ -724,6 +724,12 @@ stack } } {line OPTION DBPAD = signed-number } + {line ENCODING + {or + {line /string-literal} + {line NONE} + } + } } table-constraint { @@ -828,6 +834,12 @@ stack } NOT NULL } + {line ENCODING + {or + {line /string-literal} + {line NONE} + } + } } } {line OPTIONS ( table-options ) } diff --git a/schemachange/sc_records.c b/schemachange/sc_records.c index 2b1d9ff683..b13b9748df 100644 --- a/schemachange/sc_records.c +++ b/schemachange/sc_records.c @@ -545,12 +545,12 @@ static int prepare_and_verify_newdb_record(struct convert_record_data *data, if (rc < 0) { logmsg(LOGMSG_DEBUG, "%s:%d internal error during CHECK constraint\n", __func__, __LINE__); - return ERR_CONSTR; + return ERR_CHECK_CONSTRAINT; } else if (rc > 0) { logmsg(LOGMSG_DEBUG, "%s:%d CHECK constraint failed for '%s'\n", __func__, __LINE__, data->iq.usedb->check_constraints[rc - 1].consname); - return ERR_CONSTR; + return ERR_CHECK_CONSTRAINT; } rc = verify_record_constraint(&data->iq, data->to, data->trans, p_buf_data, @@ -1123,6 +1123,9 @@ static int convert_record(struct convert_record_data *data) } else if (rc == ERR_VERIFY_PI) { sc_client_error(data->s, "Error verifying partial indexes! rrn %d genid 0x%llx", rrn, genid); return -2; + } else if (rc == ERR_CHECK_CONSTRAINT) { + sc_client_error(data->s, "Record violates check constraints rrn %d genid 0x%llx", rrn, genid); + return -2; } else if (rc != 0) { sc_client_error(data->s, "Error adding record rcode %d opfailcode %d ixfailnum %d rrn %d genid 0x%llx, stripe %d", rc, diff --git a/sqlite/src/comdb2build.c b/sqlite/src/comdb2build.c index 93498012a4..2eb3f2f298 100644 --- a/sqlite/src/comdb2build.c +++ b/sqlite/src/comdb2build.c @@ -6406,7 +6406,7 @@ void comdb2DeferForeignKey(Parse *pParse, int isDeferred) return; } -static void drop_constraint(Parse *pParse, Token *pName, int type) +static void drop_constraint(Parse *pParse, Token *pName, int type, int hush) { if (comdb2IsPrepareOnly(pParse)) return; @@ -6433,7 +6433,7 @@ static void drop_constraint(Parse *pParse, Token *pName, int type) if (cons) { /* Mark it as dropped. */ cons->flags |= CONS_DELETED; - } else { + } else if (!hush) { pParse->rc = SQLITE_ERROR; sqlite3ErrorMsg(pParse, "Constraint '%s' not found.", name); goto cleanup; @@ -6454,7 +6454,7 @@ void comdb2DropForeignKey(Parse *pParse, /* Parser context */ Token *pName /* Foreign key name */ ) { - drop_constraint(pParse, pName, CONS_FKEY); + drop_constraint(pParse, pName, CONS_FKEY, 0); return; } @@ -6462,7 +6462,7 @@ void comdb2DropConstraint(Parse *pParse, /* Parser context */ Token *pName /* Foreign key name */ ) { - drop_constraint(pParse, pName, CONS_ALL); + drop_constraint(pParse, pName, CONS_ALL, 0); return; } @@ -7690,3 +7690,65 @@ void create_default_consumer_sp(Parse *p, char *spname) comdb2prepareNoRows(v, p, 0, sc, &comdb2SqlSchemaChange, (vdbeFuncArgFree)&free_schema_change_type); } + +void comdb2ChangeCharacterSet(Parse *pParse, Token *t, int alter) +{ + struct comdb2_ddl_context *ctx; + struct comdb2_column *column; + sqlite3 *db = pParse->db; + + char *charset = NULL; + char expr[MAXCOLNAME + sizeof("utf8_validate()=0")]; + char constraint_name[MAXCOLNAME + sizeof("$" GEN_CONS_PREFIX "_CHAR_ENC_")]; + int nw; + + Token colToken; + Token funcToken; + ExprList *arg; + Expr *func; + Expr *zero; + Expr *equality; + + if (t != NULL) { + charset = sqlite3NameFromToken(db, t); + if (charset == NULL) + return; + + /* so far only utf8 is supported */ + if (strcasecmp(charset, "utf8") != 0 && strcasecmp(charset, "utf-8") != 0) { + setError(pParse, SQLITE_MISUSE, "unknown charset"); + goto out; + } + } + + ctx = pParse->comdb2_ddl_ctx; + if (alter) + column = ctx->alter_column; + else + column = (struct comdb2_column *)LISTC_BOT(&ctx->schema->column_list); + + if (column->type != SQL_TYPE_CSTRING && column->type != SQL_TYPE_VARCHAR && column->type != SQL_TYPE_CHAR) { + setError(pParse, SQLITE_MISUSE, "invalid column type to use character encoding"); + goto out; + } + + snprintf(constraint_name, sizeof(constraint_name), "$" GEN_CONS_PREFIX "_CHAR_ENC_%s", column->name); + sqlite3TokenInit(&pParse->constraintName, constraint_name); + + if (t == NULL) { + drop_constraint(pParse, &pParse->constraintName, CONS_CHECK, 1); + } else { + sqlite3TokenInit(&colToken, column->name); + sqlite3TokenInit(&funcToken, "utf8_validate"); + + arg = sqlite3ExprListAppend(pParse, NULL, sqlite3ExprAlloc(db, TK_ID, &colToken, 0)); + func = sqlite3ExprFunction(pParse, arg, &funcToken, 0); + zero = sqlite3ExprAlloc(db, TK_INTEGER, &sqlite3IntTokens[0], 0); + + equality = sqlite3PExpr(pParse, TK_EQ, func, zero); + nw = snprintf(expr, sizeof(expr), "utf8_validate(%s)=0", column->name); + comdb2AddCheckConstraint(pParse, equality, expr, expr + nw + 1); + } +out: + sqlite3DbFree(db, charset); +} diff --git a/sqlite/src/comdb2build.h b/sqlite/src/comdb2build.h index 3464fe6e8a..79876f7296 100644 --- a/sqlite/src/comdb2build.h +++ b/sqlite/src/comdb2build.h @@ -80,6 +80,7 @@ void comdb2AddIndex(Parse *, Token *, ExprList *, int, Expr *, const char *, const char *, int, u8, int, ExprList *); void comdb2AddDbpad(Parse *, int); void comdb2AddCheckConstraint(Parse *, Expr *, const char *, const char *); +void comdb2ChangeCharacterSet(Parse *pParse, Token *, int); void comdb2CreateIndex(Parse *, Token *, Token *, SrcList *, ExprList *, int, Token *, Expr *, const char *, const char *, int, int, u8, int, ExprList *, int); diff --git a/sqlite/src/func.c b/sqlite/src/func.c index bec8095f54..1ccfc03d88 100644 --- a/sqlite/src/func.c +++ b/sqlite/src/func.c @@ -1418,6 +1418,36 @@ static void uncompressGzipFunc( return; } +/* Return 0 if payload is utf8. Return (-N - 1), where N is the index + * of the first malformed character */ +int utf8_validate(const char *str, int len, int *valid_len); +static void comdb2Utf8ValidateFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + int valid_len, rc, len; + const char *z; + assert(argc == 1); + UNUSED_PARAMETER(argc); + + switch( sqlite3_value_type(argv[0]) ){ + case SQLITE_BLOB: + len = sqlite3_value_bytes(argv[0]); + z = sqlite3_value_blob(argv[0]); + rc = utf8_validate(z, len, &valid_len); + break; + case SQLITE_TEXT: + len = sqlite3_value_bytes(argv[0]) + 1; /* +1 for \0 */ + z = (const char *)sqlite3_value_text(argv[0]); + rc = utf8_validate(z, len, &valid_len); + break; + default: + rc = -1; + break; + } + sqlite3_result_int(context, rc == 0 ? rc : (-valid_len - 1)); +} #endif /* defined(SQLITE_BUILDING_FOR_COMDB2) */ /* @@ -3093,6 +3123,7 @@ void sqlite3RegisterBuiltinFunctions(void){ FUNCTION(comdb2_starttime, 0, 0, 0, comdb2StartTimeFunc), FUNCTION(comdb2_user, 0, 0, 0, comdb2UserFunc), FUNCTION(comdb2_last_cost, 0, 0, 0, comdb2LastCostFunc), + FUNCTION(utf8_validate, 1, 0, 0, comdb2Utf8ValidateFunc), FUNCTION(checksum_md5, 1, 0, 0, md5Func), FUNCTION(compress, 1, 0, 0, compressFunc), FUNCTION(uncompress, 1, 0, 0, uncompressFunc), diff --git a/sqlite/src/parse.y b/sqlite/src/parse.y index ef711ba7b9..c1cddd3a58 100644 --- a/sqlite/src/parse.y +++ b/sqlite/src/parse.y @@ -542,6 +542,8 @@ ccons ::= PRIMARY KEY sortorder(Z) onconf(R) autoinc(I). {sqlite3AddPrimaryKey(pParse,0,R,I,Z);} %endif !SQLITE_BUILDING_FOR_COMDB2 %ifdef SQLITE_BUILDING_FOR_COMDB2 +ccons ::= ENCODING STRING(H). {comdb2ChangeCharacterSet(pParse,&H,0);} +ccons ::= ENCODING NONE. {comdb2ChangeCharacterSet(pParse,NULL,0);} ccons ::= UNIQUE onconf(R). { comdb2AddIndex(pParse, 0, 0, R, 0, 0, 0, SQLITE_SO_ASC, SQLITE_IDXTYPE_UNIQUE, 0, 0); @@ -2037,6 +2039,12 @@ alter_table_alter_column_cmd ::= SET NOT NULL. { alter_table_alter_column_cmd ::= DROP NOT NULL. { comdb2AlterColumnDropNotNull(pParse); } +alter_table_alter_column_cmd ::= ENCODING STRING(H). { + comdb2ChangeCharacterSet(pParse,&H,1); +} +alter_table_alter_column_cmd ::= ENCODING NONE. { + comdb2ChangeCharacterSet(pParse,NULL,1); +} alter_table_alter_column ::= alter_table_alter_column_start alter_table_alter_column_cmd. { comdb2AlterColumnEnd(pParse); diff --git a/sqlite/tool/mkkeywordhash.c b/sqlite/tool/mkkeywordhash.c index 7b48aa16d0..25057fb7ae 100644 --- a/sqlite/tool/mkkeywordhash.c +++ b/sqlite/tool/mkkeywordhash.c @@ -211,6 +211,7 @@ static Keyword aKeywordTable[] = { { "DISTINCT", "TK_DISTINCT", ALWAYS }, { "DO", "TK_DO", UPSERT }, { "DROP", "TK_DROP", ALWAYS }, + { "ENCODING", "TK_ENCODING", ALWAYS }, { "END", "TK_END", ALWAYS }, { "EACH", "TK_EACH", TRIGGER }, { "ELSE", "TK_ELSE", ALWAYS }, diff --git a/tests/auth.test/t09.expected b/tests/auth.test/t09.expected index 2071231c5c..289219abd4 100644 --- a/tests/auth.test/t09.expected +++ b/tests/auth.test/t09.expected @@ -65,6 +65,7 @@ (candidate='EACH') (candidate='ELSE') (candidate='ENABLE') +(candidate='ENCODING') (candidate='END') (candidate='ESCAPE') (candidate='EXCEPT') @@ -377,6 +378,7 @@ (candidate='unlikely()') (candidate='upper()') (candidate='usleep()') +(candidate='utf8_validate()') (candidate='zeroblob()') (username='user1') (username='user2') diff --git a/tests/comdb2sys.test/comdb2sys.expected b/tests/comdb2sys.test/comdb2sys.expected index 5588a2d0da..0674fed93c 100644 --- a/tests/comdb2sys.test/comdb2sys.expected +++ b/tests/comdb2sys.test/comdb2sys.expected @@ -83,7 +83,7 @@ [select * from comdb2_tablesizes order by tablename] rc 0 (KEYWORDS_COUNT=223) [SELECT COUNT(*) AS KEYWORDS_COUNT FROM comdb2_keywords] rc 0 -(RESERVED_KW=66) +(RESERVED_KW=67) [SELECT COUNT(*) AS RESERVED_KW FROM comdb2_keywords WHERE reserved = 'Y'] rc 0 (NONRESERVED_KW=157) [SELECT COUNT(*) AS NONRESERVED_KW FROM comdb2_keywords WHERE reserved = 'N'] rc 0 @@ -104,6 +104,7 @@ (name='DISTINCT', reserved='Y') (name='DROP', reserved='Y') (name='ELSE', reserved='Y') +(name='ENCODING', reserved='Y') (name='ESCAPE', reserved='Y') (name='EXCEPT', reserved='Y') (name='EXISTS', reserved='Y') diff --git a/tests/ddl_no_csc2.test/t09_check.expected b/tests/ddl_no_csc2.test/t09_check.expected index 9528074044..3d3e55d3d8 100644 --- a/tests/ddl_no_csc2.test/t09_check.expected +++ b/tests/ddl_no_csc2.test/t09_check.expected @@ -11,7 +11,7 @@ ') (rows inserted=1) (rows inserted=1) -[ALTER TABLE t1 ADD CONSTRAINT valid_colors CHECK (color IN ('red', 'green', 'blue'))] failed with rc 240 Record violates foreign constraints rrn xx genid xx +[ALTER TABLE t1 ADD CONSTRAINT valid_colors CHECK (color IN ('red', 'green', 'blue'))] failed with rc 240 Record violates check constraints rrn xx genid xx (csc2='schema { cstring color[11] null = yes diff --git a/tests/ddl_no_csc2.test/t15_encoding.expected b/tests/ddl_no_csc2.test/t15_encoding.expected new file mode 100644 index 0000000000..d5e0e74b69 --- /dev/null +++ b/tests/ddl_no_csc2.test/t15_encoding.expected @@ -0,0 +1,17 @@ +[CREATE TABLE t15(a INTEGER ENCODING 'ascii')] failed with rc -3 unknown charset +[CREATE TABLE t15(a INTEGER ENCODING 'utf8')] failed with rc -3 invalid column type to use character encoding +[CREATE TABLE t15(a TEXT ENCODING 'utf8')] failed with rc -3 invalid column type to use character encoding +(csc2='schema + { + cstring a[11] null = yes + } +constraints + { + check "$CONSTRAINT_CHAR_ENC_a" = {where utf8_validate(a)=0} + } +') +[INSERT INTO t15 VALUES (CAST(x'616263FF616263' AS TEXT))] failed with rc 403 CHECK constraint violation CHECK constraint failed for '$CONSTRAINT_CHAR_ENC_a' unable to add record rc = 320 +(COUNT(*)=0) +(rows inserted=1) +(COUNT(*)=1) +[ALTER TABLE t15 ALTER COLUMN a ENCODING 'utf8'] failed with rc 240 Record violates check constraints rrn xx genid xx diff --git a/tests/ddl_no_csc2.test/t15_encoding.sql b/tests/ddl_no_csc2.test/t15_encoding.sql new file mode 100644 index 0000000000..9831733322 --- /dev/null +++ b/tests/ddl_no_csc2.test/t15_encoding.sql @@ -0,0 +1,13 @@ +DROP TABLE IF EXISTS t15 +CREATE TABLE t15(a INTEGER ENCODING 'ascii')$$ +CREATE TABLE t15(a INTEGER ENCODING 'utf8')$$ +CREATE TABLE t15(a TEXT ENCODING 'utf8')$$ +CREATE TABLE t15(a CHAR(10) ENCODING 'utf8')$$ +SELECT csc2 FROM sqlite_master WHERE name='t15' +INSERT INTO t15 VALUES (CAST(x'616263FF616263' AS TEXT)) +SELECT COUNT(*) FROM t15 +ALTER TABLE t15 ALTER COLUMN a ENCODING NONE$$ +INSERT INTO t15 VALUES (CAST(x'616263FF616263' AS TEXT)) +SELECT COUNT(*) FROM t15 +ALTER TABLE t15 ALTER COLUMN a ENCODING 'utf8'$$ +DROP TABLE t15 diff --git a/tests/func.test/t02_utf8_validate.expected b/tests/func.test/t02_utf8_validate.expected new file mode 100644 index 0000000000..cd466b7462 --- /dev/null +++ b/tests/func.test/t02_utf8_validate.expected @@ -0,0 +1,2 @@ +(utf8_validate('abc')=0) +(utf8_validate(x'616263FF')=-4) diff --git a/tests/func.test/t02_utf8_validate.sql b/tests/func.test/t02_utf8_validate.sql new file mode 100644 index 0000000000..d2753955f6 --- /dev/null +++ b/tests/func.test/t02_utf8_validate.sql @@ -0,0 +1,2 @@ +SELECT utf8_validate('abc') +SELECT utf8_validate(x'616263FF')