copy.pt 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. # Ensure COPY works over simple query.
  2. send
  3. Query {"query": "COPY (VALUES (1, '2'), (3, '4'), (5, '\\\t\n\rtest\\N'), (6, NULL) ORDER BY column1) TO STDOUT"}
  4. ----
  5. until
  6. ReadyForQuery
  7. ----
  8. CopyOut {"format":"text","column_formats":["text","text"]}
  9. CopyData "1\t2\n"
  10. CopyData "3\t4\n"
  11. CopyData "5\t\\\\\\t\\n\\rtest\\\\N\n"
  12. CopyData "6\t\\N\n"
  13. CopyDone
  14. CommandComplete {"tag":"COPY 4"}
  15. ReadyForQuery {"status":"I"}
  16. # Ensure COPY works over prepared statements.
  17. send
  18. Parse {"query": "COPY (VALUES (1, '2'), (3, '4'), (5, '\\\t\n\rtest\\N'), (6, NULL) ORDER BY column1) TO STDOUT"}
  19. Bind
  20. Describe
  21. Execute
  22. Sync
  23. ----
  24. until
  25. ReadyForQuery
  26. ----
  27. ParseComplete
  28. BindComplete
  29. ParameterDescription {"parameters":[]}
  30. NoData
  31. CopyOut {"format":"text","column_formats":["text","text"]}
  32. CopyData "1\t2\n"
  33. CopyData "3\t4\n"
  34. CopyData "5\t\\\\\\t\\n\\rtest\\\\N\n"
  35. CopyData "6\t\\N\n"
  36. CopyDone
  37. CommandComplete {"tag":"COPY 4"}
  38. ReadyForQuery {"status":"I"}
  39. # Verify binary output.
  40. send
  41. Query {"query": "COPY (VALUES (1, '2'), (3, '4'), (5, '\\\t\n\rtest\\N'), (6, NULL) ORDER BY column1) TO STDOUT WITH (FORMAT binary)"}
  42. ----
  43. until
  44. ReadyForQuery
  45. ----
  46. CopyOut {"format":"binary","column_formats":["binary","binary"]}
  47. CopyData "[80, 71, 67, 79, 80, 89, 10, 255, 13, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 4, 0, 0, 0, 1, 0, 0, 0, 1, 50]"
  48. CopyData "\u0000\u0002\u0000\u0000\u0000\u0004\u0000\u0000\u0000\u0003\u0000\u0000\u0000\u00014"
  49. CopyData "\u0000\u0002\u0000\u0000\u0000\u0004\u0000\u0000\u0000\u0005\u0000\u0000\u0000\n\\\t\n\rtest\\N"
  50. CopyData "[0, 2, 0, 0, 0, 4, 0, 0, 0, 6, 255, 255, 255, 255]"
  51. CopyData "[255, 255]"
  52. CopyDone
  53. CommandComplete {"tag":"COPY 4"}
  54. ReadyForQuery {"status":"I"}
  55. # Verify CSV output.
  56. send
  57. Query {"query": "COPY (VALUES (1, '2'), (3, '4'), (5, '\\\t\n\rte,st\\N'), (6, NULL) ORDER BY column1) TO STDOUT WITH (FORMAT csv)"}
  58. ----
  59. until
  60. ReadyForQuery
  61. ----
  62. CopyOut {"format":"text","column_formats":["text","text"]}
  63. CopyData "1,2\n"
  64. CopyData "3,4\n"
  65. CopyData "5,\"\\\t\n\rte,st\\N\"\n"
  66. CopyData "6,\n"
  67. CopyDone
  68. CommandComplete {"tag":"COPY 4"}
  69. ReadyForQuery {"status":"I"}