O.K. -
Bruce Momjian <bruce@momjian.us>
O.K. - Here's the multibyte aware version of my patch to fix the truncation of the rulename autogenerated during a CREATE VIEW. I've modified all the places in the backend that want to construct the rulename to use the MakeRetrieveViewRuleName(), where I put the #ifdef MULTIBYTE, so that's the only place that knows how to construct a view rulename. Except pg_dump, where I replicated the code, since it's a standalone binary. The only effect the enduser will see is that views with names len(name) > NAMEDATALEN-4 will fail to be created, if the derived rulename clases with an existing rule: i.e. the user is trying to create two views with long names whose first difference is past NAMEDATALEN-4 (but before NAMEDATALEN: that'll error out after the viewname truncation.) In no case will the user get left with a table without a view rule, as the current code does. Ross Reedstrom
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/commands/view.c | modified | +9 −1 |
| src/backend/rewrite/rewriteDefine.c | modified | +6 −3 |
| src/backend/utils/adt/ruleutils.c | modified | +17 −20 |
| src/bin/pg_dump/pg_dump.c | modified | +12 −2 |