test.sql
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:1k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. --
  2. -- This runs some common tests against the type
  3. --
  4. -- It's used just for development
  5. --
  6. -- ignore any errors here - simply drop the table if it already exists
  7. drop table a;
  8. -- create the test table
  9. create table a (fname name,image lo);
  10. -- insert a null object
  11. insert into a values ('null');
  12. -- insert an empty large object
  13. insert into a values ('empty','');
  14. -- insert a large object based on a file
  15. insert into a values ('/etc/group',lo_import('/etc/group')::lo);
  16. -- now select the table
  17. select * from a;
  18. -- this select also returns an oid based on the lo column
  19. select *,image::oid from a;
  20. -- now test the trigger
  21. create trigger t_a before update or delete on a for each row execute procedure lo_manage(image);
  22. -- insert
  23. insert into a values ('aa','');
  24. select * from a where fname like 'aa%';
  25. -- update
  26. update a set image=lo_import('/etc/group')::lo where fname='aa';
  27. select * from a where fname like 'aa%';
  28. -- update the 'empty' row which should be null
  29. update a set image=lo_import('/etc/hosts')::lo where fname='empty';
  30. select * from a where fname like 'empty%';
  31. update a set image=null where fname='empty';
  32. select * from a where fname like 'empty%';
  33. -- delete the entry
  34. delete from a where fname='aa';
  35. select * from a where fname like 'aa%';
  36. -- This deletes the table contents. Note, if you comment this out, and
  37. -- expect the drop table to remove the objects, think again. The trigger
  38. -- doesn't get thrown by drop table.
  39. delete from a;
  40. -- finally drop the table
  41. drop table a;
  42. -- end of tests