|
|
@@ -154,7 +154,6 @@ def query_complexity(request):
|
|
|
return JsonResponse(response)
|
|
|
|
|
|
|
|
|
-# Mocked
|
|
|
@require_POST
|
|
|
@error_handler
|
|
|
def popular_values(request):
|
|
|
@@ -163,182 +162,191 @@ def popular_values(request):
|
|
|
table_name = request.POST.get('tableName')
|
|
|
column_name = request.POST.get('columnName')
|
|
|
|
|
|
- if column_name:
|
|
|
- values = [
|
|
|
- {
|
|
|
- "values": [
|
|
|
- "1",
|
|
|
- "(6,0)"
|
|
|
- ],
|
|
|
- "columnName": "d_dow",
|
|
|
- "tableName": "date_dim"
|
|
|
- }
|
|
|
- ]
|
|
|
- else:
|
|
|
- values = [
|
|
|
- {
|
|
|
- "values": [
|
|
|
- "('2001q1','2001q2','2001q3')",
|
|
|
- "'2001q1'"
|
|
|
- ],
|
|
|
- "columnName": "d_quarter_name",
|
|
|
- "tableName": "date_dim"
|
|
|
- },
|
|
|
- {
|
|
|
- "values": [
|
|
|
- "1",
|
|
|
- "2",
|
|
|
- "4"
|
|
|
- ],
|
|
|
- "columnName": "d_qoy",
|
|
|
- "tableName": "date_dim"
|
|
|
- },
|
|
|
- {
|
|
|
- "values": [
|
|
|
- "Subquery"
|
|
|
- ],
|
|
|
- "columnName": "d_week_seq",
|
|
|
- "tableName": "date_dim"
|
|
|
- },
|
|
|
- {
|
|
|
- "values": [
|
|
|
- "(cast('1998-08-14' as date) + interval '30' day)",
|
|
|
- "(cast ('1998-03-08' as date) + interval '30' day)",
|
|
|
- "d1.d_date + 5",
|
|
|
- "cast('1998-08-14' as date)",
|
|
|
- "cast('1999-04-26' as date)",
|
|
|
- "'2002-4-01'",
|
|
|
- "(cast('2000-02-02' as date) + interval '90' day)",
|
|
|
- "(cast('2002-4-01' as date) + interval '60' day)",
|
|
|
- "(cast('2002-01-18' as date) + 60 + interval '60' day)",
|
|
|
- "('1999-04-17','1999-10-04','1999-11-10')",
|
|
|
- "(cast('1999-04-26' as date) + 30 + interval '30' day)",
|
|
|
- "(cast('1999-06-03' as date) + interval '30' day)",
|
|
|
- "cast('1998-01-06' as date)",
|
|
|
- "(cast('2000-2-01' as date) + interval '60' day)",
|
|
|
- "(cast('2002-04-01' as date) + interval '30' day)",
|
|
|
- "( cast('2000-03-22' as date ) + interval '90' day )",
|
|
|
- "cast('2001-08-21' as date)",
|
|
|
- "(cast ('1998-03-08' as date) - interval '30' day)",
|
|
|
- "'2000-03-22'",
|
|
|
- "(cast('2001-08-21' as date) + interval '14' day)",
|
|
|
- "( cast('1999-08-25' as date) + interval '30' day )",
|
|
|
- "Subquery",
|
|
|
- "'2000-3-01'",
|
|
|
- "cast('2002-01-18' as date)",
|
|
|
- "(cast ('2001-03-14' as date) - interval '30' day)",
|
|
|
- "'2000-02-02'",
|
|
|
- "cast('2002-04-01' as date)",
|
|
|
- "'2002-03-09'",
|
|
|
- "(cast('2000-3-01' as date) + interval '60' day)",
|
|
|
- "cast('1999-06-03' as date)",
|
|
|
- "cast('1999-08-25' as date)",
|
|
|
- "(cast ('2001-03-14' as date) + interval '30' day)",
|
|
|
- "'2000-2-01'",
|
|
|
- "(cast('1998-01-06' as date) + interval '60' day)"
|
|
|
- ],
|
|
|
- "columnName": "d_date",
|
|
|
- "tableName": "date_dim"
|
|
|
- },
|
|
|
- {
|
|
|
- "values": [
|
|
|
- "1223",
|
|
|
- "1200",
|
|
|
- "1202",
|
|
|
- "1214+11",
|
|
|
- "(select distinct date_dim.d_month_seq+1 from date_dim where date_dim.d_year = 2001 and date_dim.d_moy = 5)",
|
|
|
- "1181+11",
|
|
|
- "1199",
|
|
|
- "1191",
|
|
|
- "(1206,1206+1,1206+2,1206+3,1206+4,1206+5,1206+6,1206+7,1206+8,1206+9,1206+10,1206+11)",
|
|
|
- "1211 + 11",
|
|
|
- "1199 + 11",
|
|
|
- "1212",
|
|
|
- "(select distinct date_dim.d_month_seq+3 from date_dim where date_dim.d_year = 2001 and date_dim.d_moy = 5)",
|
|
|
- "1211",
|
|
|
- "1214",
|
|
|
- "Subquery",
|
|
|
- "(1195,1195+1,1195+2,1195+3,1195+4,1195+5,1195+6,1195+7,1195+8,1195+9,1195+10,1195+11)",
|
|
|
- "1200+11",
|
|
|
- "1212 + 11",
|
|
|
- "1223+11",
|
|
|
- "1183 + 11",
|
|
|
- "1183",
|
|
|
- "1181",
|
|
|
- "1191 + 11",
|
|
|
- "1202 + 11"
|
|
|
- ],
|
|
|
- "columnName": "d_month_seq",
|
|
|
- "tableName": "date_dim"
|
|
|
- },
|
|
|
- {
|
|
|
- "values": [
|
|
|
- "11",
|
|
|
- "4 + 3",
|
|
|
- "12",
|
|
|
- "3+2",
|
|
|
- "2+3",
|
|
|
- "1",
|
|
|
- "3",
|
|
|
- "2",
|
|
|
- "5",
|
|
|
- "4",
|
|
|
- "6",
|
|
|
- "8",
|
|
|
- "10"
|
|
|
- ],
|
|
|
- "columnName": "d_moy",
|
|
|
- "tableName": "date_dim"
|
|
|
- },
|
|
|
- {
|
|
|
- "values": [
|
|
|
- "25",
|
|
|
- "16",
|
|
|
- "28",
|
|
|
- "1",
|
|
|
- "3",
|
|
|
- "2"
|
|
|
- ],
|
|
|
- "columnName": "d_dom",
|
|
|
- "tableName": "date_dim"
|
|
|
- },
|
|
|
- {
|
|
|
- "values": [
|
|
|
- "(1998,1998+1)",
|
|
|
- "2000 + 1",
|
|
|
- "2000 + 2",
|
|
|
- "(2000,2000+1,2000+2)",
|
|
|
- "(1999,1999+1,1999+2)",
|
|
|
- "2000-1",
|
|
|
- "2001+1",
|
|
|
- "1999 + 2",
|
|
|
- "2000+1",
|
|
|
- "2000+2",
|
|
|
- "1999+1",
|
|
|
- "(2002)",
|
|
|
- "( 1999, 1999 + 1, 1999 + 2, 1999 + 3 )",
|
|
|
- "1999-1",
|
|
|
- "( 1998, 1998 + 1, 1998 + 2 )",
|
|
|
- "1999",
|
|
|
- "1998",
|
|
|
- "(1998,1998+1,1998+2)",
|
|
|
- "2002",
|
|
|
- "2000",
|
|
|
- "2001",
|
|
|
- "2004"
|
|
|
- ],
|
|
|
- "columnName": "d_year",
|
|
|
- "tableName": "date_dim"
|
|
|
- },
|
|
|
- {
|
|
|
- "values": [
|
|
|
- "1",
|
|
|
- "(6,0)"
|
|
|
- ],
|
|
|
- "columnName": "d_dow",
|
|
|
- "tableName": "date_dim"
|
|
|
- }
|
|
|
+ if OPTIMIZER.MOCKING.get():
|
|
|
+ if column_name:
|
|
|
+ values = [
|
|
|
+ {
|
|
|
+ "values": [
|
|
|
+ "1",
|
|
|
+ "(6,0)"
|
|
|
+ ],
|
|
|
+ "columnName": "d_dow",
|
|
|
+ "tableName": "date_dim"
|
|
|
+ }
|
|
|
]
|
|
|
+ else:
|
|
|
+ values = [
|
|
|
+ {
|
|
|
+ "values": [
|
|
|
+ "('2001q1','2001q2','2001q3')",
|
|
|
+ "'2001q1'"
|
|
|
+ ],
|
|
|
+ "columnName": "d_quarter_name",
|
|
|
+ "tableName": "date_dim"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "values": [
|
|
|
+ "1",
|
|
|
+ "2",
|
|
|
+ "4"
|
|
|
+ ],
|
|
|
+ "columnName": "d_qoy",
|
|
|
+ "tableName": "date_dim"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "values": [
|
|
|
+ "Subquery"
|
|
|
+ ],
|
|
|
+ "columnName": "d_week_seq",
|
|
|
+ "tableName": "date_dim"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "values": [
|
|
|
+ "(cast('1998-08-14' as date) + interval '30' day)",
|
|
|
+ "(cast ('1998-03-08' as date) + interval '30' day)",
|
|
|
+ "d1.d_date + 5",
|
|
|
+ "cast('1998-08-14' as date)",
|
|
|
+ "cast('1999-04-26' as date)",
|
|
|
+ "'2002-4-01'",
|
|
|
+ "(cast('2000-02-02' as date) + interval '90' day)",
|
|
|
+ "(cast('2002-4-01' as date) + interval '60' day)",
|
|
|
+ "(cast('2002-01-18' as date) + 60 + interval '60' day)",
|
|
|
+ "('1999-04-17','1999-10-04','1999-11-10')",
|
|
|
+ "(cast('1999-04-26' as date) + 30 + interval '30' day)",
|
|
|
+ "(cast('1999-06-03' as date) + interval '30' day)",
|
|
|
+ "cast('1998-01-06' as date)",
|
|
|
+ "(cast('2000-2-01' as date) + interval '60' day)",
|
|
|
+ "(cast('2002-04-01' as date) + interval '30' day)",
|
|
|
+ "( cast('2000-03-22' as date ) + interval '90' day )",
|
|
|
+ "cast('2001-08-21' as date)",
|
|
|
+ "(cast ('1998-03-08' as date) - interval '30' day)",
|
|
|
+ "'2000-03-22'",
|
|
|
+ "(cast('2001-08-21' as date) + interval '14' day)",
|
|
|
+ "( cast('1999-08-25' as date) + interval '30' day )",
|
|
|
+ "Subquery",
|
|
|
+ "'2000-3-01'",
|
|
|
+ "cast('2002-01-18' as date)",
|
|
|
+ "(cast ('2001-03-14' as date) - interval '30' day)",
|
|
|
+ "'2000-02-02'",
|
|
|
+ "cast('2002-04-01' as date)",
|
|
|
+ "'2002-03-09'",
|
|
|
+ "(cast('2000-3-01' as date) + interval '60' day)",
|
|
|
+ "cast('1999-06-03' as date)",
|
|
|
+ "cast('1999-08-25' as date)",
|
|
|
+ "(cast ('2001-03-14' as date) + interval '30' day)",
|
|
|
+ "'2000-2-01'",
|
|
|
+ "(cast('1998-01-06' as date) + interval '60' day)"
|
|
|
+ ],
|
|
|
+ "columnName": "d_date",
|
|
|
+ "tableName": "date_dim"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "values": [
|
|
|
+ "1223",
|
|
|
+ "1200",
|
|
|
+ "1202",
|
|
|
+ "1214+11",
|
|
|
+ "(select distinct date_dim.d_month_seq+1 from date_dim where date_dim.d_year = 2001 and date_dim.d_moy = 5)",
|
|
|
+ "1181+11",
|
|
|
+ "1199",
|
|
|
+ "1191",
|
|
|
+ "(1206,1206+1,1206+2,1206+3,1206+4,1206+5,1206+6,1206+7,1206+8,1206+9,1206+10,1206+11)",
|
|
|
+ "1211 + 11",
|
|
|
+ "1199 + 11",
|
|
|
+ "1212",
|
|
|
+ "(select distinct date_dim.d_month_seq+3 from date_dim where date_dim.d_year = 2001 and date_dim.d_moy = 5)",
|
|
|
+ "1211",
|
|
|
+ "1214",
|
|
|
+ "Subquery",
|
|
|
+ "(1195,1195+1,1195+2,1195+3,1195+4,1195+5,1195+6,1195+7,1195+8,1195+9,1195+10,1195+11)",
|
|
|
+ "1200+11",
|
|
|
+ "1212 + 11",
|
|
|
+ "1223+11",
|
|
|
+ "1183 + 11",
|
|
|
+ "1183",
|
|
|
+ "1181",
|
|
|
+ "1191 + 11",
|
|
|
+ "1202 + 11"
|
|
|
+ ],
|
|
|
+ "columnName": "d_month_seq",
|
|
|
+ "tableName": "date_dim"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "values": [
|
|
|
+ "11",
|
|
|
+ "4 + 3",
|
|
|
+ "12",
|
|
|
+ "3+2",
|
|
|
+ "2+3",
|
|
|
+ "1",
|
|
|
+ "3",
|
|
|
+ "2",
|
|
|
+ "5",
|
|
|
+ "4",
|
|
|
+ "6",
|
|
|
+ "8",
|
|
|
+ "10"
|
|
|
+ ],
|
|
|
+ "columnName": "d_moy",
|
|
|
+ "tableName": "date_dim"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "values": [
|
|
|
+ "25",
|
|
|
+ "16",
|
|
|
+ "28",
|
|
|
+ "1",
|
|
|
+ "3",
|
|
|
+ "2"
|
|
|
+ ],
|
|
|
+ "columnName": "d_dom",
|
|
|
+ "tableName": "date_dim"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "values": [
|
|
|
+ "(1998,1998+1)",
|
|
|
+ "2000 + 1",
|
|
|
+ "2000 + 2",
|
|
|
+ "(2000,2000+1,2000+2)",
|
|
|
+ "(1999,1999+1,1999+2)",
|
|
|
+ "2000-1",
|
|
|
+ "2001+1",
|
|
|
+ "1999 + 2",
|
|
|
+ "2000+1",
|
|
|
+ "2000+2",
|
|
|
+ "1999+1",
|
|
|
+ "(2002)",
|
|
|
+ "( 1999, 1999 + 1, 1999 + 2, 1999 + 3 )",
|
|
|
+ "1999-1",
|
|
|
+ "( 1998, 1998 + 1, 1998 + 2 )",
|
|
|
+ "1999",
|
|
|
+ "1998",
|
|
|
+ "(1998,1998+1,1998+2)",
|
|
|
+ "2002",
|
|
|
+ "2000",
|
|
|
+ "2001",
|
|
|
+ "2004"
|
|
|
+ ],
|
|
|
+ "columnName": "d_year",
|
|
|
+ "tableName": "date_dim"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "values": [
|
|
|
+ "1",
|
|
|
+ "(6,0)"
|
|
|
+ ],
|
|
|
+ "columnName": "d_dow",
|
|
|
+ "tableName": "date_dim"
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ else:
|
|
|
+ api = OptimizerApi()
|
|
|
+ data = api.popular_filter_values(table_name=table_name, column_name=column_name)
|
|
|
+
|
|
|
+ if data['status'] == 'success':
|
|
|
+ values = data['details']
|
|
|
+ else:
|
|
|
+ response['message'] = 'Optimizer: %s' % data['details']
|
|
|
|
|
|
response['values'] = values
|
|
|
response['status'] = 0
|