mirror of
				https://github.com/iv-org/invidious.git
				synced 2025-10-30 20:22:00 +00:00 
			
		
		
		
	Add fix for #600
This commit is contained in:
		| @@ -225,3 +225,41 @@ class HTTP::Client | ||||
|     response | ||||
|   end | ||||
| end | ||||
|  | ||||
| # https://github.com/will/crystal-pg/pull/171 | ||||
| class PG::Statement < ::DB::Statement | ||||
|   protected def perform_query(args : Enumerable) : ResultSet | ||||
|     params = args.map { |arg| PQ::Param.encode(arg) } | ||||
|     conn = self.conn | ||||
|     conn.send_parse_message(@sql) | ||||
|     conn.send_bind_message params | ||||
|     conn.send_describe_portal_message | ||||
|     conn.send_execute_message | ||||
|     conn.send_sync_message | ||||
|     conn.expect_frame PQ::Frame::ParseComplete | ||||
|     conn.expect_frame PQ::Frame::BindComplete | ||||
|     frame = conn.read | ||||
|     case frame | ||||
|     when PQ::Frame::RowDescription | ||||
|       fields = frame.fields | ||||
|     when PQ::Frame::NoData | ||||
|       fields = nil | ||||
|     else | ||||
|       raise "expected RowDescription or NoData, got #{frame}" | ||||
|     end | ||||
|     ResultSet.new(self, fields) | ||||
|   rescue IO::Error | ||||
|     raise DB::ConnectionLost.new(connection) | ||||
|   end | ||||
|  | ||||
|   protected def perform_exec(args : Enumerable) : ::DB::ExecResult | ||||
|     result = perform_query(args) | ||||
|     result.each { } | ||||
|     ::DB::ExecResult.new( | ||||
|       rows_affected: result.rows_affected, | ||||
|       last_insert_id: 0_i64 # postgres doesn't support this | ||||
|     ) | ||||
|   rescue IO::Error | ||||
|     raise DB::ConnectionLost.new(connection) | ||||
|   end | ||||
| end | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Omar Roth
					Omar Roth