Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Make sure the undocumented sqlite_rename_parent() function does not crash even if it is invoked with NULL arguments. Ticket [264b970c4379fd4b94] |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
c6fa8d0d82805be230f672eabccdfa56 |
User & Date: | drh 2014-04-14 19:48:25.984 |
Context
2014-04-18
| ||
00:06 | Add the SQLITE_TESTCTRL_BYTEORDER test control to interrogate SQLite's notion of the processor byte order and whether the byte order is known at compile-time or determined at run-time. (check-in: 9c6961967a user: drh tags: trunk) | |
2014-04-14
| ||
19:48 | Make sure the undocumented sqlite_rename_parent() function does not crash even if it is invoked with NULL arguments. Ticket [264b970c4379fd4b94] (check-in: c6fa8d0d82 user: drh tags: trunk) | |
2014-04-13
| ||
19:28 | Remove the unused second argument from sqlite3ExprCachePop(). Add an ALWAYS() on an always-true conditional in sqlite3VdbeResolveLabel(). (check-in: ab23abf392 user: drh tags: trunk) | |
Changes
Changes to src/alter.c.
︙ | ︙ | |||
112 113 114 115 116 117 118 119 120 121 122 123 124 125 | unsigned char const *zNew = sqlite3_value_text(argv[2]); unsigned const char *z; /* Pointer to token */ int n; /* Length of token z */ int token; /* Type of token */ UNUSED_PARAMETER(NotUsed); for(z=zInput; *z; z=z+n){ n = sqlite3GetToken(z, &token); if( token==TK_REFERENCES ){ char *zParent; do { z += n; n = sqlite3GetToken(z, &token); | > | 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 | unsigned char const *zNew = sqlite3_value_text(argv[2]); unsigned const char *z; /* Pointer to token */ int n; /* Length of token z */ int token; /* Type of token */ UNUSED_PARAMETER(NotUsed); if( zInput==0 || zOld==0 ) return; for(z=zInput; *z; z=z+n){ n = sqlite3GetToken(z, &token); if( token==TK_REFERENCES ){ char *zParent; do { z += n; n = sqlite3GetToken(z, &token); |
︙ | ︙ |
Changes to test/alter.test.
︙ | ︙ | |||
870 871 872 873 874 875 876 877 878 | INSERT INTO t16a VALUES('cba',5.5,98,'fizzle'); SELECT * FROM t16a ORDER BY a; } {abc 1.25 99 xyzzy cba 5.5 98 fizzle} do_execsql_test alter-16.2 { ALTER TABLE t16a RENAME TO t16a_rn; SELECT * FROM t16a_rn ORDER BY a; } {abc 1.25 99 xyzzy cba 5.5 98 fizzle} finish_test | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 | INSERT INTO t16a VALUES('cba',5.5,98,'fizzle'); SELECT * FROM t16a ORDER BY a; } {abc 1.25 99 xyzzy cba 5.5 98 fizzle} do_execsql_test alter-16.2 { ALTER TABLE t16a RENAME TO t16a_rn; SELECT * FROM t16a_rn ORDER BY a; } {abc 1.25 99 xyzzy cba 5.5 98 fizzle} #------------------------------------------------------------------------- # Verify that NULL values into the internal-use-only sqlite_rename_*() # functions do not cause problems. # do_execsql_test alter-17.1 { SELECT sqlite_rename_table('CREATE TABLE xyz(a,b,c)','abc'); } {{CREATE TABLE "abc"(a,b,c)}} do_execsql_test alter-17.2 { SELECT sqlite_rename_table('CREATE TABLE xyz(a,b,c)',NULL); } {{CREATE TABLE "(NULL)"(a,b,c)}} do_execsql_test alter-17.3 { SELECT sqlite_rename_table(NULL,'abc'); } {{}} do_execsql_test alter-17.4 { SELECT sqlite_rename_trigger('CREATE TRIGGER r1 ON xyz WHEN','abc'); } {{CREATE TRIGGER r1 ON "abc" WHEN}} do_execsql_test alter-17.5 { SELECT sqlite_rename_trigger('CREATE TRIGGER r1 ON xyz WHEN',NULL); } {{CREATE TRIGGER r1 ON "(NULL)" WHEN}} do_execsql_test alter-17.6 { SELECT sqlite_rename_trigger(NULL,'abc'); } {{}} do_execsql_test alter-17.7 { SELECT sqlite_rename_parent('CREATE TABLE t1(a REFERENCES "xyzzy")', 'xyzzy','lmnop'); } {{CREATE TABLE t1(a REFERENCES "lmnop")}} do_execsql_test alter-17.8 { SELECT sqlite_rename_parent('CREATE TABLE t1(a REFERENCES "xyzzy")', 'xyzzy',NULL); } {{CREATE TABLE t1(a REFERENCES "(NULL)")}} do_execsql_test alter-17.9 { SELECT sqlite_rename_parent('CREATE TABLE t1(a REFERENCES "xyzzy")', NULL, 'lmnop'); } {{}} do_execsql_test alter-17.10 { SELECT sqlite_rename_parent(NULL,'abc','xyz'); } {{}} finish_test |