google-nomulus/java/google/registry/tools/sql/credit_data_view.sql
Chris Tingue 9c28534b64 Add --set_current_tld_state to UpdateTldCommand
This feature would have been useful earlier when I was changing the TLD
state on a sandbox TLD on-the-fly for testing purposes.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=128088578
2016-08-02 19:02:19 -04:00

52 lines
1.8 KiB
SQL

-- Copyright 2016 The Domain Registry Authors. All Rights Reserved.
--
-- Licensed under the Apache License, Version 2.0 (the "License");
-- you may not use this file except in compliance with the License.
-- You may obtain a copy of the License at
--
-- http://www.apache.org/licenses/LICENSE-2.0
--
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS,
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- See the License for the specific language governing permissions and
-- limitations under the License.
-- Credit Data View SQL
--
-- This query post-processes RegistrarCredit entities and joins them to the
-- corresponding owning Registrar entities. The join is mostly a no-op, but
-- it does ensure that if extracting the registrar parent from a credit fails
-- then this view will indicate that by showing the registrar ID as null.
-- TODO(b/19031915): add optional sanity-checking for that type of invariant.
SELECT
Registrar.registrarId AS registrarId,
RegistrarCredit.__key__.id AS creditId,
RegistrarCredit.type AS type,
CreditType.priority AS typePriority,
creationTime,
currency,
description,
tld,
FROM (
SELECT
*,
REGEXP_EXTRACT(__key__.path, '"Registrar", "(.+?)"') AS registrarId
FROM
[%SOURCE_DATASET%.RegistrarCredit]
) AS RegistrarCredit
LEFT JOIN
(SELECT registrarId FROM [%DEST_DATASET%.RegistrarData]) AS Registrar
ON
RegistrarCredit.registrarId = Registrar.registrarId
LEFT JOIN (
-- TODO(b/19031546): Generate this table from the CreditType enum.
SELECT * FROM
(SELECT 'AUCTION' AS type, 1 AS priority),
(SELECT 'PROMOTION' AS type, 2 AS priority),
) AS CreditType
ON
RegistrarCredit.type = CreditType.type
ORDER BY
creationTime,
creditId