Changeset: cf411b4fd73d for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=cf411b4fd73d
Modified Files:
        sql/backends/monet5/Tests/pyloader01.sql
        sql/backends/monet5/Tests/pyloader02.sql
        sql/backends/monet5/Tests/pyloader03.sql
        sql/backends/monet5/Tests/pyloader03.stable.err
        sql/backends/monet5/Tests/pyloader04.sql
        sql/backends/monet5/Tests/pyloader04.stable.err
        sql/backends/monet5/Tests/pyloader05.sql
        sql/server/sql_parser.y
Branch: pythonloader
Log Message:

Change loader syntax to COPY LOADER INTO instead of COPY INTO ... FROM LOADER 
because the SQL Parser gets confused at the latter syntax, which breaks regular 
copy into statements.


diffs (251 lines):

diff --git a/sql/backends/monet5/Tests/pyloader01.sql 
b/sql/backends/monet5/Tests/pyloader01.sql
--- a/sql/backends/monet5/Tests/pyloader01.sql
+++ b/sql/backends/monet5/Tests/pyloader01.sql
@@ -23,10 +23,10 @@ SELECT name,func,mod,language,type,side_
 
 
 -- there is a reason for this, functions with 0, 1, 2 and 3+ arguments are 
handled differently.
-COPY INTO mytable FROM LOADER myfunc3(46, 'asdf', 3.2);
-COPY INTO mytable FROM LOADER myfunc2(45, 'asdf');
-COPY INTO mytable FROM LOADER myfunc1(44);
-COPY INTO mytable FROM LOADER myfunc();
+COPY LOADER INTO mytable FROM myfunc3(46, 'asdf', 3.2);
+COPY LOADER INTO mytable FROM myfunc2(45, 'asdf');
+COPY LOADER INTO mytable FROM myfunc1(44);
+COPY LOADER INTO mytable FROM myfunc();
 
 SELECT * FROM mytable;
 
diff --git a/sql/backends/monet5/Tests/pyloader02.sql 
b/sql/backends/monet5/Tests/pyloader02.sql
--- a/sql/backends/monet5/Tests/pyloader02.sql
+++ b/sql/backends/monet5/Tests/pyloader02.sql
@@ -14,9 +14,9 @@ CREATE LOADER myfunc(nvalues int, ncols 
                _emit.emit(res)
 };
 
-COPY INTO mytable3 FROM LOADER myfunc(10, 3);
-COPY INTO mytable4 FROM LOADER myfunc(10, 3);
-COPY INTO mytable2 FROM LOADER myfunc(20, 2);
+COPY LOADER INTO mytable3 FROM myfunc(10, 3);
+COPY LOADER INTO mytable4 FROM myfunc(10, 3);
+COPY LOADER INTO mytable2 FROM myfunc(20, 2);
 
 SELECT * FROM mytable4;
 SELECT * FROM mytable3;
diff --git a/sql/backends/monet5/Tests/pyloader03.sql 
b/sql/backends/monet5/Tests/pyloader03.sql
--- a/sql/backends/monet5/Tests/pyloader03.sql
+++ b/sql/backends/monet5/Tests/pyloader03.sql
@@ -11,7 +11,7 @@ CREATE LOADER myloader(nvalues INTEGER) 
     _emit.emit({'a1': a1, 'a2': a2, 'a3': a3, 'a4': a4})
 };
 
-COPY INTO restable FROM LOADER myloader(10);
+COPY LOADER INTO restable FROM myloader(10);
 
 SELECT * FROM restable;
 
@@ -28,7 +28,7 @@ CREATE LOADER myloader() LANGUAGE PYTHON
     _emit.emit({'a1': a1, 'a2': a2, 'a3': a3, 'a4': a4})
 };
 
-COPY INTO restable FROM LOADER myloader();
+COPY LOADER INTO restable FROM myloader();
 
 SELECT * FROM restable;
 
@@ -43,7 +43,7 @@ CREATE LOADER myloader() LANGUAGE PYTHON
     _emit.emit({'a1': a1, 'a2': a2})
 };
 
-COPY INTO restable FROM LOADER myloader();
+COPY LOADER INTO restable FROM myloader();
 
 ROLLBACK;
 
@@ -60,7 +60,7 @@ CREATE LOADER myloader(nvalues INTEGER) 
     _emit.emit({'a1': a1, 'a2': a2, 'a3': a3, 'a4': a4})
 };
 
-COPY INTO restable FROM LOADER myloader(50);
+COPY LOADER INTO restable FROM myloader(50);
 
 SELECT * FROM restable;
 
@@ -94,7 +94,7 @@ CREATE LOADER myloader() LANGUAGE PYTHON
         _emit.emit({'a1': a1, 'a2': a2, 'a3': a3, 'a4': a4})
 };
 
-COPY INTO restable FROM LOADER myloader();
+COPY LOADER INTO restable FROM myloader();
 
 SELECT * FROM restable;
 
diff --git a/sql/backends/monet5/Tests/pyloader03.stable.err 
b/sql/backends/monet5/Tests/pyloader03.stable.err
--- a/sql/backends/monet5/Tests/pyloader03.stable.err
+++ b/sql/backends/monet5/Tests/pyloader03.stable.err
@@ -28,8 +28,8 @@ stderr of test 'pyloader03` in directory
 # 13:26:40 >  "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-30229" "--port=37683"
 # 13:26:40 >  
 
-MAPI  = (monetdb) /var/tmp/mtest-30229/.s.monetdb.37683
-QUERY = COPY INTO restable FROM LOADER myloader();
+MAPI  = (monetdb) /var/tmp/mtest-6147/.s.monetdb.38930
+QUERY = COPY LOADER INTO restable FROM myloader();
 ERROR = !Python exception
         !  2.   a1 = numpy.arange(100)
         !  3.   a2 = numpy.arange(200)
diff --git a/sql/backends/monet5/Tests/pyloader04.sql 
b/sql/backends/monet5/Tests/pyloader04.sql
--- a/sql/backends/monet5/Tests/pyloader04.sql
+++ b/sql/backends/monet5/Tests/pyloader04.sql
@@ -5,7 +5,7 @@ CREATE TABLE pyloader04table(a1 int, a2 
 CREATE LOADER pyloader04() LANGUAGE PYTHON {
        _emit.emit({'a1': 3, 'a2': 4, 'a3': 5})
 };
-COPY INTO pyloader04table FROM LOADER pyloader04();
+COPY LOADER INTO pyloader04table FROM pyloader04();
 ROLLBACK;
 
 # use non-string type as key
@@ -14,7 +14,7 @@ CREATE TABLE pyloader04table(a1 int, a2 
 CREATE LOADER pyloader04() LANGUAGE PYTHON {
        _emit.emit({'a1': 3, 'a2': 4, 3: 5})
 };
-COPY INTO pyloader04table FROM LOADER pyloader04();
+COPY LOADER INTO pyloader04table FROM pyloader04();
 ROLLBACK;
 
 # return empty list
@@ -23,7 +23,7 @@ CREATE TABLE pyloader04table(a1 int, a2 
 CREATE LOADER pyloader04() LANGUAGE PYTHON {
        _emit.emit({'a1': [], 'a2': numpy.array([])})
 };
-COPY INTO pyloader04table FROM LOADER pyloader04();
+COPY LOADER INTO pyloader04table FROM pyloader04();
 ROLLBACK;
 
 # empty dictionary
@@ -32,7 +32,7 @@ CREATE TABLE pyloader04table(a1 int, a2 
 CREATE LOADER pyloader04() LANGUAGE PYTHON {
        _emit.emit({})
 };
-COPY INTO pyloader04table FROM LOADER pyloader04();
+COPY LOADER INTO pyloader04table FROM pyloader04();
 ROLLBACK;
 
 # unsupported python object
@@ -44,7 +44,7 @@ CREATE LOADER pyloader04() LANGUAGE PYTH
 
        _emit.emit({'a1': MyClass()})
 };
-COPY INTO pyloader04table FROM LOADER pyloader04();
+COPY LOADER INTO pyloader04table FROM pyloader04();
 ROLLBACK;
 
 # fail str -> int conversion
@@ -53,7 +53,7 @@ CREATE TABLE pyloader04table(a1 int, a2 
 CREATE LOADER pyloader04() LANGUAGE PYTHON {
        _emit.emit({'a1': 'hello'})
 };
-COPY INTO pyloader04table FROM LOADER pyloader04();
+COPY LOADER INTO pyloader04table FROM pyloader04();
 ROLLBACK;
 
 # test quoted names
@@ -62,7 +62,7 @@ CREATE TABLE pyloader04table("select" in
 CREATE LOADER pyloader04() LANGUAGE PYTHON {
        _emit.emit({'select': 3, 'from': 4})
 };
-COPY INTO pyloader04table FROM LOADER pyloader04();
+COPY LOADER INTO pyloader04table FROM pyloader04();
 SELECT * FROM pyloader04table;
 DROP TABLE pyloader04table;
 DROP LOADER pyloader04;
diff --git a/sql/backends/monet5/Tests/pyloader04.stable.err 
b/sql/backends/monet5/Tests/pyloader04.stable.err
--- a/sql/backends/monet5/Tests/pyloader04.stable.err
+++ b/sql/backends/monet5/Tests/pyloader04.stable.err
@@ -29,46 +29,46 @@ stderr of test 'pyloader04` in directory
 # 12:30:43 >  "mclient" "-lsql" "-ftest" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-7433" "--port=34261"
 # 12:30:43 >  
 
-MAPI  = (monetdb) /var/tmp/mtest-7433/.s.monetdb.34261
-QUERY = COPY INTO pyloader04table FROM LOADER pyloader04();
+MAPI  = (monetdb) /var/tmp/mtest-6147/.s.monetdb.38930
+QUERY = COPY LOADER INTO pyloader04table FROM pyloader04();
 ERROR = !Python exception
         !  1. def pyfun(_emit,_conn):
         !  2.   _emit.emit({'a1': 3, 'a2': 4, 'a3': 5})
         !> 3. 
         !Unmatched element "a3" in dict
-MAPI  = (monetdb) /var/tmp/mtest-7433/.s.monetdb.34261
-QUERY = COPY INTO pyloader04table FROM LOADER pyloader04();
+MAPI  = (monetdb) /var/tmp/mtest-6147/.s.monetdb.38930
+QUERY = COPY LOADER INTO pyloader04table FROM pyloader04();
 ERROR = !Python exception
         !def pyfun(_emit,_conn):
         !  _emit.emit({'a1': 3, 'a2': 4, 3: 5})
         !
         !Expected a string as dict key, but found <type 'int'>
-MAPI  = (monetdb) /var/tmp/mtest-7433/.s.monetdb.34261
-QUERY = COPY INTO pyloader04table FROM LOADER pyloader04();
+MAPI  = (monetdb) /var/tmp/mtest-6147/.s.monetdb.38930
+QUERY = COPY LOADER INTO pyloader04table FROM pyloader04();
 ERROR = !Python exception
         !
         !  1. def pyfun(_emit,_conn):
         !> 2.   _emit.emit({'a1': [], 'a2': numpy.array([])})
         !  3. 
         !Empty input values supplied
-MAPI  = (monetdb) /var/tmp/mtest-7433/.s.monetdb.34261
-QUERY = COPY INTO pyloader04table FROM LOADER pyloader04();
+MAPI  = (monetdb) /var/tmp/mtest-6147/.s.monetdb.38930
+QUERY = COPY LOADER INTO pyloader04table FROM pyloader04();
 ERROR = !Python exception
         !
         !  1. def pyfun(_emit,_conn):
         !> 2.   _emit.emit({})
         !  3. 
         !dict must contain at least one element
-MAPI  = (monetdb) /var/tmp/mtest-7433/.s.monetdb.34261
-QUERY = COPY INTO pyloader04table FROM LOADER pyloader04();
+MAPI  = (monetdb) /var/tmp/mtest-6147/.s.monetdb.38930
+QUERY = COPY LOADER INTO pyloader04table FROM pyloader04();
 ERROR = !Python exception
         !  2.   class MyClass:
         !  3.     i = 1234
         !> 4.   _emit.emit({'a1': MyClass()})
         !  5. 
         !Unsupported Python Object <type 'instance'>
-MAPI  = (monetdb) /var/tmp/mtest-7433/.s.monetdb.34261
-QUERY = COPY INTO pyloader04table FROM LOADER pyloader04();
+MAPI  = (monetdb) /var/tmp/mtest-6147/.s.monetdb.38930
+QUERY = COPY LOADER INTO pyloader04table FROM pyloader04();
 ERROR = !Python exception
         !
         !  1. def pyfun(_emit,_conn):
diff --git a/sql/backends/monet5/Tests/pyloader05.sql 
b/sql/backends/monet5/Tests/pyloader05.sql
--- a/sql/backends/monet5/Tests/pyloader05.sql
+++ b/sql/backends/monet5/Tests/pyloader05.sql
@@ -19,7 +19,7 @@ CREATE LOADER pyloader05() LANGUAGE PYTH
     _emit.emit({'s': numpy.arange(3).astype(numpy.int32)});
     _emit.emit({'s': numpy.arange(3).astype(numpy.int64)});
 };
-COPY INTO pyloader05table FROM LOADER pyloader05();
+COPY LOADER INTO pyloader05table FROM pyloader05();
 SELECT * FROM pyloader05table;
 DROP TABLE pyloader05table;
 DROP LOADER pyloader05;
diff --git a/sql/server/sql_parser.y b/sql/server/sql_parser.y
--- a/sql/server/sql_parser.y
+++ b/sql/server/sql_parser.y
@@ -2555,9 +2555,9 @@ copyfrom_stmt:
          append_int(l, $13);
          append_list(l, NULL);
          $$ = _symbol_create_list( SQL_COPYFROM, l ); }
-  | COPY INTO qname FROM sqlLOADER func_ref
+  | COPY sqlLOADER INTO qname FROM func_ref
        { dlist *l = L();
-         append_list(l, $3);
+         append_list(l, $4);
          append_symbol(l, $6);
          $$ = _symbol_create_list( SQL_COPYLOADER, l ); }
    | COPY opt_nr BINARY INTO qname FROM string_commalist /* binary copy from 
*/ opt_constraint
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to