forked from alecthomas/chroma
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request alecthomas#149 from kenshaw/fix-dollar-strings
Fix Dollar-Quoted Strings (postgres + cql)
- Loading branch information
Showing
8 changed files
with
743 additions
and
27 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
# about | ||
|
||
## user defined function in cql | ||
|
||
```javascript | ||
column.substring(0,num) | ||
``` | ||
|
||
```cql | ||
CREATE FUNCTION IF NOT EXISTS cycling.left (column TEXT,num int) | ||
RETURNS NULL ON NULL INPUT | ||
RETURNS text | ||
LANGUAGE javascript AS $$ | ||
column.substring(0,num) | ||
$$; | ||
|
||
CREATE OR REPLACE FUNCTION cycling.fLog (input double) | ||
CALLED ON NULL INPUT | ||
RETURNS double LANGUAGE java AS | ||
'return Double.valueOf(Math.log(input.doubleValue()));'; | ||
``` | ||
|
||
```postgres | ||
DROP TABLE IF EXISTS emp CASCADE; | ||
|
||
CREATE TABLE emp ( | ||
empname text, | ||
salary integer, | ||
last_date timestamp, | ||
last_user text | ||
); | ||
|
||
select | ||
$my_tag$aoeuaoeu$my_tag$ as blah | ||
; | ||
|
||
CREATE OR REPLACE FUNCTION emp_stamp() RETURNS trigger AS $emp_stamp$ | ||
BEGIN | ||
-- Check that empname and salary are given | ||
IF NEW.empname IS NULL THEN | ||
RAISE EXCEPTION 'empname cannot be null'; | ||
END IF; | ||
IF NEW.salary IS NULL THEN | ||
RAISE EXCEPTION '% cannot have null salary', NEW.empname; | ||
END IF; | ||
|
||
-- Who works for us when she must pay for it? | ||
IF NEW.salary < 0 THEN | ||
RAISE EXCEPTION '% cannot have a negative salary', NEW.empname; | ||
END IF; | ||
|
||
-- Remember who changed the payroll when | ||
NEW.last_date := current_timestamp; | ||
NEW.last_user := current_user; | ||
RETURN NEW; | ||
END; | ||
$emp_stamp$ LANGUAGE plpgsql; | ||
|
||
CREATE TRIGGER emp_stamp BEFORE INSERT OR UPDATE ON emp | ||
FOR EACH ROW EXECUTE PROCEDURE emp_stamp(); | ||
|
||
DO language plpgsql $$ | ||
declare r record; | ||
begin | ||
for r in select * from books | ||
loop | ||
execute 'select ''' || r.title || ''''; | ||
end loop; | ||
end | ||
$$; | ||
|
||
DO $$ | ||
declare r record; | ||
begin | ||
for r in select * from books | ||
loop | ||
execute 'select ''' || r.title || ''''; | ||
end loop; | ||
end | ||
$$; | ||
``` |
Oops, something went wrong.