:-) (CVS 16)

FossilOrigin-Name: b56d1b9c0f957f3dfb380c01d31ff7c08bcd523b
This commit is contained in:
drh
2000-05-30 17:30:35 +00:00
parent 982cef7e98
commit b766599b70
4 changed files with 127 additions and 8 deletions
+7 -6
View File
@@ -1,12 +1,12 @@
C :-)\s(CVS\s15)
D 2000-05-30T16:27:04
C :-)\s(CVS\s16)
D 2000-05-30T17:30:36
F COPYRIGHT 74a8a6531a42e124df07ab5599aad63870fa0bd4
F Makefile.in 89921c1ee4de75275bfadfbac198396da31704d1
F README 6b5960603c7f8bf42fc022b4b6436f242f238dbb
F configure 00a5b5c82147a576fa6e82d7c1b0d55c321d6d2c x
F configure.in 6ccfd5fc80517f7cfe605a7fc7e0f62d962a233c
F doc/lemon.html e233a3e97a779c7a87e1bc4528c664a58e49dd47
F src/build.c 971796c068b8ae25b476f924e5e0da0b57adb9e6
F src/build.c 82e7dfdf900428d706ab4f50e72732ce9110767a
F src/dbbe.c ab05293e89525041eaab8b4aca10516db3648792
F src/dbbe.h bedeb3a0985bb584458e7849fb59927e99e751e6
F src/main.c 25cce7bce0eb3ba10bada7c05f4b38dc6dbbc86f
@@ -21,6 +21,7 @@ F src/vdbe.c 117ce5541143e3af9dccdc15c22c4920a7b9bdb4
F src/vdbe.h 03de26632f2e608c2a44a40262fbba21a8bdfd81
F src/where.c be3973952e9bb5d2bb0bc5523b03f5d1f9e9d6f9
F test/all.test 66a8a5b8291a472157944edcdce51a320ebd1f35
F test/copy.test 641bd3cfaab61c4ee32889587e21e4c70788a97a
F test/delete.test 814d53e3b0d2d7069fb17e005d4041454d6585d4
F test/expr.test 11e00880d2de0f60ff1ba7fdd4e09a0d72a01910
F test/index.test 8d4f26901a5582daa353fe3c8266cbf4a53af830
@@ -37,7 +38,7 @@ F tool/renumberOps.awk 6d067177ad5f8d711b79577b462da9b3634bd0a9
F www/c_interface.tcl f875864edf7974157d1c257ca08de854660882a5
F www/index.tcl 2466d1b2e26c6f354b0acedee12025309a216799
F www/sqlite.tcl 947e067bcc347dc767af4c1a6e5a8d47d8404aa3
P 1bb8ee8d9f1d3c409a11910e7552e4bb5e7f5f87
R 0bda635e569bcbbf1f49ce4a3f5d3df9
P 8d66c7355de1d87b25c4fb92d0ef3603da72899a
R d80f9589af9e1517c7c756c7ca40c0f1
U drh
Z 1c759b788ddf2200404a81ace8a2be6e
Z 0d13d400c7a8e0dc46e87c85f7c6e1d5
+1 -1
View File
@@ -1 +1 @@
8d66c7355de1d87b25c4fb92d0ef3603da72899a
b56d1b9c0f957f3dfb380c01d31ff7c08bcd523b
+2 -1
View File
@@ -24,7 +24,7 @@
** This file contains C code routines that are called by the parser
** when syntax rules are reduced.
**
** $Id: build.c,v 1.7 2000/05/30 16:27:04 drh Exp $
** $Id: build.c,v 1.8 2000/05/30 17:30:36 drh Exp $
*/
#include "sqliteInt.h"
@@ -1482,6 +1482,7 @@ void sqliteCopy(
if( v ){
addr = sqliteVdbeAddOp(v, OP_FileOpen, 0, 0, 0, 0);
sqliteVdbeChangeP3(v, addr, pFilename->z, pFilename->n);
sqliteVdbeDequoteP3(v, addr);
sqliteVdbeAddOp(v, OP_Open, 0, 0, pTab->zName, 0);
for(i=1, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, i++){
sqliteVdbeAddOp(v, OP_Open, i, 0, pIdx->zName, 0);
+117
View File
@@ -0,0 +1,117 @@
# Copyright (c) 1999, 2000 D. Richard Hipp
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Author contact information:
# drh@hwaci.com
# http://www.hwaci.com/drh/
#
#***********************************************************************
# This file implements regression tests for SQLite library. The
# focus of this file is testing the COPY statement.
#
# $Id: copy.test,v 1.1 2000/05/30 17:30:36 drh Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
# Create a file of data from which to copy.
#
set f [open data1.txt w]
puts $f "11\t22\t33"
puts $f "22\t33\t11"
close $f
set f [open data2.txt w]
puts $f "11\t22\t33"
puts $f "\\."
puts $f "22\t33\t11"
close $f
set f [open data3.txt w]
puts $f "11\t22\t33\t44"
puts $f "22\t33\t11"
close $f
set f [open data4.txt w]
puts $f "11 | 22 | 33"
puts $f "22 | 33 | 11"
close $f
set f [open data5.txt w]
puts $f "11|22|33"
puts $f "22|33|11"
close $f
# Try to COPY into a non-existant table.
#
do_test copy-1.1 {
set v [catch {execsql {COPY test1 FROM 'data1.txt'}} msg]
lappend v $msg
} {1 {no such table: test1}}
# Try to insert into sqlite_master
#
do_test copy-1.2 {
set v [catch {execsql {COPY sqlite_master FROM 'data2.txt'}} msg]
lappend v $msg
} {1 {table sqlite_master may not be modified}}
# Do some actual inserts
#
do_test copy-1.3 {
execsql {CREATE TABLE test1(one int, two int, three int)}
execsql {COPY test1 FROM 'data1.txt'}
execsql {SELECT * FROM test1 ORDER BY one}
} {11 22 33 22 33 11}
# Make sure input terminates at \.
#
do_test copy-1.4 {
execsql {DELETE FROM test1}
execsql {COPY test1 FROM 'data2.txt'}
execsql {SELECT * FROM test1 ORDER BY one}
} {11 22 33}
# Test out the USING DELIMITERS clause
#
do_test copy-1.5 {
execsql {DELETE FROM test1}
execsql {COPY test1 FROM 'data4.txt' USING DELIMITERS ' | '}
execsql {SELECT * FROM test1 ORDER BY one}
} {11 22 33 22 33 11}
do_test copy-1.6 {
execsql {DELETE FROM test1}
execsql {COPY test1 FROM 'data5.txt' USING DELIMITERS '|'}
execsql {SELECT * FROM test1 ORDER BY one}
} {11 22 33 22 33 11}
# Try inserting really long data
#
set x {}
for {set i 0} {$i<100} {incr i} {
append x "($i)-abcdefghijklmnopqrstyvwxyz-ABCDEFGHIJKLMNOPQRSTUVWXYZ-"
}
do_test copy-2.1 {
execsql {CREATE TABLE test2(a int, x text)}
set f [open data21.txt w]
puts $f "123\t$x"
close $f
execsql {COPY test2 FROM 'data21.txt'}
execsql {SELECT x from test2}
} $x
# Cleanup
#
file delete -force data1.txt data2.txt data3.txt data4.txt data5.txt data21.txt
finish_test