Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Enhance the shell export to support emitting column names in 'insert' mode when headers are enabled. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | expShell |
Files: | files | file ages | folders |
SHA1: |
6e504cd00b148b5acca73f039a20b8ac |
User & Date: | mistachkin 2015-04-07 21:16:40.811 |
Context
2015-04-07
| ||
21:17 | Correct typo in new test numbering. (check-in: d176c9fa4c user: mistachkin tags: expShell) | |
21:16 | Enhance the shell export to support emitting column names in 'insert' mode when headers are enabled. (check-in: 6e504cd00b user: mistachkin tags: expShell) | |
2015-03-21
| ||
02:34 | Merge updates from trunk. (check-in: 441a00e70d user: mistachkin tags: expShell) | |
Changes
Changes to src/shell.c.
︙ | ︙ | |||
985 986 987 988 989 990 991 | } setTextMode(p->out); break; } case MODE_Insert: { p->cnt++; if( azArg==0 ) break; | | > > > > > > > > > | 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 | } setTextMode(p->out); break; } case MODE_Insert: { p->cnt++; if( azArg==0 ) break; fprintf(p->out,"INSERT INTO %s",p->zDestTable); if( p->showHeader ){ fprintf(p->out,"("); for(i=0; i<nArg; i++){ char *zSep = i>0 ? ",": ""; fprintf(p->out, "%s%s", zSep, azCol[i]); } fprintf(p->out,")"); } fprintf(p->out," VALUES("); for(i=0; i<nArg; i++){ char *zSep = i>0 ? ",": ""; if( (azArg[i]==0) || (aiType && aiType[i]==SQLITE_NULL) ){ fprintf(p->out,"%sNULL",zSep); }else if( aiType && aiType[i]==SQLITE_TEXT ){ if( zSep[0] ) fprintf(p->out,"%s",zSep); output_quoted_string(p->out, azArg[i]); |
︙ | ︙ |
Changes to test/shell1.test.
︙ | ︙ | |||
734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 | db close forcedelete test.db sqlite3 db test.db db eval { PRAGMA encoding=UTF16; CREATE TABLE t1(x); INSERT INTO t1 VALUES(null), (''), (1), (2.25), ('hello'), (x'807f'); } catchcmd test.db {.dump} } {0 {PRAGMA foreign_keys=OFF; BEGIN TRANSACTION; CREATE TABLE t1(x); INSERT INTO "t1" VALUES(NULL); INSERT INTO "t1" VALUES(''); INSERT INTO "t1" VALUES(1); INSERT INTO "t1" VALUES(2.25); INSERT INTO "t1" VALUES('hello'); INSERT INTO "t1" VALUES(X'807F'); COMMIT;}} # Test the output of ".mode insert" # | > > > > > > > > > > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 | db close forcedelete test.db sqlite3 db test.db db eval { PRAGMA encoding=UTF16; CREATE TABLE t1(x); INSERT INTO t1 VALUES(null), (''), (1), (2.25), ('hello'), (x'807f'); CREATE TABLE t3(x,y); INSERT INTO t3 VALUES(1,null), (2,''), (3,1), (4,2.25), (5,'hello'), (6,x'807f'); } catchcmd test.db {.dump} } {0 {PRAGMA foreign_keys=OFF; BEGIN TRANSACTION; CREATE TABLE t1(x); INSERT INTO "t1" VALUES(NULL); INSERT INTO "t1" VALUES(''); INSERT INTO "t1" VALUES(1); INSERT INTO "t1" VALUES(2.25); INSERT INTO "t1" VALUES('hello'); INSERT INTO "t1" VALUES(X'807F'); CREATE TABLE t3(x,y); INSERT INTO "t3" VALUES(1,NULL); INSERT INTO "t3" VALUES(2,''); INSERT INTO "t3" VALUES(3,1); INSERT INTO "t3" VALUES(4,2.25); INSERT INTO "t3" VALUES(5,'hello'); INSERT INTO "t3" VALUES(6,X'807F'); COMMIT;}} # Test the output of ".mode insert" # do_test shell1-4.2.1 { catchcmd test.db ".mode insert t1\nselect * from t1;" } {0 {INSERT INTO t1 VALUES(NULL); INSERT INTO t1 VALUES(''); INSERT INTO t1 VALUES(1); INSERT INTO t1 VALUES(2.25); INSERT INTO t1 VALUES('hello'); INSERT INTO t1 VALUES(X'807f');}} # Test the output of ".mode insert" with headers # do_test shell1-4.2.2 { catchcmd test.db ".mode insert t1\n.headers on\nselect * from t1;" } {0 {INSERT INTO t1(x) VALUES(NULL); INSERT INTO t1(x) VALUES(''); INSERT INTO t1(x) VALUES(1); INSERT INTO t1(x) VALUES(2.25); INSERT INTO t1(x) VALUES('hello'); INSERT INTO t1(x) VALUES(X'807f');}} # Test the output of ".mode insert" # do_test shell1-4.2.3 { catchcmd test.db ".mode insert t3\nselect * from t3;" } {0 {INSERT INTO t3 VALUES(1,NULL); INSERT INTO t3 VALUES(2,''); INSERT INTO t3 VALUES(3,1); INSERT INTO t3 VALUES(4,2.25); INSERT INTO t3 VALUES(5,'hello'); INSERT INTO t3 VALUES(6,X'807f');}} # Test the output of ".mode insert" with headers # do_test shell1-4.2.3 { catchcmd test.db ".mode insert t3\n.headers on\nselect * from t3;" } {0 {INSERT INTO t3(x,y) VALUES(1,NULL); INSERT INTO t3(x,y) VALUES(2,''); INSERT INTO t3(x,y) VALUES(3,1); INSERT INTO t3(x,y) VALUES(4,2.25); INSERT INTO t3(x,y) VALUES(5,'hello'); INSERT INTO t3(x,y) VALUES(6,X'807f');}} # Test the output of ".mode tcl" # do_test shell1-4.3 { db close forcedelete test.db sqlite3 db test.db |
︙ | ︙ |