Skip to content

Commit

Permalink
PHOENIX-7268 Namespace mapped system catalog table not snapshotted be…
Browse files Browse the repository at this point in the history
…fore upgrade (#2012)
  • Loading branch information
szucsvillo authored Oct 27, 2024
1 parent fa1d22c commit 46c4735
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,9 @@ public class PhoenixDatabaseMetaData implements DatabaseMetaData {
public static final String SYSTEM_CATALOG = SYSTEM_CATALOG_SCHEMA + ".\"" + SYSTEM_CATALOG_TABLE + "\"";
public static final String SYSTEM_CATALOG_NAME = SchemaUtil.getTableName(SYSTEM_CATALOG_SCHEMA,
SYSTEM_CATALOG_TABLE);
public static final String OLD_SYSTEM_CATALOG_NAME = SYSTEM_CATALOG_NAME.replace(QueryConstants.NAME_SEPARATOR, QueryConstants.NAMESPACE_SEPARATOR);
public static final String MAPPED_SYSTEM_CATALOG_NAME =
SYSTEM_CATALOG_NAME.replace(QueryConstants.NAME_SEPARATOR,
QueryConstants.NAMESPACE_SEPARATOR);
public static final TableName SYSTEM_CATALOG_HBASE_TABLE_NAME = TableName.valueOf(SYSTEM_CATALOG_NAME);
public static final byte[] SYSTEM_CATALOG_NAME_BYTES = Bytes.toBytes(SYSTEM_CATALOG_NAME);
public static final String SYSTEM_STATS_TABLE = "STATS";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.IS_ROW_TIMESTAMP;
import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.IS_VIEW_REFERENCED;
import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.KEY_SEQ;
import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.MAPPED_SYSTEM_CATALOG_NAME;
import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.NULLABLE;
import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.ORDINAL_POSITION;
import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.PK_NAME;
Expand Down Expand Up @@ -4501,6 +4502,15 @@ public void upgradeSystemTables(final String url, final Properties props) throws
systemTableToSnapshotMap.put(SYSTEM_CATALOG_NAME, snapshotName);
LOGGER.info("Created snapshot {} for {}", snapshotName, SYSTEM_CATALOG_NAME);

// Snapshot qualifiers may only contain 'alphanumeric characters' and
// digits, hence : cannot be part of snapshot name
String mappedSnapshotName = getSysTableSnapshotName(currentServerSideTableTimeStamp,
"MAPPED." + SYSTEM_CATALOG_NAME);
createSnapshot(mappedSnapshotName, MAPPED_SYSTEM_CATALOG_NAME);
systemTableToSnapshotMap.put(MAPPED_SYSTEM_CATALOG_NAME, mappedSnapshotName);
LOGGER.info("Created snapshot {} for {}",
mappedSnapshotName, MAPPED_SYSTEM_CATALOG_NAME);

if (caughtUpgradeRequiredException != null) {
if (SchemaUtil.isNamespaceMappingEnabled(
PTableType.SYSTEM, ConnectionQueryServicesImpl.this.getProps())) {
Expand Down Expand Up @@ -4751,9 +4761,9 @@ private void takeSnapshotOfSysTable(
// Snapshot qualifiers may only contain 'alphanumeric characters' and
// digits, hence : cannot be part of snapshot name
if (snapshotName.contains(QueryConstants.NAMESPACE_SEPARATOR)) {
snapshotName = snapshotName.replace(
QueryConstants.NAMESPACE_SEPARATOR,
QueryConstants.NAME_SEPARATOR);
snapshotName = getSysTableSnapshotName(
currentServerSideTableTimeStamp, "MAPPED." + tableName).
replace(QueryConstants.NAMESPACE_SEPARATOR, QueryConstants.NAME_SEPARATOR);
}
createSnapshot(snapshotName, tableName);
systemTableToSnapshotMap.put(tableName, snapshotName);
Expand Down

0 comments on commit 46c4735

Please sign in to comment.