python: db uprade and downgrade scripts

This commit is contained in:
Rasmus Lerchedahl Petersen
2022-11-01 10:23:20 +01:00
parent 856e48c414
commit 1fd76f02fd
8 changed files with 4478 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,30 @@
// First we need to wrap some database types
class Stmt_ extends @py_stmt {
string toString() { result = "Stmt" }
}
class StmtList_ extends @py_stmt_list {
string toString() { result = "StmtList" }
}
/**
* New kinds have been inserted such that
* `@py_Exec` which used to have index 7 now has index 8.
* Entries with lower indices are unchanged.
*/
bindingset[new_index]
int old_index(int new_index) {
if new_index < 7 then result = new_index else result + (8 - 7) = new_index
}
// The schema for py_stmts is:
//
// py_stmts(unique int id : @py_stmt,
// int kind: int ref,
// int parent : @py_stmt_list ref,
// int idx : int ref);
from Stmt_ expr, int new_kind, StmtList_ parent, int idx, int old_kind
where
py_stmts(expr, new_kind, parent, idx) and
old_kind = old_index(new_kind)
select expr, old_kind, parent, idx

View File

@@ -0,0 +1,3 @@
description: Add support for `except*`
compatibility: backwards
py_stmts.rel: run py_stmts.qlo

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,30 @@
// First we need to wrap some database types
class Stmt_ extends @py_stmt {
string toString() { result = "Stmt" }
}
class StmtList_ extends @py_stmt_list {
string toString() { result = "StmtList" }
}
/**
* New kinds have been inserted such that
* `@py_Exec` which used to have index 7 now has index 8.
* Entries with lower indices are unchanged.
*/
bindingset[old_index]
int new_index(int old_index) {
if old_index < 7 then result = old_index else result = (8 - 7) + old_index
}
// The schema for py_stmts is:
//
// py_stmts(unique int id : @py_stmt,
// int kind: int ref,
// int parent : @py_stmt_list ref,
// int idx : int ref);
from Stmt_ expr, int old_kind, StmtList_ parent, int idx, int new_kind
where
py_stmts(expr, old_kind, parent, idx) and
new_kind = new_index(old_kind)
select expr, new_kind, parent, idx

View File

@@ -0,0 +1,3 @@
description: Add support for `except*`
compatibility: backwards
py_stmts.rel: run py_stmts.qlo