Tue Sep 4 13:36:21 PDT 2007
- Next message: [Slony1-commit] slony1-engine/src/parsestatements Makefile cstylecomments.expected cstylecomments.sql scanner.c
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Update of /home/cvsd/slony1/slony1-engine/src/parsestatements
In directory main.slony.info:/tmp/cvs-serv4317
Modified Files:
Tag: REL_1_2_STABLE
Makefile scanner.c test_sql.expected test_sql.sql
Added Files:
Tag: REL_1_2_STABLE
cstylecomments.expected cstylecomments.sql
Log Message:
Make C-style comments work, add in test for them
--- NEW FILE: cstylecomments.expected ---
Input: -- Have two statements separated by a C-style string
select * from a;
/*
select count(distinct person_id)
from
person
join dictionary on dic_category_id=11
left join person_settings on ps_person_id=person_id and ps_did=dic_id
where
ps_person_id is null
-- only 9000!
*/
select * from b;
/************ *foooo* /- *
/ here is a tremendously ugly C-style comment
* * * * * /
-- **{***(***[****/
select * from c;
/* lets have a comment and a /* nested comment */ */
-- Force a query to be at the end...
create table foo;
statement 0
-------------------------------------------
-- Have two statements separated by a C-style string
select * from a;
statement 1
-------------------------------------------
/*
select count(distinct person_id)
from
person
join dictionary on dic_category_id=11
left join person_settings on ps_person_id=person_id and ps_did=dic_id
where
ps_person_id is null
-- only 9000!
*/
select * from b;
statement 2
-------------------------------------------
/************ *foooo* /- *
/ here is a tremendously ugly C-style comment
* * * * * /
-- **{***(***[****/
select * from c;
statement 3
-------------------------------------------
/* lets have a comment and a /* nested comment */ */
-- Force a query to be at the end...
create table foo;
Index: test_sql.expected
===================================================================
RCS file: /home/cvsd/slony1/slony1-engine/src/parsestatements/test_sql.expected,v
retrieving revision 1.2.2.1
retrieving revision 1.2.2.2
diff -C2 -d -r1.2.2.1 -r1.2.2.2
*** test_sql.expected 31 Jul 2007 14:55:34 -0000 1.2.2.1
--- test_sql.expected 4 Sep 2007 20:36:19 -0000 1.2.2.2
***************
*** 60,65 ****
-- Some more torturing per Weslee Bilodeau
!
! -- I figure the $_$, $$, etc edge-casees would be another fun one to roll
-- into a custom parser.
--- 60,64 ----
-- Some more torturing per Weslee Bilodeau
! -- I figure the $_$, $$, etc edge-cases would be another fun one to roll
-- into a custom parser.
***************
*** 194,199 ****
-- Some more torturing per Weslee Bilodeau
!
! -- I figure the $_$, $$, etc edge-casees would be another fun one to roll
-- into a custom parser.
--- 193,197 ----
-- Some more torturing per Weslee Bilodeau
! -- I figure the $_$, $$, etc edge-cases would be another fun one to roll
-- into a custom parser.
Index: Makefile
===================================================================
RCS file: /home/cvsd/slony1/slony1-engine/src/parsestatements/Makefile,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -C2 -d -r1.4 -r1.4.2.1
*** Makefile 1 Jun 2006 08:33:04 -0000 1.4
--- Makefile 4 Sep 2007 20:36:19 -0000 1.4.2.1
***************
*** 24,27 ****
--- 24,29 ----
./test-scanner < ./test_sql.sql > test_sql.log
cmp ./test_sql.log ./test_sql.expected$(SUFFIX)
+ ./test-scanner < ./cstylecomments.sql > cstylecomments.log
+ cmp ./cstylecomments.log ./cstylecomments.expected$(SUFFIX)
install:
Index: test_sql.sql
===================================================================
RCS file: /home/cvsd/slony1/slony1-engine/src/parsestatements/test_sql.sql,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -C2 -d -r1.1.2.1 -r1.1.2.2
*** test_sql.sql 31 Jul 2007 14:55:34 -0000 1.1.2.1
--- test_sql.sql 4 Sep 2007 20:36:19 -0000 1.1.2.2
***************
*** 60,65 ****
-- Some more torturing per Weslee Bilodeau
!
! -- I figure the $_$, $$, etc edge-casees would be another fun one to roll
-- into a custom parser.
--- 60,64 ----
-- Some more torturing per Weslee Bilodeau
! -- I figure the $_$, $$, etc edge-cases would be another fun one to roll
-- into a custom parser.
Index: scanner.c
===================================================================
RCS file: /home/cvsd/slony1/slony1-engine/src/parsestatements/scanner.c,v
retrieving revision 1.3.2.1
retrieving revision 1.3.2.2
diff -C2 -d -r1.3.2.1 -r1.3.2.2
*** scanner.c 31 Jul 2007 14:55:34 -0000 1.3.2.1
--- scanner.c 4 Sep 2007 20:36:19 -0000 1.3.2.2
***************
*** 42,45 ****
--- 42,47 ----
break;
}
+ if (state == Q_HOPE_CEND) state = Q_CCOMMENT;
+
case ')':
if (state == Q_NORMAL_STATE) {
***************
*** 47,50 ****
--- 49,53 ----
break;
}
+ if (state == Q_HOPE_CEND) state = Q_CCOMMENT;
case '[':
if (state == Q_NORMAL_STATE) {
***************
*** 52,55 ****
--- 55,59 ----
break;
}
+ if (state == Q_HOPE_CEND) state = Q_CCOMMENT;
case ']':
if (state == Q_NORMAL_STATE) {
***************
*** 57,60 ****
--- 61,65 ----
break;
}
+ if (state == Q_HOPE_CEND) state = Q_CCOMMENT;
case '{':
if (state == Q_NORMAL_STATE) {
***************
*** 62,65 ****
--- 67,72 ----
break;
}
+ if (state == Q_HOPE_CEND) state = Q_CCOMMENT;
+
case '}':
if (state == Q_NORMAL_STATE) {
***************
*** 68,71 ****
--- 75,79 ----
}
+ if (state == Q_HOPE_CEND) state = Q_CCOMMENT;
case '/':
if (state == Q_NORMAL_STATE) {
***************
*** 83,86 ****
--- 91,99 ----
break;
}
+ if (state == Q_CCOMMENT) {
+ state = Q_HOPE_CEND;
+ break;
+ }
+
break;
case '\\':
***************
*** 92,95 ****
--- 105,109 ----
}
}
+ if (state == Q_HOPE_CEND) state = Q_CCOMMENT;
break;
case '$':
***************
*** 132,135 ****
--- 146,150 ----
}
}
+ if (state == Q_HOPE_CEND) state = Q_CCOMMENT;
break;
case '"':
***************
*** 146,149 ****
--- 161,165 ----
break;
}
+ if (state == Q_HOPE_CEND) state = Q_CCOMMENT;
break;
case '\'':
***************
*** 160,163 ****
--- 176,180 ----
break;
}
+ if (state == Q_HOPE_CEND) state = Q_CCOMMENT;
break;
case '-':
***************
*** 170,173 ****
--- 187,191 ----
break;
}
+ if (state == Q_HOPE_CEND) state = Q_CCOMMENT;
break;
case '\n':
***************
*** 177,180 ****
--- 195,199 ----
if (state == Q_DOLLAR_BUILDING) state = Q_NORMAL_STATE;
if (state == Q_DOLLAR_UNBUILDING) state = Q_DOLLAR_QUOTING;
+ if (state == Q_HOPE_CEND) state = Q_CCOMMENT;
break;
case '\r':
***************
*** 184,191 ****
--- 203,212 ----
if (state == Q_DOLLAR_BUILDING) state = Q_NORMAL_STATE;
if (state == Q_DOLLAR_UNBUILDING) state = Q_DOLLAR_QUOTING;
+ if (state == Q_HOPE_CEND) state = Q_CCOMMENT;
break;
case ' ':
if (state == Q_DOLLAR_BUILDING) state = Q_NORMAL_STATE;
if (state == Q_DOLLAR_UNBUILDING) state = Q_DOLLAR_QUOTING;
+ if (state == Q_HOPE_CEND) state = Q_CCOMMENT;
break;
case ';':
***************
*** 196,201 ****
--- 217,224 ----
}
}
+ if (state == Q_HOPE_CEND) state = Q_CCOMMENT;
break;
default:
+ if (state == Q_HOPE_CEND) state = Q_CCOMMENT;
break;
}
--- NEW FILE: cstylecomments.sql ---
-- Have two statements separated by a C-style string
select * from a;
/*
select count(distinct person_id)
from
person
join dictionary on dic_category_id=11
left join person_settings on ps_person_id=person_id and ps_did=dic_id
where
ps_person_id is null
-- only 9000!
*/
select * from b;
/************ *foooo* /- *
/ here is a tremendously ugly C-style comment
* * * * * /
-- **{***(***[****/
select * from c;
/* lets have a comment and a /* nested comment */ */
-- Force a query to be at the end...
create table foo;
- Next message: [Slony1-commit] slony1-engine/src/parsestatements Makefile cstylecomments.expected cstylecomments.sql scanner.c
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Slony1-commit mailing list