O PostgreSQL v15 oferece amplo suporte a tipos geométricos. A representação do tipo geográfico closed path e o tamanho alocado para o armazenamento de dados são, respectivamente,
- A)(x,y) e 8 bytes.
Errada, porque (x,y) representa um ponto, não um closed path, e 8 bytes também não correspondem ao armazenamento de um ponto geométrico no PostgreSQL.
- B){ABC} e 16 bytes.
Errada, porque {ABC} não é a notação do tipo path no PostgreSQL e 16 bytes não descrevem a fórmula de armazenamento do tipo.
- C)((x1,y1),(x2,y2)) e 32 bytes
Errada, porque ((x1,y1),(x2,y2)) indica apenas dois pontos, não a forma geral de um closed path, e 32 bytes não é a expressão de tamanho cobrada.
- D)((x1,y1),...) e 16+16n bytes.
Certa, porque o closed path é representado por uma sequência de pontos entre parênteses duplos e o armazenamento é 16 + 16n bytes.
- E)((x1,y1),(x2,y2),...) e 32+32n bytes.
Errada, porque essa notação se parece com uma lista genérica de pontos, mas não é a representação específica do closed path, e o tamanho também está inflado.
Gabarito: D
No PostgreSQL, os tipos geométricos servem para guardar pontos, retas, círculos, polígonos e caminhos. A ideia aqui é simples: o banco não guarda só texto bonitinho, ele guarda a estrutura geométrica já pronta para consulta. Em prova, a FGV adora trocar um detalhe visual da representação e ver quem cai na casca de banana. No caso de path, existe diferença entre caminho aberto e caminho fechado. O caminho aberto aparece com colchetes, e o fechado aparece com parênteses duplos, porque ele sugere um trajeto que se fecha sobre si mesmo. Por isso, a forma do closed path é ((x1,y1),...), isto é, uma sequência de pontos. Quanto ao tamanho, cada ponto ocupa 16 bytes, pois são duas coordenadas do tipo double precision, 8 bytes cada. Além disso, há um custo fixo de armazenamento do próprio objeto path, então o total fica 16 + 16n bytes, em que n é o número de pontos. Em outras palavras: cada ponto soma 16 bytes e ainda existe uma pequena “taxa de entrada” do tipo. Por isso o gabarito é a letra D. A banca está cobrando exatamente a representação textual do path fechado e a fórmula de armazenamento correspondente, como descrito na documentação do PostgreSQL para tipos geométricos.